2
client side js functions for registry editing
4
Copyright Andrew Tridgell 2005
5
released under the GNU GPL Version 3 or later
10
callback from the key enumeration call
12
function __folder_keys(fParent, list)
15
if (fParent.working == 1) {
19
for (i=0;i<list.length;i++) {
21
fChild = new QxTreeFolder(list[i]);
23
fChild.binding = fParent.binding;
24
if (fParent.reg_path == '\\') {
25
fChild.reg_path = list[i];
27
fChild.reg_path = fParent.reg_path + '\\' + list[i];
30
fChild.add(new QxTreeFolder('Working ...'));
31
fChild.addEventListener("click", function() {
32
var el = this; __folder_click(el);
39
callback from the key enumeration call
41
function __folder_values(fParent, list)
44
if (list.length == 0) {
47
if (fParent.working == 1) {
51
for (i=0;i<list.length;i++) {
53
fChild = new QxTreeFile(list[i].name);
54
fChild.parent = fParent;
55
fChild.details = list[i];
62
called when someone clicks on a folder
64
function __folder_click(node)
66
if (!node.populated) {
67
node.populated = true;
68
server_call_url("/scripting/server/regedit.esp", 'enum_keys',
69
function(list) { __folder_keys(node, list); },
70
node.binding, node.reg_path);
71
server_call_url("/scripting/server/regedit.esp", 'enum_values',
72
function(list) { __folder_values(node, list); },
73
node.binding, node.reg_path);
77
/* return a registry tree for the given server */
78
function __registry_tree(binding)
80
var tree = new QxTree("registry: " + binding);
81
tree.binding = binding;
83
tree.populated = false;
85
setBackgroundColor(255);
86
setBorder(QxBorder.presets.inset);
87
setOverflow("scroll");
88
setStyleProperty("padding", "2px");
93
tree.addEventListener("click", function() {
94
var el = this; __folder_click(el);
102
function __values_table()
104
var headings = new Array("Name", "Type", "Size", "Value");
105
var table = document.createElement('table');
107
var body = document.createElement('tbody');
108
table.appendChild(body);
109
var th = document.createElement('th');
110
for (var i=0;i<headings.length;i++) {
111
var td = document.createElement('td');
112
td.appendChild(document.createTextNode(headings[i]));
115
body.appendChild(th);
120
create a registry editing widget and return it as a object
122
function regedit_widget(binding)
124
var fieldSet = new QxFieldSet();
126
fieldSet.binding = binding;
133
var gl = new QxGridLayout("auto,auto,auto,auto,auto", "50%,50%");
135
gl.setCellPaddingTop(3);
136
gl.setCellPaddingBottom(3);
138
var t = __registry_tree(fieldSet.binding);
140
function change_binding(e) {
141
fieldSet.binding = e.getNewValue();
142
srv_printf("changed binding to %s\\n", fieldSet.binding);
144
t = __registry_tree(fieldSet.binding);
145
gl.add(t, { row : 2, col : 1 });
148
var b = new QxTextField(fieldSet.binding);
149
b.addEventListener("changeText", change_binding);
151
var values = new __values_table();
153
gl.add(b, { row : 1, col : 1 });
154
gl.add(t, { row : 2, col : 1 });
155
// gl.add(values, { row : 2, col : 2 });