From de9b257886fba5949c8d2e03414c75451f388f58 Mon Sep 17 00:00:00 2001
From: Benjamin Renard <benjamin.renard@akka.eu>
Date: Wed, 12 Aug 2015 08:44:01 +0200
Subject: [PATCH] Update TimeSelectorUI for catalog selection

---
 js/app/views/DownloadUI.js     |  2 +-
 js/app/views/SearchUI.js       |  2 +-
 js/app/views/StatisticsUI.js   |  2 +-
 js/app/views/TimeSelectorUI.js | 91 +++++++++++++++++++------------------------------------------------------------------------
 4 files changed, 22 insertions(+), 75 deletions(-)

diff --git a/js/app/views/DownloadUI.js b/js/app/views/DownloadUI.js
index b1d2379..327b667 100644
--- a/js/app/views/DownloadUI.js
+++ b/js/app/views/DownloadUI.js
@@ -145,7 +145,7 @@ Ext.define('amdaUI.DownloadUI', {
             if (downloadSrc === 0) 
             {            
                 var timeformat =  basicForm.findField('timeformat').getRawValue();         
-                var timeSource = values.timesrc_downloadTimeSelector;           
+                var timeSource = this.timeSelector.getActiveTimeSource();     
                 var structure = values.filestructure;
                 var sampling = values.sampling ? values.sampling : 600;
 		var refparamSampling = values.refparamsampling == 'on';
diff --git a/js/app/views/SearchUI.js b/js/app/views/SearchUI.js
index 5aff84c..770a13e 100755
--- a/js/app/views/SearchUI.js
+++ b/js/app/views/SearchUI.js
@@ -68,7 +68,7 @@ Ext.define('amdaUI.SearchUI', {
 	// get the basic form
 	var basicForm = this.formPanel.getForm();
 	// get the timeSource selected
-	var timeSource = basicForm.findField('timesrc_'+this.timeSelector.id).getGroupValue();	    
+	var timeSource = this.timeSelector.getActiveTimeSource();	    
 	var updateStatus = true;
 
 	  var fieldsWithoutName = basicForm.getFields().items;
diff --git a/js/app/views/StatisticsUI.js b/js/app/views/StatisticsUI.js
index f338733..e8868ba 100644
--- a/js/app/views/StatisticsUI.js
+++ b/js/app/views/StatisticsUI.js
@@ -68,7 +68,7 @@ Ext.define('amdaUI.StatisticsUI', {
 	    });
 	    this.object.set('parameter', paramArr);
 	    
-	    var timeSource = formValues.timesrc_statisticsTimeSelector; 
+	    var timeSource = this.timeSelector.getActiveTimeSource(); 
 
 	    if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0] // timeSource  'TimeTable'
                         && this.timeSelector.TTGrid.getStore().count() == 0) {
diff --git a/js/app/views/TimeSelectorUI.js b/js/app/views/TimeSelectorUI.js
index b30f09d..3f134e6 100644
--- a/js/app/views/TimeSelectorUI.js
+++ b/js/app/views/TimeSelectorUI.js
@@ -20,7 +20,7 @@ Ext.define('amdaUI.TimeSelectorUI',
     
     setTTTab: function(arrayTT) 
     {
-        /*var arrayRec = new Array();
+        var arrayRec = new Array();
         var index = 1;
         if (arrayTT)
         {
@@ -45,9 +45,9 @@ Ext.define('amdaUI.TimeSelectorUI',
         // RadioManager is a singleton working with getByName !!!!!	
         var obj = new Object();  	 
         obj['timesrc_' + this.id] =  this.activeTab;        
-        this.timeSrc.setValue(obj); 
+        this.timeSrc.setActiveTab(this.activeTab); 
         
-        if (index === 0) this.TTGrid.getStore().loadData(arrayRec);       */ 
+        if (index === 0) this.TTGrid.getStore().loadData(arrayRec);
     },
     
     addTT : function(newTTName,newTTid)
@@ -55,10 +55,8 @@ Ext.define('amdaUI.TimeSelectorUI',
         // set the TimeTable radio checked
         var obj = new Object();  
         obj['timesrc_'+this.id] =  amdaModel.AmdaTimeObject.inputTimeSrc[0]; /*'TimeTable'*/
-        this.timeSrc.setValue(obj);
+        this.timeSrc.setActiveTab(obj['timesrc_'+this.id]); 
         
-        // fireEvent to show the corresponding panel
-        this.timeSrc.fireEvent('change', this.timeSrc, this.timeSrc.getValue());
         // search for an existing record in store with this unique name
         var existingIndex = this.TTGrid.store.findExact( 'name', newTTName);
         // if no corresponding TT found
@@ -69,6 +67,11 @@ Ext.define('amdaUI.TimeSelectorUI',
         }        
     },
    
+    getActiveTimeSource: function()
+    {
+    	return this.timeSrc.getActiveTab().getItemId(); 
+    },
+    
     initComponent: function() 
     {
         this.activeField = null;
@@ -84,7 +87,7 @@ Ext.define('amdaUI.TimeSelectorUI',
             columns: 
             [ 
                 Ext.create('Ext.grid.RowNumberer', { width: 20 } ),
-                { header: "Time Table Name", dataIndex: 'name', flex:1, sortable : false, menuDisabled: true },
+                { header: "Time Table or Catalog Name", dataIndex: 'name', flex:1, sortable : false, menuDisabled: true },
                 { 
                   menuDisabled: true,  width: 30, renderer: function()
                     {
@@ -100,7 +103,10 @@ Ext.define('amdaUI.TimeSelectorUI',
                         ddGroup: 'explorerTree',
                         notifyOver  : function(ddSource, e, data)
                         {
-                                if ((data.records[0].get('nodeType') == 'timeTable' || data.records[0].get('nodeType') == 'sharedtimeTable') && (data.records[0].get('leaf')))
+                                if ((data.records[0].get('nodeType') == 'timeTable' || 
+                                	 data.records[0].get('nodeType') == 'sharedtimeTable' ||
+                                	 data.records[0].get('nodeType') == 'catalog' ||
+                                	 data.records[0].get('nodeType') == 'sharedcatalog') && (data.records[0].get('leaf')))
                                 {
                                     this.valid = true;
                                     return this.dropAllowed;
@@ -193,28 +199,6 @@ Ext.define('amdaUI.TimeSelectorUI',
                 }
                 
         });
-                                                                       
-        this.cardContainer = 
-        {
-                xtype: 'container',
-                flex: 4,
-                width: '99%',
-                layout: 'card',
-                border: false,
-                activeItem: 1,
-                items: 
-                [                           
-                    this.TTGrid,  
-                    this.intervalSel
-                ],
-                listeners: 
-                {
-                    afterrender: function (container,opt)
-                    {
-                        this.layout.setActiveItem(this.initialConfig.activeItem);
-                    }
-                }
-        };
         
         this.timeSrc = new Ext.tab.Panel(
             {
@@ -227,66 +211,29 @@ Ext.define('amdaUI.TimeSelectorUI',
                 	  title: 'Interval',
                 	  layout: 'fit',
                 	  bodyStyle: 'background: none',
+                	  itemId: amdaModel.AmdaTimeObject.inputTimeSrc[1],//'Interval'
                 	  items: [
                 	          this.intervalSel
                 	  ]
                   },
                   {
-                	  title: 'Time Table',
+                	  title: 'Time Table or Catalog',
                 	  layout: 'fit',
+                	  itemId: amdaModel.AmdaTimeObject.inputTimeSrc[0],//'TimeTable'
                 	  items: [
                 	          this.TTGrid
                 	  ]
-                  },
-                  {
-                	  title: 'Catalog',
-                	  items: [
-                	  ]
                   }
-                    /*{
-                        boxLabel: 'Time Table', 
-                        name: 'timesrc_'+this.id, 
-                        inputValue: amdaModel.AmdaTimeObject.inputTimeSrc[0]//'TimeTable',                   
-                    },
-                    {
-                        boxLabel: 'Interval', 
-                        name: 'timesrc_'+this.id, 
-                        inputValue: amdaModel.AmdaTimeObject.inputTimeSrc[1],//'Interval', 
-                        checked: true                    
-                    },
-                    {
-                        boxLabel: 'Catalog', 
-                        name: 'timesrc_'+this.id, 
-                        inputValue: amdaModel.AmdaTimeObject.inputTimeSrc[2],//'Catalog'
-                    }*/
-                ]/*,	    
-                listeners: 
-                {
-                        scope: this,
-                        change: function(radio, newValue, oldValue, options)
-                        {		      			    
-                            var ttIndex =  newValue['timesrc_'+this.id] === amdaModel.AmdaTimeObject.inputTimeSrc[0] ? 0 : 1 ;		      
-                            if (this.rendered)
-                            {				 
-                                    radio.nextSibling().layout.setActiveItem(ttIndex);
-                            } 
-                            else 
-                            {				 
-                                    this.cardContainer.activeItem = ttIndex;
-                            }		   
-                        }
-                }      */         
+                ]     
         });
         
         var config = 
         {
-                //style: { borderColor: '#98c0f4', borderWidth: '2px' },   
                 title: 'Time Selection',
                 layout: 'fit',
                 items: 
                 [
-                    this.timeSrc/*,
-                    this.cardContainer*/
+                    this.timeSrc
                 ]
         };
 	 
--
libgit2 0.21.2