/*
- * ============LICENSE_START===================================================
- * SPARKY (AAI UI service)
- * ============================================================================
- * Copyright © 2017 AT&T Intellectual Property.
- * Copyright © 2017 Amdocs
- * All rights reserved.
- * ============================================================================
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- * ============LICENSE_END=====================================================
- *
- * ECOMP and OpenECOMP are trademarks
- * and service marks of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
*/
-
import React, {Component} from 'react';
+import { PropTypes } from 'prop-types';
import {connect} from 'react-redux';
import SplitPane from 'react-split-pane';
+import Spinner from 'utils/SpinnerContainer.jsx';
import {setSecondaryTitle} from 'app/MainScreenWrapperActionHelper.js';
import ForceDirectedGraph from 'generic-components/graph/ForceDirectedGraph.jsx';
import SelectedNodeDetails from 'app/tierSupport/selectedNodeDetails/SelectedNodeDetails.jsx';
+import {
+ overlayNetworkCallback,
+} from '../MainScreenWrapperActionHelper.js';
+
import overlaysDetails from 'resources/overlays/overlaysDetails.json';
import * as Overlays from 'app/overlays/OverlayImports.js';
TSUI_NODE_DETAILS_INITIAL_WIDTH,
TSUI_NODE_DETAILS_MIN_WIDTH,
TSUI_GRAPH_MENU_NODE_DETAILS,
+ tierSupportActionTypes
} from './TierSupportConstants.js';
let mapStateToProps = (
graphNodeSelectedMenu = TSUI_GRAPH_MENU_NODE_DETAILS,
feedbackMsgText = '',
feedbackMsgSeverity = '',
- nodeData = {}
+ nodeData = {},
+ enableBusyFeedback = false
} = tierSupportReducer;
let {
selectedSuggestion,
feedbackMsgText,
feedbackMsgSeverity,
- nodeData
+ nodeData,
+ enableBusyFeedback
};
};
},
onRequestClearData: () => {
dispatch(clearVIData());
+ },
+ onOverlayNetworkCallback: (apiUrl, body, viewName, curViewData, responseEventKey) => {
+ dispatch(overlayNetworkCallback(apiUrl, body, viewName, curViewData, responseEventKey));
}
};
};
class TierSupport extends Component {
static propTypes = {
- forceDirectedGraphRawData: React.PropTypes.object,
- windowWidth: React.PropTypes.number,
- windowHeight: React.PropTypes.number,
- graphNodeSelectedMenu: React.PropTypes.string,
- feedbackMsgText: React.PropTypes.string,
- feedbackMsgSeverity: React.PropTypes.string,
- nodeData: React.PropTypes.object
+ forceDirectedGraphRawData: PropTypes.object,
+ windowWidth: PropTypes.number,
+ windowHeight: PropTypes.number,
+ graphNodeSelectedMenu: PropTypes.string,
+ feedbackMsgText: PropTypes.string,
+ feedbackMsgSeverity: PropTypes.string,
+ nodeData: PropTypes.object,
+ enableBusyFeedback: PropTypes.bool
};
componentWillReceiveProps(nextProps) {
this.props.match.params.viParam) {
this.props.onNewVIParam(nextProps.match.params.viParam);
}
- if(nextProps.match.params.viParam === undefined && nextProps.match.params.viParam !==
+ if(nextProps.match.params.viParam && nextProps.match.params.viParam !==
this.props.match.params.viParam) {
this.props.onRequestClearData();
}
windowWidth,
windowHeight,
onSplitPaneResize,
- onNodeMenuSelect
+ onNodeMenuSelect,
+ enableBusyFeedback
} = this.props;
-
-
let availableOverlay;
let overlayComponent;
// Currently only ONE overlay can be added to each view.
let currentSelectedMenu = this.getCurrentSelectedMenu(overlayComponent);
return (
<div className='tier-support-ui'>
- <SplitPane
- split='vertical'
- enableResizing='true'
- onDragFinished={ () => {
- onSplitPaneResize(false);
- } }
- defaultSize={TSUI_NODE_DETAILS_INITIAL_WIDTH}
- minSize={TSUI_NODE_DETAILS_MIN_WIDTH}
- maxSize={-200}
- primary='second'>
- <div>
- <ForceDirectedGraph
- viewWidth={windowWidth}
- viewHeight={windowHeight}
- graphData={forceDirectedGraphRawData}
- nodeSelectedCallback={(nodeData) => {
- onNodeSelected(nodeData);
- }}
- nodeButtonSelectedCallback={(selectedMenuId) => {
- onNodeMenuSelect(selectedMenuId);
- }}
- dataOverlayButtons={dataOverlayButtons}
- currentlySelectedNodeView={currentNodeButton}/>
+ <Spinner loading={enableBusyFeedback}>
+ <SplitPane
+ split='vertical'
+ enableResizing='true'
+ onDragFinished={ () => {
+ onSplitPaneResize(false);
+ } }
+ defaultSize={TSUI_NODE_DETAILS_INITIAL_WIDTH}
+ minSize={TSUI_NODE_DETAILS_MIN_WIDTH}
+ maxSize={-200}
+ primary='second'>
+ <div>
+ <ForceDirectedGraph
+ viewWidth={windowWidth}
+ viewHeight={windowHeight}
+ graphData={forceDirectedGraphRawData}
+ nodeSelectedCallback={(nodeData) => {
+ onNodeSelected(nodeData);
+ }}
+ nodeButtonSelectedCallback={(selectedMenuId) => {
+ onNodeMenuSelect(selectedMenuId);
+ }}
+ dataOverlayButtons={dataOverlayButtons}
+ currentlySelectedNodeView={currentNodeButton}/>
- </div>
- <div>
- {currentSelectedMenu}
- </div>
- </SplitPane>
+ </div>
+ <div>
+ {currentSelectedMenu}
+ </div>
+ </SplitPane>
+ </Spinner>
</div>
);
}
if (this.isNotEmpty(this.props.nodeData) && overlayComponent) {
if (Overlays.default.hasOwnProperty(overlayComponent)) {
let OverlayComponent = Overlays.default[overlayComponent];
- secondOverlay = <OverlayComponent nodeDetails={this.props.nodeData}/>;
+ secondOverlay = <OverlayComponent
+ nodeDetails={this.props.nodeData}
+ networkingCallback={(apiUrl, body, paramName, curViewData) => {
+ this.props.onOverlayNetworkCallback(
+ apiUrl,
+ body,
+ paramName,
+ curViewData,
+ tierSupportActionTypes.TS_OVERLAY_NETWORK_CALLBACK_RESPONSE_RECEIVED);
+ }} />;
+
}
}
return secondOverlay;