Pman.Tab.AdminContactsGroupRight.bjs
[Pman.Admin] / Pman.Tab.AdminContactsGroupRight.js
index b2c429f..4b6ac40 100644 (file)
@@ -57,21 +57,31 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     },
                     cellclick : function (_self, rowIndex, columnIndex, e)
                     {
-                    
+                            _this.dataUpdate = typeof(_this.dataUpdate) =='undefined' ?  {} : _this.dataUpdate;
+                            
                             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);
-                            
-                            rec.set('active', rec.data.active ? 0 : 1);
-                            rec.commit();
+                            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.data.accessmask = rec.data.accessmask + rec
+                            //Roo.log(rec);
+                            _this.dataUpdate[rec.data.id] = rec.data.accessmask;
+                    
+                            //rec.commit();
                              
                             
                     }
                 },
-                autoExpandColumn : 'name',
                 ddGroup : 'groupDD',
                 enableDrag : true,
                 loadMask : true,
@@ -84,7 +94,7 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                             if (!o.params) {
                                 o.params = {}
                             }
-                            var s = Pman.Tab.Groups.grid.getSelectionModel().getSelections();
+                            var s = Pman.Tab.AdminContactsGroup.grid.getSelectionModel().getSelections();
                             if (!s.length) {
                                 o.params.group_id = -1;
                             } else {
@@ -106,7 +116,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 +136,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 +161,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',
+                                'name': 'rightname',
                                 'type': 'string'
                             },
                             {
-                                'name': 'project_id_owner_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_code',
+                                'name': 'descript',
                                 'type': 'string'
                             },
                             {
-                                'name': 'project_id_active',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_type',
+                                'name': 'accessmask',
                                 'type': 'string'
                             },
                             {
-                                'name': 'project_id_client_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_team_id',
-                                'type': 'int'
-                            },
-                            {
-                                'name': 'project_id_file_location',
+                                'name': 'FullMask',
                                 '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',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'owner_id_passwd',
-                                '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',
-                                'type': 'string'
-                            },
-                            {
-                                'name': 'owner_id_project_id',
+                                'name': 'group_id',
                                 'type': 'int'
                             }
                         ]
@@ -469,225 +211,36 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     xtype: 'Toolbar',
                     xns: Roo,
                     items : [
-                        {
-                            xtype: 'TextItem',
-                            xns: Roo.Toolbar,
-                            text : "Search"
-                        },
-                        {
-                            xtype: 'TextField',
-                            xns: Roo.form,
-                            listeners : {
-                                render : function (_self)
-                                {
-                                    _this.searchBox = _self;
-                                },
-                                show : function (_self,e)
-                                {
-                                    if (e.getCharCode() != 13) {
-                                        return;
-                                    }
-                                    _this.grid.footer.onClick('first');
-                                },
-                                specialkey : function (_self, e)
-                                {
-                                  if (e.getKey() == 13) {
-                                    _this.grid.footer.onClick('first');
-                                  }
-                                }
-                            }
-                        },
-                        {
-                            xtype: 'ComboBox',
-                            xns: Roo.form,
-                            listeners : {
-                                render : function (_self)
-                                {
-                                  _this.companyCombo = _self;
-                                },
-                                select : function (combo, record, index)
-                                {
-                                   _this.grid.footer.onClick.defer(300,_this.grid.footer,[ 'first'] );
-                                }
-                            },
-                            displayField : 'name',
-                            editable : true,
-                            emptyText : "Select Company",
-                            forceSelection : true,
-                            hiddenName : 'company_id',
-                            listWidth : 400,
-                            loadingText : "Searching...",
-                            minChars : 2,
-                            name : 'company_name',
-                            pageSize : 20,
-                            qtip : "Select Companies",
-                            queryParam : 'query[name]',
-                            selectOnFocus : true,
-                            tpl : '<div class="x-grid-cell-text x-btn button"><b>{name}</b> </div>',
-                            triggerAction : 'all',
-                            typeAhead : true,
-                            valueField : 'id',
-                            width : 150,
-                            store : {
-                                xtype: 'Store',
-                                xns: Roo.data,
-                                listeners : {
-                                    beforeload : function (_self, o){
-                                        o.params = o.params || {};
-                                        // set more here
-                                    }
-                                },
-                                remoteSort : true,
-                                sortInfo : { direction : 'ASC', field: 'name' },
-                                proxy : {
-                                    xtype: 'HttpProxy',
-                                    xns: Roo.data,
-                                    method : 'GET',
-                                    url : baseURL + '/Roo/Companies.php'
-                                },
-                                reader : {
-                                    xtype: 'JsonReader',
-                                    xns: Roo.data,
-                                    id : 'id',
-                                    root : 'data',
-                                    totalProperty : 'total',
-                                    fields : [{"name":"id","type":"int"},{"name":"code","type":"string"}]
-                                }
-                            }
-                        },
-                        {
-                            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'); 
+                                    new Pman.Request({
+                                        url : baseURL + '/GroupRights.php',
+                                        method :'POST',
+                                        params : {
+                                            dataUpdate : _this.dataUpdate,
+                                            dataAdd : _this.dataAdd
+                                        },
+                                        success : function() {
+                                            // do nothing
+                                            
+                                            //_this.grid.ds.remove(record);
+                                            
+                                        },
+                                        failure : function() 
+                                        {
+                                            Roo.MessageBox.alert("Error", "saving failed", function() {
+                                                _this.grid.footer.onClick('first');
+                                            });
+                                        }
+                                    });
                                 }
                             },
-                            cls : 'x-btn-text-icon',
-                            text : "Delete",
-                            icon : rootURL + '/Pman/templates/images/trash.gif'
+                            text : "Save"
                         }
                     ]
                 },
@@ -695,11 +248,12 @@ 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' : '';
                         
                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
@@ -713,6 +267,9 @@ 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);
                         }
                     },
@@ -735,8 +292,8 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'active',
-                        header : 'Active',
+                        dataIndex : 'accessmask_A',
+                        header : 'Add',
                         width : 75,
                         renderer : function(v) {  
                             var state = v> 0 ?  '-checked' : '';
@@ -748,8 +305,8 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'active',
-                        header : 'Active',
+                        dataIndex : 'accessmask_E',
+                        header : 'Edit',
                         width : 75,
                         renderer : function(v) {  
                             var state = v> 0 ?  '-checked' : '';
@@ -761,8 +318,8 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'active',
-                        header : 'Active',
+                        dataIndex : 'accessmask_D',
+                        header : 'Delete',
                         width : 75,
                         renderer : function(v) {  
                             var state = v> 0 ?  '-checked' : '';
@@ -774,8 +331,8 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
-                        dataIndex : 'active',
-                        header : 'Active',
+                        dataIndex : 'accessmask_S',
+                        header : 'List/View',
                         width : 75,
                         renderer : function(v) {  
                             var state = v> 0 ?  '-checked' : '';
@@ -787,10 +344,11 @@ Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
                     {
                         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 + '"/>';