Skip to content
Snippets Groups Projects
Commit a4eccf3b authored by Robert Anderson's avatar Robert Anderson
Browse files

Initial support for AdminUserGroups and functions

parent 8429ba08
No related branches found
No related tags found
No related merge requests found
<?php
include_once("include/db.php");
# Return list of attributes
function getAdminUserGroups($params) {
global $db;
# Filters and sorts are the same here
$filtersorts = array(
'ID' => 'users_to_groups.GroupID',
'Name' => 'groups.Name'
);
$resultArray = array();
$res = DBDo("SELECT GroupID FROM users_to_groups WHERE UserID = ?",$params[0]);
if ($res !== FALSE) {
while ($row = $res->fetchObject()) {
$item = array();
$item['ID'] = $row->groupid;
$res2 = DBDo("SELECT Name FROM groups WHERE ID = ?",$item['ID']);
if ($res !== FALSE) {
$row = $res->fetchObject();
$item['Name'] = $row->name;
if (isset($item['Name'])) {
array_push($resultArray,$item);
}
}
}
}
# If STH is blank, return the error back to whoever requested the data
if ($res == FALSE) {
return $res;
}
# loop through rows
while ($row = $sth->fetchObject()) {
$item = array();
$item['ID'] = $row->groupid;
$item['Name'] = $row->name;
# push this row onto array
array_push($resultArray,$item);
}
return array($resultArray,$numResults);
}
?>
function showAdminUserGroupsWindow(id) {
var AdminUserGroupsWindow = new Ext.ux.GenericGridWindow(
// Window config
{
title: "Groups",
width: 600,
height: 335,
minWidth: 600,
minHeight: 335,
},
// Grid config
{
// Inline toolbars
tbar: [
{
text:'Add',
tooltip:'Add group',
iconCls:'add',
handler: function() {
showAdminUserGroupAddEditWindow();
}
},
'-',
{
text:'Remove',
tooltip:'Remove group',
iconCls:'remove',
handler: function() {
var selectedItem = AdminUserGroupsWindow.getComponent('gridpanel').getSelectionModel().getSelected();
// Check if we have selected item
if (selectedItem) {
// If so display window
showAdminUserGroupRemoveWindow(AdminUserGroupsWindow,selectedItem.data.ID);
} else {
AdminUserGroupsWindow.getEl().mask();
// Display error
Ext.Msg.show({
title: "Nothing selected",
msg: "No group selected",
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.CANCEL,
modal: false,
fn: function() {
AdminUserGroupsWindow.getEl().unmask();
}
});
}
}
}
],
// Column model
colModel: new Ext.grid.ColumnModel([
{
id: 'ID',
header: "ID",
sortable: true,
dataIndex: 'ID'
},
{
header: "Name",
sortable: true,
dataIndex: 'Name'
}
]),
autoExpandColumn: 'Name'
},
// Store config
{
baseParams: {
ID: id,
SOAPUsername: globalConfig.soap.username,
SOAPPassword: globalConfig.soap.password,
SOAPAuthType: globalConfig.soap.authtype,
SOAPModule: 'AdminUserGroups',
SOAPFunction: 'getAdminUserGroups',
SOAPParams: 'ID,__search'
}
},
// Filter config
{
filters: [
{type: 'numeric', dataIndex: 'ID'},
{type: 'string', dataIndex: 'Name'}
]
}
);
AdminUserGroupsWindow.show();
}
// Display edit/add form
function showAdminGroupAddEditWindow(id) {
var submitAjaxConfig;
// We doing an update
if (id) {
submitAjaxConfig = {
ID: id,
SOAPFunction: 'updateAdminGroup',
SOAPParams:
'0:ID,'+
'0:Name'
};
// We doing an Add
} else {
submitAjaxConfig = {
SOAPFunction: 'createAdminGroup',
SOAPParams:
'0:Name'
};
}
// Create window
var adminGroupFormWindow = new Ext.ux.GenericFormWindow(
// Window config
{
title: "Group Information",
width: 475,
height: 260,
minWidth: 475,
minHeight: 260
},
// Form panel config
{
labelWidth: 85,
baseParams: {
SOAPUsername: globalConfig.soap.username,
SOAPPassword: globalConfig.soap.password,
SOAPAuthType: globalConfig.soap.authtype,
SOAPModule: 'AdminGroups'
},
items: [
{
fieldLabel: 'Name',
name: 'Name',
vtype: 'usernamePart',
maskRe: usernamePartRe,
allowBlank: false
},
],
},
// Submit button config
submitAjaxConfig
);
adminGroupFormWindow.show();
if (id) {
adminGroupFormWindow.getComponent('formpanel').load({
params: {
ID: id,
SOAPUsername: globalConfig.soap.username,
SOAPPassword: globalConfig.soap.password,
SOAPAuthType: globalConfig.soap.authtype,
SOAPModule: 'AdminGroups',
SOAPFunction: 'getAdminGroup',
SOAPParams: 'ID'
}
});
}
}
// Display edit/add form
function showAdminGroupRemoveWindow(parent,id) {
// Mask parent window
parent.getEl().mask();
// Display remove confirm window
Ext.Msg.show({
title: "Confirm removal",
msg: "Are you very sure you wish to remove this group?",
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.YESNO,
modal: false,
fn: function(buttonId,text) {
// Check if user clicked on 'yes' button
if (buttonId == 'yes') {
// Do ajax request
uxAjaxRequest(parent,{
params: {
ID: id,
SOAPUsername: globalConfig.soap.username,
SOAPPassword: globalConfig.soap.password,
SOAPAuthType: globalConfig.soap.authtype,
SOAPModule: 'AdminGroups',
SOAPFunction: 'removeAdminGroup',
SOAPParams: 'ID'
}
});
// Unmask if user answered no
} else {
parent.getEl().unmask();
}
}
});
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment