r9469: Add a right-click menu to the SWAT desktop.
[sfrench/samba-autobuild/.git] / swat / desktop / index.esp
1 <% 
2 /*** Reg stuff ***/
3 libinclude("base.js");
4         page_header("desktop", "Virtual Desktop Design Test", "desktop");
5 %>
6
7 <script type="text/javascript" src="/scripting/client/encoder.js"></script>
8 <script type="text/javascript" src="/scripting/client/call.js"></script>
9 <script type="text/javascript" src="/scripting/client/regedit.js"></script>
10
11 <script type="text/javascript">
12
13 /* Qooxdoo's browser sniffer doesn't distinguish IE version.
14     We'll cover IE 6 for now, but these checks need to be
15     revisited for fuller browser coverage. */
16 var browser = QxClient().engine;
17
18 function docWidth()
19 {
20   var x;
21   if (browser != "mshtml") {
22     x = window.innerWidth;
23   } else {
24     x = document.documentElement.clientWidth;
25   }
26   return x;
27 }
28
29 function docHeight()
30 {
31   var y;
32   // Less 25px to not cover the toolbar
33   if (browser != "mshtml") {
34     y = window.innerHeight - 25;
35   } else {
36     y = document.documentElement.clientHeight;
37   }
38   return y;
39 }
40
41 function showMessage(m)
42 {
43     var message = new QxWindow();
44     with(message) {
45       setWidth(300);
46       setTop("35%");
47       setLeft("35%");
48       setShowMaximize(false);
49       setShowMinimize(false);
50     }
51
52     var note = new QxAtom(m);
53     with(note) {
54       setTop(10);
55       setLeft(10);
56     }
57
58     var ok = new QxButton("OK");
59     with(ok) {
60       setLeft("42%");
61       setBottom(2);
62     }
63     ok.addEventListener("click", function() {
64       w.remove(message);
65     });
66
67     message.add(note);
68     message.add(ok);
69     w.add(message);
70     message.setVisible(true);
71 }
72
73 function showContextMenu(e)
74 {
75
76   var aboutCmd = new QxCommand();
77   aboutCmd.addEventListener("execute", function() {
78     showMessage("SWAT, the Samba Web Administration Tool.<br/>This tool is currently under development.");
79   });
80
81   var menu = new QxMenu;
82
83   var sub1 = new QxMenuButton("About SWAT", null, aboutCmd);
84   var sep = new QxMenuSeparator();
85   var sub2 = new QxMenuButton("More menu later...", null);
86
87   menu.add(sub1, sep, sub2);
88
89   menu.setLeft(e.getClientX());
90   menu.setTop(e.getClientY());
91   w.add(menu);
92   menu.setVisible(true);
93 }
94
95 /*** init the page for qooxdoo ***/
96 window.application.main = function()
97 {
98   var doc = this.getClientWindow().getClientDocument();
99   // Don't declare local with var
100   w = new QxWidget();
101   with(w) {
102     setTop(0);
103     setLeft(0);
104     setWidth(docWidth());
105     setHeight(docHeight());
106   }
107   doc.addEventListener("contextmenu", showContextMenu);
108   doc.add(w);
109
110 }
111
112 window.onresize = function() 
113 {
114   w.setWidth(docWidth());
115   w.setHeight(docHeight());
116 }
117
118 function showReg()
119 {
120         var regedit = regedit_widget("ncalrpc:");
121         w.add(regedit);
122         regedit.startup();
123 }
124
125 function startSwat()
126 {
127   // Don't declare local with var (for now)
128   var w1 = new QxWindow("Welcome to SWAT.");
129   w1.setSpace("40%", 0, "35%", 0);
130   w.add(w1);
131
132   var btn1 = new QxButton("View Registry");
133   btn1.set({ top: 20, left : 30 });
134   btn1.addEventListener("click", showReg)
135   w1.add(btn1);
136
137   w1.setVisible(true);
138 }
139 </script>
140
141 <div id="toolbar">
142         <h3><a href="javascript:startSwat()">SWAT (Start)</a></h3>
143 </div>
144
145 <% page_footer(); %>