| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- /**
- * Loads a grid of roles.
- *
- * @class MODx.grid.Role
- * @extends MODx.grid.Grid
- * @constructor
- * @param {Object} config An object of options.
- * @xtype grid-role
- */
- MODx.grid.Role = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- title: _('roles')
- ,id: 'modx-grid-role'
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'security/role/getlist'
- }
- ,fields: ['id','name','description','authority','perm']
- ,paging: true
- ,autosave: true
- ,save_action: 'security/role/updatefromgrid'
- ,columns: [{
- header: _('id')
- ,dataIndex: 'id'
- ,width: 50
- ,sortable: true
- },{
- header: _('name')
- ,dataIndex: 'name'
- ,width: 150
- ,sortable: true
- ,editor: { xtype: 'textfield' }
- },{
- header: _('description')
- ,dataIndex: 'description'
- ,width: 350
- ,editor: { xtype: 'textfield' }
- },{
- header: _('authority')
- ,dataIndex: 'authority'
- ,width: 60
- ,editor: { xtype: 'textfield' }
- ,sortable: true
- }]
- ,tbar: [{
- text: _('create_new')
- ,cls:'primary-button'
- ,handler: this.createRole
- ,scope: this
- }]
- });
- MODx.grid.Role.superclass.constructor.call(this,config);
- this.on('beforeedit',this.checkEditable,this);
- };
- Ext.extend(MODx.grid.Role,MODx.grid.Grid,{
- checkEditable: function(o) {
- var p = o.record.data.perm || '';
- return p.indexOf('edit') != -1;
- }
- ,getMenu: function() {
- var r = this.getSelectionModel().getSelected();
- var p = r.data.perm || '';
- var m = [];
- if (p.indexOf('remove') != -1) {
- m.push({
- text: _('role_remove')
- ,handler: this.remove.createDelegate(this,['role_remove_confirm', 'security/role/remove'])
- });
- }
- return m;
- }
- ,createRole: function(btn,e) {
- this.loadWindow(btn,e,{
- xtype: 'modx-window-role-create'
- ,listeners: {
- 'success': {fn: function() {
- this.refresh();
- },scope:this}
- }
- });
- }
- });
- Ext.reg('modx-grid-role',MODx.grid.Role);
- MODx.window.CreateRole = function(config) {
- config = config || {};
- this.ident = config.ident || 'crole'+Ext.id();
- Ext.applyIf(config,{
- title: _('role_create')
- // ,height: 150
- // ,width: 400
- ,url: MODx.config.connector_url
- ,action: 'security/role/create'
- ,fields: [{
- name: 'name'
- ,fieldLabel: _('name')+'<span class="required">*</span>'
- ,id: 'modx-'+this.ident+'-name'
- ,xtype: 'textfield'
- ,allowBlank: false
- ,anchor: '100%'
- },{
- xtype: MODx.expandHelp ? 'label' : 'hidden'
- ,forId: 'modx-'+this.ident+'-name'
- ,html: _('role_desc_name')
- ,cls: 'desc-under'
- },{
- name: 'authority'
- ,fieldLabel: _('authority')
- ,xtype: 'textfield'
- ,id: 'modx-'+this.ident+'-authority'
- ,allowBlank: false
- ,allowNegative: false
- ,value: 0
- // ,width: 75
- ,anchor: '100%'
- },{
- xtype: MODx.expandHelp ? 'label' : 'hidden'
- ,forId: 'modx-'+this.ident+'-authority'
- ,html: _('role_desc_authority')
- ,cls: 'desc-under'
- },{
- name: 'description'
- ,fieldLabel: _('description')
- ,id: 'modx-'+this.ident+'-description'
- ,xtype: 'textarea'
- ,anchor: '100%'
- ,grow: true
- },{
- xtype: MODx.expandHelp ? 'label' : 'hidden'
- ,forId: 'modx-'+this.ident+'-description'
- ,html: _('role_desc_description')
- ,cls: 'desc-under'
- }]
- ,keys: []
- });
- MODx.window.CreateRole.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.window.CreateRole,MODx.Window);
- Ext.reg('modx-window-role-create',MODx.window.CreateRole);
|