Pman.Tab.AdminContactsGroupRight.bjs
[Pman.Admin] / Pman.Tab.AdminContactsGroupRight.js
index d6a8c22..27b96b8 100644 (file)
@@ -59,19 +59,25 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     {
                     
                             var di = this.colModel.getDataIndex(columnIndex);
-                            if (di != 'active') {
+                            var i = di.split('_').shift();
+                            var k = di.split('_').pop();
+                            if (i != 'accessmask') {
                                 return;
                             }
-                             
                             var rec = _this.grid.ds.getAt(rowIndex);
+                            if(k == 'AA'){
+                                var fm = rec.data.FullMask.split('');
+                                Roo.each(fm, function(e){
+                                    rec.set(i+'_'+e, rec.data[i+'_'+k] ? 0 : 1);
+                                });
+                            } 
+                            rec.set(i+'_'+k, rec.data[i+'_'+k] ? 0 : 1);
                             
-                            rec.set('active', rec.data.active ? 0 : 1);
-                            rec.commit();
+                            //rec.commit();
                              
                             
                     }
                 },
-                autoExpandColumn : 'name',
                 ddGroup : 'groupDD',
                 enableDrag : true,
                 loadMask : true,
@@ -106,7 +112,7 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                             // only used to change active status.
                             
                             new Pman.Request({
-                                url : baseURL + '/Roo/Person.php',
+                                url : baseURL + '/Roo/GroupRights.php',
                                 method :'POST',
                                 params : {
                                     id : record.data.id,
@@ -126,10 +132,22 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                                     });
                                 }
                             });
+                        },
+                        load : function (_self, records, options)
+                        {
+                            Roo.each(records, function(e){
+                                var k = e.data.accessmask.split('');
+                                Roo.each(k, function(ee){
+                                    e.set('accessmask_'+ee, 1);
+                                });
+                                if(e.data.accessmask == e.data.FullMask){
+                                    e.set('accessmask_AA', 1);
+                                }
+                            });
                         }
                     },
                     remoteSort : true,
-                    sortInfo : { field : 'name', direction: 'ASC' },
+                    sortInfo : { field : 'id', direction: 'ASC' },
                     proxy : {
                         xtype: 'HttpProxy',
                         xns: Roo.data,
@@ -139,312 +157,32 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     reader : {
                         xtype: 'JsonReader',
                         xns: Roo.data,
-                        totalProperty : 'total',
-                        root : 'data',
                         id : 'id',
+                        root : 'data',
+                        totalProperty : 'total',
                         fields : [
                             {
                                 'name': 'id',
                                 'type': 'int'
                             },
                             {
-                                'name': 'office_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'name',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'phone',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'fax',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'email',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'role',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'active',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'remarks',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'passwd',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'owner_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'lang',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'no_reset_sent',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'action_type',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'project_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'office_id_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'office_id_company_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'office_id_name',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'office_id_address',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'office_id_phone',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'office_id_fax',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'office_id_email',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'office_id_role',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_code',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_name',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_remarks',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_owner_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'company_id_address',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_tel',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_fax',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_email',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'company_id_isOwner',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'company_id_logo_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'company_id_background_color',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_comptype',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_url',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'company_id_main_office_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'company_id_created_by',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'company_id_created_dt',
-                                'type': 'date'
-                            },
-                            {
-                                'name': 'company_id_updated_by',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'company_id_updated_dt',
-                                'type': 'date'
-                            },
-                            {
-                                'name': 'company_id_passwd',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'project_id_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_name',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'project_id_remarks',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'project_id_owner_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_code',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'project_id_active',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_type',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'project_id_client_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_team_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_file_location',
+                                'name': 'rightname',
                                 'type': 'string'
                             },
                             {
-                                'name': 'project_id_open_date',
-                                'type': 'date'
-                            },
-                            {
-                                'name': 'project_id_open_by',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_close_date',
-                                'type': 'date'
-                            },
-                            {
-                                'name': 'project_id_countries',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'project_id_languages',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'project_id_agency_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'owner_id_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'owner_id_office_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'owner_id_name',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'owner_id_phone',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'owner_id_fax',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'owner_id_email',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'owner_id_company_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'owner_id_role',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'owner_id_active',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'owner_id_remarks',
+                                'name': 'descript',
                                 'type': 'string'
                             },
                             {
-                                'name': 'owner_id_passwd',
+                                'name': 'accessmask',
                                 'type': 'string'
                             },
                             {
-                                'name': 'owner_id_owner_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'owner_id_lang',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'owner_id_no_reset_sent',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'owner_id_action_type',
+                                'name': 'FullMask',
                                 'type': 'string'
                             },
                             {
-                                'name': 'owner_id_project_id',
+                                'name': 'group_id',
                                 'type': 'int'
                             }
                         ]
@@ -555,139 +293,9 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                                 }
                             }
                         },
