From fdb322876d573f7e18947e53667b3ee83e3ba226 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 23 Jul 2005 10:58:09 +0000 Subject: 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) --- swat/cldap_server/index.esp | 2 +- swat/docs/menu.js | 24 ---------------- swat/esptest/exception.esp | 2 +- swat/esptest/formtest.esp | 2 +- swat/esptest/include.esp | 2 +- swat/esptest/index.esp | 2 +- swat/esptest/ldb.esp | 2 +- swat/esptest/loadparm.esp | 2 +- swat/esptest/menu.js | 12 -------- swat/esptest/samr.esp | 2 +- swat/esptest/session.esp | 2 +- swat/esptest/showvars.esp | 2 +- swat/index.esp | 2 +- swat/install/index.esp | 2 +- swat/install/menu.js | 5 ---- swat/install/newuser.esp | 2 +- swat/install/provision.esp | 2 +- swat/kdc_server/index.esp | 2 +- swat/ldap_server/index.esp | 2 +- swat/menu.js | 59 +++++++++++++++++++++++++++++++++++---- swat/nbt_server/index.esp | 2 +- swat/nbt_server/menu.js | 4 --- swat/rpc_server/index.esp | 2 +- swat/scripting/common.js | 42 ---------------------------- swat/scripting/header_columns.esp | 18 ++++++------ swat/scripting/menus.js | 53 +++++++++++++++++++++++++++++++++++ swat/smb_server/index.esp | 2 +- swat/wins_server/index.esp | 2 +- 28 files changed, 135 insertions(+), 122 deletions(-) delete mode 100644 swat/docs/menu.js delete mode 100644 swat/esptest/menu.js delete mode 100644 swat/install/menu.js delete mode 100644 swat/nbt_server/menu.js create mode 100644 swat/scripting/menus.js (limited to 'swat') diff --git a/swat/cldap_server/index.esp b/swat/cldap_server/index.esp index 253effd55a..1ede088705 100644 --- a/swat/cldap_server/index.esp +++ b/swat/cldap_server/index.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "CLDAP Server", ""); +<% page_header("columns", "CLDAP Server", "servers"); libinclude("base.js"); libinclude("management.js"); diff --git a/swat/docs/menu.js b/swat/docs/menu.js deleted file mode 100644 index 82ab02aeb8..0000000000 --- a/swat/docs/menu.js +++ /dev/null @@ -1,24 +0,0 @@ -/* show a menu for the docs directory */ -var m = MenuObj("Samba Information", 9); - -m.element[0].label = "Samba4 development"; -m.element[0].link = "http://devel.samba.org/"; -m.element[1].label = "Recent Checkins"; -m.element[1].link = "http://build.samba.org/?tree=samba4;function=Recent+Checkins"; -m.element[2].label = "Recent Builds"; -m.element[2].link = "http://build.samba.org/?tree=samba4;function=Recent+Builds"; -m.element[3].label = "EJS Information"; -m.element[3].link = "http://www.appwebserver.org/products/ejs/ejs.html"; -m.element[4].label = "ESP Information"; -m.element[4].link = "http://www.appwebserver.org/products/esp/esp.html"; -m.element[5].label = "XHTML Spec"; -m.element[5].link = "http://www.w3.org/TR/xhtml1/"; -m.element[6].label = "JavaScript Spec"; -m.element[6].link = "http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf"; -m.element[7].label = "CSS Specs"; -m.element[7].link = "http://www.w3.org/Style/CSS/#specs"; -m.element[8].label = "CSS1/2 Reference"; -m.element[8].link = "http://www.w3schools.com/css/css_reference.asp"; - -display_menu(m); - diff --git a/swat/esptest/exception.esp b/swat/esptest/exception.esp index f32aaeb610..ff28d6318e 100644 --- a/swat/esptest/exception.esp +++ b/swat/esptest/exception.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "ESP Exception test", "/esptest/menu.js"); +<% page_header("columns", "ESP Exception test", "esptest"); include("/scripting/forms.js"); %> diff --git a/swat/esptest/formtest.esp b/swat/esptest/formtest.esp index 32ad4a04b2..2310849895 100644 --- a/swat/esptest/formtest.esp +++ b/swat/esptest/formtest.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "ESP Form Test", "/esptest/menu.js"); +<% page_header("columns", "ESP Form Test", "esptest"); include("/scripting/forms.js"); %> diff --git a/swat/esptest/include.esp b/swat/esptest/include.esp index fc53a9b1f4..5d558d59dc 100644 --- a/swat/esptest/include.esp +++ b/swat/esptest/include.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "ESP Include Test", "/esptest/menu.js"); %> +<% page_header("columns", "ESP Include Test", "esptest"); %> including /scripting/test.ejs

<% include("/scripting/test.ejs"); %> diff --git a/swat/esptest/index.esp b/swat/esptest/index.esp index fbbed9b3c4..663f82c599 100644 --- a/swat/esptest/index.esp +++ b/swat/esptest/index.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "ESP Tests", "/esptest/menu.js"); %> +<% page_header("columns", "ESP Tests", "esptest"); %>

