diff options
author | 2020-05-18 12:31:11 +0200 | |
---|---|---|
committer | 2020-05-20 18:00:03 +0200 | |
commit | c0ec0fc448af1c5d6eacb195e95938c921ba1bce (patch) | |
tree | f294596a5aa001f76fa4cd6f1a3c88d669fadd32 /ui-react/src/components/loop_viewer/svg/LoopSvg.js | |
parent | 061ecec6a6099ad7fb480b0fe67f6e5154f9db23 (diff) |
Create SVG in UI
Remove the SVG generation from the backend and put it in the UI
Issue-ID: CLAMP-854
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
Change-Id: Icfa9e107d83bb244ac3d87300d013555bfa0b037
Diffstat (limited to 'ui-react/src/components/loop_viewer/svg/LoopSvg.js')
-rw-r--r-- | ui-react/src/components/loop_viewer/svg/LoopSvg.js | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/ui-react/src/components/loop_viewer/svg/LoopSvg.js b/ui-react/src/components/loop_viewer/svg/LoopSvg.js deleted file mode 100644 index 048f6304..00000000 --- a/ui-react/src/components/loop_viewer/svg/LoopSvg.js +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 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 styled from 'styled-components'; -import LoopCache from '../../../api/LoopCache'; -import { withRouter } from "react-router-dom"; -import LoopService from '../../../api/LoopService'; -import LoopComponentConverter from './LoopComponentConverter'; - -const LoopViewSvgDivStyled = styled.svg` - display: flex; - flex-direction: row; - overflow-x: scroll; - background-color: ${props => (props.theme.loopViewerBackgroundColor)}; - border: 1px solid; - border-color: ${props => (props.theme.loopViewerHeaderColor)}; - margin-top: 1em; - margin-left: auto; - margin-right:auto; - margin-bottom: -3em; - align-items: center; - height: 100%; - width: 100%; - -` - -class LoopViewSvg extends React.Component { - - static emptySvg = "<svg><text x=\"20\" y=\"40\">No LOOP (SVG)</text></svg>"; - - state = { - svgContent: LoopViewSvg.emptySvg, - loopCache: new LoopCache({}), - componentModalMapping: new Map([]) - } - - constructor(props) { - super(props); - this.handleSvgClick = this.handleSvgClick.bind(this); - this.getSvg = this.getSvg.bind(this); - this.state.loopCache = props.loopCache; - this.state.componentModalMapping = LoopComponentConverter.buildMapOfComponents(props.loopCache); - this.getSvg(props.loopCache.getLoopName()); - } - - shouldComponentUpdate(nextProps, nextState) { - return this.state.svgContent !== nextState.svgContent; - } - - componentWillReceiveProps(newProps) { - if (this.state.loopCache !== newProps.loopCache) { - this.setState({ - loopCache: newProps.loopCache, - componentModalMapping: LoopComponentConverter.buildMapOfComponents(newProps.loopCache) - }); - this.getSvg(newProps.loopCache.getLoopName()); - } - } - - getSvg(loopName) { - if (typeof loopName !== "undefined") { - LoopService.getSvg(loopName).then(svgXml => { - if (svgXml.length !== 0) { - this.setState({ svgContent: svgXml }) - } else { - this.setState({ svgContent: LoopViewSvg.emptySvg }) - } - }); - } else { - this.setState({ svgContent: LoopViewSvg.emptySvg }) - } - } - - handleSvgClick(event) { - console.debug("svg click event received"); - var elementName = event.target.parentNode.parentNode.parentNode.getAttribute('data-element-id'); - console.info("SVG element clicked", elementName); - this.props.history.push(this.state.componentModalMapping.get(elementName)); - } - - render() { - return ( - <LoopViewSvgDivStyled dangerouslySetInnerHTML={{ __html: this.state.svgContent }} onClick={this.handleSvgClick}> - - </LoopViewSvgDivStyled> - ); - } -} - -export default withRouter(LoopViewSvg); |