source: branches/samba-3.5.x/swat2/scripting/common.js@ 1075

Last change on this file since 1075 was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 2.4 KB
Line 
1/*
2 js functions and code common to all pages
3*/
4
5/* define some global variables for this request */
6global.page = new Object();
7
8/* fill in some defaults */
9global.page.title = "Samba Web Administration Tool";
10
11libinclude("base.js");
12
13/* to cope with browsers that don't support cookies we append the sessionid
14 to the URI */
15global.SESSIONURI = "";
16if (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*/
24function session_uri(uri) {
25 return uri + global.SESSIONURI;
26}
27
28/*
29 like printf, but to the web page
30*/
31function writef()
32{
33 write(vsprintf(arguments));
34}
35
36/*
37 like writef with a <br>
38*/
39function 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 */
48if (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*/
55function 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*/
66function page_footer() {
67 include("/scripting/footer_" + global.page.pagetype + ".esp");
68}
69
70
71/*
72 display a table element
73*/
74function 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*/
95function 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*/
111function 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
Note: See TracBrowser for help on using the repository browser.