From 293a52e31a731ce9c5ca1fa9f775b2238cdd170a Mon Sep 17 00:00:00 2001
From: Robert Anderson <randerson@lbsd.net>
Date: Wed, 13 May 2009 09:49:17 +0000
Subject: [PATCH] Edit AdminUser Attribute

---
 webgui/ajax.php                               | 21 ++++++++++++
 .../ajax/functions/AdminUserAttributes.php    | 32 +++++++++++++++++++
 webgui/js/app/windows/AdminUserAttributes.js  | 16 +++++-----
 3 files changed, 61 insertions(+), 8 deletions(-)

diff --git a/webgui/ajax.php b/webgui/ajax.php
index 29aaaca9..288f8df4 100644
--- a/webgui/ajax.php
+++ b/webgui/ajax.php
@@ -186,6 +186,27 @@
 			break;
 
 		# AdminUserAttributes.js functions
+		case "updateAdminUserAttribute":
+
+			$res = updateAdminUserAttribute($soapParams);
+			if (isset($res)) {
+				ajaxException($res);
+			}
+
+			break;
+
+		case "getAdminUserAttribute":
+			$rawData = getAdminUserAttribute($soapParams);
+
+			$res = new json_response;
+			$res->setID('ID');
+			$res->addField('ID','int');
+			$res->addField('Name','string');
+			$res->parseHash($rawData);
+
+			echo json_encode($res->export());
+			break;
+
 		case "getAdminUserAttributes":
 
 			$res = getAdminUserAttributes($soapParams);
diff --git a/webgui/include/ajax/functions/AdminUserAttributes.php b/webgui/include/ajax/functions/AdminUserAttributes.php
index 69e11d67..a4047001 100644
--- a/webgui/include/ajax/functions/AdminUserAttributes.php
+++ b/webgui/include/ajax/functions/AdminUserAttributes.php
@@ -15,6 +15,38 @@ function removeAdminUserAttribute($params) {
 	return NULL;
 }
 
+# Edit attribute
+function updateAdminUserAttribute($params) {
+	global $db;
+
+	$res = DBDo("UPDATE user_attributes SET Name = ? WHERE ID = ?",array($params[0]['Name'],$params[0]['ID']));
+	if (!is_numeric($res)) {
+		return $res;
+	}
+
+	return NULL;
+}
+
+# Return specific attribute row
+function getAdminUserAttribute($params) {
+	global $db;
+
+
+	$res = DBSelect("SELECT ID, Name FROM user_attributes WHERE ID = ?",array($params[0]));
+	if (!is_object($res)) {
+		return $res;
+	}
+
+	$resultArray = array();
+
+	$row = $res->fetchObject();
+
+	$resultArray['ID'] = $row->id;
+	$resultArray['Name'] = $row->name;
+
+	return $resultArray;
+}
+
 # Return list of attributes
 function getAdminUserAttributes($params) {
 	global $db;
diff --git a/webgui/js/app/windows/AdminUserAttributes.js b/webgui/js/app/windows/AdminUserAttributes.js
index 540483bf..d996a99b 100644
--- a/webgui/js/app/windows/AdminUserAttributes.js
+++ b/webgui/js/app/windows/AdminUserAttributes.js
@@ -142,7 +142,7 @@ function showAdminUserAttributesWindow(id) {
 
 
 // Display edit/add form
-function showAdminGroupAddEditWindow(id) {
+function showAdminUserAttributeAddEditWindow(id) {
 
 	var submitAjaxConfig;
 
@@ -151,7 +151,7 @@ function showAdminGroupAddEditWindow(id) {
 	if (id) {
 		submitAjaxConfig = {
 			ID: id,
-			SOAPFunction: 'updateAdminGroup',
+			SOAPFunction: 'updateAdminUserAttribute',
 			SOAPParams: 
 				'0:ID,'+
 				'0:Name'
@@ -160,7 +160,7 @@ function showAdminGroupAddEditWindow(id) {
 	// We doing an Add
 	} else {
 		submitAjaxConfig = {
-			SOAPFunction: 'createAdminGroup',
+			SOAPFunction: 'createAdminUserAttribute',
 			SOAPParams: 
 				'0:Name'
 		};
@@ -170,7 +170,7 @@ function showAdminGroupAddEditWindow(id) {
 	var adminGroupFormWindow = new Ext.ux.GenericFormWindow(
 		// Window config
 		{
-			title: "Group Information",
+			title: "Attribute Information",
 
 			width: 475,
 			height: 260,
@@ -185,7 +185,7 @@ function showAdminGroupAddEditWindow(id) {
 				SOAPUsername: globalConfig.soap.username,
 				SOAPPassword: globalConfig.soap.password,
 				SOAPAuthType: globalConfig.soap.authtype,
-				SOAPModule: 'AdminGroups'
+				SOAPModule: 'AdminUserAttributes'
 			},
 			items: [
 				{
@@ -210,8 +210,8 @@ function showAdminGroupAddEditWindow(id) {
 				SOAPUsername: globalConfig.soap.username,
 				SOAPPassword: globalConfig.soap.password,
 				SOAPAuthType: globalConfig.soap.authtype,
-				SOAPModule: 'AdminGroups',
-				SOAPFunction: 'getAdminGroup',
+				SOAPModule: 'AdminUserAttributes',
+				SOAPFunction: 'getAdminUserAttribute',
 				SOAPParams: 'ID'
 			}
 		});
@@ -221,7 +221,7 @@ function showAdminGroupAddEditWindow(id) {
 
 
 
-// Display edit/add form
+// Display remove form
 function showAdminUserAttributeRemoveWindow(parent,id) {
 	// Mask parent window
 	parent.getEl().mask();
-- 
GitLab