Blame view

js/app/views/CatalogUI.js 17.9 KB
f792a3de   elena   catalog ihm
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * Project       AMDA-NG
 * Name          CatalogUI.js
 * @class 	 amdaUI.catalogUI
 * @extends      Ext.container.Container
 * @brief	 Catalog Module UI definition (View)
 * @author 	 elena
 */

Ext.define('amdaUI.CatalogUI', {
	extend: 'Ext.container.Container',
	alias: 'widget.panelCatalog',
f9c8b272   elena   edit catalog
13
14
15
16
17
	
	requires: [
		'Ext.grid.plugin.BufferedRenderer'
	],
	
d18b535d   elena   catalog draft + c...
18
	isCatalog : true,
f792a3de   elena   catalog ihm
19
	
1340621c   Elena.Budnik   error msg when up...
20
	constructor: function(config) {
70aabdee   elena   catalog draft
21
		this.init(config);
f9c8b272   elena   edit catalog
22
23
		this.callParent(arguments);
		this.toReconfigure = true;
70aabdee   elena   catalog draft
24
		if (this.object) this.loadObject();	         
f792a3de   elena   catalog ihm
25
26
	},
	
1340621c   Elena.Budnik   error msg when up...
27
	setObject : function (object, toReconfigure) {	
f9c8b272   elena   edit catalog
28
29
30
31
		if (toReconfigure) 
			this.toReconfigure = true;
		// set object	        
		this.object = object;		 
048b4d77   elena   catalogs +
32
33
34
		// load object into view
		this.loadObject();
	},
f792a3de   elena   catalog ihm
35
	
d18b535d   elena   catalog draft + c...
36
37
38
	/**
	 * set params description into this.object
	 */
1340621c   Elena.Budnik   error msg when up...
39
	setParamInfo : function(parameters) {
70aabdee   elena   catalog draft
40
41
42
43
44
45
		var params = [];
		Ext.Array.each(parameters, function(item, index) {
			params[index] = item;	     	  
		}, this);
		
		this.object.set('parameters', params);	  
f792a3de   elena   catalog ihm
46
47
48
49
	},
	
	/**
	 * update this.object from form
1340621c   Elena.Budnik   error msg when up...
50
51
	 */	 
	updateObject : function(){  
d18b535d   elena   catalog draft + c...
52
	// get the basic form	
1340621c   Elena.Budnik   error msg when up...
53
54
		var basicForm = this.formPanel.getForm();        
		var updateStatus = true;
d18b535d   elena   catalog draft + c...
55

1340621c   Elena.Budnik   error msg when up...
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
		var fieldsWithoutName = basicForm.getFields().items;
		Ext.Array.each(fieldsWithoutName, function(item, index,allItems){
			if(item !== this.fieldName) { 		     
				if (!item.isValid()) {
					// set update isn't allowed
					updateStatus = false;    
				}
			}
		}, this);
			// if the update is allowed
		if (updateStatus) {
		/// real object update
		// update TimeTable object with the content of form
			basicForm.updateRecord(this.object);	
		}
		// return the update status  
		return updateStatus;	    
d18b535d   elena   catalog draft + c...
73
	},
f792a3de   elena   catalog ihm
74
	
1340621c   Elena.Budnik   error msg when up...
75
	updateCount : function() {
d18b535d   elena   catalog draft + c...
76
77
		this.object.set('nbIntervals',this.TTGrid.getStore().getTotalCount());		
		this.formPanel.getForm().findField('nbIntervals').setValue(this.object.get('nbIntervals'));
1340621c   Elena.Budnik   error msg when up...
78
	}, 
f9c8b272   elena   edit catalog
79
	
1340621c   Elena.Budnik   error msg when up...
80
81
	onAfterInit:  function(result, e) 
	{
70aabdee   elena   catalog draft
82
		var me = this;
1340621c   Elena.Budnik   error msg when up...
83
84
85
86
87
88
89
		if (!result) {			
			myDesktopApp.errorMsg(e.message);
			Ext.defer(function(){Ext.Msg.toFront()},10);
			 
			 return;
		}
		else if (!result.success)
f9c8b272   elena   edit catalog
90
91
92
93
94
		{
			if (result.message)
				myDesktopApp.errorMsg(result.message);
			else
				myDesktopApp.errorMsg('Unknown error during catalog cache initialisation');
1340621c   Elena.Budnik   error msg when up...
95
96

			Ext.defer(function(){Ext.Msg.toFront()},10);
f9c8b272   elena   edit catalog
97
98
			return;
		}
1340621c   Elena.Budnik   error msg when up...
99
		
f9c8b272   elena   edit catalog
100
101
		if (me.toReconfigure) 
		{          	
70aabdee   elena   catalog draft
102
103
104
105
			var fields = [], columns = [], i = 3, width, index;

			var fieldsConfig =  [{ name : 'start' },{ name : 'stop' },{ name: 'cacheId', type : 'int'},
				{ name: 'isNew', type : 'boolean', defaultValue: false },
f9c8b272   elena   edit catalog
106
				{ name: 'isModified', type : 'boolean', defaultValue: false}
70aabdee   elena   catalog draft
107
108
109
110
			];
			
			for (var j = 0; j < 5; j++) fields[j] =  Ext.create('Ext.data.Field', fieldsConfig[j]);
				
f9c8b272   elena   edit catalog
111
			columns[0] = Ext.create('Ext.grid.column.RowNumberer');
d18b535d   elena   catalog draft + c...
112

70aabdee   elena   catalog draft
113
			columns[1] = Ext.create('Ext.grid.column.Column', { text: 'Start Time', sortable : false,  dataIndex: 'start',  
f9c8b272   elena   edit catalog
114
						width : 120, menuDisabled: true, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true,  format : 'Y-m-d\\TH:i:s'}});
70aabdee   elena   catalog draft
115
			columns[2] = Ext.create('Ext.grid.column.Column', { text: 'Stop Time', sortable : false,  dataIndex: 'stop',  
f9c8b272   elena   edit catalog
116
						width : 120, menuDisabled: true, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true,  format : 'Y-m-d\\TH:i:s'}});
70aabdee   elena   catalog draft
117
118
		
			Ext.Array.each(result.parameters, function(obj) 
c865df36   Elena.Budnik   dateTime datatype...
119
120
			{			 
				index = 'param'+(i-1).toString();
70aabdee   elena   catalog draft
121
				fields[i+2] = Ext.create('Ext.data.Field',{ name : index });
1340621c   Elena.Budnik   error msg when up...
122
			
c865df36   Elena.Budnik   dateTime datatype...
123
124
125
126
127
128
129
130
131
				if (obj.type == 1) // dateTime
				{
					columns[i] = Ext.create('Ext.grid.column.Column', { text: obj.name, sortable : false,  dataIndex: index,  
						width : 120, menuDisabled: true, editor : { xtype:'datefield', allowBlank:false, hideTrigger: true,  format : 'Y-m-d\\TH:i:s'}});
				}
				else
				{					 
					width = 50. *  parseInt(obj.size);				
					columns[i] = Ext.create('Ext.grid.column.Column', { text: obj.name, sortable : false,  dataIndex: index,  
f9c8b272   elena   edit catalog
132
						width : width, menuDisabled: true, editor: 'textfield' });
c865df36   Elena.Budnik   dateTime datatype...
133
				}
70aabdee   elena   catalog draft
134
135
				i++;
			});
1340621c   Elena.Budnik   error msg when up...
136

70aabdee   elena   catalog draft
137
138
139
140
141
142
143
144
145
			var store = Ext.create('Ext.data.Store', {
				fields: fields,
				autoDestroy: false,
				pageSize : 200,
				buffered : true, 
				purgePageCount: 0,
				remoteSort: true,
				proxy: {
					type: 'direct',
1340621c   Elena.Budnik   error msg when up...
146
					api : { read   :  AmdaAction.readTTCacheIntervals },
70aabdee   elena   catalog draft
147
148
149
150
151
152
153
154
155
156
157
158
159
					// remplir automatiquement tt, sharedtt , catalog, shared catalog
					extraParams : {'typeTT' : 'catalog'},
					reader:
					{
						type: 'json',
						root: 'intervals',
						totalProperty : 'totalCount'
					}
				},
				listeners: {
					scope : me,
					load: function(store,records) {        
						// myDesktopApp.EventManager.fireEvent('refresh');
1340621c   Elena.Budnik   error msg when up...
160
161
162
							me.TTGrid.getView().refresh();
							me.TTGrid.getSelectionModel().refresh();
							me.updateCount();
70aabdee   elena   catalog draft
163
164
165
166
						//Statistical plugin
						//   	this.fireEvent("refresh");
					}
				}
f9c8b272   elena   edit catalog
167
168
			});			
			
70aabdee   elena   catalog draft
169
			me.TTGrid.reconfigure(store, columns);
f9c8b272   elena   edit catalog
170
171
		}		
		me.TTGrid.getSelectionModel().deselectAll();
70aabdee   elena   catalog draft
172
173
174
175
176
177
178
	//         	        	
	//         	// clear filters
	//         	me.TTGrid.getStore().clearFilter(true);
	//         
	//     		//clear sort
	//         	me.TTGrid.getStore().sorters.clear();
	//         	//me.TTGrid.getStore().sorters = new Ext.util.MixedCollection();
f9c8b272   elena   edit catalog
179
	         	
1340621c   Elena.Budnik   error msg when up...
180
		//set cache token to the Catalog object
f9c8b272   elena   edit catalog
181
182
183
184
		me.object.set('cacheToken', result.token);
		me.setParamInfo(result.parameters);
		
		me.TTGrid.getStore().load();
70aabdee   elena   catalog draft
185
			
f9c8b272   elena   edit catalog
186
187
188
189
190
191
		me.status = result.status;
	},
	
	/**
	 * load object catalog into this view
	 */
