2 * ============LICENSE_START===================================================
3 * SPARKY (AAI UI service)
4 * ============================================================================
5 * Copyright © 2017 AT&T Intellectual Property.
6 * Copyright © 2017 Amdocs
8 * ============================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=====================================================
22 * ECOMP and OpenECOMP are trademarks
23 * and service marks of AT&T Intellectual Property.
26 import React, {Component} from 'react';
27 import {connect} from 'react-redux';
28 import * as Extensibility from './extensibility/index.js';
29 import TierSupport from './tierSupport/TierSupport.jsx';
30 import VnfSearch from './vnfSearch/VnfSearch.jsx';
31 import MainScreenHeader from './MainScreenHeader.jsx';
32 import {decryptParamsForView, changeUrlAddress} from 'utils/Routes.js';
40 } from 'react-router-dom';
44 extensibleViewNetworkCallback,
45 extensibleViewMessageCallback
46 } from './MainScreenWrapperActionHelper.js';
48 import extensibleViews from 'resources/views/extensibleViews.json';
50 const mapStateToProps = ({mainWrapper}) => {
53 toggleButtonActive = false,
54 extensibleViewNetworkCallbackData = {}
60 extensibleViewNetworkCallbackData
64 const mapActionsToProps = (dispatch) => {
66 onWindowSizeChange: () => dispatch(windowResize()),
67 onExtensibleViewNetworkCallback: (apiUrl,body,viewName,curViewData) => {
68 dispatch(extensibleViewNetworkCallback(apiUrl,body,viewName,curViewData));
70 onExtensibleViewMessageCallback: (message, messageSevirity) => {
71 dispatch(extensibleViewMessageCallback(message, messageSevirity));
76 class MainScreenWrapper extends Component {
80 window.addEventListener('resize', () => {
81 this.props.onWindowSizeChange();
90 onExtensibleViewNetworkCallback,
91 extensibleViewNetworkCallbackData,
92 onExtensibleViewMessageCallback
95 let customViewList = [];
96 extensibleViews.forEach(function(view,key){
97 var renderComponent = (props) => {
99 if(props.match.params.extensibleViewParams !== undefined) {
100 viewParams = decryptParamsForView(props.match.params.extensibleViewParams);
103 if (Extensibility.default.hasOwnProperty(view.componentName)) {
104 let Component = Extensibility.default[view.componentName];
108 networkingCallback={(apiUrl, body, paramName,curViewData) => {
109 onExtensibleViewNetworkCallback(apiUrl, body, paramName, curViewData);
111 messagingCallback ={(message, messageSevirity) => {
112 onExtensibleViewMessageCallback(message, messageSevirity);
114 changeRouteCallback = {(routeParam, historyObj) => {
115 changeUrlAddress(routeParam, historyObj);
117 viewName={view.displayName}
118 viewData={extensibleViewNetworkCallbackData}
119 viewParams={viewParams}/>
125 <Route key={extensibleViews[key]['viewName'] + 'Route'} path={'/' + extensibleViews[key]['viewName'] + '/:extensibleViewParams?' }
126 render={renderComponent}/>
132 <div className='main-app-container'>
134 <Redirect from='/' exact to='/schema'/>
136 <Route key='MainScreenHeaderRoute' path='/:externalUrl?' component={MainScreenHeader}/>
137 <Route key='TierSupportRoue' path='/schema/:viParam?' component={TierSupport}/>
138 <Route key='VnfSearchRoute' path='/vnfSearch/:filters?' component={VnfSearch}/>
146 export default connect(mapStateToProps, mapActionsToProps)(MainScreenWrapper);