aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAijana Schumann <aijana.schumann@highstreet-technologies.com>2020-09-01 12:54:19 +0200
committerAijana Schumann <aijana.schumann@highstreet-technologies.com>2020-09-01 12:54:19 +0200
commita6b4da962e9aa3e446ba707e3533f833c2d7b16f (patch)
tree4a5cfe9272f0dcb33e990ea81ccf0f6b8e1ab17a
parent77a101dfcbad1e6a6a91d8bea9b0df8b7d8e76ff (diff)
Add Statistics to NetworkMap
Add statistics/ link and site count information to the networkmap Issue-ID: CCSDK-2606 Signed-off-by: Aijana Schumann <aijana.schumann@highstreet-technologies.com> Change-Id: I016f1767c0323d271bf2663c44354393d85a2a3c
-rw-r--r--sdnr/wt/odlux/apps/networkMapApp/src/components/map.tsx8
-rw-r--r--sdnr/wt/odlux/apps/networkMapApp/src/components/statistics.tsx57
2 files changed, 59 insertions, 6 deletions
diff --git a/sdnr/wt/odlux/apps/networkMapApp/src/components/map.tsx b/sdnr/wt/odlux/apps/networkMapApp/src/components/map.tsx
index d9075c889..363178e9b 100644
--- a/sdnr/wt/odlux/apps/networkMapApp/src/components/map.tsx
+++ b/sdnr/wt/odlux/apps/networkMapApp/src/components/map.tsx
@@ -18,7 +18,6 @@
import * as React from 'react'
import * as mapboxgl from 'mapbox-gl';
-import InfoIcon from '@material-ui/icons/Info';
import { RouteComponentProps, withRouter } from 'react-router-dom';
@@ -44,6 +43,7 @@ import { verifyResponse, IsTileServerReachableAction, handleConnectionError } fr
import ConnectionInfo from './connectionInfo'
import { ApplicationStore } from '../../../../framework/src/store/applicationStore';
import { showIconLayers, addBaseLayers, swapLayersBack } from '../utils/mapLayers';
+import Statistics from './statistics'
@@ -553,8 +553,6 @@ class Map extends React.Component<mapProps, { isPopupOpen: boolean }> {
render() {
- const reachabe = this.props.isTopoServerReachable && this.props.isTileServerReachable;
-
return <>
<div id="map" style={{ width: "70%", position: 'relative' }} ref={myRef} >
@@ -563,6 +561,7 @@ class Map extends React.Component<mapProps, { isPopupOpen: boolean }> {
<MapPopup onClose={() => { this.setState({ isPopupOpen: false }); }} />
}
<SearchBar />
+ <Statistics />
<ConnectionInfo />
</div>
</>
@@ -585,9 +584,6 @@ const mapStateToProps = (state: IApplicationStoreState) => ({
isTopoServerReachable: state.network.connectivity.isToplogyServerAvailable,
isTileServerReachable: state.network.connectivity.isTileServerAvailable,
showIcons: state.network.map.allowIconSwitch
-
-
-
});
const mapDispatchToProps = (dispatcher: IDispatcher) => ({
diff --git a/sdnr/wt/odlux/apps/networkMapApp/src/components/statistics.tsx b/sdnr/wt/odlux/apps/networkMapApp/src/components/statistics.tsx
new file mode 100644
index 000000000..4103d64f1
--- /dev/null
+++ b/sdnr/wt/odlux/apps/networkMapApp/src/components/statistics.tsx
@@ -0,0 +1,57 @@
+/**
+ * ============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 { Paper, Typography, Tooltip } from '@material-ui/core';
+import InfoIcon from '@material-ui/icons/Info';
+
+import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore';
+import connect, { IDispatcher, Connect } from '../../../../framework/src/flux/connect';
+
+type props = Connect<typeof mapStateToProps, typeof mapDispatchToProps>;
+
+const mapStateToProps = (state: IApplicationStoreState) => ({
+ linkCount: state.network.map.statistics.links,
+ siteCount: state.network.map.statistics.sites,
+ isTopoServerReachable: state.network.connectivity.isToplogyServerAvailable,
+ isTileServerReachable: state.network.connectivity.isTileServerAvailable,
+
+});
+
+const mapDispatchToProps = (dispatcher: IDispatcher) => ({
+});
+
+const Statistics: React.FunctionComponent<props> = (props: props) =>{
+
+ const reachabe = props.isTopoServerReachable && props.isTileServerReachable;
+
+
+ return (<Paper style={{ padding: 5, position: 'absolute', display: 'flex', flexDirection: "column", top: 70, width: 200, marginLeft: 5 }}>
+ <div style={{ display: 'flex', flexDirection: "row" }}>
+ <Typography style={{ fontWeight: "bold", flex: "1", color: reachabe ? "black" : "lightgrey" }} >Statistics</Typography>
+ <Tooltip style={{ alignSelf: "flex-end" }} title="Gets updated when the map stops moving.">
+ <InfoIcon fontSize="small" />
+ </Tooltip>
+ </div>
+
+ <Typography style={{ color: reachabe ? "black" : "lightgrey" }}>Sites: {props.siteCount}</Typography>
+ <Typography style={{ color: reachabe ? "black" : "lightgrey" }}>Links: {props.linkCount}</Typography>
+</Paper>)
+}
+
+export default connect(mapStateToProps, mapDispatchToProps)(Statistics);