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 });

http://lada.wald.intevation.org