X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Fstores%2FComposerAppStore.js;h=b30193ad86327b0211bf94af63f020c580319bc6;hb=266adb435d7a60ae758efb28614c80d24c05fbba;hp=4f278680ca85c5775a773fbf16deeeb802c99fbc;hpb=b06607173b5bafa999594cdc1e60a825f578e8e6;p=osm%2FUI.git diff --git a/skyquake/plugins/composer/src/src/stores/ComposerAppStore.js b/skyquake/plugins/composer/src/src/stores/ComposerAppStore.js index 4f278680c..b30193ad8 100644 --- a/skyquake/plugins/composer/src/src/stores/ComposerAppStore.js +++ b/skyquake/plugins/composer/src/src/stores/ComposerAppStore.js @@ -122,7 +122,7 @@ class ComposerAppStore { this.fullScreenMode = false; this.panelTabShown = 'descriptor'; //File manager values - this.files = []; + this.files = false; this.filesState = {}; this.downloadJobs = {}; //End File manager values @@ -209,6 +209,7 @@ class ComposerAppStore { editCatalogItem(item) { let self = this; + self.closeFileManagerSockets(); if (item && item.uiState) { item.uiState.isOpenForEdit = true; if (item.uiState.type !== 'nsd') { @@ -340,13 +341,21 @@ class ComposerAppStore { this.setState({showJSONViewer: false}); } - toggleCanvasPanelTray() { + toggleCanvasPanelTray(event) { const layout = this.layout; - if (layout.bottom > 25) { + const attrMap = event.target.attributes; + let panelEvent = null; + for(let k in attrMap) { + if(attrMap[k].name == 'data-event') { + panelEvent = attrMap[k].nodeValue; + } + } + if ((layout.bottom > 25) && ((panelEvent == this.displayedPanel) || panelEvent == 'arrow')) { this.closeCanvasPanelTray(); } else { this.openCanvasPanelTray(); } + this.setState({displayedPanel: panelEvent}) } openCanvasPanelTray() { @@ -456,18 +465,27 @@ class ComposerAppStore { let self = this; let filesState = null; if (self.fileMonitoringSocketID) { - filesState = addInputState( _.cloneDeep(this.filesState),data); - // filesState = _.merge(self.filesState, addInputState({},data)); - let normalizedData = normalizeTree(data); - this.setState({ - files: { - data: _.mergeWith(normalizedData.data, self.files.data, function(obj, src) { - return _.uniqBy(obj? obj.concat(src) : src, 'name'); - }), - id: self.files.id || normalizedData.id - }, - filesState: filesState - }); + let newState = {}; + if(data.hasOwnProperty('contents')) { + filesState = addInputState( _.cloneDeep(this.filesState),data); + // filesState = _.merge(self.filesState, addInputState({},data)); + let normalizedData = normalizeTree(data); + newState = { + files: { + data: _.mergeWith(normalizedData.data, self.files.data, function(obj, src) { + return _.uniqBy(obj? obj.concat(src) : src, 'name'); + }), + id: self.files.id || normalizedData.id + }, + filesState: filesState + } + } else { + newState = { + files: false + } + } + + this.setState(newState); } function normalizeTree(data) { let f = { @@ -539,7 +557,7 @@ class ComposerAppStore { let self = this; let ws = window.multiplexer.channel(id); let downloadJobs = _.cloneDeep(self.downloadJobs); - let newFiles = {}; + let newFiles = false; ws.onmessage = (socket) => { if (self.files && self.files.length > 0) { let jobs = []; @@ -615,7 +633,6 @@ class ComposerAppStore { openFileManagerSockets(i) { let self = this; let item = i || self.item; - this.files = {data:[]}; // this.closeFileManagerSockets(); this.getInstance().openFileMonitoringSocket(item.id, item.uiState.type).then(function() { // // self.getInstance().openDownloadMonitoringSocket(item.id);