Commit c865df36252596f5cdaf708d0ad66a62f0968bf6
1 parent
901ba3f3
Exists in
master
and in
111 other branches
dateTime datatype in catalog
Showing
3 changed files
with
105 additions
and
55 deletions
Show diff stats
js/app/views/CatalogUI.js
... | ... | @@ -118,12 +118,21 @@ Ext.define('amdaUI.CatalogUI', { |
118 | 118 | width : 120, menuDisabled: true, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true, format : 'Y-m-d\\TH:i:s'}}); |
119 | 119 | |
120 | 120 | Ext.Array.each(result.parameters, function(obj) |
121 | - { | |
122 | - index = 'param'+(i-1).toString(); | |
121 | + { | |
122 | + index = 'param'+(i-1).toString(); | |
123 | 123 | fields[i+2] = Ext.create('Ext.data.Field',{ name : index }); |
124 | - width = 50. * parseInt(obj.size); | |
125 | - columns[i] = Ext.create('Ext.grid.column.Column', { text: obj.name, sortable : false, dataIndex: index, | |
124 | + | |
125 | + if (obj.type == 1) // dateTime | |
126 | + { | |
127 | + columns[i] = Ext.create('Ext.grid.column.Column', { text: obj.name, sortable : false, dataIndex: index, | |
128 | + width : 120, menuDisabled: true, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true, format : 'Y-m-d\\TH:i:s'}}); | |
129 | + } | |
130 | + else | |
131 | + { | |
132 | + width = 50. * parseInt(obj.size); | |
133 | + columns[i] = Ext.create('Ext.grid.column.Column', { text: obj.name, sortable : false, dataIndex: index, | |
126 | 134 | width : width, menuDisabled: true, editor: 'textfield' }); |
135 | + } | |
127 | 136 | i++; |
128 | 137 | }); |
129 | 138 | |
... | ... | @@ -567,6 +576,7 @@ Ext.define('amdaUI.CatalogUI', { |
567 | 576 | type: 'button', |
568 | 577 | text: 'Reset', |
569 | 578 | scope : this, |
579 | + disabled: true, | |
570 | 580 | handler: function() |
571 | 581 | { |
572 | 582 | // var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id); | ... | ... |
php/classes/CatalogCacheMgr.php
... | ... | @@ -7,7 +7,7 @@ |
7 | 7 | |
8 | 8 | class CatIntervalCacheObject extends IntervalCacheObject |
9 | 9 | { |
10 | - // for catalog | |
10 | + // for catalog | |
11 | 11 | private $params = array(); |
12 | 12 | |
13 | 13 | public function toArray() |
... | ... | @@ -19,13 +19,15 @@ class CatIntervalCacheObject extends IntervalCacheObject |
19 | 19 | ); |
20 | 20 | if ($this->isNew) |
21 | 21 | $result["isNew"] = true; |
22 | + | |
22 | 23 | if ($this->isModified) |
23 | 24 | $result["isModified"] = true; |
24 | 25 | |
25 | - for ($i = 0; $i < count($this->params); $i++) { | |
26 | - $paramObject = array(); | |
27 | - $index = 'param'.sprintf("%d",$i+2); | |
28 | - $result[$index] = $this->params[$i]; | |
26 | + for ($i = 0; $i < count($this->params); $i++) | |
27 | + { | |
28 | + $paramObject = array(); | |
29 | + $index = 'param'.sprintf("%d",$i+2); | |
30 | + $result[$index] = $this->params[$i]; | |
29 | 31 | } |
30 | 32 | return $result; |
31 | 33 | } |
... | ... | @@ -33,7 +35,7 @@ class CatIntervalCacheObject extends IntervalCacheObject |
33 | 35 | // for catalog |
34 | 36 | public function setParams($params) |
35 | 37 | { |
36 | - $this->params = $params; | |
38 | + $this->params = $params; | |
37 | 39 | } |
38 | 40 | |
39 | 41 | public function getParams() |
... | ... | @@ -41,17 +43,22 @@ class CatIntervalCacheObject extends IntervalCacheObject |
41 | 43 | return $this->params; |
42 | 44 | } |
43 | 45 | |
44 | - public function writeBin($handle, $paramsNumber, $paramsSizes) | |
46 | + public function writeBin($handle, $paramsNumber, $paramsSizes, $paramsTypes) | |
45 | 47 | { |
46 | - fwrite($handle,pack('L6',$this->id,$this->index,$this->start,$this->stop,$this->isNew,$this->isModified)); | |
47 | - for ($i = 0; $i < $paramsNumber; $i++) { | |
48 | - $paramString = $this->params[$i]; | |
49 | - $paramArray = explode(',',$this->params[$i]); | |
50 | - for ($j = 0; $j < $paramsSizes[$i]; $j++) fwrite($handle,pack('d', $paramArray[$j])); | |
51 | - } | |
48 | + fwrite($handle,pack('L6',$this->id,$this->index,$this->start,$this->stop,$this->isNew,$this->isModified)); | |
49 | + for ($i = 0; $i < $paramsNumber; $i++) | |
50 | + { | |
51 | + if ($paramsTypes[$i] == '1') | |
52 | + $paramString = CacheTools::iso2stamp($this->params[$i]); | |
53 | + else | |
54 | + $paramString = $this->params[$i]; | |
55 | + | |
56 | + $paramArray = explode(',',$paramString); | |
57 | + for ($j = 0; $j < $paramsSizes[$i]; $j++) fwrite($handle,pack('d', $paramArray[$j])); | |
58 | + } | |
52 | 59 | } |
53 | 60 | |
54 | - public function loadBin($handle, $paramsNumber, $paramsSizes) | |
61 | + public function loadBin($handle, $paramsNumber, $paramsSizes, $paramsTypes) | |
55 | 62 | { |
56 | 63 | $array = unpack('L6int',fread($handle,6*4)); |
57 | 64 | $this->id = $array['int1']; |
... | ... | @@ -66,7 +73,12 @@ class CatIntervalCacheObject extends IntervalCacheObject |
66 | 73 | for ($j = 0; $j < $paramsSizes[$i]; $j++) |
67 | 74 | { |
68 | 75 | $val = unpack('dval',fread($handle,8)); |
69 | - $this->params[$i] .= $val['val']; | |
76 | + | |
77 | + if ($paramsTypes[$i] == '1') | |
78 | + $this->params[$i] .= CacheTools::stamp2iso($val['val']); | |
79 | + else | |
80 | + $this->params[$i] .= $val['val']; | |
81 | + | |
70 | 82 | if ($j != $paramsSizes[$i] - 1) $this->params[$i] .= ','; |
71 | 83 | } |
72 | 84 | } |
... | ... | @@ -81,8 +93,9 @@ class CatIntervalCacheObject extends IntervalCacheObject |
81 | 93 | |
82 | 94 | class CatalogCacheObject extends TimeTableCacheObject |
83 | 95 | { |
84 | - private $paramsNumber; | |
85 | - private $paramsSizes = array(); | |
96 | + private $paramsNumber; | |
97 | + private $paramsSizes = array(); | |
98 | + private $paramsTypes = array(); | |
86 | 99 | |
87 | 100 | public function addInterval($startIso, $stopIso, $params, $isNew = false, $index = -1) |
88 | 101 | { |
... | ... | @@ -95,10 +108,12 @@ class CatalogCacheObject extends TimeTableCacheObject |
95 | 108 | |
96 | 109 | $interval->setIsNew($isNew); |
97 | 110 | array_push($this->intervals, $interval); |
111 | + | |
98 | 112 | if ($index < 0) |
99 | 113 | array_push($this->indexes, count($this->intervals) - 1); |
100 | 114 | else |
101 | 115 | array_splice($this->indexes, $index, 0, array(count($this->intervals) - 1)); |
116 | + | |
102 | 117 | if ($isNew) |
103 | 118 | $this->isModified = true; |
104 | 119 | |
... | ... | @@ -116,46 +131,56 @@ class CatalogCacheObject extends TimeTableCacheObject |
116 | 131 | $this->paramsSizes[$i] = $params[$i]['size']; |
117 | 132 | } |
118 | 133 | |
134 | + public function setParamsTypes($params) | |
135 | + { | |
136 | + for ($i = 0; $i < $this->paramsNumber; $i++) | |
137 | + $this->paramsTypes[$i] = $params[$i]['type']; | |
138 | + } | |
139 | + | |
119 | 140 | public function writeBin($handle) |
120 | 141 | { |
121 | - //Magic key ("TTC") | |
122 | - fwrite($handle,pack('C3',ord('T'),ord('T'),ord('C'))); | |
123 | - | |
124 | - //Version | |
125 | - fwrite($handle,pack('L',TimeTableCacheObject::$format_version)); | |
126 | - | |
127 | - //Token | |
128 | - for ($i = 0; $i < TimeTableCacheObject::$token_len; ++$i) | |
129 | - fwrite($handle,pack('C',ord($this->token[$i]))); | |
142 | + //Magic key ("TTC") | |
143 | + fwrite($handle,pack('C3',ord('T'),ord('T'),ord('C'))); | |
144 | + | |
145 | + //Version | |
146 | + fwrite($handle,pack('L',TimeTableCacheObject::$format_version)); | |
147 | + | |
148 | + //Token | |
149 | + for ($i = 0; $i < TimeTableCacheObject::$token_len; ++$i) | |
150 | + fwrite($handle,pack('C',ord($this->token[$i]))); | |
130 | 151 | |
131 | - //Modified | |
132 | - fwrite($handle,pack('L',$this->isModified)); | |
152 | + //Modified | |
153 | + fwrite($handle,pack('L',$this->isModified)); | |
133 | 154 | |
134 | - //Filter | |
135 | - $this->filter->writeBin($handle); | |
155 | + //Filter | |
156 | + $this->filter->writeBin($handle); | |
136 | 157 | |
137 | - //Sort | |
138 | - $this->sort->writeBin($handle); | |
158 | + //Sort | |
159 | + $this->sort->writeBin($handle); | |
139 | 160 | |
140 | - //Params Number | |
141 | - fwrite($handle,pack('L',$this->paramsNumber)); | |
161 | + //Params Number | |
162 | + fwrite($handle,pack('L',$this->paramsNumber)); | |
142 | 163 | |
143 | - //Params Sizes | |
144 | - for ($i = 0; $i < $this->paramsNumber; $i++) | |
145 | - fwrite($handle,pack('L',$this->paramsSizes[$i])); | |
146 | - | |
147 | - //Intervals | |
148 | - fwrite($handle,pack('L2',count($this->intervals), $this->lastId)); | |
164 | + //Params Sizes | |
165 | + for ($i = 0; $i < $this->paramsNumber; $i++) | |
166 | + fwrite($handle,pack('L',$this->paramsSizes[$i])); | |
167 | + | |
168 | + //Params Types | |
169 | + for ($i = 0; $i < $this->paramsNumber; $i++) | |
170 | + fwrite($handle,pack('L',$this->paramsTypes[$i])); | |
171 | + | |
172 | + //Intervals | |
173 | + fwrite($handle,pack('L2', count($this->intervals), $this->lastId)); | |
149 | 174 | |
150 | 175 | |
151 | - foreach($this->intervals as $interval) | |
152 | - $interval->writeBin($handle,$this->paramsNumber,$this->paramsSizes); | |
176 | + foreach($this->intervals as $interval) | |
177 | + $interval->writeBin($handle,$this->paramsNumber,$this->paramsSizes, $this->paramsTypes); | |
153 | 178 | |
154 | - //Indexes | |
155 | - fwrite($handle,pack('L',count($this->indexes))); | |
156 | - foreach($this->indexes as $index) | |
157 | - fwrite($handle,pack('L',$index)); | |
158 | - } | |
179 | + //Indexes | |
180 | + fwrite($handle,pack('L',count($this->indexes))); | |
181 | + foreach($this->indexes as $index) | |
182 | + fwrite($handle,pack('L',$index)); | |
183 | + } | |
159 | 184 | |
160 | 185 | public function loadBin($handle) { |
161 | 186 | //Magic key ("TTC") |
... | ... | @@ -203,7 +228,12 @@ class CatalogCacheObject extends TimeTableCacheObject |
203 | 228 | return false; |
204 | 229 | $this->paramsSizes[$i] = $res['size']; |
205 | 230 | } |
206 | - | |
231 | + //ParamsTypes | |
232 | + for ($i = 0; $i < $this->paramsNumber; $i++) { | |
233 | + if (!$res = unpack('Ltype',fread($handle,4))) | |
234 | + return false; | |
235 | + $this->paramsTypes[$i] = $res['type']; | |
236 | + } | |
207 | 237 | //Intervals |
208 | 238 | $res = unpack('L2data',fread($handle,2*4)); |
209 | 239 | $nbIntervals = $res['data1']; |
... | ... | @@ -212,7 +242,7 @@ class CatalogCacheObject extends TimeTableCacheObject |
212 | 242 | for ($i = 0; $i < $nbIntervals; ++$i) |
213 | 243 | { |
214 | 244 | $interval = new CatIntervalCacheObject(-1); |
215 | - $interval->loadBin($handle, $this->paramsNumber, $this->paramsSizes); | |
245 | + $interval->loadBin($handle, $this->paramsNumber, $this->paramsSizes, $this->paramsTypes); | |
216 | 246 | array_push($this->intervals, $interval); |
217 | 247 | } |
218 | 248 | |
... | ... | @@ -300,6 +330,7 @@ class CatalogCacheMgr extends TimeTableCacheMgr |
300 | 330 | |
301 | 331 | $this->cache->setParamsNumber(count($paramHeaders)); |
302 | 332 | $this->cache->setParamsSizes($paramHeaders); |
333 | + $this->cache->setParamsTypes($paramHeaders); | |
303 | 334 | |
304 | 335 | unset($intervals_res); |
305 | 336 | |
... | ... | @@ -336,7 +367,8 @@ class CatalogCacheMgr extends TimeTableCacheMgr |
336 | 367 | |
337 | 368 | $this->cache->setParamsNumber(count($paramHeaders)); |
338 | 369 | $this->cache->setParamsSizes($paramHeaders); |
339 | - | |
370 | + $this->cache->setParamsTypes($paramHeaders); | |
371 | + | |
340 | 372 | unset($intervals_res); |
341 | 373 | |
342 | 374 | //Update cache |
... | ... | @@ -368,6 +400,8 @@ class CatalogCacheMgr extends TimeTableCacheMgr |
368 | 400 | |
369 | 401 | $this->cache->setParamsNumber(count($paramHeaders)); |
370 | 402 | $this->cache->setParamsSizes($paramHeaders); |
403 | + $this->cache->setParamsTypes($paramHeaders); | |
404 | + | |
371 | 405 | unset($intervals_res); |
372 | 406 | |
373 | 407 | //Update cache |
... | ... | @@ -469,6 +503,7 @@ class CatalogCacheMgr extends TimeTableCacheMgr |
469 | 503 | |
470 | 504 | } |
471 | 505 | $this->cache->setParamsSizes($paramHeaders); |
506 | + $this->cache->setParamsTypes($paramHeaders); | |
472 | 507 | //Save cache file |
473 | 508 | return array('success' => $this->saveToFile(), 'token' => $this->cache->getToken(), |
474 | 509 | 'status' => $this->cache->getStatus(), 'parameters' => $paramHeaders); | ... | ... |
php/classes/CatalogMgr.php
... | ... | @@ -483,7 +483,12 @@ class CatalogMgr extends TimeTableMgr |
483 | 483 | foreach ($paramNode->attributes as $attr) |
484 | 484 | { |
485 | 485 | if ($attr->nodeName == 'datatype') |
486 | - $oneParam['type'] = $attr->nodeValue;//'Double'; | |
486 | + { | |
487 | + if ($paramNode->hasAttribute('xtype') && ($paramNode->getAttribute('xtype') == 'dateTime')) | |
488 | + $oneParam['type'] = 1; | |
489 | + else | |
490 | + $oneParam['type'] = 0;//'Double'; | |
491 | + } | |
487 | 492 | else if ($attr->nodeName != 'arraysize') |
488 | 493 | $oneParam[$attr->nodeName] = $attr->nodeValue; |
489 | 494 | } | ... | ... |