diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/app/MainScreenWrapper.jsx | 10 | ||||
-rw-r--r-- | src/app/MainScreenWrapperActionHelper.js | 41 | ||||
-rw-r--r-- | src/app/tierSupport/TierSupport.jsx | 20 | ||||
-rw-r--r-- | src/app/tierSupport/TierSupportConstants.js | 3 | ||||
-rw-r--r-- | src/app/tierSupport/TierSupportReducer.js | 9 |
5 files changed, 78 insertions, 5 deletions
diff --git a/src/app/MainScreenWrapper.jsx b/src/app/MainScreenWrapper.jsx index 1b1088b..d1abf12 100644 --- a/src/app/MainScreenWrapper.jsx +++ b/src/app/MainScreenWrapper.jsx @@ -39,6 +39,7 @@ import { import { windowResize, extensibleViewNetworkCallback, + overlayNetworkCallback, extensibleViewMessageCallback } from './MainScreenWrapperActionHelper.js'; @@ -66,6 +67,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,7 +90,8 @@ class MainScreenWrapper extends Component { const { onExtensibleViewNetworkCallback, extensibleViewNetworkCallbackData, - onExtensibleViewMessageCallback + onExtensibleViewMessageCallback, + onOverlayNetworkCallback } = this.props; let customViewList = []; @@ -105,6 +110,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); }} diff --git a/src/app/MainScreenWrapperActionHelper.js b/src/app/MainScreenWrapperActionHelper.js index 6278f29..3e22206 100644 --- a/src/app/MainScreenWrapperActionHelper.js +++ b/src/app/MainScreenWrapperActionHelper.js @@ -20,7 +20,6 @@ * * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ -import {aaiActionTypes} from './MainScreenWrapperConstants.js'; import { POST, POST_HEADER, @@ -36,6 +35,7 @@ import { getSetGlobalMessageEvent, getClearGlobalMessageEvent } from 'app/globalInlineMessageBar/GlobalInlineMessageBarActions.js'; +import {aaiActionTypes} from 'app/MainScreenWrapperConstants.js'; function createWindowSizeChangeEvent() { return { @@ -64,6 +64,45 @@ export function showMainMenu(show) { }; } +function createOverlayDataFoundEvent(overlayData, paramName, curData, responseEventKey) { + return { + type: responseEventKey, + data: { + paramName: paramName, + overlayData: overlayData, + curData: curData + } + }; +} + +function overlayViewData(dataFetchRequest, paramName, curData, responseEventKey) { + return dispatch => { + dataFetchRequest().then( + (response) => { + return response.json(); + } + ).then( + (responseJson) => { + dispatch(createOverlayDataFoundEvent(responseJson, paramName, curData, responseEventKey)); + }).catch( + () => { + dispatch(getSetGlobalMessageEvent(ERROR_RETRIEVING_DATA, MESSAGE_LEVEL_DANGER)); + dispatch(createOverlayDataFoundEvent({}, paramName, curData, responseEventKey)); + }); + }; +} + +export function overlayNetworkCallback(urlApi, postBody, paramName, curData, responseEventKey) { + let dataFetchRequest = + () => fetchRequestObj(BASE_URL + urlApi, POST, + POST_HEADER, JSON.stringify(postBody)); + + + return dispatch => { + dispatch(overlayViewData(dataFetchRequest, paramName, curData, responseEventKey)); + }; +} + function createViewDataFoundEvent(viewData, paramName, curViewData) { var obj = {}; obj['data'] = {}; diff --git a/src/app/tierSupport/TierSupport.jsx b/src/app/tierSupport/TierSupport.jsx index e51dde8..8495955 100644 --- a/src/app/tierSupport/TierSupport.jsx +++ b/src/app/tierSupport/TierSupport.jsx @@ -31,6 +31,10 @@ 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'; @@ -48,6 +52,7 @@ import { TSUI_NODE_DETAILS_INITIAL_WIDTH, TSUI_NODE_DETAILS_MIN_WIDTH, TSUI_GRAPH_MENU_NODE_DETAILS, + tierSupportActionTypes } from './TierSupportConstants.js'; let mapStateToProps = ( @@ -114,6 +119,9 @@ let mapActionToProps = (dispatch) => { }, onRequestClearData: () => { dispatch(clearVIData()); + }, + onOverlayNetworkCallback: (apiUrl, body, viewName, curViewData, responseEventKey) => { + dispatch(overlayNetworkCallback(apiUrl, body, viewName, curViewData, responseEventKey)); } }; }; @@ -259,7 +267,17 @@ class TierSupport extends Component { 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; diff --git a/src/app/tierSupport/TierSupportConstants.js b/src/app/tierSupport/TierSupportConstants.js index d66816e..202f70c 100644 --- a/src/app/tierSupport/TierSupportConstants.js +++ b/src/app/tierSupport/TierSupportConstants.js @@ -34,7 +34,8 @@ export const tierSupportActionTypes = keyMirror({ SPLIT_PANE_RESIZE: null, TIER_SUPPORT_CLEAR_DATA: null, TIER_SUPPORT_ACTIVATE_BUSY_FEEDBACK: null, - TIER_SUPPORT_DISABLE_BUSY_FEEDBACK: null + TIER_SUPPORT_DISABLE_BUSY_FEEDBACK: null, + TS_OVERLAY_NETWORK_CALLBACK_RESPONSE_RECEIVED: null }); export const TSUI_NODE_DETAILS_INITIAL_WIDTH = 300; diff --git a/src/app/tierSupport/TierSupportReducer.js b/src/app/tierSupport/TierSupportReducer.js index c9a4faf..7062360 100644 --- a/src/app/tierSupport/TierSupportReducer.js +++ b/src/app/tierSupport/TierSupportReducer.js @@ -98,7 +98,7 @@ export default combineReducers({ return { ...state, enableBusyFeedback: false - }; + }; case globalAutoCompleteSearchBarActionTypes.SEARCH_WARNING_EVENT: let emptyNodesAndLinksWarningEvent = ForceDirectedGraph.generateNewProps([], [], {}); return { @@ -118,6 +118,13 @@ export default combineReducers({ } else { return state; } + case tierSupportActionTypes.TS_OVERLAY_NETWORK_CALLBACK_RESPONSE_RECEIVED: + let newNodeData = JSON.parse(JSON.stringify(action.data.curData)); + newNodeData[action.data.paramName] = action.data.overlayData; + return { + ...state, + nodeData: newNodeData + }; } return state; |