diff options
-rw-r--r-- | app/acf_www-controller.lua | 32 | ||||
-rw-r--r-- | lib/session.lua | 2 |
2 files changed, 25 insertions, 9 deletions
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 ) diff --git a/lib/session.lua b/lib/session.lua index c6ea7ca..27db90f 100644 --- a/lib/session.lua +++ b/lib/session.lua @@ -107,7 +107,7 @@ save_session = function( sessionpath, session, sessiontable) count = count + 1 end -- If the table only has an "id" field, then don't save it - if count > 0 and file then + if count > 1 and file then file:write ( "-- This is an ACF session table.\n") file:write ( "\nlocal " ) file:write ( serialize("s", sessiontable) ) |