2 /******************************/
3 /* server side AJAJ functions */
5 libinclude("winreg.js");
6 libinclude("server_call.js");
9 server side call to return a listing of elements in a winreg path
11 function enum_path(binding, path) {
12 printf("enum_path(%s, %s)\n", binding, path);
13 var reg = winreg_init();
16 reg.credentials = session.authinfo.credentials;
18 var status = reg.connect(binding);
19 if (status.is_ok != true) {
23 var list = winreg_enum_path(reg, path);
27 /* register a call for clients to make */
28 var call = servCallObj();
29 call.add('enum_path', enum_path);
31 /* run the function that was asked for */
34 /***********************/
35 /* now the main page */
36 page_header("columns", "ESP registry edit", "esptest");
39 <script type="text/javascript" src="/scripting/client/encoder.js"></script>
40 <script type="text/javascript" src="/scripting/client/call.js"></script>
42 <h1>Registry Editor</h1>
44 <script type="text/javascript">
46 function folder_list(t, list) {
50 for (i=0;i<list.length;i++) {
52 te = new QxTreeFolder(list[i]);
54 te.binding = t.binding;
55 if (t.reg_path == '\\\\') {
56 te.reg_path = list[i];
58 te.reg_path = t.reg_path + '\\\\' + list[i];
60 te.add(new QxTreeFolder('Working ...'));
61 te.addEventListener("click", function() {
62 var el = this; folder_click(el);
68 function folder_click(t) {
70 server_call_url("@@request.REQUEST_URI", 'enum_path',
71 function(list) { folder_list(t, list); },
72 t.binding, t.reg_path);
76 /* return a registry tree for the given server */
77 function registry_tree(binding) {
78 var t = new QxTree("registry: " + binding);
84 setBackgroundColor(255);
85 setBorder(QxBorder.presets.inset);
86 setOverflow("scroll");
87 setStyleProperty("padding", "2px");
92 t.addEventListener("click", function() {
93 var el = this; folder_click(el);
98 window.application.main = function()
100 var inlineWidget = new QxInline;
101 var fieldSet = new QxFieldSet("Registry");
102 var binding = "ncalrpc:";
112 var gl = new QxGridLayout("auto,auto,auto,auto,auto", "100%");
114 gl.setCellPaddingTop(3);
115 gl.setCellPaddingBottom(3);
117 inlineWidget.add(fieldSet);
119 var t = registry_tree(binding);
121 function change_binding(e) {
122 binding = e.getNewValue();
123 srv_printf("changed binding to %s\\n", binding);
125 t = registry_tree(binding);
126 gl.add(t, { row : 2, col : 1 });
129 var b = new QxTextField(binding);
130 b.addEventListener("changeText", change_binding);
132 gl.add(b, { row : 1, col : 1 });
133 gl.add(t, { row : 2, col : 1 });
136 inlineWidget.add(fieldSet);
137 this.getClientWindow().getDocument().add(inlineWidget, "canvas");
143 <div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>