summaryrefslogtreecommitdiff
path: root/swat/esptest/registry.esp
blob: 2b6a2144734f5fc76dc6d0ffb068696de814fbb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<% 
  page_header("columns", "ESP registry edit", "esptest"); 
%>

<script type="text/javascript" src="/scripting/client/encoder.js"></script>
<script type="text/javascript" src="/scripting/client/call.js"></script>

<h1>Registry Editor</h1>

  <script type="text/javascript">

function folder_list(t, list) {
	var i;
	t.populated = true;
	t.removeAll();
	for (i=0;i<list.length;i++) {
		var te;
		te = new QxTreeFolder(list[i]);
		t.add(te);
		te.binding = t.binding;
		if (t.reg_path == '\\\\') {
			te.reg_path = list[i];
		} else {
			te.reg_path = t.reg_path + '\\\\' + list[i];
		}
		te.add(new QxTreeFolder('Working ...'));
		te.addEventListener("click", function() { 
			var el = this; folder_click(el); 
		});
		t.setOpen(1);
	}
}

function folder_click(t) {
	if (!t.populated) {
		server_call("registry_calls.esp", 'enum_path', 
			    function(list) { folder_list(t, list); }, 
			    t.binding, t.reg_path);
	}
}

/* return a registry tree for the given server */
function registry_tree(binding) {
      var t = new QxTree("registry: " + binding);
      t.binding = binding;
      t.reg_path = "\\\\";
      t.populated = false;
      with(t)
      {
        setBackgroundColor(255);
        setBorder(QxBorder.presets.inset);
        setOverflow("scroll");
        setStyleProperty("padding", "2px");
        setWidth(400);
        setHeight(400);
        setTop(20);
	addEventListener("click", function() { folder_click(t); });
      }
      return t;
}

  window.application.main = function()
  {
    var inlineWidget = new QxInline;
    var fieldSet = new QxFieldSet("Registry");
    var binding = "ncalrpc:";

    with(fieldSet)
    {
	    setWidth("40%");
	    setMinHeight(500);
	    setBottom(48);
	    setMinWidth(500);
    };

    var gl = new QxGridLayout("auto,auto,auto,auto,auto", "100%");
    gl.setEdge(0);
    gl.setCellPaddingTop(3);
    gl.setCellPaddingBottom(3);

    inlineWidget.add(fieldSet);

    var t = registry_tree(binding);

    function change_binding(e) {
	    binding = e.getNewValue();
    	    srv_printf("changed binding to %s\\n", binding);
	    gl.remove(t);
	    t = registry_tree(binding);
	    gl.add(t, { row : 2, col : 1 });
    }

    var b = new QxTextField(binding);
    b.addEventListener("changeText", change_binding);

    gl.add(b, { row : 1, col : 1 });
    gl.add(t, { row : 2, col : 1 });

    fieldSet.add(gl);
    inlineWidget.add(fieldSet);
    this.getClientWindow().getDocument().add(inlineWidget, "canvas");
  };

  </script>


 <div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>

<% page_footer(); %>