From fd1ec79198ad919462f1f7cc0f5573c82bd9a428 Mon Sep 17 00:00:00 2001 From: Mika Havela Date: Mon, 11 Feb 2008 17:02:23 +0000 Subject: Menus are now written into sessiondata. The menus are created from the sessiondata.menu[mainmenu|submenu]. git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@709 ab2d0c66-481e-0410-8bed-d214d4d58bed --- app/acf_www-controller.lua | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'app/acf_www-controller.lua') diff --git a/app/acf_www-controller.lua b/app/acf_www-controller.lua index 2db6d0e..bfc0761 100644 --- a/app/acf_www-controller.lua +++ b/app/acf_www-controller.lua @@ -15,6 +15,16 @@ require "posix" -- We use the parent exception handler in a last-case situation local parent_exception_handler +local function build_menus(self) + --Build the menu + m=require("menubuilder") + sessiondata.menu = {} + sessiondata.menu.mainmenu = m.get_menuitems(self.conf.appdir) + sessiondata.menu.submenu = m.get_submenuitems(self.conf.appdir) + -- Debug: Timestamp on menu creation + sessiondata.menu.timestamp = {tab="Menu_created: " .. os.date(),action="Menu_created: " .. os.date(),} +end + mvc = {} mvc.on_load = function (self, parent) -- open the log file @@ -53,6 +63,12 @@ mvc.on_load = function (self, parent) sessionlib.record_event(self.conf.sessiondir, sessionlib.hash_ip_addr(self.conf.clientip)) else + + -- FIXME: This is probably wrong place to generate the menus + if not (self.sessiondata.menu) then + build_menus(self) + end + local now = os.time() local minutes_ago = now - (sessionlib.minutes_expired_events * 60) if timestamp < minutes_ago then @@ -183,15 +199,15 @@ view_resolver = function(self) skin = self.conf.skin or "" } - -- Build the menu table - m=require("menubuilder") - local menu = m.get_menuitems(self.conf.appdir) - - -- Build the submenu table - local submenu = m.get_submenuitems(self.conf.appdir) - -- Show only tabs for current controller - submenu = submenu[pageinfo.controller] + -- Fetch the menu's from sessiondata (filter out what's needed) + local menu = self.sessiondata.menu.mainmenu + local submenu = self.sessiondata.menu.submenu[pageinfo.controller] +--[[ -- DEBUG: Next row's is to display when the menu was created (see function build_menus(self) in BOF) + if (submenu) then + submenu[99] = sessiondata.menu.timestamp + end +--]] return function (viewtable) local template = haserl.loadfile (template) return template ( pageinfo, menu, submenu, viewtable, self.sessiondata ) -- cgit v1.2.3