-                        {
-                            xtype: 'Button',
-                            xns: Roo.Toolbar,
-                            listeners : {
-                                click : function (_self, e)
-                                {
-                                _this.grid.footer.onClick('first');
-                                }
-                            },
-                            cls : 'x-btn-icon',
-                            icon : rootURL + '/Pman/templates/images/search.gif'
-                        },
-                        {
-                            xtype: 'Button',
-                            xns: Roo.Toolbar,
-                            listeners : {
-                                click : function (_self, e)
-                                {
-                                _this.searchBox.setValue('');
-                                    _this.grid.footer.onClick('first');
-                                }
-                            },
-                            cls : 'x-btn-icon',
-                            icon : rootURL + '/Pman/templates/images/edit-clear.gif'
-                        },
-                        {
-                            xtype: 'Button',
-                            xns: Roo.Toolbar,
-                            listeners : {
-                                toggle : function (_self, pressed)
-                                {
-                                   _this.grid.footer.onClick('first');
-                                   this.setText(pressed ? "Show Active" : "Show Removed");
-                                   
-                                   
-                                },
-                                render : function (_self)
-                                {
-                                  _this.activeButton = _self;
-                                }
-                            },
-                            enableToggle : true,
-                            text : "Show Removed"
-                        },
-                        {
-                            xtype: 'Button',
-                            xns: Roo.Toolbar,
-                            listeners : {
-                                toggle : function (_self, pressed)
-                                {
-                                   _this.grid.footer.onClick('first');
-                                   this.setText(pressed ? "Show Company" : "Show No Company");
-                                   
-                                   
-                                },
-                                render : function (_self)
-                                {
-                                  _this.active_company_button = _self;
-                                }
-                            },
-                            enableToggle : true,
-                            text : "Show No Company"
-                        },
                         {
                             xtype: 'Fill',
                             xns: Roo.Toolbar
-                        },
-                        {
-                            xtype: 'Button',
-                            xns: Roo.Toolbar,
-                            listeners : {
-                                click : function()
-                                {
-                                    
-                                    _this.dialog.show( { id : 0 } , function() {
-                                        _this.grid.footer.onClick('first');
-                                   }); 
-                                }
-                            },
-                            cls : 'x-btn-text-icon',
-                            text : "Add",
-                            icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
-                        },
-                        {
-                            xtype: 'Button',
-                            xns: Roo.Toolbar,
-                            listeners : {
-                                click : function()
-                                {
-                                    
-                                    Pman.Dialog.PersonBulkAdd.show( { id : 0 } , function() {
-                                        _this.grid.footer.onClick('first');
-                                   }); 
-                                }
-                            },
-                            cls : 'x-btn-text-icon',
-                            text : "Bulk Add",
-                            icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
-                        },
-                        {
-                            xtype: 'Button',
-                            xns: Roo.Toolbar,
-                            listeners : {
-                                click : function()
-                                {
-                                    var s = _this.grid.getSelectionModel().getSelections();
-                                    if (!s.length || (s.length > 1))  {
-                                        Roo.MessageBox.alert("Error", s.length ? "Select only one Row" : "Select a Row");
-                                        return;
-                                    }
-                                  
-                                    _this.dialog.show(s[0].data, function() {
-                                        _this.grid.footer.onClick('first');
-                                    }); 
-                                    
-                                }
-                            },
-                            cls : 'x-btn-text-icon',
-                            text : "Edit",
-                            icon : Roo.rootURL + 'images/default/tree/leaf.gif'
-                        },
-                        {
-                            xtype: 'Button',
-                            xns: Roo.Toolbar,
-                            listeners : {
-                                click : function()
-                                {
-                                     Pman.genericDelete(_this, 'Person'); 
-                                }
-                            },
-                            cls : 'x-btn-text-icon',
-                            text : "Delete",
-                            icon : rootURL + '/Pman/templates/images/trash.gif'
                         }
                     ]
                 },