1340621c   Elena.Budnik   error msg when up...
192
	loadObject : function(){ 	  
f9c8b272   elena   edit catalog
193
194
195
196
197
		// load object into form
		this.formPanel.getForm().loadRecord(this.object);
	
		this.status = null;
		
1340621c   Elena.Budnik   error msg when up...
198
199
		if (this.object.get('fromPlugin')){			
			if (this.object.get('objFormat') && this.object.get('objFormat') != ''){
70aabdee   elena   catalog draft
200
				//From uploaded file
901ba3f3   Elena.Budnik   upload catalog
201
				AmdaAction.initTTCacheFromUploadedFile(this.object.get('objName'), this.object.get('objFormat'), this.isCatalog, this.onAfterInit, this);
70aabdee   elena   catalog draft
202
			}
1340621c   Elena.Budnik   error msg when up...
203
			else {
f9c8b272   elena   edit catalog
204
205
				//From tmp object (ie Statistics result)		    
				AmdaAction.initTTCacheFromTmpObject(this.object.get('folderId'), this.object.get('objName'), this.isCatalog, this.onAfterInit, this);
70aabdee   elena   catalog draft
206
207
			}
		}
1340621c   Elena.Budnik   error msg when up...
208
		else {
169f14d2   Benjamin Renard   Add shared object...
209
			var typeTT = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id).linkedNode.data.nodeType;
1340621c   Elena.Budnik   error msg when up...
210
211
			if (this.object.get('id') == '') {														  				
				//TODO ?  
70aabdee   elena   catalog draft
212
			}	
1340621c   Elena.Budnik   error msg when up...
213
			else {
70aabdee   elena   catalog draft
214
				//From existing TT file
169f14d2   Benjamin Renard   Add shared object...
215
				AmdaAction.initTTCacheFromTT(this.object.get('id'), typeTT, this.onAfterInit, this);
70aabdee   elena   catalog draft
216
217
			}
		}
