From 5ee7367a101143715c2869d72ea4a6fbf55f5af6 Mon Sep 17 00:00:00 2001 From: wr148d Date: Fri, 15 Jan 2021 15:32:00 -0500 Subject: Updated Sparky to add ECOMP functionality Browse, Specialized Search, BYOQ, and the Builder FE Updates Issue-ID: AAI-3250 Change-Id: I576e37f77f7e9b40d72e4a5e7de645e9f62bc7d2 Signed-off-by: wr148d --- .../model/history/components/TopologyDiffCard.jsx | 151 +++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 src/app/model/history/components/TopologyDiffCard.jsx (limited to 'src/app/model/history/components/TopologyDiffCard.jsx') diff --git a/src/app/model/history/components/TopologyDiffCard.jsx b/src/app/model/history/components/TopologyDiffCard.jsx new file mode 100644 index 0000000..9d49b17 --- /dev/null +++ b/src/app/model/history/components/TopologyDiffCard.jsx @@ -0,0 +1,151 @@ +/* + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2021 AT&T 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 React from 'react'; +import moment from "moment"; +import Col from 'react-bootstrap/lib/Col'; +import Panel from 'react-bootstrap/lib/Panel'; + +const topologyDiffCard = (props) => { + let showNoNodesMessage = true; + if(props && props.node){ + const properties = Object.entries(props.node).map((prop, idx) => { + if (prop){ + showNoNodesMessage = false; + let showNoRelationshipsMessage = true; + let showNoAttributesMessage = true; + let propWorkaround = prop; + if(prop.data){ + propWorkaround = prop.data; + } + let tempProp = propWorkaround[1]; + let attributeProperties = ''; + let relationships = ''; + if(tempProp.properties){ + attributeProperties = Object.entries(tempProp.properties).map((property, idx) => { + let attrProp = property[1]; + if(attrProp && attrProp.value && attrProp.value.type !== 'unchanged'){ + showNoAttributesMessage = false; + return ( +
+

Attribute: {attrProp.key.data} ({attrProp.value.type})

+
+ ); + }else if (attrProp && attrProp.type){ + showNoAttributesMessage = false; + return ( +
+

Attribute: {attrProp.data.key} ({attrProp.type})

+
+ ); + } + }); + } + if(tempProp['related-to'] || tempProp.data['related-to']){ + let rel = null; + let topLevelType = null; + if(tempProp['related-to']){ + rel = tempProp['related-to']; + }else if (tempProp.data['related-to']) { + rel = tempProp.data['related-to']; + topLevelType = tempProp.type; + } + relationships = Object.entries(rel).map((property, idx) => { + let relationProp = property[1]; + if(relationProp && relationProp.type && relationProp.type.type && relationProp.type.type !== "unchanged"){ + return (''); + }else if(relationProp && relationProp.type && !relationProp.type.type && relationProp.url && relationProp.url.data){ + showNoRelationshipsMessage = false; + return ( +
+

Relationship: {relationProp['relationship-label'].data} {relationProp['node-type'].data} {relationProp.url.data} ({relationProp.type})

+
+ ); + }else if (relationProp && relationProp.type && relationProp.data){ + showNoRelationshipsMessage = false; + return ( +
+

Relationship: {relationProp.data['relationship-label']} {relationProp.data['node-type']} {relationProp.data.url} ({relationProp.type})

+
+ ); + }else if (topLevelType){ + showNoRelationshipsMessage = false; + return ( +
+

Relationship: {relationProp['relationship-label']} {relationProp['node-type']} {relationProp.url} ({topLevelType})

+
+ ); + } + }); + } + return ( + + + Node: {prop[0]}

({tempProp.type})

+
+ + + {attributeProperties} +

No Attribute differences, current.

+ {relationships} +

No Relationship differences, current.

+
+
+
+ ); + }else{ +
+

Node changes in the topology states

+
+ } + }); + + return ( + +
+
+

Changes from Historic to Current State

+
+
+
+ {properties} +
+
+ + ); + }else{ + return( + +
+
+

Unable to pull diff

+
+
+
+ Diff unable to be calculated currently, choose a different timeframe. +
+
+ + ); + } +}; + +export default topologyDiffCard; + -- cgit 1.2.3-korg