},
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,
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 {
// 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,
});
}
});
+ },
+ 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,
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',
+ 'name': 'rightname',
'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',
+ 'name': 'descript',
'type': 'string'
},
{
- 'name': 'company_id_comptype',
+ 'name': 'accessmask',
'type': 'string'
},
{
- 'name': 'company_id_url',
+ 'name': 'FullMask',
'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',
- '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'
}
]
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');
- });
+ 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 : "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'
+ text : "Save"
}
]
},
{
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 + '"/>';
}
},
{
xtype: 'ColumnModel',
xns: Roo.grid,
- dataIndex : 'company_id_name',
- header : 'Company',
- sortable : true,
+ dataIndex : 'rightname',
+ header : 'Module',
+ 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 + '"/>';