Merge "Assets tab hidden by default" into v1.1
diff --git a/skyquake/plugins/composer/api/composer.js b/skyquake/plugins/composer/api/composer.js
index 13fd0dd..801873a 100644
--- a/skyquake/plugins/composer/api/composer.js
+++ b/skyquake/plugins/composer/api/composer.js
@@ -612,6 +612,9 @@
data: data.body
});
}
+ }).catch(function(err) {
+ console.log('Failed to retrieve FileManager.list')
+ resolve(err);
})
}
})
diff --git a/skyquake/plugins/composer/src/src/components/CanvasPanel.js b/skyquake/plugins/composer/src/src/components/CanvasPanel.js
index 96904ea..cb212cb 100644
--- a/skyquake/plugins/composer/src/src/components/CanvasPanel.js
+++ b/skyquake/plugins/composer/src/src/components/CanvasPanel.js
@@ -81,9 +81,13 @@
<button className={isDescriptorView ? '-selected' : ''} onClick={ComposerAppActions.showDescriptor}>
Descriptor
</button>
- <button className={!isDescriptorView ? '-selected' : ''} onClick={ComposerAppActions.showAssets}>
- Assets
- </button>
+ {
+ this.props.files ?
+ <button className={!isDescriptorView ? '-selected' : ''} onClick={ComposerAppActions.showAssets}>
+ Assets
+ </button>
+ : null
+ }
</div>
</div>
)
diff --git a/skyquake/plugins/composer/src/src/stores/ComposerAppStore.js b/skyquake/plugins/composer/src/src/stores/ComposerAppStore.js
index 854864b..3671890 100644
--- a/skyquake/plugins/composer/src/src/stores/ComposerAppStore.js
+++ b/skyquake/plugins/composer/src/src/stores/ComposerAppStore.js
@@ -122,7 +122,7 @@
this.fullScreenMode = false;
this.panelTabShown = 'descriptor';
//File manager values
- this.files = [];
+ this.files = false;
this.filesState = {};
this.downloadJobs = {};
//End File manager values
@@ -457,18 +457,27 @@
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 = {
@@ -540,7 +549,7 @@
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 = [];
@@ -616,7 +625,6 @@
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);