| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- /**
- * @class MODx.panel.GroupsRoles
- * @extends MODx.FormPanel
- * @param {Object} config An object of configuration properties
- * @xtype modx-panel-groups-roles
- */
- MODx.panel.GroupsRoles = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- id: 'modx-panel-groups-roles'
- ,cls: 'container'
- ,defaults: { collapsible: false ,autoHeight: true }
- ,forceLayout: true
- ,items: [{
- html: _('user_group_management')
- ,id: 'modx-access-permissions-header'
- ,xtype: 'modx-header'
- },MODx.getPageStructure(this.getPageTabs(config),{
- id: 'modx-access-permissions-tabs'
- ,stateful: true
- ,stateId: 'access-tabpanel'
- ,stateEvents: ['tabchange']
- ,getState:function() {
- return {activeTab:this.items.indexOf(this.getActiveTab())};
- }
- })]
- });
- MODx.panel.GroupsRoles.superclass.constructor.call(this,config);
- var west, usergroupTree = Ext.getCmp('modx-tree-usergroup');
- usergroupTree.on('expandnode', this.fixPanelHeight);
- usergroupTree.on('collapsenode', this.fixPanelHeight);
- usergroupTree.addListener({
- resize : function(cmp) {
- var centre = Ext.getCmp('modx-usergroup-users');
- if (centre.hidden){
- Ext.getCmp('modx-tree-panel-usergroup').layout.west.getSplitBar().el.hide();
- }
- }
- });
- if (MODx.perm.usergroup_user_list == 1) {
- Ext.getCmp('modx-tree-usergroup').on('click', function(node,e){
- this.getUsers(node);
- }, this);
- }
- Ext.getCmp('modx-usergroup-users').store.on('load', this.fixPanelHeight);
- };
- Ext.extend(MODx.panel.GroupsRoles,MODx.FormPanel,{
- getPageTabs: function(config) {
- var tbs = [];
- if (MODx.perm.usergroup_view == 1) {
- tbs.push({
- title: _('user_groups') + ' & ' + _('users')
- ,autoHeight: true
- ,layout: 'form'
- ,items: [{
- html: '<p>'+_('user_group_management_msg')+'</p>'
- ,xtype: 'modx-description'
- },{
- layout: 'border'
- ,id: 'modx-tree-panel-usergroup'
- ,height: 500
- ,border:false
- ,defaults: {
- border:false
- ,bodyStyle: 'background-color:transparent;'
- }
- ,items: [
- {
- region:'west'
- ,cls:'main-wrapper'
- ,collapseMode: 'mini'
- ,split: true
- ,useSplitTips: true
- ,monitorResize: true
- ,width: 280
- ,minWidth: 280
- ,minSize: 280
- ,maxSize: 400
- ,layout: 'fit'
- ,items: [{
- xtype: 'modx-tree-usergroup'
- }]
- }, {
- region: 'center'
- ,id: 'modx-usergroup-users'
- ,xtype: 'modx-grid-user-group-users'
- ,hidden: true
- ,usergroup: '0'
- ,layout: 'fit'
- ,cls:'main-wrapper'
- }
- ]
- }]
- });
- }
- if (MODx.perm.view_role == 1) {
- tbs.push({
- title: _('roles')
- ,autoHeight: true
- ,layout: 'form'
- ,items: [{
- html: '<p>'+_('roles_msg')+'</p>'
- ,xtype: 'modx-description'
- },{
- xtype: 'modx-grid-role'
- ,cls:'main-wrapper'
- ,title: ''
- ,preventRender: true
- }]
- });
- }
- if (MODx.perm.policy_view == 1) {
- tbs.push({
- title: _('policies')
- ,id: 'modx-panel-access-policies'
- ,autoHeight: true
- ,layout: 'form'
- ,items: [{
- html: '<p>'+_('policy_management_msg')+'</p>'
- ,xtype: 'modx-description'
- },{
- xtype: 'modx-grid-access-policy'
- ,cls:'main-wrapper'
- }]
- });
- }
- if (MODx.perm.policy_template_view) {
- tbs.push({
- title: _('policy_templates')
- ,id: 'modx-panel-access-policy-templates'
- ,autoHeight: true
- ,layout: 'form'
- ,items: [{
- html: '<p>'+_('policy_templates.intro_msg')+'</p>'
- ,xtype: 'modx-description'
- },{
- xtype: 'modx-grid-access-policy-templates'
- ,cls:'main-wrapper'
- }]
- });
- }
- return tbs;
- }
- ,getUsers: function(node) {
- var center = Ext.getCmp('modx-usergroup-users');
- center.removeAll();
- var id = node.attributes.id;
- var usergroup = id.replace('n_ug_', '') - 0; // typecasting
- var userGrid = Ext.getCmp('modx-usergroup-users');
- var westPanel = Ext.getCmp('modx-tree-panel-usergroup').layout.west;
- if (usergroup == 0) {
- userGrid.hide();
- westPanel.getSplitBar().el.hide();
- } else {
- userGrid.show();
- westPanel.getSplitBar().el.show();
- userGrid.usergroup = usergroup;
- userGrid.config.usergroup = usergroup;
- userGrid.store.baseParams.usergroup = usergroup;
- userGrid.clearFilter();
- }
- }
- ,fixPanelHeight: function() {
- // fixing border layout's height regarding to tree panel's
- var treeEl = Ext.getCmp('modx-tree-usergroup').getEl();
- var treeH = treeEl.getHeight();
- var cHeight = Ext.getCmp('modx-usergroup-users').getHeight(); // .main-wrapper
- var maxH = (treeH > cHeight) ? treeH : cHeight;
- maxH = maxH > 500 ? maxH : 500;
- Ext.getCmp('modx-tree-panel-usergroup').setHeight(maxH);
- Ext.getCmp('modx-content').doLayout();
- }
- });
- Ext.reg('modx-panel-groups-roles',MODx.panel.GroupsRoles);
|