rename swat => swat2, so that we don't conflict with samba3
[kai/samba.git] / swat2 / desktop / index.esp
diff --git a/swat2/desktop/index.esp b/swat2/desktop/index.esp
new file mode 100644 (file)
index 0000000..1dee4d3
--- /dev/null
@@ -0,0 +1,261 @@
+<% 
+libinclude("base.js");
+       page_header("desktop", "Virtual Desktop Design Test", "desktop");
+%>
+
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+<script type="text/javascript" src="/scripting/client/js_scripts.js"></script>
+<script type="text/javascript" src="/scripting/client/desktop.js"></script>
+<script type="text/javascript" src="/scripting/client/status.js"></script>
+<script type="text/javascript" src="/scripting/client/regedit.js"></script>
+
+<script type="text/javascript">
+
+function showMessage(m)
+{
+       var message = new QxWindow();
+       with(message) {
+               setWidth(300);
+               setTop("35%");
+               setLeft("35%");
+               setShowMaximize(false);
+               setShowMinimize(false);
+       }
+
+       var note = new QxAtom(m);
+       with(note) {
+               setTop(10);
+               setLeft(10);
+       }
+
+       var ok = new QxButton("OK");
+       with(ok) {
+               setLeft("42%");
+               setBottom(2);
+       }
+       ok.addEventListener("click", function() {
+               doc.remove(message);
+       });
+
+       message.add(note);
+       message.add(ok);
+       doc.add(message);
+       message.setVisible(true);
+}
+
+function blankW()
+{
+       var blank = new Window.standard('SWAT');
+       doc.add(blank);
+       blank.setVisible(true);
+}
+
+function showReg()
+{
+       document.js.add('/scripting/client/regedit.js');
+
+       var regWin = new QxWindow("Registry Editor");
+       regWin._onclosebuttonclick = function(e)
+       {
+               this.close();
+               e.stopPropagation();
+               document.js.remove('/scripting/client/regedit.js');
+       };
+       with(regWin) {
+               setTop(100);
+               setLeft(100);
+               setMinWidth(450);
+               setMinHeight(450);
+       }
+       
+       var regedit = regedit_widget("ncalrpc:");
+       regWin.add(regedit);
+       doc.add(regWin);
+       regWin.setVisible('true');
+}
+
+function clientContextMenu(e)
+{
+       var aboutCmd = new QxCommand();
+       aboutCmd.addEventListener("execute", function() {
+               showMessage("SWAT, the Samba Web Administration Tool.<br/>This tool is currently under development.");
+       });
+
+       var newWin = new QxCommand();
+       newWin.addEventListener("execute", blankW);
+
+       var cmenu = new QxMenu;
+
+       var sub1 = new QxMenuButton("About SWAT", null, aboutCmd);
+       var sep = new QxMenuSeparator();
+       var sub2 = new QxMenuButton("New Window", null, newWin);
+
+       cmenu.add(sub1, sep, sub2);
+
+       cmenu.setLeft(e.getClientX());
+       cmenu.setTop(e.getClientY());
+       doc.add(cmenu);
+       cmenu.setVisible(true);
+}
+
+function windowContextMenu(t, e)
+{
+       var WinWin = new QxCommand();
+       WinWin.addEventListener("execute", function() {
+               var blank = new QxWindow();
+               t.add(blank);
+               blank.setVisible(true);
+       }); 
+
+       var inset = new QxMenu;
+       var sub1 = new QxMenuButton("Open window in a window", null, WinWin);
+
+       inset.add(sub1);
+       t.add(inset)
+
+       inset.setVisible(true);
+}
+
+function startMenu() 
+{
+       var sMenu = new QxMenu;
+       with(sMenu) {
+               setWidth(150);
+               setHeight(150);
+       }
+
+       var srvMenu = new QxMenu;
+       var srv1 = new QxMenuButton("LDAP Server", null);
+       var srv2 = new QxMenuButton("CDAP Server", null);
+       var srv3 = new QxMenuButton("RPC Server", null);
+       var srv4 = new QxMenuButton("NBT Server", null);
+       var srv5 = new QxMenuButton("WINS Server", null);
+       var srv6 = new QxMenuButton("Kerberos Server", null);
+       srvMenu.add(srv1, srv2, srv3, srv4, srv5, srv6);
+       doc.add(srvMenu);
+       srvMenu.setVisible(false);
+
+       var editReg = new QxCommand;
+       editReg.addEventListener("execute", function() {
+               showReg();
+       });
+
+       var espMenu = new QxMenu;
+       var esp1 = new QxMenuButton("Registry Editor", null, editReg);
+       espMenu.add(esp1);
+       doc.add(espMenu);
+       espMenu.setVisible(false);
+
+       var opt1 = new QxMenuButton("Servers", null)
+       opt1.addEventListener("mouseover", function() {
+               srvMenu.setVisible(true);
+               srvMenu.setLeft(this.getComputedPageBoxRight() + 4);
+               srvMenu.setTop(this.getComputedPageBoxTop() - 3);
+               if (espMenu.getVisible()) {
+                       espMenu.setVisible(false);
+               } else if (newMenu.getVisible()) {
+                       newMenu.setVisible(false);
+               }
+       }); 
+
+       var openWin = new QxCommand;
+       openWin.addEventListener("execute", function() {
+               blankW();
+       });
+
+       var newMenu = new QxMenu;
+       var new1 = new QxMenuButton("Window", null, openWin);
+       newMenu.add(new1);
+       doc.add(newMenu);
+       newMenu.setVisible(false);
+
+       var opt2 = new QxMenuButton("Installation", null);
+       var opt3 = new QxMenuButton("Configuration", null);
+       var opt4 = new QxMenuButton("ESP Tests", null);
+       opt4.addEventListener("mouseover", function() {
+               espMenu.setVisible(true);
+               espMenu.setLeft(this.getComputedPageBoxRight() + 4);
+               espMenu.setTop(this.getComputedPageBoxTop() - 3);
+               if (srvMenu.getVisible()) {
+                       srvMenu.setVisible(false);
+               } else if (newMenu.getVisible()) {
+                       newMenu.setVisible(false);
+               }
+       }); 
+       var opt5 = new QxMenuButton("Documentation", null);
+       var opt6 = new QxMenuButton("New", null);
+       opt6.addEventListener("mouseover", function() {
+               newMenu.setVisible(true);
+               newMenu.setLeft(this.getComputedPageBoxRight() + 4);
+               newMenu.setTop(this.getComputedPageBoxTop() - 3);
+               if (srvMenu.getVisible()) {
+                       srvMenu.setVisible(false);
+               } else if (espMenu.getVisible()) {
+                       espMenu.setVisible(false);
+               }
+       }); 
+       var sep1 = new QxMenuSeparator();
+       var sep2 = new QxMenuSeparator();
+
+       sMenu.add(opt1, opt2, opt3, sep1, opt4, sep2, opt5, opt6);
+       sMenu.setLeft(0);
+       sMenu.setTop(docY() - 150);
+       doc.add(sMenu);
+       sMenu.setVisible(true);
+}
+
+function contextMenu(e)
+{      
+       var t = e.getTarget()
+       var tObj = t.getHtmlAttribute("class")
+
+       if (tObj == 'QxClientDocument QxThemeWin9x') {
+               clientContextMenu(e);
+       } else if (tObj == 'QxWindowPane') {
+               windowContextMenu(t, e);
+       }
+}
+
+window.application.main = function()
+{
+       doc = this.getClientWindow().getClientDocument();
+       doc.addEventListener("contextmenu", contextMenu);
+
+       var bar = new QxMenuBar;
+       with (bar) {
+               setBottom(0);
+               setLeft(0);
+               setWidth("100%");
+               setHeight(25);
+               setBackgroundColor("ThreeDFace");
+       }
+
+       var start = new QxMenuButton("START");
+       start.addEventListener("click", function() {
+               startMenu();
+       });
+       bar.add(start);
+
+       doc.add(bar);
+
+       // Always open with stats
+       var win = new QxWindow();
+       document.js.add('/scripting/client/status.js');
+       win._onclosebuttonclick = function(e)
+       {
+               this.close();
+               e.stopPropagation();
+               document.js.remove('/scripting/client/status.js');
+       };
+       with(win) {
+               setTop(50);
+               setRight(50);
+               setHeight(175);
+       }
+       doc.add(win);
+       getServerStatus(win);
+}
+</script>
+
+<% page_footer(); %>