webmcp
annotate framework/env/request/redirect.lua @ 23:3a6fe8663b26
Code cleanup and documentation added; Year in copyright notice changed to 2009-2010
Details:
- Changed quoting style in auth.openid.xrds_document{...}
- Fixed documentation for auth.openid.initiate{...}
- Added documentation for mondelefant
- Code-cleanup in mondelefant:
-- removed unneccessary lines "rows = PQntuples(res); cols = PQnfields(res);"
-- avoided extra copy of first argument (self) in mondelefant_conn_query
-- no rawget in meta-method "__index" of database result lists and objects
-- removed unreachable "return 0;" in meta-method "__newindex" of database result lists and objects
- Year in copyright notice changed to 2009-2010
- Version string changed to "1.1.1"
Details:
- Changed quoting style in auth.openid.xrds_document{...}
- Fixed documentation for auth.openid.initiate{...}
- Added documentation for mondelefant
- Code-cleanup in mondelefant:
-- removed unneccessary lines "rows = PQntuples(res); cols = PQnfields(res);"
-- avoided extra copy of first argument (self) in mondelefant_conn_query
-- no rawget in meta-method "__index" of database result lists and objects
-- removed unreachable "return 0;" in meta-method "__newindex" of database result lists and objects
- Year in copyright notice changed to 2009-2010
- Version string changed to "1.1.1"
| author | jbe |
|---|---|
| date | Fri Jun 04 19:00:34 2010 +0200 (2010-06-04) |
| parents | 9fdfb27f8e67 |
| children | ca88032cb37c |
| rev | line source |
|---|---|
| jbe/bsw@0 | 1 --[[-- |
| jbe/bsw@0 | 2 request.redirect{ |
| jbe/bsw@0 | 3 module = module, -- module name |
| jbe/bsw@0 | 4 view = view, -- view name |
| jbe/bsw@0 | 5 id = id, -- optional id for view |
| jbe/bsw@0 | 6 params = params -- optional view parameters |
| jbe/bsw@0 | 7 } |
| jbe/bsw@0 | 8 |
| jbe/bsw@0 | 9 Calling this function causes the WebMCP to do a 303 HTTP redirect after the current view or action and all filters have finished execution. If routing mode "redirect" has been chosen, then this function is called automatically after an action and all its filters have finished execution. Calling request.redirect{...} (or request.forward{...}) explicitly inside an action will cause routing information from the browser to be ignored. To preserve GET/POST parameters of an action, use request.forward{...} instead. Currently no redirects to external (absolute) URLs are possible, there will be an implementation in future though. |
| jbe/bsw@0 | 10 |
| jbe/bsw@0 | 11 --]]-- |
| jbe/bsw@0 | 12 |
| jbe/bsw@0 | 13 function request.redirect(args) |
| jbe/bsw@0 | 14 -- TODO: support redirects to external URLs too |
| jbe/bsw@0 | 15 -- (needs fixes in the trace system as well) |
| jbe/bsw@0 | 16 local module = args.module |
| jbe/bsw@0 | 17 local view = args.view |
| jbe/bsw@0 | 18 local id = args.id |
| jbe/bsw@0 | 19 local params = args.params or {} |
| jbe/bsw@0 | 20 if type(module) ~= "string" then |
| jbe/bsw@0 | 21 error("No module string passed to request.redirect{...}.") |
| jbe/bsw@0 | 22 end |
| jbe/bsw@0 | 23 if type(view) ~= "string" then |
| jbe/bsw@0 | 24 error("No view string passed to request.redirect{...}.") |
| jbe/bsw@0 | 25 end |
| jbe/bsw@0 | 26 if type(params) ~= "table" then |
| jbe/bsw@0 | 27 error("Params array passed to request.redirect{...} is not a table.") |
| jbe/bsw@0 | 28 end |
| jbe/bsw@0 | 29 if request.is_rerouted() then |
| jbe/bsw@0 | 30 error("Tried to redirect after another forward or redirect.") |
| jbe/bsw@0 | 31 end |
| jbe/bsw@0 | 32 request._redirect = { |
| jbe/bsw@0 | 33 module = module, |
| jbe/bsw@0 | 34 view = view, |
| jbe/bsw@0 | 35 id = id, |
| jbe/bsw@0 | 36 params = params |
| jbe/bsw@0 | 37 } |
| jbe/bsw@0 | 38 trace.redirect{ module = args.module, view = args.view } |
| jbe/bsw@0 | 39 end |