Mercurial > lada > lada-client
view app/view/window/ImportResponse.js @ 1293:16a80ca16732
map feature visibility, selection and grid layout
messpunkt layer is now visible per default when in editing mode
on selection in map, the form is updated
ortszuordnung buttons should not render over grid anymore
author | Maximilian Krambach <mkrambach@intevation.de> |
---|---|
date | Wed, 01 Feb 2017 19:38:06 +0100 |
parents | 1ed5ec9326e6 |
children | ee21d0e1b998 |
line wrap: on
line source
/** * This Window is shown, when Proben could be imported from a LAF file */ 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; var download; var i18n = Lada.getApplication().bundle; var data = Ext.JSON.decode(me.data, true); if (data) { html = me.parseShortResponse(data); } else { html = 'Der Import der Datei ' + this.fileName + ' war nicht erfolgreich.'; } this.bodyStyle = {background: '#fff'}; me.items = [{ xtype: 'panel', html: html, margin: 10, border: false }]; me.buttons = [{ text: i18n.getMsg('close'), scope: this, name: 'close', handler: this.close }, { text: i18n.getMsg('download'), name: 'download', disabled: true, handler: function() { var blob = new Blob([download],{type: 'text/html'}); saveAs(blob, 'report.html'); } }]; this.callParent(arguments); if (data) { download = me.parseResponse(data); } }, /** * Parse the response and create a summary of the result * @param data */ parseShortResponse: function(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.isObject(errors)) { numErrors = 0; } else { numErrors = Object.keys(errors).length; } if (!Ext.isObject(warnings)) { numWarnings = 0; } else { numWarnings = Object.keys(warnings).length; } if (!data.success) { 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) { if (errors.parser) { out.push('Die Probe(n) konnten nicht erfolgreich ' + 'importiert werden.'); } else { out.push(numErrors + ' Probe(n) konnten nicht ' + 'erfolgreich importiert werden.'); } out.push('<br/>'); out.push('<br/>'); } if (numWarnings > 0) { out.push('Bei ' + numWarnings + ' Probe(n) traten Warnungen auf. '); out.push('<br/>'); out.push('<br/>'); } if (numErrors > 0 || numWarnings > 0) { out.push('Der ausführliche Bericht steht als Download bereit.'); out.push('<br/>'); } else { out.push('Die Proben wurden importiert.'); out.push('<br/>'); } } return out.join(''); }, /** * Parse the Response * @param data the payload of the response */ parseResponse: function(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.isObject(errors)) { numErrors = 0; } else { numErrors = Object.keys(errors).length; } if (!Ext.isObject(warnings)) { numWarnings = 0; } else { numWarnings = Object.keys(warnings).length; } if (!data.success) { out.push('Der Import der Datei ' + this.fileName + ' war nicht erfolgreich. Der Importvorgang konnte ' + 'aufgrund eines Fehlers im Server nicht beendet werden.'); } else { out.push('<!DOCTYPE html>' + '<head><meta charset="utf-8"></head><body>'); if (numErrors > 0) { out.push('Folgende Fehler traten beim Import auf:'); out.push('<br/>'); out.push('<ol>'); var msgs; for (var key in errors) { msgs = errors[key]; if (key !== 'parser') { out.push('<li>Probe: ' + key); } out.push('<ol>'); validation = [] validation.push('Validierungsfehler: '); for (var i = msgs.length - 1; i >= 0; i--) { if (msgs[i].key === 'validation') { validation.push('<ol>'); validation.push(Lada.getApplication().bundle.getMsg(msgs[i].value) + ' (' + Lada.getApplication().bundle.getMsg(msgs[i].code.toString()) + ')'); validation.push('</ol>'); } else { out.push('<li>' + msgs[i].key + ' (' + Lada.getApplication().bundle.getMsg(msgs[i].code.toString())+'): '+msgs[i].value+'</li>') } } if (validation.length > 1) { out.push('<li>') out.push(validation.join('')); out.push('</li>') } out.push('</ol>'); if (key !== 'parser') { 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>'); validation = [] validation.push('Validierungswarnungen: '); for (var i = msgs.length - 1; i >= 0; i--) { if (msgs[i].key === 'validation') { validation.push('<ol>'); validation.push(Lada.getApplication().bundle.getMsg(msgs[i].value) + ' (' + Lada.getApplication().bundle.getMsg(msgs[i].code.toString()) + ')'); validation.push('</ol>'); } else { out.push('<li>' + msgs[i].key + ' (' + Lada.getApplication().bundle.getMsg(msgs[i].code.toString())+'): '+msgs[i].value+'</li>') } } if (validation.length > 1) { out.push('<li>') out.push(validation.join('')); out.push('</li>') } out.push('</ol>'); out.push('</li>'); } out.push('</ol>'); } out.push('<br/>'); out.push('</body></html>') if (numWarnings > 0 || numErrors > 0) { this.down('button[name=download]').enable(); } } return out.join(''); } });