Commit a54752972437e5b56a4437b9c082e6d9ba7204b7
1 parent
016bdaae
Exists in
master
and in
111 other branches
use a hash for metadata and small refactoring on epntap.php
Showing
2 changed files
with
14 additions
and
27 deletions
Show diff stats
js/app/views/EpnTapUI.js
... | ... | @@ -186,7 +186,10 @@ Ext.create('Ext.data.Store', { |
186 | 186 | // console.log(Ext.decode(operation.response.responseText)); |
187 | 187 | }, |
188 | 188 | 'metachange': function(store, meta) { |
189 | - Ext.getCmp('epnTapGranulesGrid').reconfigure(store, meta.columns); | |
189 | + if(meta.metaHash != store.metaHash) { | |
190 | + Ext.getCmp('epnTapGranulesGrid').reconfigure(store, meta.columns); | |
191 | + store.metaHash = meta.metaHash; | |
192 | + } | |
190 | 193 | } |
191 | 194 | } |
192 | 195 | }); |
... | ... |
php/epntap.php
... | ... | @@ -119,15 +119,8 @@ function getServices() { |
119 | 119 | } |
120 | 120 | |
121 | 121 | function getNbResults() { |
122 | - $url = getParam('url'); | |
123 | - $tableName = getParam('tableName'); | |
124 | - $targetName = getParam('targetName'); | |
125 | - $productTypes = getParam('productTypes'); | |
126 | - $timeMin = getParam('timeMin'); | |
127 | - $timeMax = getParam('timeMax'); | |
128 | - | |
129 | - $query = "SELECT COUNT(*) AS nb_rows FROM $tableName" . createFilter($targetName, $productTypes, $timeMin, $timeMax); | |
130 | - $response = request($url, $query); | |
122 | + $query = "SELECT COUNT(*) AS nb_rows FROM " . getParam('tableName') . createFilter(getParam('targetName'), getParam('productTypes'), getParam('timeMin'), getParam('timeMax')); | |
123 | + $response = request(getParam('url'), $query); | |
131 | 124 | if($response['success']) { |
132 | 125 | $response['success'] = false; |
133 | 126 | $response['msg'] = 'The service returned a bad value, can not get the number of results.'; |
... | ... | @@ -153,23 +146,11 @@ function getNbResults() { |
153 | 146 | } |
154 | 147 | |
155 | 148 | function getGranules() { |
156 | - $url = getParam('url'); | |
157 | - $tableName = getParam('tableName'); | |
158 | - $targetName = getParam('targetName'); | |
159 | - $productTypes = getParam('productTypes'); | |
160 | - $timeMin = getParam('timeMin'); | |
161 | - $timeMax = getParam('timeMax'); | |
162 | - $start = getParam('start'); | |
163 | - $limit = getParam('limit'); | |
164 | - $nbRes = getParam('nbRes'); | |
165 | - $sortKey = getParam('sort'); | |
166 | - $sortDir = getParam('dir'); | |
167 | - | |
168 | - $sort = is_null($sortKey) ? '' : "ORDER BY $sortKey $sortDir"; | |
169 | - $filter = createFilter($targetName, $productTypes, $timeMin, $timeMax); | |
170 | - $query = "SELECT TOP $limit * FROM $tableName $filter $sort OFFSET $start"; | |
149 | + $sort = is_null(getParam('sort')) ? '' : "ORDER BY " . getParam('sort') . " " . getParam('dir'); | |
150 | + $filter = createFilter(getParam('targetName'), getParam('productTypes'), getParam('timeMin'), getParam('timeMax')); | |
151 | + $query = "SELECT TOP " . getParam('limit') . " * FROM " . getParam('tableName') . " $filter $sort OFFSET " . getParam('start'); | |
171 | 152 | // error_log('getGranules query: ' . $query); |
172 | - $response = request($url, $query); | |
153 | + $response = request(getParam('url'), $query); | |
173 | 154 | if($response['success']) { |
174 | 155 | $visibleColumns = ['granule_gid', 'obs_id', 'dataproduct_type', 'time_min', 'time_max', 'instrument_name', 'processing_level', 'access_estsize', 'thumbnail_url', 'access_url']; // rest are hidden |
175 | 156 | $names = ['granule_gid' => 'GID', 'dataproduct_type' => 'Type', 'processing_level' => 'Proc. lvl', 'access_estsize' => 'Size', 'access_url' => 'URL']; // default: pretty printed key name |
... | ... | @@ -186,13 +167,16 @@ function getGranules() { |
186 | 167 | 'text' => array_key_exists($key, $names) ? $names[$key] : ucfirst(str_replace('_', ' ', $key)), |
187 | 168 | 'width' => array_key_exists($key, $widths) ? $widths[$key] : 50, |
188 | 169 | 'hidden' => !in_array($key, $visibleColumns), |
170 | + 'filterable' => true, | |
171 | + // 'filter' => ['type' => 'list', 'options' => ['Image', 'Map']], | |
189 | 172 | 'renderer' => 'granule.' . (array_key_exists($key, $renderers) ? $renderers[$key] : 'text') |
190 | 173 | ]; |
191 | 174 | } |
192 | 175 | |
193 | - $response['total'] = $nbRes; | |
176 | + $response['total'] = (int)getParam('nbRes'); | |
194 | 177 | $response['metaData']['fields'] = $fields; |
195 | 178 | $response['metaData']['columns'] = $columns; |
179 | + $response['metaData']['metaHash'] = md5(serialize($response['metaData'])); | |
196 | 180 | } |
197 | 181 | return $response; |
198 | 182 | } |
... | ... |