aboutsummaryrefslogtreecommitdiffstats
path: root/ui-react/src/components/loop_viewer
diff options
context:
space:
mode:
authorSirisha_Manchikanti <sirisha.manchikanti@est.tech>2021-05-07 15:17:52 +0100
committerSirisha_Manchikanti <sirisha.manchikanti@est.tech>2021-05-13 09:00:52 +0100
commitf83411a86e2277adae69e780e8511913d61a0f17 (patch)
treed75f197e703270cda608c9bd0d236f7ce8c12e13 /ui-react/src/components/loop_viewer
parentcac5cc982413ab9593186d308eda8936e9603ad9 (diff)
Modular structure of clamp including controlloop
This commit is the first commit that puts in multi module structure while changing the existing CLAMP code as little as possible. It adds a structure where common, models, participant and runtime are direct children under clamp, and current clamp code is moved under runtime. This runtime directory will host controlloop runtime code in later commits. Issue-ID: POLICY-3215 Signed-off-by: Sirisha_Manchikanti <sirisha.manchikanti@est.tech> Change-Id: I15bc8be92ed020343bff4024c4718fec462c40d7 Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'ui-react/src/components/loop_viewer')
-rw-r--r--ui-react/src/components/loop_viewer/logs/LoopLogs.js96
-rw-r--r--ui-react/src/components/loop_viewer/logs/LoopLogs.test.js70
-rw-r--r--ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap62
-rw-r--r--ui-react/src/components/loop_viewer/status/LoopStatus.js106
-rw-r--r--ui-react/src/components/loop_viewer/status/LoopStatus.test.js78
-rw-r--r--ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap66
-rw-r--r--ui-react/src/components/loop_viewer/svg/SvgGenerator.js246
7 files changed, 0 insertions, 724 deletions
diff --git a/ui-react/src/components/loop_viewer/logs/LoopLogs.js b/ui-react/src/components/loop_viewer/logs/LoopLogs.js
deleted file mode 100644
index e3d9f601f..000000000
--- a/ui-react/src/components/loop_viewer/logs/LoopLogs.js
+++ /dev/null
@@ -1,96 +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 Table from 'react-bootstrap/Table';
-import LoopCache from '../../../api/LoopCache';
-import styled from 'styled-components';
-
-const LoopLogsHeaderDivStyled = styled.div`
- background-color: ${props => props.theme.loopLogsHeaderBackgroundColor};
- padding: 10px 10px;
- color: ${props => props.theme.loopLogsHeaderFontColor};
-`
-const TableStyled = styled(Table)`
-
- overflow: auto;
-`
-const TableRow = ({ logRow }) => (
- <tr>
- <td>{logRow.logInstant}</td>
- <td>{logRow.logType}</td>
- <td>{logRow.logComponent}</td>
- <td>{logRow.message}</td>
- </tr>
-
-)
-
-export default class LoopLogs extends React.Component {
-
- state = {
- loopCache: new LoopCache({})
- }
- constructor(props) {
- super(props);
- this.renderLogs = this.renderLogs.bind(this);
- this.state.loopCache = props.loopCache;
- }
-
- shouldComponentUpdate(nextProps, nextState) {
- return this.state.loopCache !== nextState.loopCache;
- }
-
- componentWillReceiveProps(newProps) {
- this.setState({
- loopCache: newProps.loopCache
- });
- }
-
- renderLogs() {
- let logsArray = this.state.loopCache.getLoopLogsArray();
- if (logsArray != null) {
- return (logsArray.map(row => <TableRow key={row.id} logRow={row} />));
- }
- }
-
- render() {
- return (
- <LoopLogsHeaderDivStyled>
- <label>Loop Logs</label>
- <TableStyled striped hover variant responsive>
- <thead>
- <tr>
- <th><span align="left">Date</span></th>
- <th><span align="left">Type</span></th>
- <th><span align="left">Component</span></th>
- <th><span align="right">Log</span></th>
- </tr>
- </thead>
- <tbody>
- {this.renderLogs()}
- </tbody>
- </TableStyled>
- </LoopLogsHeaderDivStyled>
-
- );
- }
-}
diff --git a/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js b/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js
deleted file mode 100644
index 3b7fd413a..000000000
--- a/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js
+++ /dev/null
@@ -1,70 +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 { shallow } from 'enzyme';
-import LoopLogs from './LoopLogs';
-import LoopCache from '../../../api/LoopCache';
-
-describe('Verify LoopLogs', () => {
-
- const loopCache = new LoopCache({
- "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca",
- "loopLogs": [
- {
- "id": 1,
- "logType": "INFO",
- "logComponent": "CLAMP",
- "message": "Operational policies UPDATED",
- "logInstant": "2019-07-08T09:44:37Z"
- }
- ]
- });
-
- it('Test the render method', () => {
- const component = shallow(<LoopLogs loopCache={loopCache}/>)
- expect(component).toMatchSnapshot();
-
- const loopCacheUpdated = new LoopCache({
- "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca",
- "loopLogs": [
- {
- "id": 1,
- "logType": "INFO",
- "logComponent": "CLAMP",
- "message": "Operational policies UPDATED",
- "logInstant": "2019-07-08T09:44:37Z"
- },
- {
- "id": 2,
- "logType": "INFO",
- "logComponent": "CLAMP",
- "message": "Operational policies UPDATED",
- "logInstant": "2019-07-08T09:44:50Z"
- }
- ]
- });
-
- component.setProps({ loopCache: loopCacheUpdated });
- expect(component.find('TableRow').length).toEqual(2);
- });
-}); \ No newline at end of file
diff --git a/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap b/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap
deleted file mode 100644
index 996c67457..000000000
--- a/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap
+++ /dev/null
@@ -1,62 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Verify LoopLogs Test the render method 1`] = `
-<styled.div>
- <label>
- Loop Logs
- </label>
- <Styled(Component)
- hover={true}
- responsive={true}
- striped={true}
- variant={true}
- >
- <thead>
- <tr>
- <th>
- <span
- align="left"
- >
- Date
- </span>
- </th>
- <th>
- <span
- align="left"
- >
- Type
- </span>
- </th>
- <th>
- <span
- align="left"
- >
- Component
- </span>
- </th>
- <th>
- <span
- align="right"
- >
- Log
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- <TableRow
- key="1"
- logRow={
- Object {
- "id": 1,
- "logComponent": "CLAMP",
- "logInstant": "2019-07-08T09:44:37Z",
- "logType": "INFO",
- "message": "Operational policies UPDATED",
- }
- }
- />
- </tbody>
- </Styled(Component)>
-</styled.div>
-`;
diff --git a/ui-react/src/components/loop_viewer/status/LoopStatus.js b/ui-react/src/components/loop_viewer/status/LoopStatus.js
deleted file mode 100644
index 4b35b48e1..000000000
--- a/ui-react/src/components/loop_viewer/status/LoopStatus.js
+++ /dev/null
@@ -1,106 +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 Table from 'react-bootstrap/Table';
-import styled from 'styled-components';
-import LoopCache from '../../../api/LoopCache';
-
-const LoopStatusViewDivStyled = styled.div`
- background-color: ${props => props.theme.loopViewerHeaderBackgroundColor};
- padding: 10px 10px;
- color: ${props => props.theme.loopViewerHeaderFontColor};
-`
-
-const TableStyled = styled(Table)`
- overflow: auto;
-`
-
-const TableRow = ({ statusRow }) => (
- <tr>
- <td>{statusRow.componentName}</td>
- <td>{statusRow.stateName}</td>
- <td>{statusRow.description}</td>
- </tr>
-
-)
-
-export default class LoopStatus extends React.Component {
- state = {
- loopCache: new LoopCache({})
- }
-
- constructor(props) {
- super(props);
- this.renderStatus = this.renderStatus.bind(this);
- this.state.loopCache = props.loopCache;
- }
-
-
- renderStatus() {
- let componentStates = this.state.loopCache.getComponentStates();
- if (componentStates != null) {
- return Object.keys(componentStates).map((key) => {
- console.debug("Adding status for: ",key);
- var res={}
- res[key]=this.state.loopCache.getComponentStates()[key];
- return (<TableRow key={key} statusRow={{'componentName':key,'stateName':this.state.loopCache.getComponentStates()[key].componentState.stateName,'description':this.state.loopCache.getComponentStates()[key].componentState.description}} />)
- })
-
- }
- }
-
- shouldComponentUpdate(nextProps, nextState) {
- return this.state.loopCache !== nextState.loopCache;
- }
-
- componentWillReceiveProps(newProps) {
- this.setState({
- loopCache: newProps.loopCache
- });
- }
-
- render() {
- return (
- <LoopStatusViewDivStyled>
- <label>Loop Status: {this.state.loopCache.getComputedState()}
- </label>
-
- <div >
- <TableStyled striped hover variant responsive>
- <thead>
- <tr>
- <th><span align="left">Component Name</span></th>
- <th><span align="left">Component State</span></th>
- <th><span align="right">Description</span></th>
- </tr>
- </thead>
- <tbody>
- {this.renderStatus()}
- </tbody>
- </TableStyled>
- </div>
- </LoopStatusViewDivStyled>
- );
- }
-}
-
diff --git a/ui-react/src/components/loop_viewer/status/LoopStatus.test.js b/ui-react/src/components/loop_viewer/status/LoopStatus.test.js
deleted file mode 100644
index 8d0448796..000000000
--- a/ui-react/src/components/loop_viewer/status/LoopStatus.test.js
+++ /dev/null
@@ -1,78 +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 { shallow } from 'enzyme';
-import LoopStatus from './LoopStatus';
-import LoopCache from '../../../api/LoopCache';
-
-describe('Verify LoopStatus', () => {
-
- const loopCache = new LoopCache({
- "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca",
- "lastComputedState": "DESIGN",
- "components": {
- "POLICY": {
- "componentState": {
- "stateName": "NOT_SENT",
- "description": "The policies defined have NOT yet been created on the policy engine"
- }
- },
- "DCAE": {
- "componentState": {
- "stateName": "BLUEPRINT_DEPLOYED",
- "description": "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop"
- }
- }
- }
- });
-
- it('Test the render method', () => {
- const component = shallow(<LoopStatus loopCache={loopCache}/>)
-
- expect(component).toMatchSnapshot();
-
- const loopCacheUpdated = new LoopCache({
- "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca",
- "lastComputedState": "SUBMIT",
- "components": {
- "POLICY": {
- "componentState": {
- "stateName": "SENT",
- "description": "The policies defined have NOT yet been created on the policy engine"
- }
- },
- "DCAE": {
- "componentState": {
- "stateName": "BLUEPRINT_DEPLOYED",
- "description": "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop"
- }
- }
- }
- });
- component.setProps({ loopCache: loopCacheUpdated });
-
- const forms = component.find('TableRow');
- expect(forms.get(0).props.statusRow.stateName).toEqual("SENT");
- expect(component.find('label').text()).toContain('SUBMIT');
- });
-}); \ No newline at end of file
diff --git a/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap b/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap
deleted file mode 100644
index 24d879de9..000000000
--- a/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap
+++ /dev/null
@@ -1,66 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Verify LoopStatus Test the render method 1`] = `
-<styled.div>
- <label>
- Loop Status:
- DESIGN
- </label>
- <div>
- <Styled(Component)
- hover={true}
- responsive={true}
- striped={true}
- variant={true}
- >
- <thead>
- <tr>
- <th>
- <span
- align="left"
- >
- Component Name
- </span>
- </th>
- <th>
- <span
- align="left"
- >
- Component State
- </span>
- </th>
- <th>
- <span
- align="right"
- >
- Description
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- <TableRow
- key="POLICY"
- statusRow={
- Object {
- "componentName": "POLICY",
- "description": "The policies defined have NOT yet been created on the policy engine",
- "stateName": "NOT_SENT",
- }
- }
- />
- <TableRow
- key="DCAE"
- statusRow={
- Object {
- "componentName": "DCAE",
- "description": "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop",
- "stateName": "BLUEPRINT_DEPLOYED",
- }
- }
- />
- </tbody>
- </Styled(Component)>
- </div>
-</styled.div>
-`;
diff --git a/ui-react/src/components/loop_viewer/svg/SvgGenerator.js b/ui-react/src/components/loop_viewer/svg/SvgGenerator.js
deleted file mode 100644
index 6d3cd7a21..000000000
--- a/ui-react/src/components/loop_viewer/svg/SvgGenerator.js
+++ /dev/null
@@ -1,246 +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 { withRouter } from "react-router-dom";
-import LoopCache from '../../../api/LoopCache';
-import OnapConstant from '../../../utils/OnapConstants';
-
-const DivStyled = styled.div`
- overflow-x: scroll;
- display: flex;
- width: 100%;
- height: 100%;
-`
-
-const emptySvg = (<svg> <text x="60" y="40">No LOOP (SVG)</text> </svg>);
-
-class SvgGenerator extends React.Component {
- boxWidth = 200;
- boxHeight = 100;
- boxSpace = 50;
-
- static GENERATED_FROM_INSTANCE = "INSTANCE";
- static GENERATED_FROM_TEMPLATE = "TEMPLATE";
-
- state = {
- loopCache: new LoopCache({}),
- clickable: false,
- generatedFrom: SvgGenerator.GENERATED_FROM_INSTANCE, // INSTANCE / TEMPLATE
- }
-
- constructor(props) {
- super(props);
- this.state.loopCache = props.loopCache;
- this.state.clickable = props.clickable;
- this.state.generatedFrom = props.generatedFrom;
- this.handleSvgClick = this.handleSvgClick.bind(this);
- this.renderSvg = this.renderSvg.bind(this);
- }
-
- shouldComponentUpdate(nextProps, nextState) {
- return this.state.loopCache !== nextProps.loopCache;
- }
-
- componentDidUpdate(prevProps) {
- if (prevProps.loopCache !== this.props.loopCache) {
- this.setState({
- loopCache: this.props.loopCache,
- });
- }
- }
-
- handleSvgClick(event) {
- console.debug("svg click event received");
- if (this.state.clickable) {
- var elementName = event.target.parentNode.getAttribute('policyId');
- console.info("SVG element clicked", elementName);
- // Only allow movement to policy editing IF there busyLoadingCOunt is 0,
- // meaning we are not waiting for refreshStatus to complete, for example
- if (elementName !== null && !this.props.isBusyLoading()) {
- this.props.history.push("/policyModal/"+event.target.parentNode.getAttribute('policyType')+"/"+elementName);
- }
- }
- }
-
- createVesBox (xPos) {
- return this.createOneBox(xPos,null,null,'VES Collector','VES',null);
- }
-
- createOneArrow(xPos) {
- return (
- <svg width={this.boxSpace} height={this.boxHeight} x={xPos}>
- <defs>
- <marker viewBox="0 0 20 20" markerWidth="20" markerHeight="20" orient="auto" refX="8.5" refY="5" id="arrow">
- <path d="m 1 5 l 0 -3 l 7 3 l -7 3 z"
- stroke-width= "1" stroke-linecap= "butt" stroke-dasharray= "10000, 1"
- fill="#000000" stroke="#000000" />
- </marker>
- </defs>
- <line x1="0" y1="50%" x2="100%" y2="50%" stroke-width="2" color="black" stroke="black" marker-end="url(#arrow)"/>
- </svg>
- );
- }
-
- createBeginCircle(xPos, text) {
- return (
- <svg width={this.boxWidth} height={this.boxHeight} x={xPos}>
- <circle cx={this.boxWidth-30} cy="50%" r="30" stroke-width="1" color="black" stroke="black" fill="#27ae60"/>
- <text x={this.boxWidth-30} y="50%" text-anchor="middle" dominant-baseline="middle" textLength="20%" lengthAdjust="spacingAndGlyphs" >{text}</text>
- </svg>
- );
- }
-
- createEndCircle(xPos, text) {
- return (
- <svg width={this.boxWidth} height={this.boxHeight} x={xPos}>
- <circle cx={30} cy="50%" r="30" stroke-width="2" color="black" stroke="black" fill="#27ae60"/>
- <text x={30} y="50%" text-anchor="middle" dominant-baseline="middle" textLength="20%" lengthAdjust="spacingAndGlyphs" >{text}</text>
- </svg>
- );
- }
-
- createOneBox(xPos, policyId, loopElementModelId , name, title, policyType) {
- return (
- <svg width={this.boxWidth} height={this.boxHeight} x={xPos} title="test">
- <g policyId={policyId} loopElementModelId={loopElementModelId} policyType={policyType}>
- <rect width="100%" height="100%" stroke-width="2" color="black" stroke="black" fill="#1abc9c"/>
- <text x="50%" y="15%" color="white" fill="white" dominant-baseline="middle" text-anchor="middle" textLength="50%" lengthAdjust="spacingAndGlyphs">{title}</text>
- <text x="50%" y="50%" text-anchor="middle" dominant-baseline="middle" textLength="80%" lengthAdjust="spacingAndGlyphs" >{name}</text>
- <text x="50%" y="80%" text-anchor="middle" dominant-baseline="middle" textLength="110%" lengthAdjust="spacingAndGlyphs" >{policyId}</text>
- </g>
- </svg>
- );
- }
-
- createSvgFromTemplate() {
- const allElements = [];
- var xPos = 0;
-
- allElements.push(this.createBeginCircle(xPos,"Start"))
- xPos+=(this.boxWidth+this.boxSpace);
-
- allElements.push(this.createOneArrow(xPos-this.boxSpace));
-
- allElements.push(this.createVesBox(xPos));
- xPos+=(this.boxWidth+this.boxSpace);
-
- allElements.push(this.createOneArrow(xPos-this.boxSpace));
- //createOneBox(xPos, policyId, loopElementModelId , name, title, policyType)
- for (var loopElement of this.state.loopCache.getAllLoopElementModels()) {
-
- allElements.push(this.createOneBox(xPos,
- loopElement['name'],
- loopElement['name'],
- loopElement['shortName'],
- loopElement['loopElementType'],
- loopElement['loopElementType']))
- xPos+=(this.boxWidth+this.boxSpace);
- allElements.push(this.createOneArrow(xPos-this.boxSpace));
- }
-
- allElements.push(this.createEndCircle(xPos, "End"))
- xPos+=(this.boxWidth+this.boxSpace);
-
- return allElements;
- }
-
- createSvgFromInstance() {
- const allElements = [];
- var xPos = 0;
-
- allElements.push(this.createBeginCircle(xPos,"Start"))
- xPos+=(this.boxWidth+this.boxSpace);
-
- allElements.push(this.createOneArrow(xPos-this.boxSpace));
-
- allElements.push(this.createVesBox(xPos));
- xPos+=(this.boxWidth+this.boxSpace);
-
- allElements.push(this.createOneArrow(xPos-this.boxSpace));
-
- for (var msPolicy in this.state.loopCache.getMicroServicePolicies()) {
- var loopElementModelName = this.state.loopCache.getMicroServicePolicies()[msPolicy]['loopElementModel'];
- if (loopElementModelName !== undefined) {
- loopElementModelName = loopElementModelName['name'];
- }
- allElements.push(this.createOneBox(xPos,
- this.state.loopCache.getMicroServicePolicies()[msPolicy]['name'],
- loopElementModelName,
- this.state.loopCache.getMicroServicePolicies()[msPolicy]['policyModel']['policyAcronym'],
- 'microservice',
- OnapConstant.microServiceType))
- xPos+=(this.boxWidth+this.boxSpace);
- allElements.push(this.createOneArrow(xPos-this.boxSpace));
- }
-
- for (var opPolicy in this.state.loopCache.getOperationalPolicies()) {
- loopElementModelName = this.state.loopCache.getOperationalPolicies()[opPolicy]['loopElementModel'];
- if (loopElementModelName !== undefined) {
- loopElementModelName = loopElementModelName['name'];
- }
- allElements.push(this.createOneBox(xPos,
- this.state.loopCache.getOperationalPolicies()[opPolicy]['name'],
- loopElementModelName,
- this.state.loopCache.getOperationalPolicies()[opPolicy]['policyModel']['policyAcronym'],
- 'operational',
- OnapConstant.operationalPolicyType))
- xPos+=(this.boxWidth+this.boxSpace);
- allElements.push(this.createOneArrow(xPos-this.boxSpace));
- }
-
- allElements.push(this.createEndCircle(xPos, "End"))
- xPos+=(this.boxWidth+this.boxSpace);
-
- return allElements;
- }
-
- renderSvg() {
- if (this.state.loopCache.getLoopName() === undefined) {
- return [emptySvg];
- }
- if (this.state.generatedFrom === SvgGenerator.GENERATED_FROM_INSTANCE) {
- return this.createSvgFromInstance();
- } else if (this.state.generatedFrom === SvgGenerator.GENERATED_FROM_TEMPLATE) {
- return this.createSvgFromTemplate();
- }
- }
-
- render() {
- var allTheElements = this.renderSvg();
- var svgWidth = this.boxWidth*allTheElements.length;
- var svgHeight = this.boxHeight+50;
- return (
-
- <DivStyled onClick={this.handleSvgClick} >
- <svg key="main" height={svgHeight} width={svgWidth} viewBox="0,0,{svgWidth},{svgHeight}" preserveAspectRatio="none">
- <svg key="content" x="-50" y="25">
- {allTheElements}
- </svg>
- </svg>
- </DivStyled>
- );
- }
-}
-
-export default withRouter(SvgGenerator);