mirror of
https://github.com/samba-team/samba.git
synced 2025-03-09 08:58:35 +03:00
r9466: add display of values as well as keys in the registry editor
(This used to be commit 62d55a250afa3e3923a6b9da7b59177ad59d55a3)
This commit is contained in:
parent
f4aa80d88f
commit
f35e72d9ca
@ -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,20 +26,50 @@ function __folder_list(fParent, list)
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
|
@ -8,10 +8,10 @@ libinclude("winreg.js");
|
||||
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 @@ function enum_path(binding, path) {
|
||||
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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user