svn commit: samba r9466 - in branches/SAMBA_4_0/swat/scripting: client server

tridge at samba.org tridge at samba.org
Mon Aug 22 01:53:07 GMT 2005


Author: tridge
Date: 2005-08-22 01:53:06 +0000 (Mon, 22 Aug 2005)
New Revision: 9466

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9466

Log:
add display of values as well as keys in the registry editor


Modified:
   branches/SAMBA_4_0/swat/scripting/client/regedit.js
   branches/SAMBA_4_0/swat/scripting/server/regedit.esp


Changeset:
Modified: branches/SAMBA_4_0/swat/scripting/client/regedit.js
===================================================================
--- branches/SAMBA_4_0/swat/scripting/client/regedit.js	2005-08-22 01:52:22 UTC (rev 9465)
+++ branches/SAMBA_4_0/swat/scripting/client/regedit.js	2005-08-22 01:53:06 UTC (rev 9466)
@@ -5,10 +5,17 @@
 	released under the GNU GPL Version 2 or later
 */
 
-function __folder_list(fParent, list) 
+
+/*
+  callback from the key enumeration call
+*/
+function __folder_keys(fParent, list) 
 {
 	var i;
-	fParent.removeAll();
+	if (fParent.working == 1) {
+		fParent.working = 0;
+		fParent.removeAll();
+	}
 	for (i=0;i<list.length;i++) {
 		var fChild;
 		fChild = new QxTreeFolder(list[i]);
@@ -19,21 +26,51 @@
 		} else {
 			fChild.reg_path = fParent.reg_path + '\\' + list[i];
 		}
+		fChild.working = 1;
 		fChild.add(new QxTreeFolder('Working ...'));
 		fChild.addEventListener("click", function() { 
 			var el = this; __folder_click(el); 
 		});
-		fParent.setOpen(1);
 	}
+	fParent.setOpen(1);
 }
 
+/*
+  callback from the key enumeration call
+*/
+function __folder_values(fParent, list) 
+{
+	var i;
+	if (list.length == 0) {
+		return;
+	}
+	if (fParent.working == 1) {
+		fParent.working = 0;
+		fParent.removeAll();
+	}
+	for (i=0;i<list.length;i++) {
+		var fChild;
+		fChild = new QxTreeFile(list[i].name);
+		fChild.parent = fParent;
+		fChild.details = list[i];
+		fParent.add(fChild);
+	}
+	fParent.setOpen(1);
+}
+
+/*
+  called when someone clicks on a folder
+*/
 function __folder_click(node) 
 {
 	if (!node.populated) {
 		node.populated = true;
-		server_call_url("/scripting/server/regedit.esp", 'enum_path', 
-				function(list) { __folder_list(node, list); }, 
+		server_call_url("/scripting/server/regedit.esp", 'enum_keys', 
+				function(list) { __folder_keys(node, list); }, 
 				node.binding, node.reg_path);
+		server_call_url("/scripting/server/regedit.esp", 'enum_values', 
+				function(list) { __folder_values(node, list); }, 
+				node.binding, node.reg_path);
 	}
 }
 

Modified: branches/SAMBA_4_0/swat/scripting/server/regedit.esp
===================================================================
--- branches/SAMBA_4_0/swat/scripting/server/regedit.esp	2005-08-22 01:52:22 UTC (rev 9465)
+++ branches/SAMBA_4_0/swat/scripting/server/regedit.esp	2005-08-22 01:53:06 UTC (rev 9466)
@@ -8,10 +8,10 @@
 libinclude("server_call.js");
 
 /* 
-   server side call to return a listing of elements in a winreg path
+   server side call to return a listing of keys in a winreg path
 */
-function enum_path(binding, path) {
-	printf("enum_path(%s, %s)\n", binding, path);
+function enum_keys(binding, path) {
+	printf("enum_keys(%s, %s)\n", binding, path);
 	var reg = winreg_init();
 	security_init(reg);
 
@@ -22,13 +22,31 @@
 		printVars(status);
 		return undefined;
 	}
-	var list = winreg_enum_path(reg, path);
-	return list;
+	return winreg_enum_path(reg, path);
 }
 
+/* 
+   server side call to return a listing of values in a winreg path
+*/
+function enum_values(binding, path) {
+	printf("enum_values(%s, %s)\n", binding, path);
+	var reg = winreg_init();
+	security_init(reg);
+
+	reg.credentials = session.authinfo.credentials;
+
+	var status = reg.connect(binding);
+	if (status.is_ok != true) {
+		printVars(status);
+		return undefined;
+	}
+	return winreg_enum_values(reg, path);
+}
+
 /* register a call for clients to make */
 var call = servCallObj();
-call.add('enum_path', enum_path);
+call.add('enum_keys', enum_keys);
+call.add('enum_values', enum_values);
 
 /* run the function that was asked for */
 call.run();



More information about the samba-cvs mailing list