Add network call as promise for ext views
[aai/sparky-fe.git] / src / app / MainScreenHeader.jsx
index 49952f7..a3225e7 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.
  * 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';
 import FontAwesome from 'react-fontawesome';
@@ -32,7 +29,6 @@ import {postAnalyticsData} from 'app/analytics/AnalyticsActions.js';
 import GlobalInlineMessageBar from 'app/globalInlineMessageBar/GlobalInlineMessageBar.jsx';
 import {getClearGlobalMessageEvent} from 'app/globalInlineMessageBar/GlobalInlineMessageBarActions.js';
 import {externalUrlRequest, externalMessageRequest, getSubscriptionPayload} from 'app/contextHandler/ContextHandlerActions.js';
-
 import {
   filterBarActionTypes
 } from 'utils/GlobalConstants.js';
@@ -135,6 +131,7 @@ class MainScreenHeader extends Component {
       return false;
     }
   }
+  
   isValidExternalURL(url) {
     if(decodeURIComponent(url).indexOf('&') > 0 ) {
       return true;
@@ -142,6 +139,7 @@ class MainScreenHeader extends Component {
       return false;
     }
   }
+
   componentWillMount() {
     this.props.onGetSubscriptionPayload();
     if(this.props.match.params.externalUrl !== undefined &&
@@ -149,6 +147,7 @@ class MainScreenHeader extends Component {
       this.props.onExternalUrlRequest(this.props.match.params.externalUrl);
     }
   }
+
   componentWillReceiveProps(nextProps) {
     if (this.props.location &&
       this.props.location.pathname !==
@@ -265,11 +264,19 @@ class MainScreenHeader extends Component {
 
     // add all custom view menu options
     for (let view in extensibleViews) {
-      menuOptions.push(
-        <MenuItem key={extensibleViews[view]['viewName'] + 'Menu'} to={'/' + extensibleViews[view]['viewName']}
-                  label={extensibleViews[view]['displayName']}
-                  iconClass={'button-icon ' + extensibleViews[view]['iconClass']}/>
-      );
+      let shouldDisplayIcon = false;
+      if(extensibleViews[view]['onlyRoute'] === undefined){
+        shouldDisplayIcon = true;
+      } else if(extensibleViews[view]['onlyRoute'] === false){
+        shouldDisplayIcon = true;
+      }
+      if(shouldDisplayIcon === true){
+        menuOptions.push(
+          <MenuItem key={extensibleViews[view]['viewName'] + 'Menu'} to={'/' + extensibleViews[view]['viewName']}
+                    label={extensibleViews[view]['displayName']}
+                    iconClass={'button-icon ' + extensibleViews[view]['iconClass']}/>
+        );
+      } 
     }
 
     let secondaryTitleClass = 'secondary-header';