Mercurial > lada > lada-client
annotate app/view/widgets/LadaForm.js @ 451:d49a6fcd9f57
Fix Creating, editing and deleting of Zusatzwerte.
author | Torsten Irländer <torsten.irlaender@intevation.de> |
---|---|
date | Thu, 12 Dec 2013 10:39:18 +0100 |
parents | de73dc41f1d3 |
children | debfcc7713e3 |
rev | line source |
---|---|
283
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
1 /** |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
2 * Generic Lada specific form. |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
3 * |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
4 * See http://moduscreate.com/expert-ext-js-model-integration-in-forms/ for |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
5 * more details |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
6 */ |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
7 Ext.define('Lada.view.widgets.LadaForm', { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
8 extend: 'Ext.form.Panel', |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
9 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
10 alias: 'widget.ladaform', |
283
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
11 bodyPadding: '10 10', |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
12 border: 0, |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
13 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
14 /** |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
15 * Can be a reference to a model instance or a model class name. |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
16 */ |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
17 model: null, |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
18 /** |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
19 * Set to the id of the model instance and the model will be loaded for you. |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
20 * Only applicable if model provided is a model class name (string). |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
21 */ |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
22 modelId: null, |
283
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
23 /** |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
24 * List of errors in the form. Typically set after the server validates the form submission |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
25 */ |
75
4a82e28dfcc4
Translate error codes and store them as attributes of the form
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
74
diff
changeset
|
26 errors: null, |
283
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
27 /** |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
28 * List of warnings in the form. Typically set after the server validates the form submission |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
29 */ |
75
4a82e28dfcc4
Translate error codes and store them as attributes of the form
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
74
diff
changeset
|
30 warnings: null, |
283
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
31 /** |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
32 * The generic (error) message for the form. Typically set after the server validates the form submission |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
33 */ |
75
4a82e28dfcc4
Translate error codes and store them as attributes of the form
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
74
diff
changeset
|
34 message: null, |
283
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
35 /** |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
36 * Flag to indicate if the validation succeeds. Typically set after the server validates the form submission |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
37 */ |
133
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
38 success: null, |
283
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
39 /** |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
40 * Flag to indicate if the form should be rendered in readonly mode. Will |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
41 * be set after calling the {setReadOnly} function. |
dec0893d38e3
Added docstrings
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
280
diff
changeset
|
42 */ |
87
ee1d1305dcff
Added field for netzbetreiber. Is needed because of FK constraints.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
85
diff
changeset
|
43 readonly: false, |
75
4a82e28dfcc4
Translate error codes and store them as attributes of the form
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
74
diff
changeset
|
44 |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
45 initComponent: function() { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
46 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
47 this.callParent(); |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
48 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
49 this.getForm().trackResetOnLoad = true; //Workaround |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
50 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
51 if (Ext.isString(this.model)) { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
52 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
53 //Load a model to be updated |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
54 if (this.modelId) { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
55 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
56 Ext.ClassManager.get(this.model).load(this.modelId, { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
57 failure: this.onModelLoadFailure, |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
58 success: this.onModelLoadSuccess, |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
59 scope: this |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
60 }); |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
61 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
62 //Load an empty record to be inserted |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
63 } else { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
64 this.bindModel(Ext.create(this.model, {})); |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
65 } |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
66 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
67 } else { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
68 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
69 //Bind the provided model to be updated |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
70 this.bindModel(this.model); |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
71 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
72 } |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
73 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
74 this.addEvents('loadsuccess', 'loadfailure', 'savesuccess', 'savefailure'); |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
75 }, |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
76 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
77 bindModel: function(model) { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
78 this.model = model; |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
79 this.loadRecord(model); |
189
214d1b274a50
As the model now should have a readonly flag, the check if the form must be
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
188
diff
changeset
|
80 // Set the form to readonly if the models readonly attribute is |
211
401d559e0461
Fix rendering the form readonly.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
189
diff
changeset
|
81 // true |
401d559e0461
Fix rendering the form readonly.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
189
diff
changeset
|
82 if (model.get('readonly') === true) { |
189
214d1b274a50
As the model now should have a readonly flag, the check if the form must be
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
188
diff
changeset
|
83 this.setReadOnly(true); |
214d1b274a50
As the model now should have a readonly flag, the check if the form must be
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
188
diff
changeset
|
84 } |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
85 }, |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
86 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
87 commit: function(callback, scope) { |
84
5ad82cff1a21
Only submit form if internal validation is ok.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
83
diff
changeset
|
88 if (this.form.isDirty() && this.form.isValid()) { |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
89 this.form.updateRecord(this.model); |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
90 |
133
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
91 var data = this.model.getAllData(); |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
92 var baseUrl = this.model.getProxy().url; |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
93 var url = baseUrl; |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
94 var method = "POST"; |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
95 if (this.model.getId()) { |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
96 url += this.model.getEidi(); |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
97 method = "PUT"; |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
98 } |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
99 |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
100 Ext.Ajax.request({ |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
101 url: url, |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
102 jsonData: data, |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
103 method: method, |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
104 callback: function(option, success, response) { |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
105 this.parseResponse(response); |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
106 if (this.success) { |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
107 console.log('Save was successfull'); |
255
82118c01bc52
#57: Open Edit-Dialog after creating a new Probe.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
228
diff
changeset
|
108 this.fireEvent('savesuccess', this, this.model, response); |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
109 } else { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
110 console.log('Save was not successfull'); |
75
4a82e28dfcc4
Translate error codes and store them as attributes of the form
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
74
diff
changeset
|
111 this.form.markInvalid(this.errors); |
255
82118c01bc52
#57: Open Edit-Dialog after creating a new Probe.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
228
diff
changeset
|
112 this.fireEvent('savefailure', this, this.model, response); |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
113 } |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
114 }, |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
115 scope: this |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
116 }); |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
117 } |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
118 }, |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
119 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
120 onModelLoadSuccess: function(record, operation) { |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
121 this.bindModel(record); |
406
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
122 this.parseResponse(operation.response); |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
123 this.fireEvent('loadsuccess', this, record, operation); |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
124 }, |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
125 |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
126 onModelLoadFailure: function(record, operation) { |
406
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
127 this.parseResponse(operation.response); |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
128 this.fireEvent('loadfailure', this, record, operation); |
74
5c58c0e8936b
Add function which translates the errorcodes returned from the server.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
66
diff
changeset
|
129 }, |
5c58c0e8936b
Add function which translates the errorcodes returned from the server.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
66
diff
changeset
|
130 |
5c58c0e8936b
Add function which translates the errorcodes returned from the server.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
66
diff
changeset
|
131 translateReturnCodes: function(codes) { |
5c58c0e8936b
Add function which translates the errorcodes returned from the server.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
66
diff
changeset
|
132 var translated = {}; |
5c58c0e8936b
Add function which translates the errorcodes returned from the server.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
66
diff
changeset
|
133 for (var k in codes) { |
5c58c0e8936b
Add function which translates the errorcodes returned from the server.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
66
diff
changeset
|
134 translated[k] = Lada.getApplication().bundle.getMsg(codes[k]); |
5c58c0e8936b
Add function which translates the errorcodes returned from the server.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
66
diff
changeset
|
135 } |
5c58c0e8936b
Add function which translates the errorcodes returned from the server.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
66
diff
changeset
|
136 return translated; |
83
8525e3525538
Move parsing the response in a seperate function.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
75
diff
changeset
|
137 }, |
280
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
138 /** |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
139 * Will set the form into readonly state. |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
140 * @param {Boolean} Flag to indicate if the form should be set to readonly |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
141 * or not. |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
142 * @param {Array} [ignoreFields="[]"] A list of fieldnames to ignore. |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
143 */ |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
144 setReadOnly: function (bReadOnly, ignoreFields) { |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
145 if(typeof(ignoreFields)==='undefined') { |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
146 ignoreFields = Array(); |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
147 } |
221
cf83b382dc02
setReadOnly now also iterates over the toolbars within the form and hide them
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
211
diff
changeset
|
148 /* Iterate over all fields and set them readonly */ |
228
08144d625b2b
Only iterate over fields of the form is readonly. This increases the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
221
diff
changeset
|
149 if (bReadOnly) { |
08144d625b2b
Only iterate over fields of the form is readonly. This increases the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
221
diff
changeset
|
150 this.getForm().getFields().each (function (field) { |
280
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
151 // Check if the field name is in the list of fields to ignore |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
152 var ignore = false; |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
153 for (var i = ignoreFields.length - 1; i >= 0; i--){ |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
154 console.log(ignoreFields[i] + "===" + field.getName()); |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
155 if (ignoreFields[i] === field.getName(true)) { |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
156 ignore = true; |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
157 }; |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
158 }; |
228
08144d625b2b
Only iterate over fields of the form is readonly. This increases the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
221
diff
changeset
|
159 //field.setDisabled(bReadOnly); |
280
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
160 if (!ignore) { |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
161 field.setReadOnly(true); |
1afccc0cab90
Issue55: Added ignoreFields parameter to the setReadonly function to be able
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
270
diff
changeset
|
162 } |
228
08144d625b2b
Only iterate over fields of the form is readonly. This increases the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
221
diff
changeset
|
163 }); |
08144d625b2b
Only iterate over fields of the form is readonly. This increases the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
221
diff
changeset
|
164 /* Iterate over all toolbars of lists and hide them */ |
08144d625b2b
Only iterate over fields of the form is readonly. This increases the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
221
diff
changeset
|
165 var childs = this.query('toolbar'); |
08144d625b2b
Only iterate over fields of the form is readonly. This increases the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
221
diff
changeset
|
166 for (var i = childs.length - 1; i >= 0; i--){ |
08144d625b2b
Only iterate over fields of the form is readonly. This increases the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
221
diff
changeset
|
167 childs[i].setVisible(false); |
08144d625b2b
Only iterate over fields of the form is readonly. This increases the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
221
diff
changeset
|
168 } |
361
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
169 /* |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
170 * Find Save-Button and hide it. Only hide it if there are not |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
171 * fields left in the form which are editable |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
172 * */ |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
173 if (ignoreFields.length == 0) { |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
174 var win = this.up('window'); |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
175 var buttons = win.query('.button'); |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
176 for (var j = buttons.length - 1; j >= 0; j--){ |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
177 if (buttons[j].text === 'Speichern') { |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
178 buttons[j].setVisible(false); |
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
179 }; |
270
0d6552bb28ea
Add cancel Button to the editproben window and only show save button if the
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
255
diff
changeset
|
180 }; |
361
8a3991b5c200
Only hide save buttons if there are no fields which should be ignore while
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
283
diff
changeset
|
181 } |
221
cf83b382dc02
setReadOnly now also iterates over the toolbars within the form and hide them
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
211
diff
changeset
|
182 } |
85
079f99229eff
Added function to mark the form as readonly.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
84
diff
changeset
|
183 }, |
133
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
184 parseResponse: function(response) { |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
185 var json = Ext.decode(response.responseText); |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
186 if (json) { |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
187 this.success = json.success; |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
188 this.errors = this.translateReturnCodes(json.errors); |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
189 this.warnings = this.translateReturnCodes(json.warnings); |
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
190 this.message = Lada.getApplication().bundle.getMsg(json.message); |
406
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
191 var e = Ext.Object.isEmpty(this.warnings); |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
192 if (!Ext.Object.isEmpty(this.warnings) || |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
193 !Ext.Object.isEmpty(this.errors)) { |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
194 this.createMessages(); |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
195 } |
185
df5dcdff7b69
Enabled readonly mode
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
133
diff
changeset
|
196 } else { |
211
401d559e0461
Fix rendering the form readonly.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
189
diff
changeset
|
197 this.setReadOnly(this.model.get('readonly')); |
133
819bfedb70de
Do not use the model.save mathod to store items in the databut but trigger a
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
87
diff
changeset
|
198 } |
406
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
199 }, |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
200 createMessages: function() { |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
201 var messages = Ext.create('Ext.form.Panel', { |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
202 bodyPadding: '5 5 5 5' |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
203 }); |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
204 for (var key in this.warnings) { |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
205 var label = Ext.create('Ext.container.Container', { |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
206 layout: 'hbox', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
207 bodyPadding: '5 5 5 5', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
208 items: [{ |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
209 xtype: 'image', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
210 src: 'gfx/icon-warning.gif', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
211 width: 18, |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
212 height: 18 |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
213 }, { |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
214 xtype: 'label', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
215 text: key + ": " + this.warnings[key], |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
216 margin: '4 0 0 5' |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
217 }] |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
218 }); |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
219 messages.insert(0, label); |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
220 } |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
221 for (var key in this.errors) { |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
222 var label = Ext.create('Ext.container.Container', { |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
223 layout: 'hbox', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
224 bodyPadding: '5 5 5 5', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
225 items: [{ |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
226 xtype: 'image', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
227 src: 'gfx/icon-error.gif', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
228 width: 18, |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
229 height: 18 |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
230 }, { |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
231 xtype: 'label', |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
232 text: key + ": " + this.errors[key], |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
233 margin: '4 0 0 5' |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
234 }] |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
235 }); |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
236 messages.insert(0, label); |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
237 } |
de73dc41f1d3
Show warnings in proben edit form.
Raimund Renkert <rrenkert@intevation.de>
parents:
361
diff
changeset
|
238 this.insert(0, messages); |
66
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
239 } |
fcb63271d1bd
Created custom Form element which is bound to the model
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
240 }); |