ESP Test functions

diff --git a/swat/esptest/ldb.esp b/swat/esptest/ldb.esp index 1b1e7cd669..93bc9e0d81 100644 --- a/swat/esptest/ldb.esp +++ b/swat/esptest/ldb.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "ESP ldb test", "/esptest/menu.js"); %> +<% page_header("columns", "ESP ldb test", "esptest"); %>

Samba4 ldb test

diff --git a/swat/esptest/loadparm.esp b/swat/esptest/loadparm.esp index 2783c8e647..9581af0262 100644 --- a/swat/esptest/loadparm.esp +++ b/swat/esptest/loadparm.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "ESP loadparm test", "/esptest/menu.js" ); +<% page_header("columns", "ESP loadparm test", "esptest" ); include("/scripting/forms.js"); %> diff --git a/swat/esptest/menu.js b/swat/esptest/menu.js deleted file mode 100644 index d46561f311..0000000000 --- a/swat/esptest/menu.js +++ /dev/null @@ -1,12 +0,0 @@ -/* show a menu for the esp test pages */ -simple_menu( - "ESP Tests", - "ldb database", session_uri("/esptest/ldb.esp"), - "samr calls", session_uri("/esptest/samr.esp"), - "html forms", session_uri("/esptest/formtest.esp"), - "esp includes", session_uri("/esptest/include.esp"), - "session variables", session_uri("/esptest/session.esp"), - "loadparm access", session_uri("/esptest/loadparm.esp"), - "exception handling", session_uri("/esptest/exception.esp"), - "environment variables", session_uri("/esptest/showvars.esp")); - diff --git a/swat/esptest/samr.esp b/swat/esptest/samr.esp index 53e20a23ab..65902e0ce4 100644 --- a/swat/esptest/samr.esp +++ b/swat/esptest/samr.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "ESP samr test", "/esptest/menu.js"); +<% page_header("columns", "ESP samr test", "esptest"); libinclude("base.js"); libinclude("samr.js"); diff --git a/swat/esptest/session.esp b/swat/esptest/session.esp index 6637c782c0..6213dde62f 100644 --- a/swat/esptest/session.esp +++ b/swat/esptest/session.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "ESP session test", "/esptest/menu.js"); +<% page_header("columns", "ESP session test", "esptest"); include("/scripting/forms.js"); %> diff --git a/swat/esptest/showvars.esp b/swat/esptest/showvars.esp index 6763f2b6dd..dc55b1e58b 100644 --- a/swat/esptest/showvars.esp +++ b/swat/esptest/showvars.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "ESP standard variables test", "/esptest/menu.js"); %> +<% page_header("columns", "ESP standard variables test", "esptest"); %>

Samba4 showvars test

diff --git a/swat/index.esp b/swat/index.esp index 2e43d3f9cf..566c7f8fae 100644 --- a/swat/index.esp +++ b/swat/index.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "Server Status", ""); +<% page_header("columns", "Server Status", "main"); libinclude("base.js"); libinclude("management.js"); libinclude("provision.js"); diff --git a/swat/install/index.esp b/swat/install/index.esp index ee16bec34a..6e35a98fd4 100644 --- a/swat/install/index.esp +++ b/swat/install/index.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "Server Installation", "/install/menu.js"); +<% page_header("columns", "Server Installation", "install"); %>

Installation

