2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6 * Copyright © 2017 Amdocs
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
21 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
23 import React, {Component} from 'react';
24 import {connect} from 'react-redux';
25 import * as Extensibility from './extensibility/index.js';
26 import TierSupport from './tierSupport/TierSupport.jsx';
27 import VnfSearch from './vnfSearch/VnfSearch.jsx';
28 import MainScreenHeader from './MainScreenHeader.jsx';
29 import {decryptParamsForView, changeUrlAddress} from 'utils/Routes.js';
37 } from 'react-router-dom';
41 extensibleViewNetworkCallback,
42 extensibleViewMessageCallback
43 } from './MainScreenWrapperActionHelper.js';
45 import extensibleViews from 'resources/views/extensibleViews.json';
47 const mapStateToProps = ({mainWrapper}) => {
50 toggleButtonActive = false,
51 extensibleViewNetworkCallbackData = {}
57 extensibleViewNetworkCallbackData
61 const mapActionsToProps = (dispatch) => {
63 onWindowSizeChange: () => dispatch(windowResize()),
64 onExtensibleViewNetworkCallback: (apiUrl,body,viewName,curViewData) => {
65 dispatch(extensibleViewNetworkCallback(apiUrl,body,viewName,curViewData));
67 onExtensibleViewMessageCallback: (message, messageSevirity) => {
68 dispatch(extensibleViewMessageCallback(message, messageSevirity));
73 class MainScreenWrapper extends Component {
77 window.addEventListener('resize', () => {
78 this.props.onWindowSizeChange();
87 onExtensibleViewNetworkCallback,
88 extensibleViewNetworkCallbackData,
89 onExtensibleViewMessageCallback
92 let customViewList = [];
93 extensibleViews.forEach(function(view,key) {
94 var renderComponent = (props) => {
96 if(props.match.params.extensibleViewParams !== undefined) {
97 viewParams = decryptParamsForView(props.match.params.extensibleViewParams);
100 if (Extensibility.default.hasOwnProperty(view.componentName)) {
101 let Component = Extensibility.default[view.componentName];
105 networkingCallback={(apiUrl, body, paramName, curViewData) => {
106 onExtensibleViewNetworkCallback(apiUrl, body, paramName, curViewData);
108 messagingCallback ={(message, messageSeverity) => {
109 onExtensibleViewMessageCallback(message, messageSeverity);
111 changeRouteCallback = {(routeParam, historyObj) => {
112 changeUrlAddress(routeParam, historyObj);
114 viewName={view.displayName}
115 viewData={extensibleViewNetworkCallbackData}
116 viewParams={viewParams}/>
122 <Route key={extensibleViews[key]['viewName'] + 'Route'} path={'/' + extensibleViews[key]['viewName'] + '/:extensibleViewParams?' }
123 render={renderComponent}/>
129 <div className='main-app-container'>
131 <Redirect from='/' exact to='/schema'/>
133 <Route key='MainScreenHeaderRoute' path='/:externalUrl?' component={MainScreenHeader}/>
134 <Route key='TierSupportRoue' path='/schema/:viParam?' component={TierSupport}/>
135 <Route key='VnfSearchRoute' path='/vnfSearch/:filters?' component={VnfSearch}/>
143 export default connect(mapStateToProps, mapActionsToProps)(MainScreenWrapper);