r8720: split form object out to separate include file, and make it a real
authorAndrew Tridgell <tridge@samba.org>
Sat, 23 Jul 2005 09:05:34 +0000 (09:05 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:29:58 +0000 (13:29 -0500)
object, with a display() method
(This used to be commit c45c4e335ed5da1e2e43ffcb9e8d6c32678faa3c)

swat/esptest/exception.esp
swat/esptest/formtest.esp
swat/esptest/loadparm.esp
swat/esptest/session.esp
swat/install/newuser.esp
swat/install/provision.esp
swat/login.esp
swat/scripting/common.js
swat/scripting/forms.js [new file with mode: 0644]

index dcc0fda093097ec3d05cf727453e042f75cb20e1..f32aaeb610e38a66e3a09bbcc3a5220911f3f78d 100644 (file)
@@ -1,4 +1,6 @@
-<% page_header("columns", "ESP Exception test", "/esptest/menu.js"); %>
+<% page_header("columns", "ESP Exception test", "/esptest/menu.js"); 
+   include("/scripting/forms.js");
+%>
 
 <h1>Samba4 exception test</h1>
 
@@ -8,7 +10,7 @@ var f = FormObj("ExceptionTest", 0, 2);
 f.submit[0] = "Generate Exception";
 f.submit[1] = "No Exception";
 
-display_form(f);
+f.display();
 
 if (request['REQUEST_METHOD'] == "POST") {
        function TestFunction(arg1, arg2) {
index 5cb4f003272d131839ed8f1682e865792600cea1..32ad4a04b20ba315785fbed110dceb3c5c8ced64 100644 (file)
@@ -1,4 +1,6 @@
-<% page_header("columns", "ESP Form Test", "/esptest/menu.js"); %>
+<% page_header("columns", "ESP Form Test", "/esptest/menu.js"); 
+   include("/scripting/forms.js");
+%>
 
 <%
 var f = FormObj("FormTest", 3, 2);
@@ -15,7 +17,7 @@ f.element[2].value = form['Color'];
 f.submit[0] = "OK";
 f.submit[1] = "Cancel";
 
-display_form(f);
+f.display();
 
 <%
   /* if its a post then the user has filled in the form, so
index 9ea83b77bca2800ab3c3047abd88bce729a836e8..2783c8e647413e567f2482f0b1d6457b5d6de880 100644 (file)
@@ -1,4 +1,6 @@
-<% page_header("columns", "ESP loadparm test", "/esptest/menu.js" ); %>
+<% page_header("columns", "ESP loadparm test", "/esptest/menu.js" ); 
+   include("/scripting/forms.js");
+%>
 
 <h1>Samba4 loadparm test</h1>
 
@@ -10,7 +12,7 @@ f.element[0].label = "Share";
 f.element[1].label = "Parameter";
 f.submit[0] = "OK";
 
-display_form(f);
+f.display();
 
 function stringVar(v) {
        var type = typeof(v);
index 01352212668e9b0073a1c69c7dea2e27a39a0042..6637c782c0854747655af9e75537518ba5502c29 100644 (file)
@@ -1,4 +1,6 @@
-<% page_header("columns", "ESP session test", "/esptest/menu.js"); %>
+<% page_header("columns", "ESP session test", "/esptest/menu.js"); 
+   include("/scripting/forms.js");
+%>
 
 <h1>Samba4 session test</h1>
 
@@ -12,7 +14,7 @@ f.submit[1] = "Reset";
 f.submit[2] = "Destroy";
 f.submit[3] = "Cancel";
 
-display_form(f);
+f.display();
 
   /* if its a post then the user has filled in the form, so
      report the values 
index 42c109df6bc58ff18f5ebd8409adb4b0bc8b5fc1..afcd9e4d55b210b636597f4dbbf388f2152478cf 100644 (file)
@@ -1,5 +1,6 @@
 <% page_header("columns", "Add a user", "/install/menu.js"); 
 
+  include("/scripting/forms.js");
   libinclude("base.js");
   libinclude("provision.js");
 %>
@@ -34,7 +35,7 @@ if (form['submit'] == "Add" &&
        }
        newuser(form.USERNAME, form.UNIXNAME, form.PASSWORD, writefln);
 } else {
-       display_form(f);
+       f.display();
 }
 %>
 
index 3eb7ba720d3b9dca2c84d016f999154935582193..12e378475a6341f095759cdf96610b5da7d8600a 100644 (file)
@@ -1,5 +1,6 @@
 <% page_header("columns", "Provisioning", "/install/menu.js"); 
 
+  include("/scripting/forms.js");
   libinclude("base.js");
   libinclude("provision.js");
 %>
@@ -58,7 +59,7 @@ lp.set("realm", subobj.REALM);
 if (form['submit'] == "Provision") {
        provision(subobj, writefln);
 } else {
-       display_form(f);
+       f.display();
 }
 %>
 
index 67fd45f8c0a94e34a118e9ab57c4f3f8926dbb66..ae9a35824314fed77f02b2d7f103df5fdf1d57e4 100644 (file)
@@ -1,5 +1,6 @@
 <% page_header("plain", "SWAT Login", "");
    libinclude("auth.js");
+   include("/scripting/forms.js");
 
 if (request['SESSION_EXPIRED'] == "True") {
    write("<b>Your session has expired - please authenticate again<br /></b>\n");
@@ -16,7 +17,7 @@ f.element[2].type  = "select";
 f.element[2].list  = getDomainList();
 f.submit[0] = "Login";
 
-display_form(f);
+f.display();
 %>
 
 <%
index f868040f03d538325f03bed71b40e226682e9bd7..84a142160331a2a8701ed8a941d6e6b963dfe306 100644 (file)
@@ -185,87 +185,3 @@ function multi_table(array, header) {
        write("</table>\n");
 }
 
-/*
-  create a Form object with the defaults filled in, ready for display_form()
- */
-function FormObj(name, num_elements, num_submits)
-{
-       var f = new Object();
-       f.name = name;
-       f.element = new Array(num_elements);
-       f.submit =  new Array(num_submits);
-       f.action = session_uri(request.REQUEST_URI);
-       f.class = "defaultform";
-       for (i in f.element) {
-               f.element[i] = new Object();
-               f.element[i].type = "text";
-               f.element[i].value = "";
-       }
-       return f;
-}
-
-/*
-  display a simple form from a ejs Form object
-  caller should fill in
-    f.name          = form name
-    f.action        = action to be taken on submit (optional, defaults to current page)
-    f.class         = css class (optional, defaults to 'form')
-    f.submit        = an array of submit labels
-    f.element[i].label = element label
-    f.element[i].name  = element name (defaults to label)
-    f.element[i].type  = element type (defaults to text)
-    f.element[i].value = current value (optional, defaults to "")
- */
-function display_form(f) {
-       var i, size = 20;
-       write('<form name="' + f.name +
-             '" method="post" action="' + f.action + 
-             '" class="' + f.class + '">\n');
-       if (f.element.length > 0) {
-               write("<table>\n");
-       }
-       for (i in f.element) {
-               var e = f.element[i];
-               if (e.name == undefined) {
-                       e.name = e.label;
-               }
-               if (e.value == undefined) {
-                       e.value = "";
-               }
-               if (strlen(e.value) > size) {
-                       size = strlen(e.value) + 4;
-               }
-       }
-       for (i in f.element) {
-               var e = f.element[i];
-               write("<tr>");
-               write("<td>" + e.label + "</td>");
-               if (e.type == "select") {
-                       write('<td><select name="' + e.name + '">\n');
-                       for (s in e.list) {
-                               if (e.value == e.list[s]) {
-                                       write('<option selected=selected>' + e.list[s] + '</option>\n');
-                               } else {
-                                       write('<option>' + e.list[s] + '</option>\n');
-                               }
-                       }
-                       write('</select></td>\n');
-               } else {
-                       var sizestr = "";
-                       if (e.type == "text" || e.type == "password") {
-                               sizestr = sprintf('size="%d"', size);
-                       }
-                       writef('<td><input name="%s" type="%s" value="%s" %s /></td>\n',
-                              e.name, e.type, e.value, sizestr);
-               }
-               write("</tr>");
-       }
-       if (f.element.length > 0) {
-               write("</table>\n");
-       }
-       for (i in f.submit) {
-               write('<input name="submit" type="submit" value="' + f.submit[i] + '" />\n');
-       }
-       write("</form>\n");
-}
-
diff --git a/swat/scripting/forms.js b/swat/scripting/forms.js
new file mode 100644 (file)
index 0000000..e44deeb
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+       js functions for forms
+*/
+
+
+/*
+  display a simple form from a ejs Form object
+  caller should fill in
+    f.name          = form name
+    f.action        = action to be taken on submit (optional, defaults to current page)
+    f.class         = css class (optional, defaults to 'form')
+    f.submit        = an array of submit labels
+    f.element[i].label = element label
+    f.element[i].name  = element name (defaults to label)
+    f.element[i].type  = element type (defaults to text)
+    f.element[i].value = current value (optional, defaults to "")
+ */
+function form_display() {
+       var f = this;
+       var i, size = 20;
+       write('<form name="' + f.name +
+             '" method="post" action="' + f.action + 
+             '" class="' + f.class + '">\n');
+       if (f.element.length > 0) {
+               write("<table>\n");
+       }
+       for (i in f.element) {
+               var e = f.element[i];
+               if (e.name == undefined) {
+                       e.name = e.label;
+               }
+               if (e.value == undefined) {
+                       e.value = "";
+               }
+               if (strlen(e.value) > size) {
+                       size = strlen(e.value) + 4;
+               }
+       }
+       for (i in f.element) {
+               var e = f.element[i];
+               write("<tr>");
+               write("<td>" + e.label + "</td>");
+               if (e.type == "select") {
+                       write('<td><select name="' + e.name + '">\n');
+                       for (s in e.list) {
+                               if (e.value == e.list[s]) {
+                                       write('<option selected=selected>' + e.list[s] + '</option>\n');
+                               } else {
+                                       write('<option>' + e.list[s] + '</option>\n');
+                               }
+                       }
+                       write('</select></td>\n');
+               } else {
+                       var sizestr = "";
+                       if (e.type == "text" || e.type == "password") {
+                               sizestr = sprintf('size="%d"', size);
+                       }
+                       writef('<td><input name="%s" type="%s" value="%s" %s /></td>\n',
+                              e.name, e.type, e.value, sizestr);
+               }
+               write("</tr>");
+       }
+       if (f.element.length > 0) {
+               write("</table>\n");
+       }
+       for (i in f.submit) {
+               write('<input name="submit" type="submit" value="' + f.submit[i] + '" />\n');
+       }
+       write("</form>\n");
+}
+
+
+/*
+  create a Form object with the defaults filled in, ready for display()
+ */
+function FormObj(name, num_elements, num_submits)
+{
+       var f = new Object();
+       f.name = name;
+       f.element = new Array(num_elements);
+       f.submit =  new Array(num_submits);
+       f.action = session_uri(request.REQUEST_URI);
+       f.class = "defaultform";
+       for (i in f.element) {
+               f.element[i] = new Object();
+               f.element[i].type = "text";
+               f.element[i].value = "";
+       }
+       f.display = form_display;
+
+       return f;
+}
+