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