GO.modules.MainPanel=function(a){if(!a){a={}}this.installedModulesDS=new GO.data.JsonStore({url:GO.settings.modules.modules.url+"json.php",baseParams:{task:"installed_modules"},root:"results",id:"id",fields:["name","description","id","sort_order","admin_menu","acl_id"],remoteSort:true});this.availableModulesDS=new GO.data.JsonStore({url:GO.settings.modules.modules.url+"json.php",baseParams:{task:"available_modules"},sortInfo:{field:"name",direction:"ASC"},root:"results",id:"id",fields:["name","description","id","sort_order","admin_menu","acl_id"]});a.tbar=new Ext.Toolbar({cls:"go-head-tb",items:[{iconCls:"btn-add",text:GO.modules.lang.cmdInstall,cls:"x-btn-text-icon",handler:this.showavailableModules,scope:this},{iconCls:"btn-delete",text:GO.modules.lang.cmdUninstall,cls:"x-btn-text-icon",handler:this.uninstallModule,scope:this},{iconCls:"btn-permissions",text:GO.lang.strPermissions,cls:"x-btn-text-icon",handler:this.showPermissions,scope:this}]});a.cm=new Ext.grid.ColumnModel([{header:GO.lang.strName,dataIndex:"name",id:"name",renderer:this.iconRenderer,width:250}]);a.view=new Ext.grid.GridView({enableRowBody:true,showPreview:true,autoFill:true,emptyText:GO.lang.strNoItems,getRowClass:function(b,e,d,c){if(this.showPreview&&b.data.description.length){d.body='<div class="mo-description">'+b.data.description+"</div>";return"x-grid3-row-expanded"}return"x-grid3-row-collapsed"}});a.ddGroup="ModulesGridDD";a.enableDragDrop=true;a.layout="fit";a.store=this.installedModulesDS;a.sm=new Ext.grid.RowSelectionModel({singleSelect:false});a.paging=false;GO.modules.MainPanel.superclass.constructor.call(this,a);this.on("rowdblclick",this.showPermissions,this)};Ext.extend(GO.modules.MainPanel,GO.grid.GridPanel,{afterRender:function(){GO.modules.MainPanel.superclass.afterRender.call(this);var b=function(c,j,h){var k=this.getSelectionModel();var g=k.getSelections();var d=c.getDragData(j).rowIndex;if(d=="undefined"){d=this.store.data.length-1}for(i=0;i<g.length;i++){var f=this.store.getById(g[i].id);if(!this.copy){this.store.remove(this.store.getById(g[i].id))}this.store.insert(d,f)}this.save()};var a=new Ext.dd.DropTarget(this.getView().mainBody,{ddGroup:"ModulesGridDD",copy:false,notifyDrop:b.createDelegate(this)});this.store.load()},showavailableModules:function(){if(!this.availableModulesWin){this.availableModulesDS.load();var a=new GO.grid.GridPanel({layout:"fit",store:this.availableModulesDS,border:false,sm:new Ext.grid.RowSelectionModel({singleSelect:false}),view:new Ext.grid.GridView({enableRowBody:true,showPreview:true,autoFill:true,emptyText:GO.lang.strNoItems,getRowClass:function(b,e,d,c){if(this.showPreview&&b.data.description.length){d.body='<div class="mo-description">'+b.data.description+"</div>";return"x-grid3-row-expanded"}return"x-grid3-row-collapsed"}}),columns:[{header:GO.lang.strName,dataIndex:"name",renderer:this.iconRenderer}],paging:false});this.availableModulesWin=new Ext.Window({layout:"fit",modal:false,shadow:false,minWidth:300,minHeight:300,height:400,width:600,plain:true,closeAction:"hide",title:GO.modules.lang.cmdAvailableModules,items:a,buttons:[{text:GO.modules.lang.cmdInstall,handler:function(){this.installModule(a)},scope:this},{text:GO.lang.cmdClose,handler:function(){this.availableModulesWin.hide()},scope:this}]})}this.availableModulesWin.show()},save:function(){var a=new Array();for(var b=0;b<this.installedModulesDS.data.items.length;b++){a[b]={id:this.installedModulesDS.data.items[b].get("id"),sort_order:b,admin_menu:this.installedModulesDS.data.items[b].get("admin_menu")}}this.container.mask(GO.lang.waitMsgLoad,"x-mask-loading");Ext.Ajax.request({url:GO.settings.modules.modules.url+"action.php",params:{task:"update",modules:Ext.encode(a)},callback:function(d,e,c){this.container.unmask()},scope:this})},installModule:function(d){d.container.mask(GO.lang.waitMsgLoad);var a=d.getSelectionModel();var b=a.getSelections();var e=[];for(var c=0;c<b.length;c++){e.push(b[c].data.id)}if(b.length>0){Ext.Ajax.request({url:GO.settings.modules.modules.url+"action.php",params:{task:"install",modules:e.join(",")},callback:function(g,h,f){d.container.unmask();d.store.reload();this.store.reload();this.availableModulesWin.hide()},scope:this})}},uninstallModule:function(){var a=Ext.encode(this.selModel.selections.keys);switch(this.selModel.selections.keys.length){case 0:Ext.MessageBox.alert(GO.lang.strError,GO.lang.noItemSelected);return false;break;case 1:var c=GO.lang.strDeleteSelectedItem;break;default:var b=new Ext.Template(GO.lang.strDeleteSelectedItems);var c=b.applyTemplate({count:this.selModel.selections.keys.length});break}Ext.MessageBox.confirm(GO.lang.strConfirm,c,function(d){if(d=="yes"){this.store.baseParams.uninstall_modules=a;this.store.reload({callback:function(){if(!this.store.reader.jsonData.uninstallSuccess){Ext.MessageBox.alert(GO.lang.strError,this.store.reader.jsonData.uninstallFeedback)}this.availableModulesDS.reload()},scope:this});delete this.store.baseParams.uninstall_modules}},this)},showPermissions:function(){var a=this.getSelectionModel();var b=a.getSelections();if(b.length>0){if(!this.permissionsWin){this.readPermissionsTab=new GO.grid.PermissionsPanel({title:GO.users.lang.useModule});this.permissionsWin=new Ext.Window({title:GO.lang.strPermissions,layout:"fit",modal:false,height:500,width:400,closeAction:"hide",items:[this.readPermissionsTab],buttons:[{text:GO.lang.cmdClose,handler:function(){this.permissionsWin.hide()},scope:this}]})}this.permissionsWin.show();this.permissionsWin.setTitle(GO.lang.strPermissions+" "+b[0].data.name);this.readPermissionsTab.setAcl(b[0].data.acl_id)}},iconRenderer:function(c,a,b){return'<div class="mo-title" style="background-image:url('+BaseHref+"modules/"+b.data.id+"/themes/Default/images/"+b.data.id+'.png)">'+c+"</div>"}});GO.moduleManager.addModule("modules",GO.modules.MainPanel,{title:GO.modules.lang.modules,iconCls:"go-tab-icon-modules",admin:true});