d18b535d   elena   catalog draft + c...
218
	},
70aabdee   elena   catalog draft
219
	
d18b535d   elena   catalog draft + c...
220
	checkIntervalsStatusForSave : function(onStatusOk) {
70aabdee   elena   catalog draft
221
		onStatusOk();
d18b535d   elena   catalog draft + c...
222
223
224
225
226
	},
	
	/*	    
	 * save method called by Save button
	 */
70aabdee   elena   catalog draft
227
228
	saveProcess : function(toRename)
	{
f9c8b272   elena   edit catalog
229
230
231
		var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id);
		//  store / columns are the same - not needed to reconfigure grid
		this.toReconfigure = false;
d18b535d   elena   catalog draft + c...
232
            // if the name has been modified this is a creation
1340621c   Elena.Budnik   error msg when up...
233
		if (this.fclose()) {         
70aabdee   elena   catalog draft
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
			if (this.object.isModified('name') || this.object.get('fromPlugin')) {				
				// if object already has an id : it's a 'rename' of an existing  
				if (this.object.get('id')){
					// the context Node is the parent node of current edited one
					var contextNode = module.linkedNode.parentNode;
					// link a new node to the TimeTableModule
					module.createLinkedNode();
					// set the contextNode
					module.linkedNode.set('contextNode',contextNode);
					// create a new object linked
					module.createObject(this.object.getJsonValues());
					
					var obj = module.linkedNode.get('object');                                                    
					// synchronisation of objects
					this.object = obj;
					if (toRename) module.linkedNode.toRename = true;
				} 
c5984b95   elena   dblclk catalog
251
				module.linkedNode.create(/*{callback : function() {module.linkedNode.update();}, scope : this}*/);
70aabdee   elena   catalog draft
252
			} else {
f9c8b272   elena   edit catalog
253
				//update				
70aabdee   elena   catalog draft
254
				module.linkedNode.update();
1340621c   Elena.Budnik   error msg when up...
255
			}	
70aabdee   elena   catalog draft
256
		}
