Mercurial > lada > lada-client
comparison app/view/grid/Messungen.js @ 585:4251601c6305
Load status, messwerte and kommentare asynchronously.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 11 Mar 2015 13:13:56 +0100 |
parents | 5af82dc8612d |
children | a9268f5cde26 |
comparison
equal
deleted
inserted
replaced
584:8ed6c3fb8bda | 585:4251601c6305 |
---|---|
68 }, { | 68 }, { |
69 header: 'Status', | 69 header: 'Status', |
70 flex: 1, | 70 flex: 1, |
71 dataIndex: 'id', | 71 dataIndex: 'id', |
72 renderer: function(value) { | 72 renderer: function(value) { |
73 //fixme: dezeit existiert nur 1 status daher immer unbekannt | 73 var id = 'messung-status-item' + value; |
74 this.statusStore.load( | 74 this.updateStatus(value, id); |
75 { | 75 return '<div id="' + id + '">Lade...</div>'; |
76 params: { | |
77 messungsId: value, | |
78 } | |
79 }); | |
80 | |
81 if (!this.statusStore){ | |
82 return 'unbekannt'; | |
83 } | |
84 if (this.statusStore.getTotalCount() === 0) { | |
85 return 'unbekannt'; | |
86 } | |
87 return this.statusStore.last().get('status'); | |
88 } | 76 } |
89 }, { | 77 }, { |
90 header: 'OK-Flag', | 78 header: 'OK-Flag', |
91 dataIndex: 'fertig', | 79 dataIndex: 'fertig', |
92 flex: 1, | 80 flex: 1, |
93 renderer: function(value){ | 81 renderer: function(value) { |
94 if(value){ | 82 if (value) { |
95 return 'Ja'; | 83 return 'Ja'; |
96 } | 84 } |
97 return 'Nein'; | 85 return 'Nein'; |
98 }, | 86 }, |
99 editor: { | 87 editor: { |
103 }, { | 91 }, { |
104 header: 'Anzahl Nuklide', | 92 header: 'Anzahl Nuklide', |
105 // Gibt die Anzahl der Messwerte wieder, | 93 // Gibt die Anzahl der Messwerte wieder, |
106 // NICHT die Anzahl der verschiedenen Nukleide | 94 // NICHT die Anzahl der verschiedenen Nukleide |
107 // Eventuell ist die Bezeichnug daher irreführend | 95 // Eventuell ist die Bezeichnug daher irreführend |
96 dataIndex: 'id', | |
108 flex: 1, | 97 flex: 1, |
109 dataIndex: 'id', | |
110 renderer: function(value) { | 98 renderer: function(value) { |
111 //fixme: gibt immer 0 aus | 99 var id = 'messung-nuklid-item' + value; |
112 this.messwerteStore.load({ | 100 this.updateNuklide(value, id); |
113 params: { | 101 return '<div id="' + id + '">Lade...</div>'; |
114 messungId: value, | |
115 } | |
116 }); | |
117 | |
118 if (!this.messwerteStore){ | |
119 return 'unbekannt'; | |
120 } | |
121 return this.messwerteStore.getCount(); | |
122 } | 102 } |
123 }, { | 103 }, { |
124 header: 'Anzahl Kommentare', | 104 header: 'Anzahl Kommentare', |
125 flex: 1, | 105 flex: 1, |
126 dataIndex: 'id', | 106 dataIndex: 'id', |
127 renderer: function(value) { | 107 renderer: function(value) { |
128 //fixme: gibt immer 0 aus | 108 var id = 'messung-kommentar-item' + value; |
129 this.mKommentareStore.load({ | 109 this.updateKommentare(value, id); |
130 params: { | 110 return '<div id="' + id + '">Lade...</div>'; |
131 messungsId: value, | |
132 } | |
133 }); | |
134 | |
135 if (!this.mKommentareStore){ | |
136 return 'unbekannt'; | |
137 } | |
138 | |
139 return this.mKommentareStore.getTotalCount(); | |
140 } | 111 } |
141 }]; | 112 }]; |
142 this.initData(); | 113 this.initData(); |
143 this.callParent(arguments); | 114 this.callParent(arguments); |
144 }, | 115 }, |
145 | 116 |
146 initData: function(){ | 117 initData: function() { |
147 this.store = Ext.create('Lada.store.Messungen'); | 118 this.store = Ext.create('Lada.store.Messungen'); |
148 this.statusStore = Ext.create('Lada.store.Status'); | |
149 this.messwerteStore = Ext.create('Lada.store.Messwerte'); | |
150 this.mKommentareStore = Ext.create('Lada.store.MKommentare'); | |
151 | |
152 this.store.load({ | 119 this.store.load({ |
153 params: { | 120 params: { |
154 probeId: this.recordId | 121 probeId: this.recordId |
155 }, | |
156 success: function(record, response){ | |
157 console.log(Ext.getClassName(response)); | |
158 } | 122 } |
159 }); | 123 }); |
124 }, | |
125 | |
126 updateStatus: function(value, divId) { | |
127 var statusStore = Ext.create('Lada.store.Status'); | |
128 statusStore.on('load', | |
129 this.updateStatusColumn, | |
130 this, | |
131 {divId: divId}); | |
132 statusStore.load({ | |
133 params: { | |
134 messungsId: value | |
135 } | |
136 }); | |
137 }, | |
138 | |
139 updateNuklide: function(value, divId) { | |
140 var messwerte = Ext.create('Lada.store.Messwerte'); | |
141 messwerte.on('load', | |
142 this.updateColumn, | |
143 this, | |
144 {divId: divId}); | |
145 messwerte.load({ | |
146 params: { | |
147 messungsId: value | |
148 } | |
149 }); | |
150 }, | |
151 | |
152 updateKommentare: function(value, divId) { | |
153 var kommentare = Ext.create('Lada.store.MKommentare'); | |
154 kommentare.on('load', | |
155 this.updateColumn, | |
156 this, | |
157 {divId: divId}); | |
158 kommentare.load({ | |
159 params: { | |
160 messungsId: value | |
161 } | |
162 }); | |
163 }, | |
164 | |
165 updateColumn: function(store, record, success, opts) { | |
166 var value; | |
167 if (store.getTotalCount() === 0) { | |
168 value = 'Keine'; | |
169 } | |
170 else { | |
171 value = store.getTotalCount(); | |
172 } | |
173 Ext.fly(opts.divId).update(value); | |
174 }, | |
175 | |
176 updateStatusColumn: function(sstore, record, success, opts) { | |
177 var value; | |
178 if (sstore.getTotalCount() === 0) { | |
179 value = 'unbekannt'; | |
180 } | |
181 else { | |
182 value = sstore.last().get('status'); | |
183 } | |
184 if (Ext.fly(opts.divId)) { | |
185 Ext.fly(opts.divId).update(value); | |
186 } | |
160 } | 187 } |
161 }); | 188 }); |