# HG changeset patch # User Torsten Irländer # Date 1376403668 -7200 # Node ID 94884cd8f8c0a27d4c21748b1b3cef43bdaeac8f # Parent 166203f7119deb11fb41f9ddf263bc75047a152b Added logic to upload a file to the server. diff -r 166203f7119d -r 94884cd8f8c0 app/controller/Proben.js --- a/app/controller/Proben.js Tue Aug 13 12:37:03 2013 +0200 +++ b/app/controller/Proben.js Tue Aug 13 16:21:08 2013 +0200 @@ -5,7 +5,8 @@ extend: 'Lada.controller.Base', views: [ 'proben.Edit', - 'proben.Create' + 'proben.Create', + 'proben.Import' ], stores: [ 'Proben', @@ -27,12 +28,18 @@ 'probenlist toolbar button[action=add]': { click: this.addItem }, + 'probenlist toolbar button[action=import]': { + click: this.selectUploadFile + }, 'probencreate button[action=save]': { click: this.saveItem }, 'probenedit button[action=save]': { click: this.saveItem }, + 'probenimport button[action=save]': { + click: this.uploadItem + }, 'probencreate form': { savesuccess: this.createSuccess, savefailure: this.createFailure @@ -47,6 +54,37 @@ console.log('Adding new Probe'); var view = Ext.widget('probencreate'); }, + /** + * Opens a window with a file chooser to select the file to upload + * @private + */ + selectUploadFile: function(button) { + console.log('Importing'); + var view = Ext.widget('probenimport'); + }, + /** Uploads the selected file the the server + * @private + */ + uploadItem: function(button) { + var win = button.up('window'); + var form = win.down('form'); + if(form.isValid()){ + form.submit({ + url: 'server/rest/proben/import', + waitMsg: 'Importiere...', + // TODO: Handle the response correct. o must must contain the + // filename (None) <2013-08-13 16:17> + success: function(fp, resp) { + Ext.Msg.alert('Erfolg! ', 'Die Datei"' + resp.result.file + '" wurde erfolgreich importiert.'); + win.close(); + }, + failure: function(fp, resp) { + Ext.Msg.alert('Fehler! ', 'Die Datei"' + resp.result.file + '" wurde nicht importiert.'); + win.close(); + } + }); + } + }, editItem: function(grid, record) { console.log('Editing Probe'); var id = record.get('probeId'); diff -r 166203f7119d -r 94884cd8f8c0 app/view/Viewport.js --- a/app/view/Viewport.js Tue Aug 13 12:37:03 2013 +0200 +++ b/app/view/Viewport.js Tue Aug 13 16:21:08 2013 +0200 @@ -17,7 +17,7 @@ ], initComponent: function() { console.log('Setting up Viewport'); - //this.initSearch(); + this.initSearch(); // Development related: // Disable "initSearch" call and enable one of the following init @@ -26,9 +26,9 @@ //this.initProbe(); //this.initOrt(); //this.initMessung(); - this.initMesswert(); + //this.initMesswert(); - //this.setInfo(); + this.setInfo(); this.callParent(arguments); }, /** diff -r 166203f7119d -r 94884cd8f8c0 app/view/proben/Import.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/proben/Import.js Tue Aug 13 16:21:08 2013 +0200 @@ -0,0 +1,28 @@ +/* + * Window to import a Probe + */ +Ext.define('Lada.view.proben.Import', { + extend: 'Ext.window.Window', + alias: 'widget.probenimport', + + title: 'Maske für §3-Proben Import', + autoShow: true, + autoScroll: true, + modal: true, + initComponent: function() { + this.buttons = [ + { + text: 'Speichern', + action: 'save', + }, + { + text: 'Abbrechen', + scope: this, + handler: this.close, + } + ]; + var form = Ext.create('Lada.view.proben.ImportForm'); + this.items = [form]; + this.callParent(); + } +}); diff -r 166203f7119d -r 94884cd8f8c0 app/view/proben/ImportForm.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/proben/ImportForm.js Tue Aug 13 16:21:08 2013 +0200 @@ -0,0 +1,15 @@ +/* + * Formular to create a Probe + */ +Ext.define('Lada.view.proben.ImportForm', { + extend: 'Ext.form.Panel', + initComponent: function() { + this.items = [ + { + xtype: 'fileuploadfield', + title: 'Importdate' + } + ]; + this.callParent(); + } +}); diff -r 166203f7119d -r 94884cd8f8c0 app/view/proben/List.js --- a/app/view/proben/List.js Tue Aug 13 12:37:03 2013 +0200 +++ b/app/view/proben/List.js Tue Aug 13 16:21:08 2013 +0200 @@ -35,6 +35,11 @@ text: 'Hinzufügen', icon: 'gfx/plus.gif', action: 'add' + }, + { + text: 'Import', + icon: 'gfx/plus.gif', + action: 'import' } ] }