summaryrefslogtreecommitdiff
path: root/swat/scripting
diff options
context:
space:
mode:
Diffstat (limited to 'swat/scripting')
-rw-r--r--swat/scripting/common.js42
-rw-r--r--swat/scripting/header_columns.esp18
-rw-r--r--swat/scripting/menus.js53
3 files changed, 62 insertions, 51 deletions
diff --git a/swat/scripting/common.js b/swat/scripting/common.js
index 84a1421603..dde40c8e38 100644
--- a/swat/scripting/common.js
+++ b/swat/scripting/common.js
@@ -89,48 +89,6 @@ function always_allowed(uri) {
}
/*
- create a menu object with the defaults filled in, ready for display_menu()
- */
-function MenuObj(name, num_elements)
-{
- var o = new Object();
- o.name = name;
- o.class = "menu";
- o.style = "simple";
- o.orientation = "vertical"
- o.element = new Array(num_elements);
- for (i in o.element) {
- o.element[i] = new Object();
- }
- return o;
-}
-
-/*
- display a menu object. Currently only the "simple", "vertical" menu style
- is supported
-*/
-function display_menu(m) {
- assert(m.style == "simple" && m.orientation == "vertical");
- write('<div class="' + m.class + '">\n');
- write("<i>" + m.name + "</i><br /><ul>\n");
- for (i = 0; i < m.element.length; i++) {
- var e = m.element[i];
- write("<li><a href=\"" + e.link + "\">" + e.label + "</a></li>\n");
- }
- write("</ul></div>\n");
-}
-
-function simple_menu() {
- var i, m = MenuObj(arguments[0], (arguments.length-1)/2);
- for (i=0;i<m.element.length;i++) {
- var ndx = i*2;
- m.element[i].label = arguments[ndx+1];
- m.element[i].link = arguments[ndx+2];
- }
- display_menu(m);
-}
-
-/*
display a table element
*/
function table_element(i, o) {
diff --git a/swat/scripting/header_columns.esp b/swat/scripting/header_columns.esp
index 0320e66283..20238b588e 100644
--- a/swat/scripting/header_columns.esp
+++ b/swat/scripting/header_columns.esp
@@ -62,20 +62,20 @@ filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/logo.png'
<div id="nav">
<%
- if (global.page.menu) {
- include(global.page.menu);
- write('<a href="/">Main Menu</a>');
- } else {
- include("/menu.js");
- }
+ include("/menu.js");
+ if (form['menu']) {
+ global.page.menu = form['menu'];
+ }
+ swat_menus[global.page.menu].display();
+ if (global.page.menu != "main") {
+ write('<a href="/">Main Menu</a>');
+ }
%>
</div>
<div id="links">
<div class="related">
- <%
- include("/docs/menu.js");
- %>
+ <% swat_menus.docs.display(); %>
</div>
</div>
diff --git a/swat/scripting/menus.js b/swat/scripting/menus.js
new file mode 100644
index 0000000000..ddd97c4ca3
--- /dev/null
+++ b/swat/scripting/menus.js
@@ -0,0 +1,53 @@
+/*
+ menu object for SWAT
+*/
+
+/*
+ display a menu object. Currently only the "simple", "vertical" menu style
+ is supported
+*/
+function menu_display() {
+ var i, m = this;
+ assert(m.style == "simple" && m.orientation == "vertical");
+ write('<div class="' + m.class + '">\n');
+ write("<i>" + m.name + "</i><br /><ul>\n");
+ for (i = 0; i < m.element.length; i++) {
+ var e = m.element[i];
+ write("<li><a href=\"" + e.link + "\">" + e.label + "</a></li>\n");
+ }
+ write("</ul></div>\n");
+}
+
+
+/*
+ create a menu object with the defaults filled in, ready for display_menu()
+ */
+function MenuObj(name, num_elements)
+{
+ var i, o = new Object();
+ o.name = name;
+ o.class = "menu";
+ o.style = "simple";
+ o.orientation = "vertical"
+ o.element = new Array(num_elements);
+ for (i in o.element) {
+ o.element[i] = new Object();
+ }
+ o.display = menu_display;
+ return o;
+}
+
+/*
+ return a menu object created using a title, followed by
+ a set of label/link pairs
+*/
+function simple_menu() {
+ var i, m = MenuObj(arguments[0], (arguments.length-1)/2);
+ for (i=0;i<m.element.length;i++) {
+ var ndx = i*2;
+ m.element[i].label = arguments[ndx+1];
+ m.element[i].link = arguments[ndx+2];
+ }
+ return m;
+}
+