1<% 
2libinclude("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/call.js"></script>
8<script type="text/javascript" src="/scripting/client/js_scripts.js"></script>
9<script type="text/javascript" src="/scripting/client/desktop.js"></script>
10<script type="text/javascript" src="/scripting/client/status.js"></script>
11<script type="text/javascript" src="/scripting/client/regedit.js"></script>
12
13<script type="text/javascript">
14
15function showMessage(m)
16{
17	var message = new QxWindow();
18	with(message) {
19		setWidth(300);
20		setTop("35%");
21		setLeft("35%");
22		setShowMaximize(false);
23		setShowMinimize(false);
24	}
25
26	var note = new QxAtom(m);
27	with(note) {
28		setTop(10);
29		setLeft(10);
30	}
31
32	var ok = new QxButton("OK");
33	with(ok) {
34		setLeft("42%");
35		setBottom(2);
36	}
37	ok.addEventListener("click", function() {
38		doc.remove(message);
39	});
40
41	message.add(note);
42	message.add(ok);
43	doc.add(message);
44	message.setVisible(true);
45}
46
47function blankW()
48{
49	var blank = new Window.standard('SWAT');
50	doc.add(blank);
51	blank.setVisible(true);
52}
53
54function showReg()
55{
56	document.js.add('/scripting/client/regedit.js');
57
58	var regWin = new QxWindow("Registry Editor");
59	regWin._onclosebuttonclick = function(e)
60	{
61		this.close();
62		e.stopPropagation();
63		document.js.remove('/scripting/client/regedit.js');
64	};
65	with(regWin) {
66		setTop(100);
67		setLeft(100);
68		setMinWidth(450);
69		setMinHeight(450);
70	}
71	
72	var regedit = regedit_widget("ncalrpc:");
73	regWin.add(regedit);
74	doc.add(regWin);
75	regWin.setVisible('true');
76}
77
78function clientContextMenu(e)
79{
80	var aboutCmd = new QxCommand();
81	aboutCmd.addEventListener("execute", function() {
82		showMessage("SWAT, the Samba Web Administration Tool.<br/>This tool is currently under development.");
83	});
84
85	var newWin = new QxCommand();
86	newWin.addEventListener("execute", blankW);
87
88	var cmenu = new QxMenu;
89
90	var sub1 = new QxMenuButton("About SWAT", null, aboutCmd);
91	var sep = new QxMenuSeparator();
92	var sub2 = new QxMenuButton("New Window", null, newWin);
93
94	cmenu.add(sub1, sep, sub2);
95
96	cmenu.setLeft(e.getClientX());
97	cmenu.setTop(e.getClientY());
98	doc.add(cmenu);
99	cmenu.setVisible(true);
100}
101
102function windowContextMenu(t, e)
103{
104	var WinWin = new QxCommand();
105	WinWin.addEventListener("execute", function() {
106		var blank = new QxWindow();
107		t.add(blank);
108		blank.setVisible(true);
109	}); 
110
111	var inset = new QxMenu;
112	var sub1 = new QxMenuButton("Open window in a window", null, WinWin);
113
114	inset.add(sub1);
115	t.add(inset)
116
117	inset.setVisible(true);
118}
119
120function startMenu() 
121{
122	var sMenu = new QxMenu;
123	with(sMenu) {
124		setWidth(150);
125		setHeight(150);
126	}
127
128	var srvMenu = new QxMenu;
129	var srv1 = new QxMenuButton("LDAP Server", null);
130	var srv2 = new QxMenuButton("CDAP Server", null);
131	var srv3 = new QxMenuButton("RPC Server", null);
132	var srv4 = new QxMenuButton("NBT Server", null);
133	var srv5 = new QxMenuButton("WINS Server", null);
134	var srv6 = new QxMenuButton("Kerberos Server", null);
135	srvMenu.add(srv1, srv2, srv3, srv4, srv5, srv6);
136	doc.add(srvMenu);
137	srvMenu.setVisible(false);
138
139	var editReg = new QxCommand;
140	editReg.addEventListener("execute", function() {
141		showReg();
142	});
143
144	var espMenu = new QxMenu;
145	var esp1 = new QxMenuButton("Registry Editor", null, editReg);
146	espMenu.add(esp1);
147	doc.add(espMenu);
148	espMenu.setVisible(false);
149
150	var opt1 = new QxMenuButton("Servers", null)
151	opt1.addEventListener("mouseover", function() {
152		srvMenu.setVisible(true);
153		srvMenu.setLeft(this.getComputedPageBoxRight() + 4);
154		srvMenu.setTop(this.getComputedPageBoxTop() - 3);
155		if (espMenu.getVisible()) {
156			espMenu.setVisible(false);
157		} else if (newMenu.getVisible()) {
158			newMenu.setVisible(false);
159		}
160	}); 
161
162	var openWin = new QxCommand;
163	openWin.addEventListener("execute", function() {
164		blankW();
165	});
166
167	var newMenu = new QxMenu;
168	var new1 = new QxMenuButton("Window", null, openWin);
169	newMenu.add(new1);
170	doc.add(newMenu);
171	newMenu.setVisible(false);
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		} else if (newMenu.getVisible()) {
183			newMenu.setVisible(false);
184		}
185	}); 
186	var opt5 = new QxMenuButton("Documentation", null);
187	var opt6 = new QxMenuButton("New", null);
188	opt6.addEventListener("mouseover", function() {
189		newMenu.setVisible(true);
190		newMenu.setLeft(this.getComputedPageBoxRight() + 4);
191		newMenu.setTop(this.getComputedPageBoxTop() - 3);
192		if (srvMenu.getVisible()) {
193			srvMenu.setVisible(false);
194		} else if (espMenu.getVisible()) {
195			espMenu.setVisible(false);
196		}
197	}); 
198	var sep1 = new QxMenuSeparator();
199	var sep2 = new QxMenuSeparator();
200
201	sMenu.add(opt1, opt2, opt3, sep1, opt4, sep2, opt5, opt6);
202	sMenu.setLeft(0);
203	sMenu.setTop(docY() - 150);
204	doc.add(sMenu);
205	sMenu.setVisible(true);
206}
207
208function contextMenu(e)
209{	
210	var t = e.getTarget()
211	var tObj = t.getHtmlAttribute("class")
212
213	if (tObj == 'QxClientDocument QxThemeWin9x') {
214		clientContextMenu(e);
215	} else if (tObj == 'QxWindowPane') {
216		windowContextMenu(t, e);
217	}
218}
219
220window.application.main = function()
221{
222	doc = this.getClientWindow().getClientDocument();
223	doc.addEventListener("contextmenu", contextMenu);
224
225	var bar = new QxMenuBar;
226	with (bar) {
227		setBottom(0);
228		setLeft(0);
229		setWidth("100%");
230		setHeight(25);
231		setBackgroundColor("ThreeDFace");
232	}
233
234	var start = new QxMenuButton("START");
235	start.addEventListener("click", function() {
236		startMenu();
237	});
238	bar.add(start);
239
240	doc.add(bar);
241
242	// Always open with stats
243	var win = new QxWindow();
244	document.js.add('/scripting/client/status.js');
245	win._onclosebuttonclick = function(e)
246	{
247		this.close();
248		e.stopPropagation();
249		document.js.remove('/scripting/client/status.js');
250	};
251	with(win) {
252		setTop(50);
253		setRight(50);
254		setHeight(175);
255	}
256	doc.add(win);
257	getServerStatus(win);
258}
259</script>
260
261<% page_footer(); %>
262