| 1 | /*
|
|---|
| 2 | js functions and code common to all pages
|
|---|
| 3 | */
|
|---|
| 4 |
|
|---|
| 5 | /* define some global variables for this request */
|
|---|
| 6 | global.page = new Object();
|
|---|
| 7 |
|
|---|
| 8 | /* fill in some defaults */
|
|---|
| 9 | global.page.title = "Samba Web Administration Tool";
|
|---|
| 10 |
|
|---|
| 11 | libinclude("base.js");
|
|---|
| 12 |
|
|---|
| 13 | /* to cope with browsers that don't support cookies we append the sessionid
|
|---|
| 14 | to the URI */
|
|---|
| 15 | global.SESSIONURI = "";
|
|---|
| 16 | if (request['COOKIE_SUPPORT'] != "True") {
|
|---|
| 17 | global.SESSIONURI="?SwatSessionId=" + request['SESSION_ID'];
|
|---|
| 18 | }
|
|---|
| 19 |
|
|---|
| 20 | /*
|
|---|
| 21 | possibly adjust a local URI to have the session id appended
|
|---|
| 22 | used for browsers that don't support cookies
|
|---|
| 23 | */
|
|---|
| 24 | function session_uri(uri) {
|
|---|
| 25 | return uri + global.SESSIONURI;
|
|---|
| 26 | }
|
|---|
| 27 |
|
|---|
| 28 | /*
|
|---|
| 29 | like printf, but to the web page
|
|---|
| 30 | */
|
|---|
| 31 | function writef()
|
|---|
| 32 | {
|
|---|
| 33 | write(vsprintf(arguments));
|
|---|
| 34 | }
|
|---|
| 35 |
|
|---|
| 36 | /*
|
|---|
| 37 | like writef with a <br>
|
|---|
| 38 | */
|
|---|
| 39 | function writefln()
|
|---|
| 40 | {
|
|---|
| 41 | write(vsprintf(arguments));
|
|---|
| 42 | write("<br/>\n");
|
|---|
| 43 | }
|
|---|
| 44 |
|
|---|
| 45 |
|
|---|
| 46 | /* if the browser was too dumb to set the HOST header, then
|
|---|
| 47 | set it now */
|
|---|
| 48 | if (headers['HOST'] == undefined) {
|
|---|
| 49 | headers['HOST'] = server['SERVER_HOST'] + ":" + server['SERVER_PORT'];
|
|---|
| 50 | }
|
|---|
| 51 |
|
|---|
| 52 | /*
|
|---|
| 53 | show the page header. page types include "plain" and "column"
|
|---|
| 54 | */
|
|---|
| 55 | function page_header(pagetype, title, menu) {
|
|---|
| 56 | global.page.pagetype = pagetype;
|
|---|
| 57 | global.page.title = title;
|
|---|
| 58 | global.page.menu = menu;
|
|---|
| 59 | include("/scripting/header_" + pagetype + ".esp");
|
|---|
| 60 | }
|
|---|
| 61 |
|
|---|
| 62 | /*
|
|---|
| 63 | show the page footer, getting the page type from page.pagetype
|
|---|
| 64 | set in page_header()
|
|---|
| 65 | */
|
|---|
| 66 | function page_footer() {
|
|---|
| 67 | include("/scripting/footer_" + global.page.pagetype + ".esp");
|
|---|
| 68 | }
|
|---|
| 69 |
|
|---|
| 70 |
|
|---|
| 71 | /*
|
|---|
| 72 | display a table element
|
|---|
| 73 | */
|
|---|
| 74 | function table_element(i, o) {
|
|---|
| 75 | write("<tr><td>" + i + "</td><td>");
|
|---|
| 76 | if (typeof(o[i]) == "object") {
|
|---|
| 77 | var j, first;
|
|---|
| 78 | first = true;
|
|---|
| 79 | for (j in o[i]) {
|
|---|
| 80 | if (first == false) {
|
|---|
| 81 | write("<br />");
|
|---|
| 82 | }
|
|---|
| 83 | write(o[i][j]);
|
|---|
| 84 | first = false;
|
|---|
| 85 | }
|
|---|
| 86 | } else {
|
|---|
| 87 | write(o[i]);
|
|---|
| 88 | }
|
|---|
| 89 | write("</td></tr>\n");
|
|---|
| 90 | }
|
|---|
| 91 |
|
|---|
| 92 | /*
|
|---|
| 93 | display a ejs object as a table. The header is optional
|
|---|
| 94 | */
|
|---|
| 95 | function simple_table(v) {
|
|---|
| 96 | if (v.length == 0) {
|
|---|
| 97 | return;
|
|---|
| 98 | }
|
|---|
| 99 | write("<table class=\"data\">\n");
|
|---|
| 100 | var r;
|
|---|
| 101 | for (r in v) {
|
|---|
| 102 | table_element(r, v);
|
|---|
| 103 | }
|
|---|
| 104 | write("</table>\n");
|
|---|
| 105 | }
|
|---|
| 106 |
|
|---|
| 107 | /*
|
|---|
| 108 | display an array of objects, with the header for each element from the given
|
|---|
| 109 | attribute
|
|---|
| 110 | */
|
|---|
| 111 | function multi_table(array, header) {
|
|---|
| 112 | var i, n;
|
|---|
| 113 | write("<table class=\"data\">\n");
|
|---|
| 114 | for (i=0;i<array.length;i++) {
|
|---|
| 115 | var r, v = array[i];
|
|---|
| 116 | write('<tr><th colspan="2">' + v[header] + "</th></tr>\n");
|
|---|
| 117 | for (r in v) {
|
|---|
| 118 | if (r != header) {
|
|---|
| 119 | table_element(r, v);
|
|---|
| 120 | }
|
|---|
| 121 | }
|
|---|
| 122 | }
|
|---|
| 123 | write("</table>\n");
|
|---|
| 124 | }
|
|---|
| 125 |
|
|---|