Commit 2ea60c88755e970a09d56a4fd8cc5be669951639

Authored by Elena Budnik
2 parents 754a2160 941aea39

Merge branch 'catalog-update-view' into 'master'

Catalog update view

See merge request !32
Showing 1 changed file with 69 additions and 50 deletions   Show diff stats
js/app/views/CatalogUI.js
... ... @@ -21,7 +21,10 @@ Ext.define('amdaUI.CatalogUI', {
21 21 this.init(config);
22 22 this.callParent(arguments);
23 23 this.toReconfigure = true;
24   - if (this.object) this.loadObject();
  24 +
  25 + if (this.object) {
  26 + this.loadObject();
  27 + }
25 28 },
26 29  
27 30 setObject : function (object, toReconfigure) {
... ... @@ -120,9 +123,9 @@ Ext.define('amdaUI.CatalogUI', {
120 123 });
121 124  
122 125 columns[1] = Ext.create('Ext.grid.column.Column', { text: 'Start Time', sortable : true, dataIndex: 'start',
123   - width : 120, menuDisabled: true, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true, format : 'Y-m-d\TH:i:s'}});
  126 + width : 120, menuDisabled: false, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true, format : 'Y-m-d\TH:i:s'}});
124 127 columns[2] = Ext.create('Ext.grid.column.Column', { text: 'Stop Time', sortable : true, dataIndex: 'stop',
125   - width : 120, menuDisabled: true, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true, format : 'Y-m-d\TH:i:s'}});
  128 + width : 120, menuDisabled: false, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true, format : 'Y-m-d\TH:i:s'}});
126 129  
127 130 Ext.Array.each(result.parameters, function(obj)
128 131 {
... ... @@ -133,13 +136,13 @@ Ext.define('amdaUI.CatalogUI', {
133 136 if (obj.type == 1) // dateTime
134 137 {
135 138 columns[i] = Ext.create('Ext.grid.column.Column', { text: obj.name, sortable : true, dataIndex: index,
136   - width : 120, menuDisabled: true, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true, format : 'Y-m-d\TH:i:s'}});
  139 + width : 120, menuDisabled: false, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true, format : 'Y-m-d\TH:i:s'}});
137 140 }
138 141 else
139 142 {
140 143 width = 50. * parseInt(obj.size);
141 144 columns[i] = Ext.create('Ext.grid.column.Column', { text: obj.name, sortable : false, dataIndex: index,
142   - width : width, menuDisabled: true, editor: 'textfield' });
  145 + width : width, menuDisabled: false, editor: 'textfield' });
143 146 }
144 147 i++;
145 148 });
... ... @@ -172,21 +175,21 @@ Ext.define('amdaUI.CatalogUI', {
172 175 me.updateCount();
173 176 //Statistical plugin
174 177 // this.fireEvent("refresh");
175   - }
  178 + }
176 179 }
177   - });
  180 + });
178 181  
179 182 me.TTGrid.reconfigure(store, columns);
180   - }
  183 + }
181 184 me.TTGrid.getSelectionModel().deselectAll();
182 185 //
183 186 // // clear filters
184 187 // me.TTGrid.getStore().clearFilter(true);
185 188 //
186   - // //clear sort
187   - // me.TTGrid.getStore().sorters.clear();
188   - // //me.TTGrid.getStore().sorters = new Ext.util.MixedCollection();
189   -
  189 + // clear sort
  190 + me.TTGrid.getStore().sorters.clear();
  191 + // me.TTGrid.getStore().sorters = new Ext.util.MixedCollection();
  192 +
