/*! * Copyright (C) 2017 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. */ import React, {Component} from 'react'; import ListGroupItem from 'react-bootstrap/lib/ListGroupItem.js'; import i18n from 'nfvo-utils/i18n/i18n.js'; import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js'; import {Collapse} from 'react-bootstrap'; /** * parsing and showing the following Java Response object * * public class ValidationResponse { private boolean valid = true; private Collection vspErrors; private Collection licensingDataErrors; private Map> uploadDataErrors; private Map> compilationErrors; private QuestionnaireValidationResult questionnaireValidationResult; } * public class ErrorCode { private String id; private String message; private ErrorCategory category; } * public class ErrorMessage { private final ErrorLevel level; private final String message; } */ class SubmitErrorResponse extends Component { render() { let {validationResponse : {vspErrors, licensingDataErrors, questionnaireValidationResult, uploadDataErrors}} = this.props; return (
{vspErrors && this.renderVspErrors(vspErrors)} {licensingDataErrors && this.renderVspErrors(licensingDataErrors)} {questionnaireValidationResult && this.renderComponentsErrors(questionnaireValidationResult)} {uploadDataErrors && this.renderUploadDataErrors(uploadDataErrors)}
); } renderVspErrors(errors) { return (
{errors.length && errors.map(error=>{return ();})}
); } renderComponentsErrors(errors) { return (
{errors.validationData.length && errors.validationData.map(item =>{ return ();})}
); } renderUploadDataErrors(uploadDataErrors) { return (
); } } const ComponentError = ({item}) => { let i = 0; return (
{item.entityName}
{item.errors.map(error => {return();})}
); }; function* entries(obj) { for (let key of Object.keys(obj)) { yield {header: key, list: obj[key]}; } } const UploadErrorList = ({items}) => { let generator = entries(items); let errors = []; for (let item of generator) {errors.push(
{item.header}
{item.list.map((error, i) => )}
);} return (
{errors}
); }; class ErrorBlock extends React.Component { state = { collapsed: false }; render() { let {errorType, children} = this.props; return (
{this.setState({collapsed: !this.state.collapsed});}} errorType={errorType}/> {children}
); } } const ErrorHeader = ({errorType, collapsed, onClick}) => { return(
); }; const ErrorMessage = ({error, warning}) => { return ( {error} ); }; export default SubmitErrorResponse;