r7132: - start a convention of making object constructors end in Obj, so we
authorAndrew Tridgell <tridge@samba.org>
Tue, 31 May 2005 02:57:21 +0000 (02:57 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:17:20 +0000 (13:17 -0500)
  now have FormObj(). This follows the style in the ejs manual

- make a new MenuObj object type, with a display_menu() to display
  it. This will make it easier to make different types of
  menus. Currently only veritical simple menus are supported.

swat/docs/menu.js
swat/esptest/exception.esp
swat/esptest/formtest.esp
swat/esptest/loadparm.esp
swat/esptest/session.esp
swat/login.esp
swat/scripting/common.js

index 4a39497fd9b3bbbdb968f247c150ddf44ddd56c6..b57b454a32c88489d169601265d09be123674e69 100644 (file)
@@ -1,9 +1,22 @@
 /* show a menu for the docs directory */
-simple_menu(
-       "Samba Information",
-       "Samba4 development", "http://devel.samba.org/",
-       "Recent Checkins", "http://build.samba.org/?tree=samba4&function=Recent+Checkins",
-       "Recent Builds",   "http://build.samba.org/?tree=samba4&function=Recent+Builds",
-       "EJS Information", "http://www.appwebserver.org/products/ejs/ejs.html",
-       "ESP Information", "http://www.appwebserver.org/products/esp/esp.html",
-       "HTML 4.01 Spec",  "http://www.w3.org/TR/html401/");
+var m = MenuObj("Samba Information", 8);
+
+m.element[0].label = "Samba4 development";
+m.element[0].link  = "http://devel.samba.org/";
+m.element[1].label = "Recent Checkins";
+m.element[1].link  = "http://build.samba.org/?tree=samba4&function=Recent+Checkins";
+m.element[2].label = "Recent Builds";
+m.element[2].link  = "http://build.samba.org/?tree=samba4&function=Recent+Builds";
+m.element[3].label = "EJS Information";
+m.element[3].link  = "http://www.appwebserver.org/products/ejs/ejs.html";
+m.element[4].label = "ESP Information";
+m.element[4].link  = "http://www.appwebserver.org/products/esp/esp.html";
+m.element[5].label = "HTML 4.01 Spec";
+m.element[5].link  = "http://www.w3.org/TR/html401/";
+m.element[6].label = "JavaScript Spec";
+m.element[6].link  = "http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf";
+m.element[7].label = "CSS2 Reference";
+m.element[7].link  = "http://www.w3schools.com/css/css_reference.asp";
+
+display_menu(m);
+
index 986b616dabcc77bb0b60b717040d9954aa3d2ca5..df62e9a326387d9264569b5fd17aedc40d84f005 100644 (file)
@@ -4,7 +4,7 @@
 
 
 <%
-var f = Form("ExceptionTest", 0, 2);
+var f = FormObj("ExceptionTest", 0, 2);
 f.submit[0] = "Generate Exception";
 f.submit[1] = "No Exception";
 
index 9f5626624ef845793135eadf64a77372633bb424..2d7c33e518f4322fad7133d75079b5b223b712f2 100644 (file)
@@ -1,7 +1,7 @@
 <% page_header("columns", "ESP Form Test"); %>
 
 <%
-var f = Form("FormTest", 3, 2);
+var f = FormObj("FormTest", 3, 2);
 f.element[0].label = "First Name";
 f.element[0].name  = "firstName";
 f.element[0].value = form['firstName'];
index 5e45e4262c159b8c8e22b4dbf37c9a9ec623dd83..738208b745d93810ee99645e435b60ecf304d105 100644 (file)
@@ -3,7 +3,7 @@
 <h1>Samba4 loadparm test</h1>
 
 <%
-var f = Form("LoadparmTest", 2, 1);
+var f = FormObj("LoadparmTest", 2, 1);
 f.element[0].label = "Share";
 f.element[1].label = "Parameter";
 f.submit[0] = "OK";
index 6de7edab67403d9dfec48122fb8eb2d76103780a..309505bae3e349d6c1bf8e36b623a632f8ac443d 100644 (file)
@@ -3,7 +3,7 @@
 <h1>Samba4 session test</h1>
 
 <%
-var f = Form("SessionTest", 3, 4);
+var f = FormObj("SessionTest", 3, 4);
 f.element[0].label = "Name";
 f.element[1].label = "Value";
 f.element[2].label = "Timeout";
index fba1c544dcdc0356c45ee5ff64988a56bd909ccd..f66249251182f70ac0b097329a7346ae43b5d82c 100644 (file)
@@ -6,7 +6,7 @@ if (request['SESSION_EXPIRED'] == "True") {
    write("<b>Your session has expired - please authenticate again<br>\n");
 }
 
-var f = Form("login", 2, 1);
+var f = FormObj("login", 2, 1);
 f.element[0].label = "Username";
 f.element[0].value = form['Username'];
 f.element[1].label = "Password";
index 8df419bc6057ddcd7549c6a2a50390fe7f1bad09..d087f0d2a61680d1f1f135c1c2e08a6a0fc8f2ff 100644 (file)
@@ -69,17 +69,45 @@ function always_allowed(uri) {
 }
 
 /*
-  display a simple menu. First argument is menu title, followed by
-  pairs of menu item name and link
+  create a menu object with the defaults filled in, ready for display_menu()
+ */
+function MenuObj(name, num_elements)
+{
+       var o = new Object();
+       o.name = name;
+       o.class = "menu";
+       o.style = "simple";
+       o.orientation = "vertical"
+       o.element = new Array(num_elements);
+       for (i in o.element) {
+               o.element[i] = new Object();
+       }
+       return o;
+}
+
+/*
+  display a menu object. Currently only the "simple", "vertical" menu style
+  is supported
 */
-function simple_menu() {
-       write("<i>" + arguments[0] + "</i><br /><ul>\n");
-       for (i = 1; i < arguments.length; i = i + 2) {
-               write("<li><a href=\"" + arguments[i+1] + "\">" + arguments[i] + "</a></li>\n");
+function display_menu(m) {
+       assert(m.style == "simple" && m.orientation == "vertical");
+       write('<div class="' + m.class + '">\n');
+       write("<i>" + m.name + "</i><br /><ul>\n");
+       for (i = 0; i < m.element.length; i++) {
+               var e = m.element[i];
+               write("<li><a href=\"" + e.link + "\">" + e.label + "</a></li>\n");
        }
-       write("</ul>\n");
+       write("</ul></div>\n");
 }
 
+function simple_menu() {
+       var m = MenuObj(arguments[0], (arguments.length-1)/2);
+       for (i=0;i<m.element.length;i++) {
+               m.element[i].label = arguments[1+(i*2)];
+               m.element[i].link = arguments[2+(i*2)];
+       }
+       display_menu(m);
+}
 
 /*
   display a table element
@@ -133,7 +161,7 @@ function multi_table(array, header) {
 /*
   create a Form object with the defaults filled in, ready for display_form()
  */
-function Form(name, num_elements, num_submits)
+function FormObj(name, num_elements, num_submits)
 {
        var f = new Object();
        f.name = name;