summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/apps/linkCalculationApp/src/components
diff options
context:
space:
mode:
authorAijana Schumann <aijana.schumann@highstreet-technologies.com>2020-08-27 09:01:53 +0200
committerAijana Schumann <aijana.schumann@highstreet-technologies.com>2020-08-27 11:52:38 +0200
commit4bd84bebdaa0c2d82050fbedd1fa8260eb62146d (patch)
tree3f26dfc6c7da0f176f31bcde112971b0b8c552ce /sdnr/wt/odlux/apps/linkCalculationApp/src/components
parent958de10b4c433eb6110b93007f281b07515ed6fe (diff)
Add link calculation app
Add link calculation app to odlux Issue-ID: CCSDK-2562 Signed-off-by: Aijana Schumann <aijana.schumann@highstreet-technologies.com> Change-Id: Ifc0a5b2a8bb974dfd85d70a9f05990b1f11925a3 Signed-off-by: Aijana Schumann <aijana.schumann@highstreet-technologies.com>
Diffstat (limited to 'sdnr/wt/odlux/apps/linkCalculationApp/src/components')
-rw-r--r--sdnr/wt/odlux/apps/linkCalculationApp/src/components/connectionInfo.tsx55
-rw-r--r--sdnr/wt/odlux/apps/linkCalculationApp/src/components/denseTable.tsx121
2 files changed, 176 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/apps/linkCalculationApp/src/components/connectionInfo.tsx b/sdnr/wt/odlux/apps/linkCalculationApp/src/components/connectionInfo.tsx
new file mode 100644
index 000000000..c798e481f
--- /dev/null
+++ b/sdnr/wt/odlux/apps/linkCalculationApp/src/components/connectionInfo.tsx
@@ -0,0 +1,55 @@
+/**
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt odlux
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+
+import * as React from 'react'
+
+import { IApplicationStoreState } from "../../../../framework/src/store/applicationStore";
+import connect, { IDispatcher, Connect } from "../../../../framework/src/flux/connect";
+import { Paper, Typography } from "@material-ui/core";
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';
+
+
+type props = Connect<typeof mapStateToProps, typeof mapDispatchToProps>;
+
+const ConnectionInfo: React.FunctionComponent<props> = (props) => {
+
+ return (
+ (props.isCalculationServerReachable === false)? <Paper style={{padding:5, position: 'absolute', top: 160, width: 230, left:"40%"}}>
+ <div style={{display: 'flex', flexDirection: 'column'}}>
+ <div style={{'alignSelf': 'center', marginBottom:5}}> <Typography> <FontAwesomeIcon icon={faExclamationTriangle} /> Connection Error</Typography></div>
+ {props.isCalculationServerReachable === false && <Typography> Calculation data can't be loaded.</Typography>}
+ </div>
+ </Paper> : null
+)}
+
+const mapStateToProps = (state: IApplicationStoreState) => ({
+ isCalculationServerReachable: state.linkCalculation.calculations.reachable
+});
+
+
+
+const mapDispatchToProps = (dispatcher: IDispatcher) => ({
+
+ //zoomToSearchResult: (lat: number, lon: number) => dispatcher.dispatch(new ZoomToSearchResultAction(lat, lon))
+
+});;
+
+
+export default connect(mapStateToProps,mapDispatchToProps)(ConnectionInfo)
+
diff --git a/sdnr/wt/odlux/apps/linkCalculationApp/src/components/denseTable.tsx b/sdnr/wt/odlux/apps/linkCalculationApp/src/components/denseTable.tsx
new file mode 100644
index 000000000..96d6f4ed1
--- /dev/null
+++ b/sdnr/wt/odlux/apps/linkCalculationApp/src/components/denseTable.tsx
@@ -0,0 +1,121 @@
+/**
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt odlux
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+
+import * as React from 'react';
+import Table from '@material-ui/core/Table';
+import TableBody from '@material-ui/core/TableBody';
+import TableCell from '@material-ui/core/TableCell';
+import TableContainer from '@material-ui/core/TableContainer';
+import TableHead from '@material-ui/core/TableHead';
+import TableRow from '@material-ui/core/TableRow';
+import Paper from '@material-ui/core/Paper';
+import { makeStyles, Button, Tooltip } from '@material-ui/core';
+
+type props = { headers: string[], width: number, height:number, navigate?(applicationName: string, path?: string):void, onLinkClick?(id: string): void, data: any[], hover: boolean, onClick?(id: string): void, actions?:boolean };
+
+
+const styles = makeStyles({
+ container: {
+ overflow:"auto"
+ },
+ button: {
+ margin: 0,
+ padding: "6px 6px",
+ minWidth: 'unset'
+ }
+
+ });
+
+
+const DenseTable: React.FunctionComponent<props> = (props) => {
+
+ const classes = styles();
+
+ const handleClick = (event: any, id: string) =>{
+ event.preventDefault();
+ props.onClick !== undefined && props.onClick(id);
+
+ }
+
+ const handleHover = (event: any, id: string) =>{
+ event.preventDefault();
+
+ }
+
+ return (
+ <Paper style={{borderRadius:"0px", width:props.width, height:props.height}} className={classes.container}>
+
+ <Table stickyHeader size="small" aria-label="a dense table" >
+ <TableHead>
+ <TableRow>
+ {
+ props.headers.map((data) => {
+ return <TableCell>{data}</TableCell>
+ })
+ }
+ </TableRow>
+ </TableHead>
+ <TableBody>
+ {props.data.map((row, index) => {
+
+
+ var filteredRows = Object.keys(row).filter(function(e) { if(e!=="simulatorId") return row });
+
+ //var filteredRows = Object.keys(row).filter(function(e) { if(e!=="simulatorId") return row[e] });
+ var values = Object.keys(row).map(function(e) { if(e!=="simulatorId"){ return row[e];} else return undefined });
+
+
+ return (
+ <TableRow key={index} hover={props.hover} onMouseOver={e => handleHover(e,row.name)} onClick={ e => handleClick(e, row.name)}>
+
+ {
+ values.map((data:any) => {
+
+ if(data!== undefined)
+ return <TableCell > {data} </TableCell>
+ else
+ return null;
+ })
+ }
+ {
+
+ props.actions && <TableCell >
+<div style={{display:"flex"}}>
+ <Tooltip title="Configure">
+ <Button className={classes.button} disabled={row.status!=="connected"} onClick={(e: any) =>{ e.preventDefault(); e.stopPropagation(); props.navigate && props.navigate("configuration", row.simulatorId ? row.simulatorId : row.name)}}>C</Button>
+ </Tooltip>
+ <Tooltip title="Fault">
+ <Button className={classes.button} onClick={(e: any) =>{ e.preventDefault(); e.stopPropagation(); props.navigate && props.navigate("fault", row.simulatorId ? row.simulatorId : row.name)}}>F</Button>
+ </Tooltip>
+ </div>
+ </TableCell>
+
+ }
+ </TableRow>)
+ })
+ }
+
+ </TableBody>
+ </Table>
+
+ </Paper>
+ );
+
+}
+
+export default DenseTable; \ No newline at end of file