diff --git a/swat/install/menu.js b/swat/install/menu.js deleted file mode 100644 index e8f99f7cac..0000000000 --- a/swat/install/menu.js +++ /dev/null @@ -1,5 +0,0 @@ -/* show a menu for the esp test pages */ -simple_menu( - "Installation", - "Provisioning", session_uri("/install/provision.esp"), - "New User", session_uri("/install/newuser.esp")); diff --git a/swat/install/newuser.esp b/swat/install/newuser.esp index afcd9e4d55..9baba7c6f4 100644 --- a/swat/install/newuser.esp +++ b/swat/install/newuser.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "Add a user", "/install/menu.js"); +<% page_header("columns", "Add a user", "install"); include("/scripting/forms.js"); libinclude("base.js"); diff --git a/swat/install/provision.esp b/swat/install/provision.esp index 12e378475a..d941fa0e61 100644 --- a/swat/install/provision.esp +++ b/swat/install/provision.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "Provisioning", "/install/menu.js"); +<% page_header("columns", "Provisioning", "install"); include("/scripting/forms.js"); libinclude("base.js"); diff --git a/swat/kdc_server/index.esp b/swat/kdc_server/index.esp index ed70f7ff46..69a8b0736b 100644 --- a/swat/kdc_server/index.esp +++ b/swat/kdc_server/index.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "Kerberos Server", ""); +<% page_header("columns", "Kerberos Server", "servers"); libinclude("base.js"); libinclude("management.js"); diff --git a/swat/ldap_server/index.esp b/swat/ldap_server/index.esp index 57f259c3b6..c4ed146b18 100644 --- a/swat/ldap_server/index.esp +++ b/swat/ldap_server/index.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "LDAP Server", ""); +<% page_header("columns", "LDAP Server", "servers"); libinclude("base.js"); libinclude("management.js"); diff --git a/swat/menu.js b/swat/menu.js index 3f926dc7a2..17a2952e04 100644 --- a/swat/menu.js +++ b/swat/menu.js @@ -1,12 +1,59 @@ -/* show a menu for the esp test pages */ -simple_menu( +/* + the menu hierarchy for SWAT +*/ + +include("/scripting/menus.js"); + +swat_menus = new Object(); + +swat_menus.main = simple_menu( "Main Menu", - "File Server", session_uri("/smb_server/"), + "Servers", session_uri("/?menu=servers"), + "Installation", session_uri("/install/"), + "ESP Tests", session_uri("/esptest/")); + +swat_menus.servers = simple_menu( + "Servers", "LDAP Server", session_uri("/ldap_server/"), "CLDAP Server", session_uri("/cldap_server/"), "RPC Server", session_uri("/rpc_server/"), "NBT Server", session_uri("/nbt_server/"), "WINS Server", session_uri("/wins_server/"), - "Kerberos Server", session_uri("/kdc_server/"), - "Installation", session_uri("/install/"), - "ESP Tests", session_uri("/esptest/")); + "Kerberos Server", session_uri("/kdc_server/")); + +swat_menus.esptests = simple_menu( + "ESP Tests", + "ldb database", session_uri("/esptest/ldb.esp"), + "samr calls", session_uri("/esptest/samr.esp"), + "html forms", session_uri("/esptest/formtest.esp"), + "esp includes", session_uri("/esptest/include.esp"), + "session variables", session_uri("/esptest/session.esp"), + "loadparm access", session_uri("/esptest/loadparm.esp"), + "exception handling", session_uri("/esptest/exception.esp"), + "environment variables", session_uri("/esptest/showvars.esp")); + + +swat_menus.install = simple_menu( + "Installation", + "Provisioning", session_uri("/install/provision.esp"), + "New User", session_uri("/install/newuser.esp")); + + +swat_menus.nbt_server = simple_menu( + "NBT Server", + "Statistics", session_uri("/nbt_server/index.esp")); + + +swat_menus.docs = simple_menu( + "Links", + "Samba4 development", "http://devel.samba.org/", + "Recent Checkins", "http://build.samba.org/?tree=samba4;function=Recent+Checkins", + "Recent Builds", "http://build.samba.org/?tree=samba4;function=Recent+Builds", + "EJS Information", "http://www.appwebserver.org/products/ejs/ejs.html", + "ESP Information", "http://www.appwebserver.org/products/esp/esp.html", + "XHTML Spec", "http://www.w3.org/TR/xhtml1/", + "JavaScript Spec", "http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf", + "CSS Specs", "http://www.w3.org/Style/CSS/#specs", + "CSS1/2 Reference", "http://www.w3schools.com/css/css_reference.asp"); + + diff --git a/swat/nbt_server/index.esp b/swat/nbt_server/index.esp index 133615c52c..1928f12d1b 100644 --- a/swat/nbt_server/index.esp +++ b/swat/nbt_server/index.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "NBT Server", "/nbt_server/menu.js"); +<% page_header("columns", "NBT Server", "nbt_server"); libinclude("base.js"); libinclude("management.js"); diff --git a/swat/nbt_server/menu.js b/swat/nbt_server/menu.js deleted file mode 100644 index fd445bf861..0000000000 --- a/swat/nbt_server/menu.js +++ /dev/null @@ -1,4 +0,0 @@ -/* show a menu for the esp test pages */ -simple_menu( - "NBT Server", - "Statistics", session_uri("/nbt_server/index.esp")); diff --git a/swat/rpc_server/index.esp b/swat/rpc_server/index.esp index 5c42907783..46c8c8a7a7 100644 --- a/swat/rpc_server/index.esp +++ b/swat/rpc_server/index.esp @@ -1,4 +1,4 @@ -<% page_header("columns", "RPC Server", ""); +<% page_header("columns", "RPC Server", "servers"); libinclude("base.js"); libinclude("management.js"); 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 @@ -88,48 +88,6 @@ function always_allowed(uri) { return false; } -/* - 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('
\n'); - write("" + m.name + "
\n"); -} - -function simple_menu() { - var i, m = MenuObj(arguments[0], (arguments.length-1)/2); - for (i=0;i <% - if (global.page.menu) { - include(global.page.menu); - write('Main Menu'); - } 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('Main Menu'); + } %> 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('
\n'); + write("" + m.name + "
    \n"); + for (i = 0; i < m.element.length; i++) { + var e = m.element[i]; + write("
  • " + e.label + "
  • \n"); + } + write("
\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