f792a3de   elena   catalog ihm
257
258
	},
	
d18b535d   elena   catalog draft + c...
259
	/**
f9c8b272   elena   edit catalog
260
261
	 * overwrite metod called by Save button
	 */
1340621c   Elena.Budnik   error msg when up...
262
	overwriteProcess : function(btn) {	
f9c8b272   elena   edit catalog
263
264
265
266
267
268
269
270
		if (btn == 'cancel') return;
               
		this.fieldName.clearInvalid();
		this.saveProcess(true);		
		
	},
	
	/**
d18b535d   elena   catalog draft + c...
271
272
273
	 * Check if changes were made before closing window 
	 * @return true if changes
	 */	
1340621c   Elena.Budnik   error msg when up...
274
	fclose : function() {
d18b535d   elena   catalog draft + c...
275
276
277
278
		if (this.status == null)
			return false;
		
		var isDirty = this.formPanel.getForm().isDirty() || (this.status.isModified) || (this.status.nbModified > 0) || (this.status.nbNew > 0);
1340621c   Elena.Budnik   error msg when up...
279
		return isDirty;
d18b535d   elena   catalog draft + c...
280
	},
f9c8b272   elena   edit catalog
281
 	    
70aabdee   elena   catalog draft
282
283
284
	init : function (config) 
	{	  
		this.object =   config.object;
f792a3de   elena   catalog ihm
285
	  
70aabdee   elena   catalog draft
286
287
288
289
290
291
292
293
294
		this.fieldName = new Ext.form.field.Text({
			fieldLabel: 'Name',
			allowBlank : false,
			stripCharsRe: /(^\s+|\s+$)/g,
			emptyText: 'Please no spaces!',
			name: 'name',
			validateOnChange: false,
			validateOnBlur: false,
			validFlag: false,
1340621c   Elena.Budnik   error msg when up...
295
296
297
			validator : function() {
				return this.validFlag;
			}
70aabdee   elena   catalog draft
298
		});
f9c8b272   elena   edit catalog
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
		
		var cellEditing = Ext.create('Ext.grid.plugin.CellEditing',{
//			clicksToEdit: 2,
			onEditComplete : function(ed, value, startValue) {
				var me = this,
				activeColumn = me.getActiveColumn(),
				context = me.context,
				record;

				if (activeColumn) {
					record = context.record;

					me.setActiveEditor(null);
					me.setActiveColumn(null);
					me.setActiveRecord(null);
				
					context.value = value;
					if (!me.validateEdit()) {
						me.editing = false;
						return;
					}

					// Only update the record if the new value is different than the
					// startValue. When the view refreshes its el will gain focus
					if (!record.isEqual(value, startValue)) {
					var obj = {};					
					 
					obj['cacheId']  = record.get('cacheId');
					obj['isCatalog'] = true;
					obj[activeColumn.dataIndex] = value;								  
					
					//Interval is modified on the server side
					me.editing = true;
					
1340621c   Elena.Budnik   error msg when up...
333
					AmdaAction.modifyTTCacheInterval(obj, function (result, e) {						
f9c8b272   elena   edit catalog
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
						var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id);
						if (module)
							module.getUiContent().status = result.status;
						context.grid.getSelectionModel().deselectAll();
						context.store.reload({
							callback : function(records, options, success) {
								context.view.bufferedRenderer.scrollTo(context.rowIdx, true, function() {
									me.fireEvent('edit', me, context);
									me.editing = false;
								}, me);	    	            
							}
						});
						}, this);
					}
					else
1340621c   Elena.Budnik   error msg when up...
349
						me.editing = false;
f9c8b272   elena   edit catalog
350
351
352
				}
			}	
		});
