/*! * 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, i) => { return ( ); })}
); } renderComponentsErrors(errors) { return (
{errors.validationData.length && errors.validationData.map((item, i) => { return ; })}
); } renderUploadDataErrors(uploadDataErrors) { return (
); } } const ComponentError = ({ item }) => { return (
{item.entityName}
{item.errors.map((error, i) => { 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;