annotate app/controller/form/Ortszuordnung.js @ 1407:2195fd3946e4

Reduce code duplication.
author Tom Gottfried <tom@intevation.de>
date Wed, 22 Mar 2017 16:12:11 +0100
parents 2fc8e2b3c456
children
rev   line source
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 *
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 */
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
9 /*
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
10 * This is a controller for an Ortszuordnung Form
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
11 */
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
12 Ext.define('Lada.controller.form.Ortszuordnung', {
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 extend: 'Ext.app.Controller',
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
15 /**
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
16 * Initialize the Controller with 4 listeners
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
17 */
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 init: function() {
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 this.control({
1021
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
20 'ortszuordnungform button[action=setOrt]': {
1274
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
21 toggle: this.chooseLocation
1021
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
22 },
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
23 'ortszuordnungform button[action=save]': {
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 click: this.save
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 },
1328
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
26 'ortszuordnungform button[action=revert]': {
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
27 click: this.revert
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
28 },
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
29 'ortszuordnungform': {
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
30 validitychange: this.validityChange,
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
31 dirtychange: this.validityChange
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 }
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 });
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 },
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
36 /**
972
24b5684d74d7 Set letzteAenderung in a Bunch of controllers.
Dustin Demuth <dustin@intevation.de>
parents: 742
diff changeset
37 * The save function saves the content of the Ort form.
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
38 * On success it will reload the Store,
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
39 * on failure, it will display an Errormessage
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
40 */
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 704
diff changeset
41 save: function(button) {
1021
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
42
1022
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
43 var formPanel = button.up('ortszuordnungform');
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
44
1021
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
45 //try to disable ortPickerButton:
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
46 try {
1022
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
47 formPanel.down('button[action=setOrt]').toggle(false);
1021
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
48 }
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
49 catch (e) {
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
50 }
1289
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
51 var data = formPanel.getForm().getFieldValues(false);
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
52 var i18n = Lada.getApplication().bundle;
1289
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
53 var recordData = formPanel.getForm().getRecord().data;
1339
1a2cd9bef6d7 messprogramm zuordnung now functional
Maximilian Krambach <mkrambach@intevation.de>
parents: 1336
diff changeset
54 recordData.ortId = data.ortId[0];
1a2cd9bef6d7 messprogramm zuordnung now functional
Maximilian Krambach <mkrambach@intevation.de>
parents: 1336
diff changeset
55 recordData.ortszuordnungTyp = data.ortszuordnungTyp;
1289
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
56 recordData.ortszusatztext = data.ortszusatztext;
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
57 if (!data.letzteAenderung) {
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
58 recordData.letzteAenderung = new Date();
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
59 } else {
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
60 recordData.letzteAenderung = data.letzteAenderung;
972
24b5684d74d7 Set letzteAenderung in a Bunch of controllers.
Dustin Demuth <dustin@intevation.de>
parents: 742
diff changeset
61 }
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 formPanel.getForm().getRecord().save({
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 success: function(record, response) {
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 var json = Ext.decode(response.response.responseText);
641
5b5bba1d8e6a Load and update the correct orte form.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 615
diff changeset
65 if (json) {
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 formPanel.clearMessages();
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 formPanel.setRecord(record);
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 formPanel.setMessages(json.errors, json.warnings);
1134
f1d21e6a7449 Fixed adding new ortszuortnung for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1028
diff changeset
69 formPanel.up('window').parentWindow.initData();
1343
cd16b30dbc10 correct behaviour of 'reverting changes' in ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1341
diff changeset
70 button.setDisabled(true);
cd16b30dbc10 correct behaviour of 'reverting changes' in ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1341
diff changeset
71 button.up('toolbar').down(
cd16b30dbc10 correct behaviour of 'reverting changes' in ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1341
diff changeset
72 'button[action=revert]').setDisabled(true);
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 }
1022
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
74 //try to refresh the Grid of the Probe
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
75 try {
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
76 formPanel.up('window').parentWindow
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
77 .down('ortszuordnunggrid').store.reload();
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
78 }
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
79 catch (e) {
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
80
6d33a84979e4 More work on the Ortszuordnung grid. Saving does not work yet
Dustin Demuth <dustin@intevation.de>
parents: 1021
diff changeset
81 }
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 },
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 failure: function(record, response) {
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 button.setDisabled(true);
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 formPanel.getForm().loadRecord(formPanel.getForm().getRecord());
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 var json = response.request.scope.reader.jsonData;
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 if (json) {
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
88 if(Object.keys(json.errors).length > 0 ||
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
89 Object.keys(json.warnings).length > 0) {
695
d6ef146e1a9f Added simple handling for Failure-Messages
Dustin Demuth <dustin@intevation.de>
parents: 644
diff changeset
90 formPanel.setMessages(json.errors, json.warnings);
d6ef146e1a9f Added simple handling for Failure-Messages
Dustin Demuth <dustin@intevation.de>
parents: 644
diff changeset
91 }
d6ef146e1a9f Added simple handling for Failure-Messages
Dustin Demuth <dustin@intevation.de>
parents: 644
diff changeset
92 if(json.message){
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
93 Ext.Msg.alert(i18n.getMsg('err.msg.save.title')
701
f0bc5387abcc Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents: 695
diff changeset
94 +' #'+json.message,
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
95 i18n.getMsg(json.message));
701
f0bc5387abcc Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents: 695
diff changeset
96 } else {
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
97 Ext.Msg.alert(i18n.getMsg('err.msg.save.title'),
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
98 i18n.getMsg('err.msg.generic.body'));
695
d6ef146e1a9f Added simple handling for Failure-Messages
Dustin Demuth <dustin@intevation.de>
parents: 644
diff changeset
99 }
701
f0bc5387abcc Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents: 695
diff changeset
100 } else {
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
101 Ext.Msg.alert(i18n.getMsg('err.msg.save.title'),
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
102 i18n.getMsg('err.msg.response.body'));
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 }
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104 }
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 });
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 },
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
108 /**
1328
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
109 * reverts the form to the currently saved state
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
110 */
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
111 revert: function(button) {
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
112 var form = button.up('form');
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
113 var osg = button.up('window').down('ortstammdatengrid');
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
114 var recordData = form.getForm().getRecord().data;
1343
cd16b30dbc10 correct behaviour of 'reverting changes' in ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1341
diff changeset
115 var currentOrt = recordData.ortId;
1328
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
116 var selmod = osg.getView().getSelectionModel();
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
117 form.getForm().reset();
1347
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
118 if (!currentOrt) {
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
119 selmod.deselectAll();
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
120 } else {
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
121 var record = osg.store.getById(currentOrt);
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
122 form.setOrt(null, record);
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
123 selmod.select(record);
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
124 }
1343
cd16b30dbc10 correct behaviour of 'reverting changes' in ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1341
diff changeset
125 button.setDisabled(true);
cd16b30dbc10 correct behaviour of 'reverting changes' in ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1341
diff changeset
126 button.up('toolbar').down('button[action=save]').setDisabled(true);
1328
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
127 },
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
128
cf73b7d7cf99 reinserted discard button and functionality
Maximilian Krambach <mkrambach@intevation.de>
parents: 1327
diff changeset
129 /**
1021
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
130 * When the button is Active, a Record can be selected.
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
131 * If the Record was selected from a grid this function
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
132 * sets the ortzuordnung.
1021
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
133 */
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
134 chooseLocation: function(button, pressed, opts) {
1021
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
135 var i18n = Lada.getApplication().bundle;
1274
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
136 var win = button.up('window');
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
137 var gridPanel = win.down('panel[name=ortgrid]');
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
138 var osg = win.down('ortstammdatengrid');
1335
cba4e0b0e336 Fixed ort grid selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1328
diff changeset
139 var oForm = button.up('window').down('ortszuordnungform');
1289
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
140 osg.addListener('select',oForm.setOrt, oForm);
1293
16a80ca16732 map feature visibility, selection and grid layout
Maximilian Krambach <mkrambach@intevation.de>
parents: 1291
diff changeset
141 var map = win.down('map');
1274
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
142 if (pressed) {
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
143 win.setHeight(Ext.getBody().getViewSize().height - 50);
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
144 button.setText(i18n.getMsg('ortszuordnung.form.setOrt.pressed'));
1293
16a80ca16732 map feature visibility, selection and grid layout
Maximilian Krambach <mkrambach@intevation.de>
parents: 1291
diff changeset
145 map.featureLayer.setVisibility(true);
1274
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
146 win.setY(25);
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
147 gridPanel.show();
1336
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
148 var mstId = oForm.up('window').probe ? oForm.up('window').probe.get('mstId') :
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
149 oForm.up('window').messprogramm.get('mstId');
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
150 var mst = Ext.data.StoreManager.get('messstellen');
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
151 var ndx = mst.findExact('id', mstId);
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
152 var nId = mst.getAt(ndx).get('netzbetreiberId');
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
153 var store = Ext.create('Lada.store.Orte', {
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
154 defaultPageSize: 0,
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
155 listeners: {
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
156 beforeload: {
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
157 fn: function() {
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
158 osg.setLoading(true);
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
159 }
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
160 },
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
161 load: {
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
162 fn: function() {
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
163 osg.setLoading(false);
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
164 osg.setStore(store);
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
165 osg.store.filterBy(function(record) {
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
166 if (record.get('netzbetreiberId') ===
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
167 nId) {
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
168 return true;
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
169 }
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
170 });
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
171 }
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
172 }
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
173 }
f879c806f880 Create orte store for grid to have only orte with the correct netzbetreiberId
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1335
diff changeset
174 });
1293
16a80ca16732 map feature visibility, selection and grid layout
Maximilian Krambach <mkrambach@intevation.de>
parents: 1291
diff changeset
175 win.doLayout();
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
176 osg.addListener('select',oForm.setOrt, oForm);
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
177
1274
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
178 }
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
179 else {
1293
16a80ca16732 map feature visibility, selection and grid layout
Maximilian Krambach <mkrambach@intevation.de>
parents: 1291
diff changeset
180 map.featureLayer.setVisibility(false);
16a80ca16732 map feature visibility, selection and grid layout
Maximilian Krambach <mkrambach@intevation.de>
parents: 1291
diff changeset
181 var y = (Ext.getBody().getViewSize().height - 465) / 2;
1274
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
182 win.setHeight(465);
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
183 win.setY(y);
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
184 button.setText(i18n.getMsg('ortszuordnung.form.setOrt'));
1274
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
185 gridPanel.hide();
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
186 osg.removeListener('select',oForm.setOrt, oForm);
1293
16a80ca16732 map feature visibility, selection and grid layout
Maximilian Krambach <mkrambach@intevation.de>
parents: 1291
diff changeset
187 oForm.doLayout();
1274
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
188 }
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
189 },
a792eecf1614 Updated Layout and Map for 'ortsbezug'-window. WIP!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1147
diff changeset
190
1021
1df6b6210b42 WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Dustin Demuth <dustin@intevation.de>
parents: 1013
diff changeset
191 /**
1291
e9f812528324 ortszuordnung form changes
Maximilian Krambach <mkrambach@intevation.de>
parents: 1289
diff changeset
192 * The validitychange function enables or disables the save button which
e9f812528324 ortszuordnung form changes
Maximilian Krambach <mkrambach@intevation.de>
parents: 1289
diff changeset
193 * is present in the toolbar of the form.
1013
75ce503ab296 Added a Ortszuordnungwindow and Form
Dustin Demuth <dustin@intevation.de>
parents: 972
diff changeset
194 */
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
195 validityChange: function(form, valid) {
1347
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
196 // the simple form.isDirty() check seems to fail for a lot of cases
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
197 var ortIdIsDirty = true;
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
198 if (form.getRecord().data.ortId == form.findField('ortId').getValue()) {
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
199 ortIdIsDirty = false;
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
200 }
1343
cd16b30dbc10 correct behaviour of 'reverting changes' in ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1341
diff changeset
201 if (form.findField('ortszusatztext').isDirty()
cd16b30dbc10 correct behaviour of 'reverting changes' in ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1341
diff changeset
202 || form.findField('ortszuordnungTyp').isDirty()
1347
2fc8e2b3c456 fix ortszuordnung 'revert' if record is new ortszuordnung
Maximilian Krambach <mkrambach@intevation.de>
parents: 1343
diff changeset
203 || ortIdIsDirty) {
1341
2e8eba3918b1 OrtszuordnungMp fix
Maximilian Krambach <mkrambach@intevation.de>
parents: 1339
diff changeset
204 form.owner.down('button[action=revert]').setDisabled(false);
2e8eba3918b1 OrtszuordnungMp fix
Maximilian Krambach <mkrambach@intevation.de>
parents: 1339
diff changeset
205 if (valid && form.getValues().ortId !== '') {
2e8eba3918b1 OrtszuordnungMp fix
Maximilian Krambach <mkrambach@intevation.de>
parents: 1339
diff changeset
206 form.owner.down('button[action=save]').setDisabled(false);
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
207 } else {
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
208 form.owner.down('button[action=save]').setDisabled(true);
1144
5ceb0381ae73 Set a regex and required for ortszuordnungstyp field.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
209 }
1288
08085b7d1d0b Ortszuordnung: Search, new orte, display and validity check
Maximilian Krambach <mkrambach@intevation.de>
parents: 1274
diff changeset
210 } else {
1289
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
211 //not dirty
bfdc00c24baf Ortszuordnung for messprogramm and probe using same form
Maximilian Krambach <mkrambach@intevation.de>
parents: 1288
diff changeset
212 form.owner.down('button[action=save]').setDisabled(true);
1341
2e8eba3918b1 OrtszuordnungMp fix
Maximilian Krambach <mkrambach@intevation.de>
parents: 1339
diff changeset
213 form.owner.down('button[action=revert]').setDisabled(true);
603
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214 }
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
215 }
9d0113bc2f70 Added ort form and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
216 });

http://lada.wald.intevation.org