commit 36171e6ece21e3e91cde5ee03183319553858932
Author: Alessandro_N <alessandro.nastasi@ias.u-psud.fr>
Date:   Fri Apr 17 19:45:56 2015 +0200

    Updated code to hide the Dataset name from any panel/window header

diff --git a/szcluster-db/workspace/client-user/js/components/datasetServices/columnsDefinitionService.js b/szcluster-db/workspace/client-user/js/components/datasetServices/columnsDefinitionService.js
new file mode 100644
index 0000000..6dd7f63
--- /dev/null
+++ b/szcluster-db/workspace/client-user/js/components/datasetServices/columnsDefinitionService.js
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright 2010-2014 CNES - CENTRE NATIONAL d'ETUDES SPATIALES
+ * 
+ * This file is part of SITools2.
+ * 
+ * SITools2 is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * SITools2 is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * SITools2. If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+/*
+ * global Ext, sitools, ID, i18n, document, showResponse, alertFailure, LOCALE,
+ * ImageChooser, loadUrl, extColModelToStorage, SitoolsDesk
+ */
+
+Ext.namespace('sitools.user.component.dataviews.services');
+
+/**
+ * GUI Service to download a data selection from the dataset
+ * 
+ * @required datasetId
+ * @required datasetUrl
+ * @cfg {Ext.data.JsonStore} the store where nodes are saved
+ * @class sitools.user.component.dataviews.services.addSelectionService
+ * @extends Ext.Window
+ */
+
+sitools.user.component.dataviews.services.columnsDefinitionService = {};
+
+sitools.user.component.dataviews.services.columnsDefinitionService.getParameters = function() {
+	return [];
+};
+
+sitools.user.component.dataviews.services.columnsDefinitionService.executeAsService = function(
+		config) {
+	var windowConfig = {
+		title : "Dataset definitions",	//i18n.get('label.definitionTitle') + " : "
+						//	+ config.dataview.datasetName,
+		datasetName : config.dataview.datasetName,
+		iconCls : "semantic",
+		datasetDescription : config.datasetDescription,
+		type : "defi",
+		saveToolbar : true,
+		toolbarItems : []
+	};
+
+	var javascriptObject = sitools.user.component.columnsDefinition;
+
+	Ext.apply(windowConfig, {
+				id : "defi" + config.dataview.datasetId
+			});
+	var componentCfg = {
+		datasetId : config.dataview.datasetId,
+		datasetCm : config.dataview.datasetCm,
+		datasetName : config.dataview.datasetName,
+		dictionaryMappings : config.dataview.dictionaryMappings,
+		preferencesPath : "/" + config.dataview.datasetName,
+		preferencesFileName : "semantic"
+	};
+
+	SitoolsDesk.addDesktopWindow(windowConfig, componentCfg, javascriptObject);
+};
diff --git a/szcluster-db/workspace/client-user/js/components/datasetServices/plotService.js b/szcluster-db/workspace/client-user/js/components/datasetServices/plotService.js
new file mode 100644
index 0000000..55b02f8
--- /dev/null
+++ b/szcluster-db/workspace/client-user/js/components/datasetServices/plotService.js
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright 2010-2014 CNES - CENTRE NATIONAL d'ETUDES SPATIALES
+ * 
+ * This file is part of SITools2.
+ * 
+ * SITools2 is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * SITools2 is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * SITools2. If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+/*global Ext, sitools, ID, i18n, document, showResponse, alertFailure, LOCALE, ImageChooser, loadUrl, extColModelToStorage, SitoolsDesk, WARNING_NB_RECORDS_PLOT*/
+
+Ext.namespace('sitools.user.component.dataviews.services');
+
+/**
+ * service used to show the plot
+ * 
+ * @required datasetId
+ * @required datasetUrl
+ * @cfg {Ext.data.JsonStore} the store where nodes are saved
+ * @class sitools.user.component.dataviews.services.addSelectionService
+ * @extends Ext.Window
+ */
+sitools.user.component.dataviews.services.plotService = {};
+
+Ext.reg('sitools.user.component.dataviews.services.plotService', sitools.user.component.dataviews.services.plotService);
+
+sitools.user.component.dataviews.services.plotService.getParameters = function () {
+    return [{
+        jsObj : "Ext.form.TextField", 
+        config : {
+            anchor : "100%", 
+            fieldLabel : i18n.get("label.warning_nb_records"), 
+            value : WARNING_NB_RECORDS_PLOT,
+            name : "warning_nb_records"
+        }
+    }];
+};
+
+sitools.user.component.dataviews.services.plotService.executeAsService = function (config) {
+
+    var grid = config.dataview;
+    var datasetId = grid.datasetId;
+    var datasetUrl = grid.sitoolsAttachementForUsers;
+    var datasetName = grid.datasetName;
+    var columnModel = grid.datasetCm;
+    var formParams = grid.formParams;
+    var formMultiDsParams = grid.formMultiDsParams;
+    
+    var sortInfo = grid.getSortInfo(); 
+    
+    var maxWarningRecords = WARNING_NB_RECORDS_PLOT;
+    Ext.each(config.parameters, function (param) {
+        if (param.name === "warning_nb_records") {
+            maxWarningRecords = parseInt(param.value, 10);
+        }
+    }, this);
+    
+    var jsObj = sitools.user.component.dataPlotter;
+    var componentCfg = {
+        columnModel : columnModel,
+        formParams : formParams,
+        formMultiDsParams : formMultiDsParams,
+        dataUrl : datasetUrl,
+        datasetName : datasetName,
+        datasetId : datasetId,
+        componentType : "plot",
+        preferencesPath : "/" + datasetName,
+        preferencesFileName : "plot",
+        filters : grid.getFilters(),
+        selections : Ext.isEmpty(grid.getSelections()) ? undefined : grid.getSelectionForPlot(),
+        sortInfo : sortInfo,
+        selectionSize : (grid.isAllSelected()) ? grid.store.getTotalCount() : grid.getNbRowsSelected(),
+        maxWarningRecords : maxWarningRecords
+    };
+    var windowConfig = {
+        id : "plot" + datasetId,
+        title : "Data plot",//"Data plot : " + datasetName,
+        iconCls : "plot",
+        datasetName : datasetName,
+        type : "plot",
+        saveToolbar : true,
+        winHeight : 600
+    };
+    SitoolsDesk.addDesktopWindow(windowConfig, componentCfg, jsObj);
+};
diff --git a/szcluster-db/workspace/client-user/js/components/datasetServices/viewDataDetailsService.js b/szcluster-db/workspace/client-user/js/components/datasetServices/viewDataDetailsService.js
new file mode 100644
index 0000000..c17c0fd
--- /dev/null
+++ b/szcluster-db/workspace/client-user/js/components/datasetServices/viewDataDetailsService.js
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright 2010-2014 CNES - CENTRE NATIONAL d'ETUDES SPATIALES
+ * 
+ * This file is part of SITools2.
+ * 
+ * SITools2 is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * SITools2 is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * SITools2. If not, see <http://www.gnu.org/licenses/>.
+ ******************************************************************************/
+/*global Ext, sitools, ID, i18n, document, showResponse, alertFailure, LOCALE, ImageChooser, loadUrl, extColModelToStorage, SitoolsDesk*/
+
+Ext.namespace('sitools.user.component.dataviews.services');
+
+/**
+ * service used to show the details of a specific record
+ * 
+ * @required datasetId
+ * @required datasetUrl
+ * @cfg {Ext.data.JsonStore} the store where nodes are saved
+ * @class sitools.user.component.dataviews.services.addSelectionService
+ * @extends Ext.Window
+ */
+sitools.user.component.dataviews.services.viewDataDetailsService = {};
+
+Ext.reg('sitools.user.component.dataviews.services.viewDataDetailsService', sitools.user.component.dataviews.services.viewDataDetailsService);
+
+sitools.user.component.dataviews.services.viewDataDetailsService.getParameters = function () {
+    return [];
+};
+
+sitools.user.component.dataviews.services.viewDataDetailsService.executeAsService = function (config) {
+    
+    var grid = config.dataview;
+    var fromWhere = config.origin;
+    var urlRecords = grid.urlRecords;
+    var datasetId = grid.datasetId;
+    var datasetUrl = grid.sitoolsAttachementForUsers;
+    var datasetName = grid.datasetName;
+    var selections = grid.getSelections();
+    
+
+
+    if (Ext.isEmpty(selections) || selections.length === 0) {
+        return Ext.Msg.alert(i18n.get('label.warning'), i18n.get('warning.noselection'));
+    }
+    
+    var componentCfg = {
+        baseUrl : urlRecords + "/",
+        grid : grid,
+        fromWhere : fromWhere,
+        datasetId : datasetId,
+        datasetUrl : datasetUrl,
+        selections : selections,
+        preferencesPath : "/" + datasetName,
+        preferencesFileName : "dataDetails"
+    };
+    var jsObj = sitools.user.component.viewDataDetail;
+
+    var windowConfig = {
+        id : "dataDetail" + datasetId,
+        title : "Details", //i18n.get('label.viewDataDetail') + " : " + datasetName,
+        datasetName : datasetName,
+        saveToolbar : true,
+        iconCls : "dataDetail",
+        type : "dataDetail",
+        shadow : true,
+        shadowOffset : 5,
+        toolbarItems : [ {
+            iconCls : 'arrow-back',
+            handler : function () {
+                this.ownerCt.ownerCt.items.items[0].goPrevious();
+            }
+        }, {
+            iconCls : 'arrow-next',
+            handler : function () {
+                this.ownerCt.ownerCt.items.items[0].goNext();
+            }
+        } ]
+    };
+    
+    SitoolsDesk.addDesktopWindow(windowConfig, componentCfg, jsObj, true);
+};
diff --git a/szcluster-db/workspace/client-user/js/modules/formsAsMenu/formsAsMenu.js b/szcluster-db/workspace/client-user/js/modules/formsAsMenu/formsAsMenu.js
new file mode 100644
index 0000000..902924d
--- /dev/null
+++ b/szcluster-db/workspace/client-user/js/modules/formsAsMenu/formsAsMenu.js
@@ -0,0 +1,355 @@
+/***************************************
+* Copyright 2010-2014 CNES - CENTRE NATIONAL d'ETUDES SPATIALES
+* 
+* This file is part of SITools2.
+* 
+* SITools2 is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+* 
+* SITools2 is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with SITools2.  If not, see <http://www.gnu.org/licenses/>.
+***************************************/
+/*global Ext, sitools, i18n, document, projectGlobal, SitoolsDesk, userLogin, DEFAULT_PREFERENCES_FOLDER, loadUrl*/
+/*
+ * @include "../../sitoolsProject.js"
+ * @include "../../desktop/desktop.js"
+ * @include "../../components/forms/forms.js"
+ * @include "../../components/forms/projectForm.js"
+ */
+
+Ext.namespace('sitools.user.modules');
+
+/**
+ * Forms Module : 
+ * Displays All Forms depending on datasets attached to the project.
+ * @class sitools.user.modules.formsAsMenu
+ * @extends Ext.menu.Menu
+ * @requires sitools.user.component.forms.mainContainer
+ */
+sitools.user.modules.formsAsMenu = function () {
+    var urlFormsModule = projectGlobal.sitoolsAttachementForUsers + "/forms";
+    this.storeFormDs = new Ext.data.JsonStore({
+        root : 'data',
+        restful : true,
+        remoteSort : true,
+        url : urlFormsModule,
+        // sortField: 'name',
+        idProperty : 'id',
+        fields : [ {
+            name : 'id',
+            type : 'string'
+        }, {
+            name : 'parent',
+            type : 'string'
+        }, {
+            name : 'name',
+            type : 'string'
+        }, {
+            name : 'css',
+            type : 'string'
+        }, {
+            name : 'description',
+            type : 'string'
+        }, {
+            name : 'width',
+            type : 'numeric'
+        }, {
+            name : 'height',
+            type : 'numeric'
+        }, {
+            name : 'parameters'
+        }, {
+			name : 'authorized'	
+        }, {
+            name : 'parentUrl',
+            type : 'string'
+        }, {
+            name : 'zones'
+        }], 
+        autoLoad : true, 
+        listeners : {
+			scope : this, 
+			load : this.onLoadDatasetsForms,
+            beforeload : function () {
+                var menuItems = [{
+                        text : i18n.get("label.loading"),
+                        icon: '/sitools/cots/extjs/resources/images/default/grid/loading.gif'
+                    }];        
+		        this.addItem(menuItems);                
+                
+            }
+           
+		}
+        
+    });
+    var urlFormsMultiDs = projectGlobal.sitoolsAttachementForUsers + "/formsProject";
+    
+    this.storeFormsMultiDs = new Ext.data.JsonStore({
+        root : 'data',
+        restful : true,
+        remoteSort : true,
+        url : urlFormsMultiDs,
+        // sortField: 'name',
+        idProperty : 'id',
+        fields : [ {
+            name : 'id',
+            type : 'string'
+        }, {
+            name : 'parent',
+            type : 'string'
+        }, {
+            name : 'name',
+            type : 'string'
+        }, {
+            name : 'css',
+            type : 'string'
+        }, {
+            name : 'description',
+            type : 'string'
+        }, {
+            name : 'width',
+            type : 'numeric'
+        }, {
+            name : 'height',
+            type : 'numeric'
+        }, {
+            name : 'parameters'
+        }, {
+			name : 'authorized'	
+        }, {
+            name : 'parentUrl',
+            type : 'string'
+        }, {
+            name : 'properties'
+        }, {
+            name : 'urlServicePropertiesSearch', 
+            type : 'string'
+        }, {
+            name : 'urlServiceDatasetSearch', 
+            type : 'string'
+        }, {
+            name : 'collection'
+        }, {
+            name : 'dictionary'
+        }, {
+            name : 'nbDatasetsMax', 
+            type : 'numeric'
+        }, {
+            name : 'zones'
+        }], 
+        autoLoad : false, 
+        listeners : {
+			scope : this, 
+			load : this.onLoadMultiDSForms
+		}
+    });
+
+    
+    sitools.user.modules.formsAsMenu.superclass.constructor.call(this, Ext.apply({
+        menuMultiDsFormLoaded : false, 
+        formDsLoaded : false, 
+        formMultiDsLoaded : false, 
+        cls : "sitools-navbar-menu"
+    }));
+
+};
+
+Ext.extend(sitools.user.modules.formsAsMenu, Ext.menu.Menu, {
+    enableScrolling : true,
+    id : "formAsMenu",
+	onLoadDatasetsForms : function () {
+		var menuItems = [];
+		var test = []; 
+		this.storeFormDs.each(function (rec) {	
+			if(test.indexOf(rec.get("parent")) < 0){
+				test.push(rec.get("parent"));
+			}
+		},this);
+		this.storeFormDs.each(function (rec) {
+			if(rec.get("name").indexOf("Search") < 0){
+					menuItems.push({
+						text : rec.get("name"), 
+						rec : rec, 
+						scope : this, 
+						handler : function (b) {
+							this.showDetail(b.rec);                    
+						}
+					});
+			}else if(rec.get("name") == "Name Search"){
+				menuItems.push({
+                                                text : "Search Query", 
+                                                rec : rec, 
+                                                scope : this, 
+                                                handler : function (b) {
+                                                        this.showDetail(b.rec);                    
+                                                }
+                                        });
+			}
+		}, this);
+
+		if (menuItems.length > 0) {
+		    menuItems.unshift({
+		        xtype : 'label',
+		        text : i18n.get('label.forms'),
+		        labelStyle : 'padding-top:10px;',
+		        cls : 'menu-forms-title'
+		    }, '-');
+//			menuItems.unshift('<span class="menu-forms-title" style="padding-top:10px;">' + i18n.get('label.forms') + '</span>', '-');
+		}
+		this.addItem(menuItems);
+		
+		this.storeFormsMultiDs.load();
+	}, 
+	onLoadMultiDSForms : function () {
+		var menuItems = [];
+		
+		this.storeFormsMultiDs.each(function (rec) {
+			menuItems.push({
+				text : rec.get("name"), 
+				rec : rec, 
+				scope : this, 
+				handler : function (b) {
+					this.showDetailMultiDs(b.rec);                    
+				}
+			});
+		}, this);
+
+		if (menuItems.length > 0) {
+			menuItems.unshift('<span class="menu-forms-title">' + i18n.get('label.projectForm') + '</span>', '-');
+		}
+		this.addItem(menuItems);
+		this.formsLoaded = true;
+		this.menuMultiDsFormLoaded = true;	
+        
+        var loadingButton = this.items.get(0);
+        this.remove(loadingButton);
+
+	}, 
+	
+    showDetail : function (rec) {
+        if (rec.data.authorized === "false") {
+			return;
+        }
+        Ext.Ajax.request({
+            url : rec.data.parentUrl,
+            method : 'GET', 
+            success : function (response) {
+                try {
+                    var json = Ext.decode(response.responseText);
+                    if (! json.success) {
+                        Ext.Msg.alert(i18n.get('label.error'), json.message);
+                        return;
+                    }
+
+                    var dataset = json.dataset;
+                    var jsObj = SitoolsDesk.navProfile.getFormOpenMode();
+                    
+                    var componentCfg = {
+                        dataUrl : dataset.sitoolsAttachementForUsers,
+                        dataset : dataset,
+                        formId : rec.data.id,
+                        formName : rec.data.name,
+                        formParameters : rec.data.parameters,
+                        formWidth : rec.data.width,
+                        formHeight : rec.data.height, 
+                        formCss : rec.data.css, 
+                        preferencesPath : "/" + dataset.name + "/forms", 
+                        preferencesFileName : rec.data.name,
+                        formZones : rec.data.zones
+                    };
+                    
+                    SitoolsDesk.navProfile.addSpecificFormParameters(componentCfg, dataset);
+                    
+                    var windowSettings = {
+                        datasetName : dataset.name, 
+                        type : "form", 
+                        title : "Please query our database using the forms below.", //i18n.get('label.forms') + " : " + dataset.name + "." + rec.data.name, 
+                        id : "form" + dataset.id + rec.data.id, 
+                        saveToolbar : true, 
+                        iconCls : "form"
+                    };
+                    
+                    SitoolsDesk.addDesktopWindow(windowSettings, componentCfg, jsObj);
+                    return;
+                }
+                catch (err) {
+                    Ext.Msg.alert(i18n.get('label.error'), err);
+                    return;
+                }
+                
+            }, 
+            failure : function () {
+                Ext.Msg.alert(i18n.get('label.error'), i18n.get('label.noActiveDatasetFound'));
+                return;
+            }
+        });
+    }, 
+    showDetailMultiDs : function (rec) {
+		if (Ext.isEmpty(rec)) {
+			return;
+		}
+        var jsObj = sitools.user.component.forms.projectForm;
+        var componentCfg = {
+            formId : rec.data.id,
+            formName : rec.data.name,
+            formParameters : rec.data.parameters,
+            formWidth : rec.data.width,
+            formHeight : rec.data.height, 
+            formCss : rec.data.css, 
+            properties : rec.data.properties, 
+            urlServicePropertiesSearch : rec.data.urlServicePropertiesSearch, 
+            urlServiceDatasetSearch : rec.data.urlServiceDatasetSearch, 
+            dictionaryName : rec.data.dictionary.name,
+            nbDatasetsMax : rec.data.nbDatasetsMax, 
+            preferencesPath : "/formProjects", 
+            preferencesFileName : rec.data.name,
+            formZones : rec.data.zones
+        };
+        var windowSettings = {
+            type : "formProject", 
+            title : i18n.get('label.forms') + " : " + rec.data.name + ", Collection " + rec.data.collection.name, 
+            id : "formProject"  + rec.data.id, 
+            saveToolbar : true, 
+            datasetName : rec.data.name, 
+            winWidth : 600, 
+            winHeight : 600, 
+            iconCls : "form"
+        };
+        
+        SitoolsDesk.addDesktopWindow(windowSettings, componentCfg, jsObj);
+        return;
+    }
+});
+
+Ext.reg('sitools.user.modules.formsAsMenu', sitools.user.modules.formsAsMenu);
+
+
+sitools.user.modules.formsAsMenu.openModule = function (btn, event) {
+	if (Ext.isEmpty(event)) {
+		return;
+	}
+    var menu = Ext.getCmp("formAsMenu");
+    if (Ext.isEmpty(menu)) {
+	   menu = new sitools.user.modules.formsAsMenu();
+    }
+    if (btn.getPosition) {
+    	menu.showAt([btn.getPosition()[0], SitoolsDesk.getEnteteEl().getHeight()]);
+    }
+    else 
+    {
+    	menu.showAt([0, SitoolsDesk.getEnteteEl().getHeight()]);
+   	}
+};
+
+sitools.user.modules.formsAsMenu.getStaticParameters = function () {
+	return {
+		showAsMenu : true
+	};
+};
