r9139: cleanup the layout a bit
[kai/samba.git] / swat / scripting / common.js
index 0e297d7d995cfff2156fc8284003ad2b244e871a..dde40c8e38a469032248b7d79c3c3ec4980c189b 100644 (file)
@@ -8,6 +8,8 @@ global.page = new Object();
 /* fill in some defaults */
 global.page.title = "Samba Web Administration Tool";
 
+libinclude("base.js");
+
 /* to cope with browsers that don't support cookies we append the sessionid
    to the URI */
 global.SESSIONURI = "";
@@ -50,9 +52,10 @@ if (headers['HOST'] == undefined) {
 /*
   show the page header. page types include "plain" and "column" 
 */
-function page_header(pagetype, title) {
+function page_header(pagetype, title, menu) {
        global.page.pagetype = pagetype;
        global.page.title = title;
+       global.page.menu = menu;
        include("/scripting/header_" + pagetype + ".esp");
 }
 
@@ -71,9 +74,11 @@ function page_footer() {
 */
 function always_allowed(uri) {
        var allowed = new Array("/images/favicon.ico", 
-                               "/images/linkpad.png",
+                               "/images/linkpad.gif",
                                "/images/logo.png",
-                               "/style/main.css",
+                               "/images/stripes.png",
+                               "/style/columns.css",
+                               "/style/swat.css",
                                "/style/common.css");
        for (i in allowed) {
                if (allowed[i] == uri) {
@@ -83,48 +88,6 @@ function always_allowed(uri) {
        return false;
 }
 
-/*
-  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 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></div>\n");
-}
-
-function simple_menu() {
-       var i, m = MenuObj(arguments[0], (arguments.length-1)/2);
-       for (i=0;i<m.element.length;i++) {
-               var ndx = i*2;
-               m.element[i].label = arguments[ndx+1];
-               m.element[i].link = arguments[ndx+2];
-       }
-       display_menu(m);
-}
-
 /*
   display a table element
 */
@@ -180,87 +143,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");
-}
-