@@ -695,15 +303,14 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'accessmask',
+                        dataIndex : 'accessmask_AA',
                         header : 'All',
                         sortable : false,
                         width : 50,
                         renderer : function(v,x,r) {
+                             
+                            var state = v> 0 ?  '-checked' : '';
                         
-                            state = (v == fm) ? '-checked' : '';
-                        
-                            
                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
                         }
                     },
@@ -715,61 +322,88 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                         sortable : false,
                         width : 150,
                         renderer : function(v,x,r) {
+                            if(!v){
+                                return;
+                            }
                             return String.format('<span qtip="{1}">{0}</span>', v.split('.').shift(), v);
                         }
                     },
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'name',
-                        header : 'Name',
-                        sortable : true,
-                        width : 200,
-                        renderer : function(v) { return String.format('{0}', v); }
+                        dataIndex : 'descript',
+                        header : 'Permission',
+                        sortable : false,
+                        width : 300,
+                        renderer : function(v,x,r)
+                        {
+                            if (r.json.descript && r.json.descript.length) {
+                                return String.format('{0}',r.json.descript);
+                            }
+                            
+                            return '???' + v;
+                        }
                     },
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'role',
-                        header : 'Role',
-                        width : 100,
-                        renderer : function(v) { return String.format('{0}', v); }
+                        dataIndex : 'accessmask_A',
+                        header : 'Add',
+                        width : 75,
+                        renderer : function(v) {  
+                            var state = v> 0 ?  '-checked' : '';
+                        
+                            return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
+                                        
+                         }
                     },
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'phone',
-                        header : 'Phone',
-                        width : 100,
-                        renderer : function(v) { return String.format('{0}', v); }
+                        dataIndex : 'accessmask_E',
+                        header : 'Edit',
+                        width : 75,
+                        renderer : function(v) {  
+                            var state = v> 0 ?  '-checked' : '';
+                        
+                            return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
+                                        
+                         }
                     },
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'fax',
-                        header : 'Fax',
-                        width : 100,
-                        renderer : function(v) { return String.format('{0}', v); }
+                        dataIndex : 'accessmask_D',
+                        header : 'Delete',
+                        width : 75,
+                        renderer : function(v) {  
+                            var state = v> 0 ?  '-checked' : '';
+                        
+                            return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
+                                        
+                         }
                     },
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'email',
-                        header : 'Email',
-                        sortable : true,
-                        width : 200,
-                        renderer : function(v) {
-                           return (v.length && v.indexOf('@') > 0 ) ? 
-                                            String.format('<a href="mailto:{0}">{0}</a>',v) : v;
+                        dataIndex : 'accessmask_S',
+                        header : 'List/View',
+                        width : 75,
+                        renderer : function(v) {  
+                            var state = v> 0 ?  '-checked' : '';
+                        
+                            return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
+                                        
                          }
                     },
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'active',
-                        header : 'Active',
+                        dataIndex : 'accessmask_P',
+                        header : 'Print/Export',
                         width : 75,
-                        renderer : function(v) {  
+                        renderer : function(v,x,r) {  
+                            
                             var state = v> 0 ?  '-checked' : '';
                         
                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';