Commit a54752972437e5b56a4437b9c082e6d9ba7204b7

Authored by Nathanael Jourdane
1 parent 016bdaae

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 }
... ...