Ext.define('treps.controller.Steps.ExportResultStep', { extend: 'treps.controller.Steps.BaseStep', hiddenForm: null, views: [ 'Steps.ExportResult.ExportResultPanel' ], refs: [ { ref: 'downloadButton', selector: 'exportresult_panel > #downloadBtn' }, { ref: 'sampButton', selector: 'exportresult_panel > sampsend_button' } ], init: function() { var me = this; this.control( { 'exportresult_panel > #downloadBtn' : { click: me.onDownload } } ); me.getSampButton().onUpdateMenu = me.onUpdateSAMPMenu; }, onDownload: function() { var me = this; var session = treps.model.Session; if (this.hiddenForm == null) this.hiddenForm = Ext.create('Ext.form.Panel', { title:'hiddenForm', renderTo: Ext.getBody(), standardSubmit: true, url: treps.Constants.PHP_DIR+'DownloadExport.php', timeout: 120000, height:100, width: 100, hidden:true, items:[ ] }); this.hiddenForm.getForm().submit({ params: { id: session.get('id'), filename: session.get('in_filenameBase') }, success: function(form, action) { }, failure: function(form, action) { } }); }, getSAMPClientMenuItem : function(name,id,icon,format) { var sampManager = treps.controller.SAMP.SAMPManager; var me = this; var href = window.location.href; return { text : name+' ('+id+')', clientId : id, handler : function () { if (!sampManager.isConnected()) return; sampManager.sendFile(id,format,href+treps.Constants.PHP_DIR+'DownloadExport.php?id='+treps.model.Session.get('id')); }, icon : icon }; }, onUpdateSAMPMenu: function(button) { var sampManager = treps.controller.SAMP.SAMPManager; var exportController = treps.app.getController('Steps.ExportResultStep'); if (!sampManager.isConnected()) { sampManager.connect(); return false; } var clientsStore = sampManager.getClientsStore(); var exportFormat = treps.model.Session.get('exportFormat'); button.menu.removeAll(); var me = this; clientsStore.each(function(client) { if (((exportFormat == 'votable') && client.get('acceptVOTable')) || ((exportFormat == 'cdf') && client.get('acceptCDF')) || ((exportFormat == 'netcdf') && client.get('acceptNetCDF'))) button.menu.add(exportController.getSAMPClientMenuItem(client.get('name'),client.get('id'),client.get('icon'),exportFormat)); } ); if (clientsStore.count() > 0) { button.menu.add('-'); button.menu.add(exportController.getSAMPClientMenuItem('all clients','hub','',exportFormat)); } return true; }, isValidStep: function() { return false; }, doRequest: function(afterrequest) { }, doInitStep: function() { this.getSampButton().onUpdateMenu = this.onUpdateSAMPMenu; var exportFormat = treps.model.Session.get('exportFormat'); this.getSampButton().setDisabled(exportFormat == 'ascii'); } });