/**
*	A LouGIS library by Lounaispaikka.
*	@copyright Lounaispaikka, www.lounaispaikka.fi <CC BY-SA 3.0>
*	@version 2011-12-19T20:49:07+02:00
*/
Ext.util.Format.comboRenderer=function(e){return function(c){return(c=e.findRecord(e.valueField,c))?c.get(e.displayField):""}};Ext.namespace("Ext.ux.LouGIS.Panel");
Ext.ux.LouGIS.Panel.Users=Ext.extend(Ext.ux.LouGIS.Panel,{header:false,constructor:function(e){this.formType="Users";Ext.ux.LouGIS.Panel.Users.superclass.constructor.call(this,e);this.setTitle(t(""))},loadContent:function(){if(!this.contentLoaded){Ext.ux.LouGIS.Panel.Users.superclass.loadContent.call(this);this.requestFormData();var e=this.privilegeStore=new Ext.data.JsonStore({url:"/run/dataset/jsonPrivilegesOfDataset/",baseParams:{datasetId:this.datasetId},storeId:"privileges",root:"PrivilegesOfDataset",
fields:["user_id","group_id","name","role","view","meta_edit","download","all_privileges"]}),c=new Ext.data.JsonStore({url:"/run/dataset/getRoleTypeStore/",id:"roleTypeStore",storeId:"roleTypeStore",root:"types",fields:["type","typeName"],autoLoad:true});c.on("load",function(){this.privilegeStore.load()},this);var g=new Ext.form.FormPanel({header:false,border:false}),f=new Ext.Button({text:t(""),icon:"/img/silkicons/silk/add.png",handler:function(){new Ext.ux.LouGIS.Window.AddUsers({addHandler:function(b){for(var d=
0;d<b.length;d++){var a=b[d],j=a.get("name"),i=a.get("user_id"),l=a.get("group_id");if(i!=""&&e.findExact("user_id",i)!=-1)return;if(l!=""&&e.findExact("group_id",l)!=-1)return;if(i!="")j+=" &lt;"+a.get("details")+"&gt;";a=new e.recordType({user_id:i,group_id:l,name:j,role:"user",view:true,meta_edit:false,structure_edit:false,data_add:false,download:false,all_privileges:false});e.add(a)}},source:t(""),createGroupEnabled:true})},scope:this});g.addButton(f);c=new Ext.form.ComboBox({id:"roleTypeCombo",
required:true,allowBlank:false,editable:false,typeAhead:true,triggerAction:"all",mode:"local",store:c,valueField:"type",displayField:"typeName"});f=new Ext.grid.EditorGridPanel({id:id,store:this.privilegeStore,clicksToEdit:1,style:{marginBottom:"10px"},colModel:new Ext.grid.ColumnModel({defaults:{sortable:true},columns:[{header:t(""),dataIndex:"name",renderer:function(b,d,a){b=a.get("user_id");a=a.get("name");return'<img src="'+(b==null||b==""?"/img/silkicons/silk/group.png":"/img/silkicons/silk/user.png")+
'" class="gridIcon"/>'+a}},{header:t(""),dataIndex:"role",width:130,editor:c,renderer:Ext.util.Format.comboRenderer(c)},{header:t(""),width:30,align:"center",renderer:function(){return'<img src="/img/silkicons/silk/cross.png" class="clickableIcon"/>'}}]}),viewConfig:{forceFit:true,autoFill:true},autoHeight:true});f.on("cellclick",function(b,d,a){b.getColumnModel().getColumnId(a);var j=b.getStore().getAt(d);b=j.get("name");if(a==2){a=t("",b);Ext.Msg.confirm(t(""),a,function(i){i==="yes"&&this.privilegeStore.remove(j)},
this)}},this);c=new Ext.form.FieldSet({id:"usersPanel",title:t(""),autoHeight:true,anchor:"95%"});c.add(f);c.add(g);g=new Ext.grid.Column({header:"Nimi",dataIndex:"name",id:"name",width:70});var m=[[t(""),"view"],[t(""),"meta_edit"],[t(""),"download"]];f=[];for(var h in m){if(parseInt(h)!=h)break;var k=m[h];k=new Ext.grid.Column({header:k[0],dataIndex:k[1],id:k[1],width:65,renderer:function(b,d,a){d=a.get("all_privileges");return"<div class='gridBox'><input type='checkbox'"+(d?" disabled":"")+(b||
d?" checked":"")+" /></div>"}});f[f.length]=k}h=new Ext.ux.grid.CheckColumn({header:t(""),dataIndex:"all_privileges",id:"all_privileges",width:65});f[f.length]=h;g=new Ext.grid.ColumnModel([g].concat(f));h=new Ext.grid.GridPanel({id:"privilegeGrid",store:this.privilegeStore,colModel:g,autoHeight:true,autoWidth:true,plugins:[h,new Ext.ux.plugins.MultiLineHeader],autoExpandColumn:"name",viewConfig:{autoFill:true}});h.on("cellclick",function(b,d,a){a=b.getColumnModel().getColumnId(a);b=b.getStore().getAt(d);
if(b.get(a)===false)b.set(a,true);else b.get(a)===true&&b.set(a,false)});g=new Ext.form.FieldSet({id:"privilegePanel",title:t(""),autoHeight:true,anchor:"95%"});g.add(h);this.add(c);this.add(g);this.contentLoaded=true}},saveContent:function(){Ext.Ajax.request({url:"/run/dataset/updateDatasetPrivileges/",method:"POST",scope:this,params:{store:getJsonOfStore(this.privilegeStore),datasetId:this.datasetId},success:function(){notify(t(""),t(""));Ext.ux.LouGIS.Panel.Users.superclass.saveContent.call(this)}})}});

