summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Havela <mika.havela@gmail.com>2008-02-11 17:02:23 +0000
committerMika Havela <mika.havela@gmail.com>2008-02-11 17:02:23 +0000
commitfd1ec79198ad919462f1f7cc0f5573c82bd9a428 (patch)
tree6187aaedc7df5594722c97343d8154ca12a93bd3
parent91d0d9e6292ba2f2f0541e0489a2b53eeaff00b3 (diff)
downloadacf-core-fd1ec79198ad919462f1f7cc0f5573c82bd9a428.tar.bz2
acf-core-fd1ec79198ad919462f1f7cc0f5573c82bd9a428.tar.xz
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
-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) )