190 193 //set cache token to the Catalog object
191 194 me.object.set('cacheToken', result.token);
192 195 me.setParamInfo(result.parameters);
... ... @@ -216,8 +219,9 @@ Ext.define('amdaUI.CatalogUI', {
216 219 }
217 220 else {
218 221 var typeTT = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id).linkedNode.data.nodeType;
219   - if (this.object.get('id') == '') {
220   - //TODO ?
  222 +
  223 + if (this.object.get('id') == '') {
  224 + AmdaAction.initTTCache(this.isCatalog, 1, this.onAfterInit,this);
221 225 }
222 226 else {
223 227 //From existing TT file
... ... @@ -284,8 +288,7 @@ Ext.define('amdaUI.CatalogUI', {
284 288 if (btn == 'cancel') return;
285 289  
286 290 this.fieldName.clearInvalid();
287   - this.saveProcess(true);
288   -
  291 + this.saveProcess(true);
289 292 },
290 293  
291 294 /**
... ... @@ -342,33 +345,38 @@ Ext.define('amdaUI.CatalogUI', {
342 345 // Only update the record if the new value is different than the
343 346 // startValue. When the view refreshes its el will gain focus
344 347 if (!record.isEqual(value, startValue)) {
345   - var obj = {};
346   -
347   - obj['cacheId'] = record.get('cacheId');
348   - obj['isCatalog'] = true;
349   - obj[activeColumn.dataIndex] = value;
350   -
351   - //Interval is modified on the server side
352   - me.editing = true;
353   -
354   - AmdaAction.modifyTTCacheInterval(obj, function (result, e) {
355   - var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id);
356   - if (module)
357   - module.getUiContent().status = result.status;
358   - context.grid.getSelectionModel().deselectAll();
359   - context.store.reload({
360   - callback : function(records, options, success) {
361   - context.view.bufferedRenderer.scrollTo(context.rowIdx, true, function() {
362   - me.fireEvent('edit', me, context);
363   - me.editing = false;
364   - }, me);
  348 + var obj = {};
  349 +
  350 + obj['cacheId'] = record.get('cacheId');
  351 + obj['isCatalog'] = true;
  352 + obj[activeColumn.dataIndex] = value;
  353 +
  354 + //Interval is modified on the server side
  355 + me.editing = true;
  356 +
  357 + AmdaAction.modifyTTCacheInterval(obj, function (result, e) {
  358 + var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id);
  359 + if (module)
  360 + module.getUiContent().status = result.status;
  361 + if (!context.store.loading) {
  362 + context.grid.getSelectionModel().deselectAll();
  363 + context.store.reload({
  364 + callback : function(records, options, success) {
  365 + context.view.bufferedRenderer.scrollTo(context.rowIdx, true, function() {
  366 + me.fireEvent('edit', me, context);
  367 + me.editing = false;
  368 + }, me);
  369 + }
  370 + });
  371 + }
  372 + else {
  373 + me.editing = false;
365 374 }
366   - });
367 375 }, this);
368 376 }
369 377 else
370 378 me.editing = false;
371   - }
  379 + }
372 380 }
373 381 });
374 382  
... ... @@ -376,7 +384,8 @@ Ext.define('amdaUI.CatalogUI', {
376 384 height: 530,
377 385 columns: [ ],
378 386 frame: true,
379   - columnLines: true,
  387 + columnLines: true,
  388 + selModel: {pruneRemoved: false},
380 389 // selType: 'cellmodel',
381 390 plugins: [ cellEditing, { ptype : 'bufferedrenderer'} ],
382 391 dockedItems: [{
... ... @@ -397,14 +406,16 @@ Ext.define('amdaUI.CatalogUI', {
397 406 var me = this;
398 407 AmdaAction.addTTCacheInterval({'index' : row, 'isCatalog' : true}, function (result, e) {
399 408 this.status = result.status;
400   - this.TTGrid.getStore().reload({
401   - callback : function(records, options, success) {
402   - me.TTGrid.getView().bufferedRenderer.scrollTo(row, false, function() {
403   - me.TTGrid.getView().select(row);
404   - cellEditing.startEditByPosition({row: row, column: 1});
405   - }, me);
406   - }
407   - });
  409 + if (!this.TTGrid.getStore().loading) {
  410 + this.TTGrid.getStore().reload({
  411 + callback : function(records, options, success) {
  412 + me.TTGrid.getView().bufferedRenderer.scrollTo(row, false, function() {
  413 + me.TTGrid.getView().select(row);
  414 + cellEditing.startEditByPosition({row: row, column: 1});
  415 + }, me);
  416 + }
  417 + });
  418 + }
408 419 }, this);
409 420 }
410 421 },{
... ... @@ -420,7 +431,9 @@ Ext.define('amdaUI.CatalogUI', {
420 431 this.TTGrid.getSelectionModel().deselectAll();
421 432 AmdaAction.removeTTCacheIntervalFromId(rowId, this.isCatalog, function (result, e) {
422 433 this.status = result.status;
423   - this.TTGrid.getStore().reload();
  434 + if (!this.TTGrid.getStore().loading) {
  435 + this.TTGrid.getStore().reload();
  436 + }
424 437 }, this);
425 438 }
426 439 }
... ... @@ -477,17 +490,23 @@ Ext.define('amdaUI.CatalogUI', {
477 490 var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id);
478 491  
479 492 if (!module) return;
  493 +
  494 + module.createLinkedNode();
  495 + module.createObject();
  496 +
480 497 var obj = module.linkedNode.get('object');
481 498  
482   - if (obj && obj.get('id') == '' && !obj.get('fromPlugin')) {
483 499 var me = this;
484 500  
485 501 Ext.Msg.prompt('Define Parameters', 'Please enter parameters number:', function(btn, text){
486 502 if (btn == 'ok'){
487 503 AmdaAction.initTTCache(me.isCatalog, text, me.onAfterInit, me);
488 504 }
  505 + else {
  506 + AmdaAction.initTTCache(me.isCatalog, 0, me.onAfterInit, me);
  507 + }
489 508 }, this);
490   - }
  509 +
491 510 }
492 511 }]
493 512 },
... ...