summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/acf_www-controller.lua32
-rw-r--r--lib/session.lua2
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) )