| 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 |  | 
|---|