diff --git a/js/app/models/DownloadNode.js b/js/app/models/DownloadNode.js index c6b4476..fb11247 100644 --- a/js/app/models/DownloadNode.js +++ b/js/app/models/DownloadNode.js @@ -142,7 +142,7 @@ Ext.define('amdaModel.DownloadNode', { encodeObject: function() { }, - loadJobTree : function() { + loadJobTree : function(sendToSamp, clientId) { //TBD - BRE - fix code duplication with ExecutableNode if possible var rootNode = Ext.getCmp(amdaUI.ExplorerUI.JOB_TAB.TREE_ID).getRootNode(); var me = this; @@ -150,26 +150,29 @@ Ext.define('amdaModel.DownloadNode', { function() { amdaModel.InteractiveNode.jobTreeLoaded = true; - me.realExecute(); + me.realExecute(sendToSamp, clientId); }); }, - execute : function() { + execute : function(sendToSamp, clientId) { - if (!amdaModel.ExecutableNode.jobTreeLoaded) this.loadJobTree(); - else this.realExecute(); + if (!amdaModel.ExecutableNode.jobTreeLoaded) this.loadJobTree(sendToSamp, clientId); + else this.realExecute(sendToSamp, clientId); }, /** * Method to execute this node */ - realExecute : function() { - + realExecute : function(sendToSamp, clientId) { var jsonObject = this.get('object').getJsonValues(); if (!jsonObject.list && !jsonObject.images) { myDesktopApp.warningMsg('Please select at least one Parameter (Get Data) or one Time Table (Get Time Table)'); return; } + + if (sendToSamp) { + jsonObject.sendToSamp = true; + } loadMask.show(); AmdaAction.execute({nodeType : this.get('nodeType')}, jsonObject, function(res,e) @@ -218,11 +221,22 @@ Ext.define('amdaModel.DownloadNode', { switch (res.status) { case amdaModel.BkgJobNode.STATUS_LIST.DONE : - // New tab, non-interactive session - var isInteractive = false; - var isNewTab = true; - newNode.createJobNode(true); - newNode.editNode(isNewTab, isInteractive); + if (!res.sendToSamp) { + // New tab, non-interactive session + var isInteractive = false; + var isNewTab = true; + newNode.createJobNode(true); + newNode.editNode(isNewTab, isInteractive); + } + else { + var files = res.result.split(","); + Ext.each(files, function(file) { + var href = 'data/'+sessionID+'/RES/'+ res.folder + '/' + file; + myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id, true, function (module) { + module.sendVOTable(href, clientId ? clientId : 'hub'); + }); + }); + } break; case amdaModel.BkgJobNode.STATUS_LIST.IN_PROGRESS : newNode.createJobNode(false); diff --git a/js/app/views/DownloadUI.js b/js/app/views/DownloadUI.js index 86f72c9..f30fbd4 100644 --- a/js/app/views/DownloadUI.js +++ b/js/app/views/DownloadUI.js @@ -16,6 +16,7 @@ Ext.define('amdaUI.DownloadUI', { requires: [ 'amdaUI.TimeSelectorUI', 'amdaUI.ParamArgumentsPlug', + 'amdaUI.SendToSampButtonUI', 'amdaModel.DownloadParam' ], @@ -306,10 +307,10 @@ Ext.define('amdaUI.DownloadUI', { /** * download method called by 'Download' button to launch the download process */ - doDownload : function(){ + doDownload : function(sendToSamp, clientId){ var downloadModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.download.id); if (downloadModule) - downloadModule.linkedNode.execute(); + downloadModule.linkedNode.execute(sendToSamp, clientId); }, actionItem: function(grid, cell, cellIndex, record, row, recordIndex, e){ @@ -357,6 +358,13 @@ Ext.define('amdaUI.DownloadUI', { if (samplingField && newValue !== oldValue) samplingField.setDisabled((structureCombo.getValue() == 2) || check.getValue()); }, + + onSendVOTableToSamp : function (clientId, sendOpt){ + var me = sendOpt.scope; + if(me.updateObject()){ + me.doDownload(true, clientId); + } + }, /** * Check if changes were made before closing window @@ -734,7 +742,14 @@ Ext.define('amdaUI.DownloadUI', { this.TTGrid.store.removeAll(); } } - }] + }, + '->', + { + xtype : 'sendToSampButton', + type : 'votable', + onSendToSamp : this.onSendVOTableToSamp, + sendOpt : {scope : this} + }] }); var myConf = { -- libgit2 0.21.2