diff options
author | Aijana Schumann <aijana.schumann@highstreet-technologies.com> | 2020-09-01 12:54:19 +0200 |
---|---|---|
committer | Aijana Schumann <aijana.schumann@highstreet-technologies.com> | 2020-09-01 12:54:19 +0200 |
commit | a6b4da962e9aa3e446ba707e3533f833c2d7b16f (patch) | |
tree | 4a5cfe9272f0dcb33e990ea81ccf0f6b8e1ab17a /sdnr | |
parent | 77a101dfcbad1e6a6a91d8bea9b0df8b7d8e76ff (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
Diffstat (limited to 'sdnr')
-rw-r--r-- | sdnr/wt/odlux/apps/networkMapApp/src/components/map.tsx | 8 | ||||
-rw-r--r-- | sdnr/wt/odlux/apps/networkMapApp/src/components/statistics.tsx | 57 |
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); |