Mercurial > lada > lada-client
diff app/view/window/ImportResponse.js @ 729:7eb8ef8e68ca
Added window to display importer messages.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 17 Apr 2015 13:15:40 +0200 |
parents | |
children | def27cdd0dfa |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/window/ImportResponse.js Fri Apr 17 13:15:40 2015 +0200 @@ -0,0 +1,135 @@ +/** + * + */ +Ext.define('Lada.view.window.ImportResponse', { + extend: 'Ext.window.Window', + alias: 'widget.importresponse', + + data: null, + message: null, + fileName: '', + + layout: 'fit', + /** + * @private + * Initialize the view. + */ + initComponent: function() { + var me = this; + var html; + if (me.data && me.message) { + html = me.parseResponse(me.message, me.data); + } + this.bodyStyle = {background: '#fff'}; + me.items = [{ + xtype: 'panel', + html: html, + margin: 10, + border: false + }]; + + this.callParent(arguments); + }, + + parseResponse: function(msg, data) { + console.log(Ext.JSON.decode(data)); + data = Ext.JSON.decode(data); + var errors = data.data.errors; + var warnings = data.data.warnings; + var out = []; + // There is a entry for each imported proben in the errors dict (might be + // empty) + + var numErrors; + var numWarnings; + if (Ext.isEmpty(Object.keys(errors))) { + numErrors = 0; + } + else { + numErrors = Object.keys(errors).length; + } + if (Ext.isEmpty(Object.keys(warnings))) { + numWarnings = 0; + } + else { + numWarnings = Object.keys(warnings).length; + } + if (msg !== '200') { + out.push('Der Import der Datei ' + this.fileName + + ' war nicht erfolgreich. Der Importvorgang konnte ' + + 'aufgrund eines Fehlers im Server nicht beendet werden.'); + } + else { + if (numErrors > 0) { + out.push('Folgende Proben konnten nicht erfolgreich ' + + 'importiert werden:'); + out.push('<br/>'); + out.push('<ol>'); + var msgs; + for (var key in errors) { + out.push('<li>Probe: ' + key); + msgs = errors[key]; + out.push('<ol>'); + for (var i = msgs.length - 1; i >= 0; i--) { + if (msgs[i].key === 'validation') { + out.push('Validierungsfehler: '); + out.push('<ol>'); + for (var vKey in msgs[i].value) { + out.push(Lada.getApplication().bundle.getMsg(vKey) + ': '); + for (var j = 0; j < msgs[i].value[vKey].length; j++) { + console.log(msgs[i].value[vKey][j]); + out.push(Lada.getApplication().bundle.getMsg(msgs[i].value[vKey][j].toString())); + } + } + out.push('</ol>'); + } + else { + out.push(msgs[i].key + + ' (' + Lada.getApplication().bundle.getMsg( + msgs[i].code.toString()) + + '): ' + msgs[i].value); + } + } + out.push('</ol>'); + out.push('</li>'); + } + out.push('</ol>'); + out.push('<br/>'); + } + if (numWarnings > 0) { + out.push('<br/>'); + out.push('Bei folgenden Proben traten Warnungen auf:'); + out.push('<br/>'); + out.push('<ol>'); + for (key in warnings) { + out.push('<li>' + key); + msgs = warnings[key]; + out.push('<ol>'); + for (var i = msgs.length - 1; i >= 0; i--) { + if (msgs[i].key === 'validation') { + out.push('Validierungswarnungen: '); + out.push('<ol>'); + for (var vKey in msgs[i].value) { + out.push(Lada.getApplication().bundle.getMsg(vKey) + ': '); + for (var j = 0; j < msgs[i].value[vKey].length; j++) { + console.log(msgs[i].value[vKey][j]); + out.push(Lada.getApplication().bundle.getMsg(msgs[i].value[vKey][j].toString())); + } + } + out.push('</ol>'); + } + else { + out.push('<li>' + msgs[i].key + ' (' + Lada.getApplication().bundle.getMsg(msgs[i].code.toString())+'): '+msgs[i].value+'</li>') + } + } + out.push('</ol>'); + out.push('</li>'); + } + out.push('</ol>'); + } + out.push('<br/>'); + } + console.log(out.join('')); + return out.join(''); + } +});