diff options
author | Andrew Bartlett <abartlet@samba.org> | 2007-09-07 03:08:44 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 15:05:21 -0500 |
commit | f8573766bc17af0afacc5d44d3c3d8234b426dbf (patch) | |
tree | 55dfe87448d6332ff48ba6e74fd3226fdd7422f6 /swat/scripting/common.js | |
parent | 8f3ab786f03e1bb5bf73fe9d7264b1b0bbb90a75 (diff) | |
download | samba-f8573766bc17af0afacc5d44d3c3d8234b426dbf.tar.gz samba-f8573766bc17af0afacc5d44d3c3d8234b426dbf.tar.bz2 samba-f8573766bc17af0afacc5d44d3c3d8234b426dbf.zip |
r24985: Start to revert us back to the old-style SWAT, while trying not to
loose some of the fixes in the meantime.
Andrew Bartlett
(This used to be commit 13acff5ed259e7b5859fd2324ea7740b8f9e5fd7)
Diffstat (limited to 'swat/scripting/common.js')
-rw-r--r-- | swat/scripting/common.js | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/swat/scripting/common.js b/swat/scripting/common.js new file mode 100644 index 0000000000..c111089bd8 --- /dev/null +++ b/swat/scripting/common.js @@ -0,0 +1,125 @@ +/* + js functions and code common to all pages +*/ + +/* define some global variables for this request */ +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 = ""; +if (request['COOKIE_SUPPORT'] != "True") { + global.SESSIONURI="?SwatSessionId=" + request['SESSION_ID']; +} + +/* + possibly adjust a local URI to have the session id appended + used for browsers that don't support cookies +*/ +function session_uri(uri) { + return uri + global.SESSIONURI; +} + +/* + like printf, but to the web page +*/ +function writef() +{ + write(vsprintf(arguments)); +} + +/* + like writef with a <br> +*/ +function writefln() +{ + write(vsprintf(arguments)); + write("<br/>\n"); +} + + +/* if the browser was too dumb to set the HOST header, then + set it now */ +if (headers['HOST'] == undefined) { + headers['HOST'] = server['SERVER_HOST'] + ":" + server['SERVER_PORT']; +} + +/* + show the page header. page types include "plain" and "column" +*/ +function page_header(pagetype, title, menu) { + global.page.pagetype = pagetype; + global.page.title = title; + global.page.menu = menu; + include("/scripting/header_" + pagetype + ".esp"); +} + +/* + show the page footer, getting the page type from page.pagetype + set in page_header() +*/ +function page_footer() { + include("/scripting/footer_" + global.page.pagetype + ".esp"); +} + + +/* + display a table element +*/ +function table_element(i, o) { + write("<tr><td>" + i + "</td><td>"); + if (typeof(o[i]) == "object") { + var j, first; + first = true; + for (j in o[i]) { + if (first == false) { + write("<br />"); + } + write(o[i][j]); + first = false; + } + } else { + write(o[i]); + } + write("</td></tr>\n"); +} + +/* + display a ejs object as a table. The header is optional +*/ +function simple_table(v) { + if (v.length == 0) { + return; + } + write("<table class=\"data\">\n"); + var r; + for (r in v) { + table_element(r, v); + } + write("</table>\n"); +} + +/* + display an array of objects, with the header for each element from the given + attribute +*/ +function multi_table(array, header) { + var i, n; + write("<table class=\"data\">\n"); + for (i=0;i<array.length;i++) { + var r, v = array[i]; + write('<tr><th colspan="2">' + v[header] + "</th></tr>\n"); + for (r in v) { + if (r != header) { + table_element(r, v); + } + } + } + write("</table>\n"); +} + |