
Ext.namespace("Ext.ux.application.controllers.ariane");Ext.ux.application.controllers.ariane=Ext.extend(Ext.util.Observable,{constructor:function(config){this.config=config;this.viewCmp=config.viewCmp;this.firstLoading=true;Ext.ux.application.controllers.ariane.superclass.constructor.call(this,config);},getAriane:function(callback,scope){var callback=callback!=undefined?callback.createDelegate(scope):Ext.emptyFn;Ext.Ajax.request({url:this.config.urlApi,params:{idArianeCfg:this.config.idArianeCfg,href:window.location.pathname,sharedVars:Ext.util.JSON.encode(this.config.sharedVars)},success:callback.createDelegate(Ext.value(scope,this))});}});Ext.namespace("Ext.ux.application.views.ariane");Ext.ux.application.views.ariane=Ext.extend(Ext.Container,{constructor:function(config){if(Ext.isEmpty(config)||Ext.isEmpty(config.urlApi))
throw"Il manque l'url de l'api 'urlApi' dans la config";if(Ext.isEmpty(config)||Ext.isEmpty(config.idArianeCfg))
throw"Il manque l'id de la configuration du fil d'ariane 'idArianeCfg' dans la config";this.controller=new Ext.ux.application.controllers.ariane(Ext.apply(config,{viewCmp:this}));Ext.ux.application.views.ariane.superclass.constructor.call(this,Ext.apply({},config));},afterRender:function(){this.controller.getAriane(this.onUpdateView,this);Ext.ux.application.views.ariane.superclass.afterRender.call(this,arguments);},onUpdateView:function(tsp){var iconTemplate=new Ext.Template("<img class=\"ux-ariane-icon {cls}\"  width=\"16\" height=\"16\" alt=\"{alt}\" src=\"{fakeSrc}\" style=\"background: url('{src}')\" />");var iconTemplate2=new Ext.Template("<img class=\"ux-ariane-icon {cls}\"  width=\"16\" height=\"16\" alt=\"{alt}\" src=\"{src}\"/>");var aTemplate=new Ext.Template("<a class=\"ux-ariane-item-link\" href=\"{url}\" target=\"{target}\" >{label}</a>");var cfg=Ext.util.JSON.decode(tsp.responseText);var arianeLocationStore=new Ext.data.JsonStore({data:cfg,root:"location",idProperty:"id",fields:["id","link","label","leaf","icon"]});arianeLocationStore.each(function(record,index){if(Ext.isEmpty(record.get("label"))&&Ext.isEmpty(record.get("icon")))
return;if(!this.arianeLocationCmp){this.arianeLocationCmp=new Ext.Toolbar({cls:"ux-ariane-location"});this.add(this.arianeLocationCmp);}
var text=record.get("label")?record.get("label"):iconTemplate.apply({alt:record.get("icon")["@attributes"].alt,src:record.get("icon")["@attributes"].url,fakeSrc:Ext.BLANK_IMAGE_URL});this.arianeLocationCmp.add({xtype:"tbtext",text:Ext.isEmpty(record.get("link"))?text:aTemplate.apply({url:Ext.isString(record.get("link"))?record.get("link"):record.get("link")["@attributes"].url,target:"_self",label:text}),cls:"ux-ariane"});if(this.controller.firstLoading&&index!=arianeLocationStore.getCount()-1)
this.arianeLocationCmp.add("-");},this);if(cfg.tweaking){var arianeTweakingStore=new Ext.data.JsonStore({data:cfg,root:"tweaking",idProperty:"id",fields:["id","values","link"]});arianeTweakingStore.each(function(record,index){var items=Ext.isEmpty(record.get("link"))?[{xtype:"tbspacer",width:20}]:[{xtype:"tbtext",text:aTemplate.apply({url:record.get("link"),target:"_self",label:iconTemplate2.apply({src:Ext.BLANK_IMAGE_URL,cls:"ux-undo-tweaking-icon"})})}];var tpl=new Ext.XTemplate('<div class="x-tweaking-categorie-title">','<span class="ux-tweaking-categorie-name">{twName}</span>','<span class="ux-tweaking-categorie-sep">{twSep}</span>','</div>','<ul class="ux-tweaking-categorie-values">','<tpl if="Ext.isArray(twValues)">','<tpl for="twValues"><li>{.}</li></tpl></ul>','</tpl>','<tpl if="!Ext.isArray(twValues)"><li>{twValues}</li></tpl>','</ul>');Ext.iterate(record.get("values"),function(twName,twValues){items.push({xtype:"tbtext",cls:"ux-tweaking-value",text:tpl.apply({twName:twName,twSep:":",twValues:twValues})});},this);this.add(new Ext.Toolbar({cls:"ux-ariane-tweaking",items:items}));},this);}
this.controller.firstLoading=false;this.doLayout();}});Ext.reg("ux-ariane",Ext.ux.application.views.ariane);

