424f848e4452ebe42c794880909eea9d975c7eab
[jra/samba/.git] / swat / desktop / index.esp
1 <% 
2 libinclude("base.js");
3         page_header("desktop", "Virtual Desktop Design Test", "desktop");
4 %>
5
6 <script type="text/javascript" src="/scripting/client/encoder.js"></script>
7 <script type="text/javascript" src="/scripting/client/regedit.js"></script>
8 <script type="text/javascript" src="/scripting/client/status.js"></script>
9
10 <script type="text/javascript">
11
12 /* Qooxdoo's browser sniffer doesn't distinguish IE version.
13 We'll cover IE 6 for now, but these checks need to be
14 revisited for fuller browser coverage. */
15 var browser = QxClient().engine;
16
17 function docWidth()
18 {
19         var x;
20         if (browser != "mshtml") {
21                 x = window.innerWidth;
22         } else {
23                 x = document.documentElement.clientWidth;
24         }
25         return x;
26 }
27
28 function docHeight()
29 {
30         var y;
31         // Less 25px to not cover the toolbar
32         if (browser != "mshtml") {
33                 y = window.innerHeight - 25;
34         } else {
35                 y = document.documentElement.clientHeight;
36         }
37         return y;
38 }
39
40 function showMessage(m)
41 {
42         var message = new QxWindow();
43         with(message) {
44                 setWidth(300);
45                 setTop("35%");
46                 setLeft("35%");
47                 setShowMaximize(false);
48                 setShowMinimize(false);
49         }
50
51         var note = new QxAtom(m);
52         with(note) {
53                 setTop(10);
54                 setLeft(10);
55         }
56
57         var ok = new QxButton("OK");
58         with(ok) {
59                 setLeft("42%");
60                 setBottom(2);
61         }
62         ok.addEventListener("click", function() {
63                 w.remove(message);
64         });
65
66         message.add(note);
67         message.add(ok);
68         w.add(message);
69         message.setVisible(true);
70 }
71
72 function showContextMenu(e)
73 {
74         var aboutCmd = new QxCommand();
75         aboutCmd.addEventListener("execute", function() {
76                 showMessage("SWAT, the Samba Web Administration Tool.<br/>This tool is currently under development.");
77         });
78
79         var menu = new QxMenu;
80
81         var sub1 = new QxMenuButton("About SWAT", null, aboutCmd);
82         var sep = new QxMenuSeparator();
83         var sub2 = new QxMenuButton("More menu later...", null);
84
85         menu.add(sub1, sep, sub2);
86
87         menu.setLeft(e.getClientX());
88         menu.setTop(e.getClientY());
89         w.add(menu);
90         menu.setVisible(true);
91 }
92
93 /*** init the page for qooxdoo ***/
94 window.application.main = function()
95 {
96         var doc = this.getClientWindow().getClientDocument();
97         // Don't declare local with var
98         w = new QxWidget();
99         with(w) {
100                 setTop(0);
101                 setLeft(0);
102                 setWidth(docWidth());
103                 setHeight(docHeight());
104         }
105         doc.addEventListener("contextmenu", showContextMenu);
106         doc.add(w);
107
108
109         // Always open with stats
110         var win = new QxWindow();
111         with(win) {
112                 setTop(50);
113                 setRight(50);
114                 setHeight(175);
115         }
116         w.add(win);
117         getServerStatus(win);
118         
119 }
120
121 window.onresize = function() 
122 {
123         w.setWidth(docWidth());
124         w.setHeight(docHeight());
125 }
126
127 function showReg()
128 {
129         var regedit = regedit_widget("ncalrpc:");
130         w.add(regedit);
131         regedit.startup();
132 }
133
134 function startSwat()
135 {
136         var sMenu = new QxMenu;
137         with(sMenu) {
138                 setWidth(150);
139                 setHeight(150);
140         }
141
142         var srvMenu = new QxMenu;
143         var srv1 = new QxMenuButton("LDAP Server", null);
144         var srv2 = new QxMenuButton("CDAP Server", null);
145         var srv3 = new QxMenuButton("RPC Server", null);
146         var srv4 = new QxMenuButton("NBT Server", null);
147         var srv5 = new QxMenuButton("WINS Server", null);
148         var srv6 = new QxMenuButton("Kerberos Server", null);
149         srvMenu.add(srv1, srv2, srv3, srv4, srv5, srv6);
150         w.add(srvMenu);
151         srvMenu.setVisible(false);
152
153         var editReg = new QxCommand;
154         editReg.addEventListener("execute", function() {
155                 showReg();
156         });
157
158         var espMenu = new QxMenu;
159         var esp1 = new QxMenuButton("Registry Editor", null, editReg);
160         espMenu.add(esp1);
161         w.add(espMenu);
162         espMenu.setVisible(false);
163
164         var opt1 = new QxMenuButton("Servers", null)
165         opt1.addEventListener("mouseover", function() {
166                 srvMenu.setVisible(true);
167                 srvMenu.setLeft(this.getComputedPageBoxRight() + 4);
168                 srvMenu.setTop(this.getComputedPageBoxTop() - 3);
169                 if (espMenu.getVisible()) {
170                         espMenu.setVisible(false);
171                 }
172         }); 
173         var opt2 = new QxMenuButton("Installation", null);
174         var opt3 = new QxMenuButton("Configuration", null);
175         var opt4 = new QxMenuButton("ESP Tests", null);
176         opt4.addEventListener("mouseover", function() {
177                 espMenu.setVisible(true);
178                 espMenu.setLeft(this.getComputedPageBoxRight() + 4);
179                 espMenu.setTop(this.getComputedPageBoxTop() - 3);
180                 if (srvMenu.getVisible()) {
181                         srvMenu.setVisible(false);
182                 }
183         }); 
184         var opt5 = new QxMenuButton("Documentation", null);
185         var sep1 = new QxMenuSeparator();
186         var sep2 = new QxMenuSeparator();
187
188         sMenu.add(opt1, opt2, opt3, sep1, opt4, sep2, opt5);
189         sMenu.setLeft(0);
190         sMenu.setTop(docHeight() - 150);
191         w.add(sMenu);
192         sMenu.setVisible(true);
193 }
194 </script>
195
196 <div id="toolbar">
197 <h3><a href="javascript:startSwat()">SWAT (Start)</a></h3>
198 </div>
199
200 <% page_footer(); %>