d18b535d   elena   catalog draft + c...
353

70aabdee   elena   catalog draft
354
355
356
357
		this.TTGrid =  Ext.create('Ext.grid.Panel', { 
			height: 530,
			columns: [ ],
			frame: true,
f9c8b272   elena   edit catalog
358
			columnLines: true,
1340621c   Elena.Budnik   error msg when up...
359
			//	selType: 'cellmodel',
f9c8b272   elena   edit catalog
360
			plugins: [ cellEditing, { ptype : 'bufferedrenderer'} ],
70aabdee   elena   catalog draft
361
362
363
			dockedItems: [{
				xtype: 'toolbar', 
				items: [{
1340621c   Elena.Budnik   error msg when up...
364
365
366
367
368
369
370
371
372
373
					iconCls: 'icon-add',
					scope: this,
					handler: function(){ 
						cellEditing.cancelEdit();
						var store = this.TTGrid.getStore();
							
						var selection = this.TTGrid.getView().getSelectionModel().getSelection()[0];
						var row = 0;
						if (selection)
							row = store.indexOf(selection) + 1;
70aabdee   elena   catalog draft
374
						this.TTGrid.getSelectionModel().deselectAll();
1340621c   Elena.Budnik   error msg when up...
375
376
377
									
						var me = this;
						AmdaAction.addTTCacheInterval({'index' : row, 'isCatalog' : true}, function (result, e) {
70aabdee   elena   catalog draft
378
							this.status = result.status;
1340621c   Elena.Budnik   error msg when up...
379
380
381
382
383
384
385
386
							this.TTGrid.getStore().reload({
								callback : function(records, options, success) {
									me.TTGrid.getView().bufferedRenderer.scrollTo(row, false, function() {
										me.TTGrid.getView().select(row);
										cellEditing.startEditByPosition({row: row, column: 1});	
									}, me);	
								}
							});
70aabdee   elena   catalog draft
387
388
						}, this);
					}
1340621c   Elena.Budnik   error msg when up...
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
				},{
					iconCls: 'icon-delete',
					disabled: true,
					itemId: 'delete',
					scope: this,
					handler:  function(){
						var selection = this.TTGrid.getView().getSelectionModel().getSelection()[0];
						if (selection) 
						{
							var rowId = selection.get('cacheId');						
							this.TTGrid.getSelectionModel().deselectAll();
							AmdaAction.removeTTCacheIntervalFromId(rowId, this.isCatalog, function (result, e) {
								this.status = result.status;
								this.TTGrid.getStore().reload();
							}, this);
						}
					}
70aabdee   elena   catalog draft
406
407
408
				}]
			}]
		});
f792a3de   elena   catalog ihm
409
 
