diff --git a/src/actions/WindowActions.js b/src/actions/WindowActions.js index da3df9e39..3857ea648 100644 --- a/src/actions/WindowActions.js +++ b/src/actions/WindowActions.js @@ -428,6 +428,20 @@ export function patch( } } +export function fireUpdateData(entity, windowType, id, tabId, rowId, isModal, + isAdvanced){ + + return dispatch => { + getData( + entity, windowType, id, tabId, rowId, null, null, isAdvanced + ).then(response => { + dispatch(mapDataToState( + response.data, isModal, rowId, id, windowType, isAdvanced + )); + }); + } +} + function updateData(doc, scope){ return dispatch => { Object.keys(doc).map(key => { diff --git a/src/containers/MasterWindow.js b/src/containers/MasterWindow.js index 5fbae7478..9f900d199 100644 --- a/src/containers/MasterWindow.js +++ b/src/containers/MasterWindow.js @@ -10,7 +10,8 @@ import { addRowData, sortTab, connectWS, - disconnectWS + disconnectWS, + fireUpdateData } from '../actions/WindowActions'; import { @@ -49,8 +50,16 @@ class MasterWindow extends Component { if(prevProps.master.websocket !== master.websocket && master.websocket){ connectWS.call(this, master.websocket, msg => { - const {includedTabsInfo} = msg; + const {includedTabsInfo, stale} = msg; const {master} = this.props; + + if(stale){ + dispatch( + fireUpdateData('window', params.windowType, params.docId, null, null, null, null ) + ); + + } + includedTabsInfo && Object.keys(includedTabsInfo).map(tabId => { const tabLayout = master.layout.tabs && master.layout.tabs.filter(tab => tab.tabId === tabId