Mercurial > lada > lada-client
annotate app/controller/grid/Status.js @ 1016:d6e259e76de6
Updated filter value handling.
* Save and reset buttons for values
* Reload and update query stores
* set correct values on reset.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Tue, 02 Feb 2016 15:26:43 +0100 |
parents | 23bfcbdb4527 |
children | 3e9ff7786d2c |
rev | line source |
---|---|
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
3 * |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
7 */ |
89b337cbfb5d
Added status grid 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:
701
diff
changeset
|
9 /** |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
10 * This is a controller for a grid of Status |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
11 */ |
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 Ext.define('Lada.controller.grid.Status', { |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 extend: 'Ext.app.Controller', |
89b337cbfb5d
Added status grid 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:
701
diff
changeset
|
15 /** |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
16 * Initialize the Controller with |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
17 * 3 Listeners |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
18 */ |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
19 init: function() { |
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 this.control({ |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 'statusgrid': { |
637
8acb3123b46c
Remove a new record on cancel in grids with rowediting plugin.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
594
diff
changeset
|
22 edit: this.gridSave, |
945
023e622f9551
Added the ability to work with "StatusWerten" which are delivered by the lada-server.
Dustin Demuth <dustin@intevation.de>
parents:
944
diff
changeset
|
23 canceledit: this.cancelEdit, |
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 }, |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 'statusgrid button[action=add]': { |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 click: this.add |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
27 }, |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
28 'statusgrid button[action=reset]': { |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
29 click: this.reset |
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 } |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 }); |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 }, |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 |
742
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
34 /** |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
35 * This function is called when the grids roweditor saves |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
36 * the record. |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
37 * On success it refreshes the windows which contains the grid |
974
ea477f62a667
Refresh a Probe and its Messungengrid when the status of a messung was changed
Dustin Demuth <dustin@intevation.de>
parents:
970
diff
changeset
|
38 * it also tries to refresh the ProbeWindow and the messunggrid |
742
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
39 * On failure it displays a message |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
40 */ |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
41 gridSave: function(editor, context) { |
944 | 42 context.record.set('sdatum', new Date()); |
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 context.record.save({ |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 success: function() { |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 context.grid.initData(); |
974
ea477f62a667
Refresh a Probe and its Messungengrid when the status of a messung was changed
Dustin Demuth <dustin@intevation.de>
parents:
970
diff
changeset
|
46 var win = context.grid.up('window'); |
ea477f62a667
Refresh a Probe and its Messungengrid when the status of a messung was changed
Dustin Demuth <dustin@intevation.de>
parents:
970
diff
changeset
|
47 win.initData(); |
ea477f62a667
Refresh a Probe and its Messungengrid when the status of a messung was changed
Dustin Demuth <dustin@intevation.de>
parents:
970
diff
changeset
|
48 try { |
ea477f62a667
Refresh a Probe and its Messungengrid when the status of a messung was changed
Dustin Demuth <dustin@intevation.de>
parents:
970
diff
changeset
|
49 win.parentWindow.initData(); |
ea477f62a667
Refresh a Probe and its Messungengrid when the status of a messung was changed
Dustin Demuth <dustin@intevation.de>
parents:
970
diff
changeset
|
50 win.parentWindow.down('messunggrid').store.reload(); |
ea477f62a667
Refresh a Probe and its Messungengrid when the status of a messung was changed
Dustin Demuth <dustin@intevation.de>
parents:
970
diff
changeset
|
51 } |
ea477f62a667
Refresh a Probe and its Messungengrid when the status of a messung was changed
Dustin Demuth <dustin@intevation.de>
parents:
970
diff
changeset
|
52 catch(e) { |
ea477f62a667
Refresh a Probe and its Messungengrid when the status of a messung was changed
Dustin Demuth <dustin@intevation.de>
parents:
970
diff
changeset
|
53 } |
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 }, |
701
f0bc5387abcc
Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents:
637
diff
changeset
|
55 failure: function(request, response) { |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
56 var i18n = Lada.getApplication().bundle; |
701
f0bc5387abcc
Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents:
637
diff
changeset
|
57 var json = response.request.scope.reader.jsonData; |
f0bc5387abcc
Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents:
637
diff
changeset
|
58 if (json) { |
f0bc5387abcc
Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents:
637
diff
changeset
|
59 if (json.message){ |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
60 Ext.Msg.alert(i18n.getMsg('err.msg.save.title') |
701
f0bc5387abcc
Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents:
637
diff
changeset
|
61 +' #'+json.message, |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
62 i18n.getMsg(json.message)); |
701
f0bc5387abcc
Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents:
637
diff
changeset
|
63 } else { |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
64 Ext.Msg.alert(i18n.getMsg('err.msg.save.title'), |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
65 i18n.getMsg('err.msg.generic.body')); |
701
f0bc5387abcc
Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents:
637
diff
changeset
|
66 } |
f0bc5387abcc
Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents:
637
diff
changeset
|
67 } else { |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
68 Ext.Msg.alert(i18n.getMsg('err.msg.save.title'), |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
69 i18n.getMsg('err.msg.response.body')); |
701
f0bc5387abcc
Added failure - Messages
Dustin Demuth <dustin@intevation.de>
parents:
637
diff
changeset
|
70 } |
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 } |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 }); |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 }, |
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 |
742
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
75 /** |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
76 * When the edit was canceled, |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
77 * the empty row might have been created by the roweditor is removed |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
78 */ |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
79 cancelEdit: function(editor, context) { |
637
8acb3123b46c
Remove a new record on cancel in grids with rowediting plugin.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
594
diff
changeset
|
80 if (!context.record.get('id') || |
8acb3123b46c
Remove a new record on cancel in grids with rowediting plugin.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
594
diff
changeset
|
81 context.record.get('id') === '') { |
8acb3123b46c
Remove a new record on cancel in grids with rowediting plugin.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
594
diff
changeset
|
82 editor.getCmp().store.remove(context.record); |
8acb3123b46c
Remove a new record on cancel in grids with rowediting plugin.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
594
diff
changeset
|
83 } |
8acb3123b46c
Remove a new record on cancel in grids with rowediting plugin.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
594
diff
changeset
|
84 }, |
8acb3123b46c
Remove a new record on cancel in grids with rowediting plugin.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
594
diff
changeset
|
85 |
742
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
86 /** |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
87 * This function adds a new row to add a Status |
990
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
88 * and copies the data of the previous status into the new one |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
89 * if possible. |
742
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
90 */ |
6e28ebbe1a73
added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents:
701
diff
changeset
|
91 add: function(button) { |
945
023e622f9551
Added the ability to work with "StatusWerten" which are delivered by the lada-server.
Dustin Demuth <dustin@intevation.de>
parents:
944
diff
changeset
|
92 var lastrow = button.up('statusgrid').store.count() |
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 |
992
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
94 // retrive current status from the messung. |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
95 var s = button.up('window').down('messungform').getRecord().get('status'); |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
96 var recentStatus = button.up('statusgrid').store.getById(s); |
945
023e622f9551
Added the ability to work with "StatusWerten" which are delivered by the lada-server.
Dustin Demuth <dustin@intevation.de>
parents:
944
diff
changeset
|
97 |
1001
e92931b8f6b0
A fix which is supposed to reload the statuswerte store, when the Add button is used, part 2
Dustin Demuth <dustin@intevation.de>
parents:
1000
diff
changeset
|
98 button.up('statusgrid').statusWerteStore.reload(); |
1000
5beb2581a989
A fix which is supposed to reload the statuswerte store, when the Add button is used
Dustin Demuth <dustin@intevation.de>
parents:
998
diff
changeset
|
99 |
990
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
100 //If possible copy the previous record into the new one. |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
101 //this assumes the store is ordered correctly, most recent status last. |
992
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
102 // Do not copy, if current userid differs from the id of the current status |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
103 if (lastrow > 0 && |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
104 Ext.Array.contains(Lada.mst, recentStatus.get('erzeuger'))) { |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
105 |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
106 if (recentStatus) { |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
107 // clone the status |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
108 var record = recentStatus.copy() |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
109 } |
77ea9a5c5f1d
Do not clone the Status if the Recent UserID differs from the Recent Status Erzeuger. In addition: Use a Method to determine the recent status which does not require correct ordering of status
Dustin Demuth <dustin@intevation.de>
parents:
990
diff
changeset
|
110 |
990
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
111 record.set('id', null); |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
112 } else { |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
113 //create a new one |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
114 var record = Ext.create('Lada.model.Status', { |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
115 messungsId: button.up('statusgrid').recordId |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
116 }); |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
117 } |
945
023e622f9551
Added the ability to work with "StatusWerten" which are delivered by the lada-server.
Dustin Demuth <dustin@intevation.de>
parents:
944
diff
changeset
|
118 |
990
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
119 //Set the Date |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
120 record.set('datum', new Date()); |
945
023e622f9551
Added the ability to work with "StatusWerten" which are delivered by the lada-server.
Dustin Demuth <dustin@intevation.de>
parents:
944
diff
changeset
|
121 |
990
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
122 button.up('statusgrid').store.insert(lastrow, record); |
c2a726887dd7
The last status can not be edited anymore. When a new status is added, the new record is preset with ALL previous variables, this includes the StatusStufe! The Date is corrected to the current date. Also the store is sorted by Datum now.
Dustin Demuth <dustin@intevation.de>
parents:
974
diff
changeset
|
123 button.up('statusgrid').getPlugin('rowedit').startEdit(lastrow, 1); |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
124 }, |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
125 |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
126 /** |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
127 * Reset |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
128 * This Function instructs the server to reset the current status |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
129 * WIP / TODO |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
130 * |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
131 **/ |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
132 reset: function(button) { |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
133 var me = this; |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
134 var rstbutton = button; |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
135 var i18n = Lada.getApplication().bundle; |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
136 Ext.MessageBox.confirm( |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
137 i18n.getMsg('statusgrid.reset.mbox.title'), |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
138 i18n.getMsg('statusgrid.reset.mbox.text'), |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
139 function(btn) { |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
140 if (btn === 'yes') { |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
141 me.doReset(rstbutton); |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
142 } |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
143 }); |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
144 }, |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
145 |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
146 doReset: function(button) { |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
147 var i18n = Lada.getApplication().bundle; |
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
148 |
1002
54179b6043b6
Set ResetStatusValue to 8
Dustin Demuth <dustin@intevation.de>
parents:
1001
diff
changeset
|
149 var resetStatusValue = 8; |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
150 |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
151 var s = button.up('window').down('messungform').getRecord().get('status'); |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
152 var messId = button.up('window').down('messungform').getRecord().get('id'); |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
153 var recentStatus = button.up('statusgrid').store.getById(s); |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
154 |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
155 //Set Status to 'Resetted' (8) |
996
bf7bb9583a40
Statusworkflow: More work on the reset Button
Dustin Demuth <dustin@intevation.de>
parents:
994
diff
changeset
|
156 if (recentStatus) { |
bf7bb9583a40
Statusworkflow: More work on the reset Button
Dustin Demuth <dustin@intevation.de>
parents:
994
diff
changeset
|
157 var record = recentStatus.copy(); |
bf7bb9583a40
Statusworkflow: More work on the reset Button
Dustin Demuth <dustin@intevation.de>
parents:
994
diff
changeset
|
158 record.set('datum', new Date()); |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
159 record.set('statusWert', resetStatusValue); |
996
bf7bb9583a40
Statusworkflow: More work on the reset Button
Dustin Demuth <dustin@intevation.de>
parents:
994
diff
changeset
|
160 record.set('id', null); |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
161 record.set('text', i18n.getMsg('statusgrid.resetText')); |
996
bf7bb9583a40
Statusworkflow: More work on the reset Button
Dustin Demuth <dustin@intevation.de>
parents:
994
diff
changeset
|
162 } |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
163 |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
164 Ext.Ajax.request({ |
1007 | 165 url: 'lada-server/rest/status', |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
166 jsonData: record.getData(), |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
167 method: 'POST', |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
168 success: function(response) { |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
169 button.up('window').initData(); |
996
bf7bb9583a40
Statusworkflow: More work on the reset Button
Dustin Demuth <dustin@intevation.de>
parents:
994
diff
changeset
|
170 button.up('grid').initData(); |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
171 }, |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
172 failure: function(response) { |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
173 // TODO sophisticated error handling, with understandable Texts |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
174 var i18n = Lada.getApplication().bundle; |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
175 var json = Ext.JSON.decode(response.responseText); |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
176 if (json) { |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
177 if(json.errors.totalCount > 0 || json.warnings.totalCount > 0){ |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
178 formPanel.setMessages(json.errors, json.warnings); |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
179 } |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
180 if(json.message){ |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
181 Ext.Msg.alert(i18n.getMsg('err.msg.generic.title') |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
182 +' #'+json.message, |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
183 i18n.getMsg(json.message)); |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
184 } else { |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
185 Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'), |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
186 i18n.getMsg('err.msg.generic.body')); |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
187 } |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
188 } else { |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
189 Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'), |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
190 i18n.getMsg('err.msg.generic.body')); |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
191 } |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
192 } |
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
193 }); |
998
4bbb3da88c14
Statusreset: added a confirmation dialog and i18n
Dustin Demuth <dustin@intevation.de>
parents:
996
diff
changeset
|
194 } |
994
092e245b13a4
draft implementation of the status-reset function: Todo: move this into a 'confirmation dialog'
Dustin Demuth <dustin@intevation.de>
parents:
992
diff
changeset
|
195 |
594
89b337cbfb5d
Added status grid and controller.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
196 }); |