Mercurial > lada > lada-client
annotate app/model/Messprogramm.js @ 958:5d57c6c53e20
Made the grids more robust against erroneous data
author | Dustin Demuth <dustin@intevation.de> |
---|---|
date | Tue, 10 Nov 2015 09:50:06 +0100 |
parents | d4eb8fb99b5e |
children | f4eb53ba63fc |
rev | line source |
---|---|
745
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
3 * |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
7 */ |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
8 |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
9 /** |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
10 * A Messprogramm. |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
11 * This class represents and defines the model of a 'Messprogramm' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
12 **/ |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
13 Ext.define('Lada.model.Messprogramm', { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
14 extend: 'Ext.data.Model', |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
15 |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
16 fields: [{ |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
17 name: 'id' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
18 }, { |
754
6b0d0e62f7d7
added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents:
749
diff
changeset
|
19 name: 'test', |
745
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
20 type: 'boolean' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
21 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
22 name: 'netzbetreiberId', |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
23 serialize: function(value) { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
24 if (value === '') { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
25 return null; |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
26 } |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
27 return value; |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
28 } |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
29 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
30 name: 'mstId' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
31 }, { |
754
6b0d0e62f7d7
added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents:
749
diff
changeset
|
32 name: 'name' |
6b0d0e62f7d7
added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents:
749
diff
changeset
|
33 }, { |
745
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
34 name: 'datenbasisId' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
35 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
36 name: 'baId' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
37 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
38 name: 'gemId' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
39 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
40 name: 'ortId' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
41 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
42 name: 'mediaDesk' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
43 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
44 name: 'umwId', |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
45 serialize: function(value) { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
46 if (value === '') { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
47 return null; |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
48 } |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
49 return value; |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
50 } |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
51 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
52 name: 'probenartId' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
53 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
54 name: 'probenintervall' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
55 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
56 name: 'teilintervallVon' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
57 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
58 name: 'teilintervallBis' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
59 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
60 name: 'intervallOffset' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
61 }, { |
774 | 62 name: 'gueltigVon', |
63 type: 'date', | |
64 convert: function(v) { | |
793
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
65 var firstofyeartimestamp = new Date( |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
66 Date.UTC( |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
67 new Date().getFullYear(),0,1)) |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
68 .valueOf(); |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
69 var dayToMilli = 86400000; |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
70 |
774 | 71 if (!v) { |
72 return v; | |
73 } | |
793
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
74 //check if v might be a date |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
75 // unless we go back in time this will work |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
76 if (v < 1000) { |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
77 v = v * dayToMilli; |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
78 v = v + firstofyeartimestamp; |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
79 v = new Date(v); |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
80 } |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
81 return v; |
774 | 82 }, |
781
4c1101f0ba99
Serialize Date to DayOfYear when writing/saving
Dustin Demuth <dustin@intevation.de>
parents:
774
diff
changeset
|
83 serialize: function(value) { |
4c1101f0ba99
Serialize Date to DayOfYear when writing/saving
Dustin Demuth <dustin@intevation.de>
parents:
774
diff
changeset
|
84 if (value instanceof Date && !isNaN(value.valueOf())) { |
793
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
85 return Ext.Date.getDayOfYear(value); |
781
4c1101f0ba99
Serialize Date to DayOfYear when writing/saving
Dustin Demuth <dustin@intevation.de>
parents:
774
diff
changeset
|
86 } |
4c1101f0ba99
Serialize Date to DayOfYear when writing/saving
Dustin Demuth <dustin@intevation.de>
parents:
774
diff
changeset
|
87 } |
745
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
88 }, { |
774 | 89 name: 'gueltigBis', |
90 type: 'date', | |
91 convert: function(v) { | |
793
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
92 var firstofyeartimestamp = new Date( |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
93 Date.UTC( |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
94 new Date().getFullYear(),0,1)) |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
95 .valueOf(); |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
96 var dayToMilli = 86400000; |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
97 |
774 | 98 if (!v) { |
99 return v; | |
100 } | |
793
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
101 |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
102 //check if v might be a date |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
103 // unless we go back in time this will work |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
104 if (v < 1000) { |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
105 v = v * dayToMilli; |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
106 v = v + firstofyeartimestamp; |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
107 v = new Date(v); |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
108 } |
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
109 return v; |
774 | 110 }, |
781
4c1101f0ba99
Serialize Date to DayOfYear when writing/saving
Dustin Demuth <dustin@intevation.de>
parents:
774
diff
changeset
|
111 serialize: function(value) { |
4c1101f0ba99
Serialize Date to DayOfYear when writing/saving
Dustin Demuth <dustin@intevation.de>
parents:
774
diff
changeset
|
112 if (value instanceof Date && !isNaN(value.valueOf())) { |
793
d4eb8fb99b5e
Serialising GueltigVon and GueltigBis natively with Ext
Dustin Demuth <dustin@intevation.de>
parents:
781
diff
changeset
|
113 return Ext.Date.getDayOfYear(value); |
781
4c1101f0ba99
Serialize Date to DayOfYear when writing/saving
Dustin Demuth <dustin@intevation.de>
parents:
774
diff
changeset
|
114 } |
4c1101f0ba99
Serialize Date to DayOfYear when writing/saving
Dustin Demuth <dustin@intevation.de>
parents:
774
diff
changeset
|
115 } |
745
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
116 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
117 name: 'probeNehmerId' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
118 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
119 name: 'probeKommentar' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
120 }, { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
121 name: 'letzteAenderung', |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
122 type: 'date', |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
123 convert: function(v) { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
124 if (!v) { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
125 return v; |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
126 } |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
127 return new Date(v); |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
128 }, |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
129 defaultValue: new Date() |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
130 }], |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
131 |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
132 idProperty: 'id', |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
133 |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
134 proxy: { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
135 type: 'rest', |
749
78e73be45aaa
Change store on radiobutton change for proben and messprogramm.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
745
diff
changeset
|
136 url: 'lada-server/messprogramm', //not yet implemented |
745
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
137 reader: { |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
138 type: 'json', |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
139 root: 'data' |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
140 } |
df684c3d4a7c
Added Messprogramme Store and Model
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
141 } |
754
6b0d0e62f7d7
added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents:
749
diff
changeset
|
142 }); |