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