Mercurial > lada > lada-client
changeset 1185:90ae675a1224 schema-update
Updated client status workflow and model.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 31 Aug 2016 15:58:49 +0200 |
parents | be720d0473f6 |
children | a1c480be0b79 |
files | app/controller/grid/Status.js app/model/StatusKombi.js app/store/StatusKombi.js app/view/form/Messung.js app/view/grid/Messung.js app/view/grid/Status.js |
diffstat | 6 files changed, 135 insertions(+), 44 deletions(-) [+] |
line wrap: on
line diff
--- a/app/controller/grid/Status.js Wed Aug 31 15:58:19 2016 +0200 +++ b/app/controller/grid/Status.js Wed Aug 31 15:58:49 2016 +0200 @@ -39,7 +39,18 @@ * On failure it displays a message */ gridSave: function(editor, context) { - context.record.set('sdatum', new Date()); + context.record.set('datum', new Date()); + var wert = editor.getEditor().down('combobox[displayField=wert]').value; + var stufe = editor.getEditor().down('combobox[displayField=stufe]').value; + var kombis = Ext.data.StoreManager.get('statuskombi'); + var kombiNdx = kombis.findBy(function(record, id) { + if (record.raw.statusStufe.id === stufe && + record.raw.statusWert.id === wert + ) { + return true; + } + }); + context.record.set('statusKombi', kombis.getAt(kombiNdx).get('id')); context.record.save({ success: function(response) { var i18n = Lada.getApplication().bundle; @@ -172,18 +183,27 @@ var resetStatusValue = 8; - var s = button.up('window').down('messungform').getRecord().get('status'); + var s = button.up('window').down('messungform').getCurrentStatus(); var messId = button.up('window').down('messungform').getRecord().get('id'); - var recentStatus = button.up('statusgrid').store.getById(s); + if(!s) { + Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'), + i18n.getMsg('err.msg.generic.body')); + return; + } //Set Status to 'Resetted' (8) - if (recentStatus) { - var record = recentStatus.copy(); - record.set('datum', new Date()); - record.set('statusWert', resetStatusValue); - record.set('id', null); - record.set('text', i18n.getMsg('statusgrid.resetText')); - } + var kombis = Ext.data.StoreManager.get('statuskombi'); + var stufe = kombis.getById(s.get('statusKombi')).raw.statusStufe.id; + var kombiNdx = kombis.findBy(function(record, id) { + if(record.raw.statusStufe.id === stufe && record.raw.statusWert.id === 8) { + return true; + } + }); + var record = s.copy(); + record.set('datum', new Date()); + record.set('statusKombi', kombis.getAt(kombiNdx).get('id')); + record.set('id', null); + record.set('text', i18n.getMsg('statusgrid.resetText')); Ext.Ajax.request({ url: 'lada-server/rest/status',
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/StatusKombi.js Wed Aug 31 15:58:49 2016 +0200 @@ -0,0 +1,36 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for StatusKombi + */ +Ext.define('Lada.model.StatusKombi', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id' + }, { + name: 'stufeId', + type: 'int' + }, { + name: 'stufeId', + type: 'int' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/rest/statuskombi', + reader: { + type: 'json', + root: 'data' + } + } +}); +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/StatusKombi.js Wed Aug 31 15:58:49 2016 +0200 @@ -0,0 +1,17 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Status-Kombi + */ +Ext.define('Lada.store.StatusKombi', { + extend: 'Ext.data.Store', + model: 'Lada.model.StatusKombi', + autoLoad: false +}); +
--- a/app/view/form/Messung.js Wed Aug 31 15:58:19 2016 +0200 +++ b/app/view/form/Messung.js Wed Aug 31 15:58:49 2016 +0200 @@ -30,6 +30,8 @@ trackResetOnLoad: true, + currentStatus: null, + initComponent: function() { var me = this; var i18n = Lada.getApplication().bundle; @@ -79,6 +81,7 @@ name: 'mmtId', margin: '0, 10, 5, 0', fieldLabel: 'Messmethode', + allowBlank: false, width: 300, labelWidth: 100 }, { @@ -126,7 +129,6 @@ width: 300, labelWidth: 100, submitValue: false, - isFormField: false, preventMark: true, //Do not display error msg. validateValue: function() { return true; //this field is always valid @@ -168,6 +170,10 @@ } }, + getCurrentStatus: function() { + return this.currentStatus; + }, + retrieveStatus: function(messungsId, statusId) { var i18n = Lada.getApplication().bundle; var msg = i18n.getMsg('load.statuswert'); @@ -178,6 +184,7 @@ textfield.setRawValue(msg); } + var me = this; var sStore = Ext.create('Lada.store.Status'); sStore.load({ params: { @@ -190,9 +197,13 @@ sw = 0; } else { - sw = sStore.getById(statusId).get('statusWert'); - ss = sStore.getById(statusId).get('statusStufe'); - se = sStore.getById(statusId).get('erzeuger'); + me.currentStatus = sStore.getById(statusId); + sk = sStore.getById(statusId).get('statusKombi'); + se = sStore.getById(statusId).get('mstId'); + var kombis = Ext.data.StoreManager.get('statuskombi'); + var rec = kombis.getById(sk); + sw = rec.raw.statusWert.id; + ss = rec.raw.statusStufe.id; } this.setStatusWert(sw); this.setStatusStufe(ss);
--- a/app/view/grid/Messung.js Wed Aug 31 15:58:19 2016 +0200 +++ b/app/view/grid/Messung.js Wed Aug 31 15:58:49 2016 +0200 @@ -75,36 +75,40 @@ }, { header: 'Status', flex: 1, - dataIndex: 'statusWert', + dataIndex: 'statusKombi', renderer: function(value, meta, record, rNdx, cNdx) { var statusId = record.get('status'); var mId = record.get('id'); //also fwd the record to the asynchronous loading of statuswerte // in order to add the statuswert to the record, // after the grid was rendered... - if (value === '') { + if (!value || value === '') { this.updateStatus(mId, statusId, record); return 'Lade...'; } - var sta = Ext.data.StoreManager.getByKey('statuswerte'); - return sta.getById(value).get('wert'); + var kombis = Ext.data.StoreManager.get('statuskombi'); + var kombi = kombis.getById(value); + var st = kombi.raw.statusWert.wert + return st; } }, { header: 'Stufe', flex: 1, - dataIndex: 'statusStufe', + dataIndex: 'statusKombi', renderer: function(value, meta, record, rNdx, cNdx) { var statusId = record.get('status'); var mId = record.get('id'); //also fwd the record to the asynchronous loading of statuswerte // in order to add the statuswert to the record, // after the grid was rendered... - if (value === '') { + if (!value || value === '') { this.updateStatus(mId, statusId, record); return 'Lade...'; } - var sta = Ext.data.StoreManager.getByKey('statusstufe'); - return sta.getById(value).get('stufe'); + var kombis = Ext.data.StoreManager.get('statuskombi'); + var kombi = kombis.getById(value); + var st = kombi.raw.statusStufe.stufe + return st; } }, { header: 'OK-Flag', @@ -252,14 +256,12 @@ else { var rec = sstore.getById(opts.statusId); if (rec) { - value = rec.get('statusWert'); - var stufe = rec.get('statusStufe'); + value = rec.get('statusKombi'); //add the determined statuswert to the record. // this is necessary to let the controller determine // which actions are allowed. opts.record.beginEdit(); - opts.record.set('statusWert', value); - opts.record.set('statusStufe', stufe); + opts.record.set('statusKombi', value); opts.record.endEdit(); } }
--- a/app/view/grid/Status.js Wed Aug 31 15:58:19 2016 +0200 +++ b/app/view/grid/Status.js Wed Aug 31 15:58:49 2016 +0200 @@ -23,6 +23,7 @@ readOnly: true, allowDeselect: true, statusWerteStore: null, + statusStufeStore: null, initComponent: function() { var i18n = Lada.getApplication().bundle; @@ -34,8 +35,8 @@ messungsId: this.recordId } }); - var statusStufeStore = Ext.create('Lada.store.StatusStufe'); - statusStufeStore.load(); + this.statusStufeStore = Ext.create('Lada.store.StatusStufe'); + this.statusStufeStore.load(); this.rowEditing = Ext.create('Ext.grid.plugin.RowEditing', { clicksToMoveEditor: 1, @@ -110,33 +111,37 @@ sortable: false }, { header: i18n.getMsg('statusgrid.header.statusStufe'), - dataIndex: 'statusStufe', + dataIndex: 'statusKombi', renderer: function(value) { - var sta = Ext.data.StoreManager.get('statusstufe'); - var r; - if (value===null || value === '') { - r = i18n.getMsg('error'); - } - var item = sta.getById(value); + var kombi = Ext.data.StoreManager.get('statuskombi'); + var r = ''; + var item = kombi.getById(value); if (item) { - r = item.get('stufe'); + r = item.raw.statusStufe.stufe; } return r; }, + editor: { + xtype: 'combobox', + store: this.statusStufeStore, + queryMode: 'local', + displayField: 'stufe', + valueField: 'id', + allowBlank: false, + editable: false, + forceSelection: true + }, sortable: false }, { header: i18n.getMsg('statusgrid.header.statusWert'), - dataIndex: 'statusWert', + dataIndex: 'statusKombi', renderer: function(value) { - var sta = Ext.data.StoreManager.get('statuswerte'); + var kombi = Ext.data.StoreManager.get('statuskombi'); //This store is NOT used in the editor... - var r; - if (value===null || value === '') { - r = i18n.getMsg('error'); - } - var item = sta.getById(value); + var r = ''; + var item = kombi.getById(value); if (item) { - r = item.get('wert'); + r = item.raw.statusWert.wert; } return r; },