From 804ec686128a49628e9f656397e4a4512e4c5714 Mon Sep 17 00:00:00 2001 From: Vodafone Date: Mon, 18 Mar 2019 15:46:53 +0530 Subject: List of Input Parameters for VSP: FE Change-Id: I17697b5646c1a201678dbab11fef28a7483fbf8c Issue-ID: SDC-2049 Co-authored-by: rahul.ghugikar@vodafone.com, soumyarup.paul@vodafone.com Signed-off-by: Vodafone --- .../SoftwareProductValidationResultsView.jsx | 207 +++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 openecomp-ui/src/sdc-app/onboarding/softwareProduct/validationResults/SoftwareProductValidationResultsView.jsx (limited to 'openecomp-ui/src/sdc-app/onboarding/softwareProduct/validationResults/SoftwareProductValidationResultsView.jsx') diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/validationResults/SoftwareProductValidationResultsView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/validationResults/SoftwareProductValidationResultsView.jsx new file mode 100644 index 0000000000..b6cc1d5bdc --- /dev/null +++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/validationResults/SoftwareProductValidationResultsView.jsx @@ -0,0 +1,207 @@ +/** + * Copyright (c) 2019 Vodafone Group + * + * 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. + */ +import React from 'react'; +import PropTypes from 'prop-types'; +import Accordion from 'sdc-ui/lib/react/Accordion.js'; +import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js'; +import GridSection from 'nfvo-components/grid/GridSection.jsx'; +import GridItem from 'nfvo-components/grid/GridItem.jsx'; +import i18n from 'nfvo-utils/i18n/i18n.js'; +import unCamelCasedString from 'nfvo-utils/unCamelCaseString.js'; + +const TestResultComponent = ({ tests }) => { + return ( +
+ {tests.map((test, index) => { + let name = 'errorCircle'; + let color = 'warning'; + if ( + test.testResult && + test.testResult.toLowerCase() === 'pass' + ) { + color = 'positive'; + name = 'checkCircle'; + } else if ( + test.testResult && + test.testResult.toLowerCase() === 'fail' + ) { + name = 'exclamationTriangleFull'; + } + return ( +
  • + + + {test.testName + + ' | ' + + test.testResult + + ' | ' + + test.notes} + +
  • + ); + })} +
    + ); +}; + +class SoftwareProductValidationResultsView extends React.Component { + static propTypes = { + softwareProductValidation: PropTypes.object + }; + + constructor(props) { + super(props); + this.state = { + vspId: this.props.softwareProductId, + versionNumber: this.props.version.name + }; + } + + buildSubAccordions(result) { + if (result.status && result.status.toLowerCase() === 'completed') { + if (!result.results.testResults) { + return ( +
    + + + {i18n('{title} results are not available', { + title: result.scenario + })} + +
    + ); + } + return ( + + {Object.keys(result.results.testResults).map( + (key, index) => { + let title = unCamelCasedString(key); + if (result.results.testResults[key].length > 0) { + return ( + + + + ); + } else { + return ( +
    + {i18n( + '{title} results are not available', + { + title: title + } + )} +
    + ); + } + } + )} +
    + ); + } else if ( + result.status && + result.status.toLowerCase() === 'failed' && + result.results.errors + ) { + return ( + + {result.results.errors.map((element, index) => { + return ( +
  • + + + {element.reason + ' | ' + element.advice} + +
  • + ); + })} +
    + ); + } else if (result.message || result.httpStatus) { + return ( +
    + + + {result.message + ' | ' + result.httpStatus} + +
    + ); + } + } + + render() { + let results = this.props.softwareProductValidation.vspTestResults || []; + if (results.length > 0) { + return ( + + + + {results.map(row => this.buildSubAccordions(row))} + + + + ); + } else { + return ( + +

    {i18n('No Validation Checks Performed')}

    +
    + ); + } + } +} + +export default SoftwareProductValidationResultsView; -- cgit 1.2.3-korg