Fonction pour affichage du Cut Fits Forms¶
Fonction à rajouter au cut fits form pour pouvoir l'afficher directement à partir du project graph
sitools.component.users.project.clickCutForm = function (url, type) { Ext.Ajax.request({ method : "GET", url : url, success : function (ret) { var Json = Ext.decode(ret.responseText); if (showResponse(ret)) { var dataset = Json.dataset; var componentCfg, javascriptObject; var windowConfig = { datasetName : dataset.name, type : type, saveToolbar : true, toolbarItems : [] }; if(type == "forms") { var menuForms = new Ext.menu.Menu(); Ext.Ajax.request({ method : "GET", url : dataset.sitoolsAttachementForUsers + "/forms", success : function (ret) { try { var Json = Ext.decode(ret.responseText); if (! Json.success) { throw Json.message; } if (Json.total === 0) { throw "No Cut Fits form defined for this dataset"; } javascriptObject = sitools.component.users.datasets.forms; if (Json.total == 1 && Json.data[0].parameters[0].type == "CUTFITSFORMWITHNAME") { var form = Json.data[0]; Ext.apply(windowConfig, { title : i18n.get('label.forms') + " : " + dataset.name + "." + form.name }); Ext.apply(windowConfig, { id : type + dataset.id + form.id }); componentCfg = { dataUrl : dataset.sitoolsAttachementForUsers, datasetId : dataset.id, datasetName : dataset.name, datasetCm : dataset.columnModel, formId : form.id, formName : form.name, formParameters : form.parameters, formWidth : form.width, formHeight : form.height, formCss : form.css, datasetView : dataset.datasetView }; SitoolsDesk.app.addDesktopWindow(windowConfig, componentCfg, javascriptObject); }else { var handler = null; var componentCfg = null; //boolean pour savoir si dans la liste des forms il y a un Cut Fits form var trouveCut = false; Ext.each(Json.data, function (form) { if(form.parameters[0].type == "CUTFITSFORMWITHNAME"){ trouveCut = true; Ext.apply(windowConfig, { title : i18n.get('label.forms') + " : " + dataset.name + "." + form.name }); Ext.apply(windowConfig, { id : type + dataset.id + form.id }); componentCfg = { dataUrl : dataset.sitoolsAttachementForUsers, datasetId : dataset.id, datasetName : dataset.name, datasetCm : dataset.columnModel, formId : form.id, formName : form.name, formParameters : form.parameters, formWidth : form.width, formHeight : form.height, formCss : form.css, datasetView : dataset.datasetView }; } }, this); if(trouveCut){ SitoolsDesk.app.addDesktopWindow(windowConfig, componentCfg, javascriptObject); }else{ throw "No Cut Fits form defined for this dataset"; } } } catch (err) { var tmp = new Ext.ux.Notification({ iconCls : 'x-icon-information', title : i18n.get('label.information'), html : i18n.get(err), autoDestroy : true, hideDelay : 1000 }).show(document); } } }); } } }, failure : alertFailure });
Il faut également modifier légèrement la fonction clickIcone, pour que l'on ne fasse pas apparaitre le cut fits dans la liste des forms.
case "forms" : var menuForms = new Ext.menu.Menu(); Ext.Ajax.request({ method : "GET", url : dataset.sitoolsAttachementForUsers + "/forms", success : function (ret) { try { var Json = Ext.decode(ret.responseText); if (! Json.success) { throw Json.message; } if (Json.total === 0) { throw i18n.get('label.noForms'); } javascriptObject = sitools.component.users.datasets.forms; if (Json.total == 1) { if(Json.data[0].parameters[0].type != "CUTFITSFORMWITHNAME"){ var form = Json.data[0]; Ext.apply(windowConfig, { title : i18n.get('label.forms') + " : " + dataset.name + "." + form.name }); Ext.apply(windowConfig, { id : type + dataset.id + form.id }); componentCfg = { dataUrl : dataset.sitoolsAttachementForUsers, datasetId : dataset.id, datasetName : dataset.name, datasetCm : dataset.columnModel, formId : form.id, formName : form.name, formParameters : form.parameters, formWidth : form.width, formHeight : form.height, formCss : form.css, datasetView : dataset.datasetView }; SitoolsDesk.app.addDesktopWindow(windowConfig, componentCfg, javascriptObject); }else{ throw i18n.get('label.noForms'); } }else { var handler = null; if(Json.data.length == 2){ Ext.each(Json.data, function (form) { if(form.parameters[0].type != "CUTFITSFORMWITHNAME"){ Ext.apply(windowConfig, { title : i18n.get('label.forms') + " : " + dataset.name + "." + form.name }); Ext.apply(windowConfig, { id : type + dataset.id + form.id }); componentCfg = { dataUrl : dataset.sitoolsAttachementForUsers, datasetId : dataset.id, datasetName : dataset.name, datasetCm : dataset.columnModel, formId : form.id, formName : form.name, formParameters : form.parameters, formWidth : form.width, formHeight : form.height, formCss : form.css, datasetView : dataset.datasetView }; SitoolsDesk.app.addDesktopWindow(windowConfig, componentCfg, javascriptObject); } }, this); }else{ Ext.each(Json.data, function (form) { if(form.parameters[0].type != "CUTFITSFORMWITHNAME" ){ handler = function (form, dataset) { Ext.apply(windowConfig, { title : i18n.get('label.forms') + " : " + dataset.name + "." + form.name }); Ext.apply(windowConfig, { id : type + dataset.id + form.id }); componentCfg = { dataUrl : dataset.sitoolsAttachementForUsers, datasetId : dataset.id, datasetName : dataset.name, datasetCm : dataset.columnModel, formId : form.id, formName : form.name, formParameters : form.parameters, formWidth : form.width, formHeight : form.height, formCss : form.css, datasetView : dataset.datasetView }; SitoolsDesk.app.addDesktopWindow(windowConfig, componentCfg, javascriptObject); }; menuForms.addItem({ text : form.name, handler : function () { handler(form, dataset); }, icon : "/sitools/common/res/images/icons/tree_forms.png" }); } }, this); menuForms.showAt(Ext.EventObject.xy); } } } catch (err) { var tmp = new Ext.ux.Notification({ iconCls : 'x-icon-information', title : i18n.get('label.information'), html : i18n.get(err), autoDestroy : true, hideDelay : 1000 }).show(document); } } }); break;