[Lada-commits] [PATCH 3 of 3] Load, set and parse deskriptoren in probe form
Wald Commits
scm-commit at wald.intevation.org
Tue May 12 15:12:14 CEST 2015
# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1431436322 -7200
# Node ID dd6925ef602857c8a4141d8674ba220de0a008a0
# Parent 3185a77e8501235bf3430b0eacc27af497195f2d
Load, set and parse deskriptoren in probe form.
diff -r 3185a77e8501 -r dd6925ef6028 app/controller/form/Probe.js
--- a/app/controller/form/Probe.js Tue May 12 15:11:15 2015 +0200
+++ b/app/controller/form/Probe.js Tue May 12 15:12:02 2015 +0200
@@ -29,6 +29,9 @@
},
'probeform [xtype="datetime"] field': {
blur: this.checkDate
+ },
+ 'probeform panel[xtype="deskriptor] combobox': {
+ select: this.deskriptorSelect
}
});
},
@@ -173,5 +176,52 @@
if (w == 0 && e == 0) {
field.up().clearWarningOrError();
}
+ },
+
+ deskriptorSelect: function(field, records) {
+ var desk = field.up('deskriptor');
+ var media = field.up('probeform').down('textfield[name="mediaDesk"]');
+ var current = media.getValue().split(' ');
+ this.clearChildDesk(field.up('deskriptor'), current);
+ if (current.length < 13) {
+ for (var i = 0; i <= 12; i++) {
+ if (i === 0) {
+ current.push('D:');
+ }
+ else if (i === desk.layer + 1) {
+ var value;
+ if (records[0].get('sn') < 10) {
+ value = '0' + records[0].get('sn');
+ }
+ else {
+ value = records[0].get('sn');
+ }
+ current.push(value);
+ }
+ else {
+ current.push('00');
+ }
+ }
+ }
+ else {
+ var value;
+ if (records[0].get('sn') < 10) {
+ value = '0' + records[0].get('sn');
+ }
+ else {
+ value = records[0].get('sn');
+ }
+ current[desk.layer + 1] = value;
+ }
+ media.setValue(current.join(' ').trim());
+ },
+
+ clearChildDesk: function(field, media) {
+ var allS = field.up('fieldset').items.items;
+ for (var i = field.layer + 1; i < 12; i++) {
+ allS[i].clearValue();
+ media[i + 1] = '00';
+ }
}
+
});
diff -r 3185a77e8501 -r dd6925ef6028 app/view/form/Probe.js
--- a/app/view/form/Probe.js Tue May 12 15:11:15 2015 +0200
+++ b/app/view/form/Probe.js Tue May 12 15:12:02 2015 +0200
@@ -20,11 +20,12 @@
'Lada.view.widget.Testdatensatz',
'Lada.view.widget.Probenart',
'Lada.view.widget.Umwelt',
+ 'Lada.view.widget.Deskriptor',
'Lada.view.widget.base.TextField',
'Lada.view.widget.base.Datetime',
'Lada.view.widget.base.FieldSet',
'Lada.view.widget.base.DateField',
- 'Lada.model.Probe',
+ 'Lada.model.Probe'
],
model: 'Lada.model.Probe',
@@ -303,6 +304,42 @@
this.getForm().loadRecord(record);
},
+ setMediaDesk: function(record) {
+ var media = record.get('mediaDesk').split(' ');
+ this.setMediaSN(0, media);
+ },
+
+ setMediaSN: function(ndx, media) {
+ if (ndx >= 12) {
+ return;
+ }
+ var me = this;
+ var current = this.down('deskriptor[layer=' + ndx + ']');
+ var cbox = current.down('combobox');
+ if (ndx === 0) {
+ cbox.store.proxy.extraParams = {
+ 'layer': ndx
+ };
+ }
+ else {
+ var parents = current.getParents(current.down('combobox'));
+ if (parents.length === 0) {
+ return;
+ }
+ cbox.store.proxy.extraParams = {
+ 'layer': ndx,
+ 'parents': parents
+ };
+ }
+ cbox.store.load(function(records, op, success) {
+ if (!success) {
+ return;
+ }
+ cbox.select(cbox.store.findRecord('sn', parseInt(media[ndx + 1], 10)));
+ me.setMediaSN(++ndx, media);
+ });
+ },
+
setMessages: function(errors, warnings) {
var key;
var element;
@@ -386,9 +423,12 @@
var fields = [];
for (var i = 0; i < 12; i++) {
fields[i] = {
+ xtype: 'deskriptor',
fieldLabel: 'S' + i,
name: 's' + i,
labelWidth: 25,
+ width: 190,
+ layer: i,
margin: '0, 10, 5, 0'
};
}
diff -r 3185a77e8501 -r dd6925ef6028 app/view/window/ProbeEdit.js
--- a/app/view/window/ProbeEdit.js Tue May 12 15:11:15 2015 +0200
+++ b/app/view/window/ProbeEdit.js Tue May 12 15:12:02 2015 +0200
@@ -141,6 +141,9 @@
var json = Ext.decode(response.response.responseText);
if (json) {
this.setMessages(json.errors, json.warnings);
+ if (!json.warnings.mediaDesk) {
+ this.down('probeform').setMediaDesk(record);
+ }
}
// If the Probe is ReadOnly, disable Inputfields and grids
if (this.record.get('readonly') === true) {
More information about the Lada-commits
mailing list