Add support for multiple views per extensibility
[aai/sparky-fe.git] / src / app / MainScreenWrapper.jsx
index 1b1088b..192c11d 100644 (file)
@@ -2,8 +2,8 @@
  * ============LICENSE_START=======================================================
  * org.onap.aai
  * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
 import React, {Component} from 'react';
 import {connect} from 'react-redux';
@@ -27,7 +25,7 @@ import TierSupport from './tierSupport/TierSupport.jsx';
 import VnfSearch from './vnfSearch/VnfSearch.jsx';
 import MainScreenHeader from './MainScreenHeader.jsx';
 import {decryptParamsForView, changeUrlAddress} from 'utils/Routes.js';
-
+import {isEmpty} from 'lodash';
 
 import {
   Route,
@@ -39,6 +37,7 @@ import {
 import {
   windowResize,
   extensibleViewNetworkCallback,
+  overlayNetworkCallback,
   extensibleViewMessageCallback
 } from './MainScreenWrapperActionHelper.js';
 
@@ -66,6 +65,9 @@ const mapActionsToProps = (dispatch) => {
     },
     onExtensibleViewMessageCallback: (message, messageSevirity) => {
       dispatch(extensibleViewMessageCallback(message, messageSevirity));
+    },
+    onOverlayNetworkCallback: (apiUrl, body, viewName, curViewData, responseEventKey) =>  {
+      dispatch(overlayNetworkCallback(apiUrl, body, viewName, curViewData, responseEventKey));
     }
   };
 };
@@ -86,11 +88,19 @@ class MainScreenWrapper extends Component {
     const {
       onExtensibleViewNetworkCallback,
       extensibleViewNetworkCallbackData,
-      onExtensibleViewMessageCallback
+      onExtensibleViewMessageCallback,
+      onOverlayNetworkCallback
     } = this.props;
 
     let customViewList = [];
     extensibleViews.forEach(function(view,key) {
+
+      let path;
+      if(isEmpty(extensibleViews[key]['routePath'])){
+        path = '/' + view.viewName + '/:extensibleViewParams?';
+      } else {
+        path = '/' + view.viewName  + view.routePath + '/:extensibleViewParams?';
+      }
       var renderComponent = (props) => {
         let viewParams = {};
         if(props.match.params.extensibleViewParams !== undefined) {
@@ -105,6 +115,9 @@ class MainScreenWrapper extends Component {
               networkingCallback={(apiUrl, body, paramName, curViewData) => {
                 onExtensibleViewNetworkCallback(apiUrl, body, paramName, curViewData);
               }}
+              overlayCallback={(apiUrl, body, paramName, curOverlayData,responseEventKey) => {
+                onOverlayNetworkCallback(apiUrl, body, paramName, curOverlayData, responseEventKey);
+              }}
               messagingCallback ={(message, messageSeverity) => {
                 onExtensibleViewMessageCallback(message, messageSeverity);
               }}
@@ -119,7 +132,7 @@ class MainScreenWrapper extends Component {
       };
 
       customViewList.push(
-          <Route key={extensibleViews[key]['viewName'] + 'Route'} path={'/' + extensibleViews[key]['viewName'] + '/:extensibleViewParams?' }
+          <Route key={extensibleViews[key]['viewName'] + 'Route'} path={path}
              render={renderComponent}/>
       );
     });