summaryrefslogtreecommitdiff
path: root/swat/scripting/menus.js
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-07-23 10:58:09 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:29:59 -0500
commitfdb322876d573f7e18947e53667b3ee83e3ba226 (patch)
tree39fc9d05e8f0ce95b95b048433ad77a387342261 /swat/scripting/menus.js
parent64f31e424b3db792a1edb909195eb592a9460aaf (diff)
downloadsamba-fdb322876d573f7e18947e53667b3ee83e3ba226.tar.gz
samba-fdb322876d573f7e18947e53667b3ee83e3ba226.tar.bz2
samba-fdb322876d573f7e18947e53667b3ee83e3ba226.zip
r8722: make the menu handling considerably saner and easier to follow. The whole
menu hierarchy is now in /menu.js (This used to be commit c2a450bb9967caa666628f067a8e732227854ce2)
Diffstat (limited to 'swat/scripting/menus.js')
-rw-r--r--swat/scripting/menus.js53
1 files changed, 53 insertions, 0 deletions
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;
+}
+