1340621c   Elena.Budnik   error msg when up...
410
		this.formPanel =  Ext.create('Ext.form.Panel', { 
f13f0bd4   Elena.Budnik   New Catalog creation
411
412
413
414
415
			region : 'center',
			layout:  'hbox', 
			bodyStyle: {background : '#dfe8f6'},
			defaults: { border : false, align: 'stretch', bodyStyle: {background : '#dfe8f6'},  padding: '3'},
			fieldDefaults: { labelWidth: 80, labelAlign : 'top' },
1340621c   Elena.Budnik   error msg when up...
416
			items: [{            
f13f0bd4   Elena.Budnik   New Catalog creation
417
418
419
				xtype: 'form',		            
				flex: 1,
				buttonAlign: 'left',
1340621c   Elena.Budnik   error msg when up...
420
				// title : 'Information',		   
f13f0bd4   Elena.Budnik   New Catalog creation
421
422
423
424
425
426
				layout: {type: 'vbox', pack: 'start', align: 'stretch'},
				items : [
					this.fieldName,
					{
						xtype: 'fieldcontainer',
						layout: 'hbox',		      
1340621c   Elena.Budnik   error msg when up...
427
						items: [{
f13f0bd4   Elena.Budnik   New Catalog creation
428
429
430
431
432
								xtype:'datefield', fieldLabel:'Creation date',
								name: 'created', disabled: true, 
								hideTrigger: true, format: 'Y/m/d H:i:s'
							},			  
							{ xtype: 'splitter' },			 			 
1340621c   Elena.Budnik   error msg when up...
433
							{ xtype:'textfield', fieldLabel: 'Intervals', name: 'nbIntervals', disabled: true }
f13f0bd4   Elena.Budnik   New Catalog creation
434
435
436
437
438
439
440
441
442
443
444
445
						]                                                                       
					},
					{
						xtype: 'textarea',
						name: 'description',
						fieldLabel: 'Description',
						height: 200
					},
					{
						xtype: 'component',
						height: 180
					}], 
1340621c   Elena.Budnik   error msg when up...
446
					dockedItems:[{
f13f0bd4   Elena.Budnik   New Catalog creation
447
448
449
						xtype: 'toolbar',
						dock: 'bottom', 
						ui: 'footer',
1340621c   Elena.Budnik   error msg when up...
450
						items: [{
f13f0bd4   Elena.Budnik   New Catalog creation
451
452
453
454
455
456
457
458
459
460
461
							type: 'button',
							text: 'Create New Catalog',
							scope : this,
							handler: function () 
							{ 											
								var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id);	
										
								if (!module) return;
								var obj = module.linkedNode.get('object');
								
								if (obj && obj.get('id') == '' && !obj.get('fromPlugin')) {
1340621c   Elena.Budnik   error msg when up...
462
463
									var me = this;
									
f13f0bd4   Elena.Budnik   New Catalog creation
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
									Ext.Msg.prompt('Define Parameters', 'Please enter parameters number:', function(btn, text){
										if (btn == 'ok'){
											AmdaAction.initTTCache(me.isCatalog, text, me.onAfterInit, me); 
										}
									}, this);
								}	
							}
						}]
					},
					{  
						xtype: 'toolbar',
						dock: 'bottom', 
						ui: 'footer',
						items: [
						{
							type: 'button',
							text: 'Save',
							scope : this,
							handler: function () 
							{
								if (this.updateObject())
								{
									var basicForm = this.formPanel.getForm();      
									// if there's at least one record in the store of TTGrid
									if (this.TTGrid.getStore().getTotalCount() > 0) 
									{
										// update TimeTable object which the content of form
										basicForm.updateRecord(this.object);
d18b535d   elena   catalog draft + c...
492

f13f0bd4   Elena.Budnik   New Catalog creation
493
										var me = this;
1340621c   Elena.Budnik   error msg when up...
494
										this.checkIntervalsStatusForSave(function () {
f13f0bd4   Elena.Budnik   New Catalog creation
495
496
497
498
499
500
											//Name validation
											var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id);	
											
											if (!module) return;
											module.linkedNode.isValidName(me.fieldName.getValue(), function (res) 
											{
1340621c   Elena.Budnik   error msg when up...
501
												if (!res) {
f13f0bd4   Elena.Budnik   New Catalog creation
502
503
504
505
506
507
													me.fieldName.validFlag = 'Error during object validation';
													myDesktopApp.errorMsg(me.fieldName.validFlag);
													me.fieldName.validate();
													return;
												}
												
1340621c   Elena.Budnik   error msg when up...
508
509
510
												if (!res.valid) {
													if (res.error) {
														if (res.error.search('subtree') != -1) {  							
f13f0bd4   Elena.Budnik   New Catalog creation
511
512
513
514
515
516
517
518
519
520
521
522
523
															Ext.MessageBox.show({title:'Warning', 
																msg: res.error+'<br/>Do you want to overwrite it?',
																width: 300,
																buttons: Ext.MessageBox.OKCANCEL, 
																fn : me.overwriteProcess,
																icon: Ext.MessageBox.WARNING,
																scope : me
															});
															me.fieldName.validFlag = true;
														}
														else
															me.fieldName.validFlag = res.error;
													}
1340621c   Elena.Budnik   error msg when up...
524
													else {
f13f0bd4   Elena.Budnik   New Catalog creation
525
526
527
528
529
530
531
532
533
534
535
536
537
														me.fieldName.validFlag = 'Invalid object name';
														myDesktopApp.errorMsg(me.fieldName.validFlag);
													}
													me.fieldName.validate();
													return;
												}
												
												me.fieldName.validFlag = true;
												me.fieldName.validate();
												me.saveProcess(false);
											});
										});                            
									} 
1340621c   Elena.Budnik   error msg when up...
538
									else {
f13f0bd4   Elena.Budnik   New Catalog creation
539
540
541
542
										Ext.Msg.alert('No intervals', 'Your time table is invalid, <br>you must have at least one interval');
									}
								}
							} 
1340621c   Elena.Budnik   error msg when up...
543
						},{
f13f0bd4   Elena.Budnik   New Catalog creation
544
							type: 'button',
08eee02f   Elena.Budnik   reset catalogUI
545
546
							text: 'Reset',
							scope : this,
c865df36   Elena.Budnik   dateTime datatype...
547
							disabled: true,
1340621c   Elena.Budnik   error msg when up...
548
							handler: function() {
08eee02f   Elena.Budnik   reset catalogUI
549
550
551
552
553
// 								var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id);			
// 								module.createLinkedNode();
// 								module.createObject();
// 								this.setObject(module.getLinkedNode().get('object'), true);                           
							} 
f13f0bd4   Elena.Budnik   New Catalog creation
554
555
556
557
558
559
560
561
562
563
						},	
						{   
							type: 'button',
							text: 'Share',
							disabled: true 
						},
						{   
							type: 'button',
							text: 'Visualize',
							scope: this,
1340621c   Elena.Budnik   error msg when up...
564
							handler: function() {
f13f0bd4   Elena.Budnik   New Catalog creation
565
								var me = this;
9d412dda   elena   catalog tmp and r...
566
					
1340621c   Elena.Budnik   error msg when up...
567
								myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.visu.id, true, function (module) {	 	 							
f13f0bd4   Elena.Budnik   New Catalog creation
568
									//temporary linked node - as  Visu module is 'pseudo' interactive - no 'save', no 'execute'
1340621c   Elena.Budnik   error msg when up...
569
									var temporaryNode = Ext.create('amdaModel.CatalogNode', { leaf : true }); 
f13f0bd4   Elena.Budnik   New Catalog creation
570
571
572
573
									
									if (temporaryNode) temporaryNode.set('object',me.object); 
									module.setLinkedNode(temporaryNode);
									
1340621c   Elena.Budnik   error msg when up...
574
									module.createWindow(); 
f13f0bd4   Elena.Budnik   New Catalog creation
575
576
								});     
							}
1340621c   Elena.Budnik   error msg when up...
577
						}]
f13f0bd4   Elena.Budnik   New Catalog creation
578
579
580
581
582
583
584
					}]
				},
				{
					xtype: 'form',               
					bodyStyle: {background : '#dfe8f6'},
					//padding: '3',
					flex: 2,
1340621c   Elena.Budnik   error msg when up...
585
					items : [ this.TTGrid ] 
f13f0bd4   Elena.Budnik   New Catalog creation
586
587
				}]  
			}); 
