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 overlayNetworkCallback,
43 extensibleViewMessageCallback
44 } from './MainScreenWrapperActionHelper.js';
46 import extensibleViews from 'resources/views/extensibleViews.json';
48 const mapStateToProps = ({mainWrapper}) => {
51 toggleButtonActive = false,
52 extensibleViewNetworkCallbackData = {}
58 extensibleViewNetworkCallbackData
62 const mapActionsToProps = (dispatch) => {
64 onWindowSizeChange: () => dispatch(windowResize()),
65 onExtensibleViewNetworkCallback: (apiUrl,body,viewName,curViewData) => {
66 dispatch(extensibleViewNetworkCallback(apiUrl,body,viewName,curViewData));
68 onExtensibleViewMessageCallback: (message, messageSevirity) => {
69 dispatch(extensibleViewMessageCallback(message, messageSevirity));
71 onOverlayNetworkCallback: (apiUrl, body, viewName, curViewData, responseEventKey) => {
72 dispatch(overlayNetworkCallback(apiUrl, body, viewName, curViewData, responseEventKey));
77 class MainScreenWrapper extends Component {
81 window.addEventListener('resize', () => {
82 this.props.onWindowSizeChange();
91 onExtensibleViewNetworkCallback,
92 extensibleViewNetworkCallbackData,
93 onExtensibleViewMessageCallback,
94 onOverlayNetworkCallback
97 let customViewList = [];
98 extensibleViews.forEach(function(view,key) {
99 var renderComponent = (props) => {
101 if(props.match.params.extensibleViewParams !== undefined) {
102 viewParams = decryptParamsForView(props.match.params.extensibleViewParams);
105 if (Extensibility.default.hasOwnProperty(view.componentName)) {
106 let Component = Extensibility.default[view.componentName];
110 networkingCallback={(apiUrl, body, paramName, curViewData) => {
111 onExtensibleViewNetworkCallback(apiUrl, body, paramName, curViewData);
113 overlayCallback={(apiUrl, body, paramName, curOverlayData,responseEventKey) => {
114 onOverlayNetworkCallback(apiUrl, body, paramName, curOverlayData, responseEventKey);
116 messagingCallback ={(message, messageSeverity) => {
117 onExtensibleViewMessageCallback(message, messageSeverity);
119 changeRouteCallback = {(routeParam, historyObj) => {
120 changeUrlAddress(routeParam, historyObj);
122 viewName={view.displayName}
123 viewData={extensibleViewNetworkCallbackData}
124 viewParams={viewParams}/>
130 <Route key={extensibleViews[key]['viewName'] + 'Route'} path={'/' + extensibleViews[key]['viewName'] + '/:extensibleViewParams?' }
131 render={renderComponent}/>
137 <div className='main-app-container'>
139 <Redirect from='/' exact to='/schema'/>
141 <Route key='MainScreenHeaderRoute' path='/:externalUrl?' component={MainScreenHeader}/>
142 <Route key='TierSupportRoue' path='/schema/:viParam?' component={TierSupport}/>
143 <Route key='VnfSearchRoute' path='/vnfSearch/:filters?' component={VnfSearch}/>
151 export default connect(mapStateToProps, mapActionsToProps)(MainScreenWrapper);