summaryrefslogtreecommitdiffstats
path: root/app/acf_www-controller.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-07-02 15:56:04 +0000
committerTed Trask <ttrask01@yahoo.com>2008-07-02 15:56:04 +0000
commit997b4dcd33463841aa8f1ca6d59dea7bc9d38ae9 (patch)
tree31555c8bdf9da14b96e146569b4c5dab3138d6f6 /app/acf_www-controller.lua
parent9a0afb466ef66b0d27fd12652c3fe198d4fcfe6d (diff)
downloadacf-core-997b4dcd33463841aa8f1ca6d59dea7bc9d38ae9.tar.bz2
acf-core-997b4dcd33463841aa8f1ca6d59dea7bc9d38ae9.tar.xz
Modified core to create model and controller function libraries and some common html views. Moved cfe to a library. Modified redirect_to_referrer function - may break some pages.
git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@1267 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'app/acf_www-controller.lua')
-rw-r--r--app/acf_www-controller.lua30
1 files changed, 16 insertions, 14 deletions
diff --git a/app/acf_www-controller.lua b/app/acf_www-controller.lua
index 55f529f..6b1bc6e 100644
--- a/app/acf_www-controller.lua
+++ b/app/acf_www-controller.lua
@@ -234,6 +234,7 @@ mvc.on_load = function (self, parent)
-- this sets the package path for us and our children
package.path= self.conf.libdir .. "?.lua;" .. package.path
+ require ("cfe")
sessionlib=require ("session")
@@ -464,21 +465,22 @@ redirect = function (self, str)
error(self.conf)
end
-redirect_to_referrer = function(self)
- error({type="redir_to_referrer"})
-end
-
--- create a Configuration Framework Entity (cfe)
--- returns a table with at least "value", "type", and "label"
-cfe = function ( optiontable )
- optiontable = optiontable or {}
- me = { value="",
- type="text",
- label="" }
- for key,value in pairs(optiontable) do
- me[key] = value
+-- If we've done something, cause a redirect to the referring page (assuming it's different)
+-- Also handles retrieving the result of a previously redirected action
+redirect_to_referrer = function(self, result)
+ -- If we have a result, then we did something, so we might have to redirect
+ if result then
+ local prefix, controller, action = self.parse_path_info(ENV.HTTP_REFERER)
+ if controller ~= self.conf.controller or action ~= self.conf.action then
+ self.sessiondata[self.conf.action.."result"] = result
+ error({type="redir_to_referrer"})
+ end
+ -- If we don't have a result, then we might be a component redirected as above
+ elseif self.sessiondata[self.conf.action.."result"] then
+ result = self.sessiondata[self.conf.action.."result"]
+ self.sessiondata[self.conf.action.."result"] = nil
end
- return me
+ return result
end
-- FIXME - need to think more about this..