f792a3de   elena   catalog ihm
588
	 
1340621c   Elena.Budnik   error msg when up...
589
		this.TTGrid.getSelectionModel().on('selectionchange', function(selModel,selections) {
f13f0bd4   Elena.Budnik   New Catalog creation
590
591
			this.TTGrid.down('#delete').setDisabled(selections.length === 0); 
		}, this); 
f792a3de   elena   catalog ihm
592
	
1340621c   Elena.Budnik   error msg when up...
593
		var myConf = {
f13f0bd4   Elena.Budnik   New Catalog creation
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
			layout: 'border',
			items: [		   
				this.formPanel, 		     
				{
					xtype: 'panel', 
					region: 'south',
					title: 'Information',
					collapsible: true,
					height: 100,
					autoHide: false,
					bodyStyle: 'padding:5px',
					iconCls:  'icon-information',
					loader: 
					{
						autoLoad: true,
						url: helpDir+'catalogHOWTO'
					} 
				}
			] 
1340621c   Elena.Budnik   error msg when up...
613
		};	    
f13f0bd4   Elena.Budnik   New Catalog creation
614
		Ext.apply (this, Ext.apply(arguments, myConf));	
1340621c   Elena.Budnik   error msg when up...
615
	}	 
f792a3de   elena   catalog ihm
616
});