diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-05-13 20:02:56 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-05-13 20:02:56 +0000 |
commit | 9ae856d2dc847fbaa89ebb822b8c9c0abed88c17 (patch) | |
tree | edaa89f03c726807529edc61cfa9645e5ded2f68 | |
parent | 509cb63a9c2f7807a186b19f33af8adc56ee1c82 (diff) | |
download | acf-core-9ae856d2dc847fbaa89ebb822b8c9c0abed88c17.tar.bz2 acf-core-9ae856d2dc847fbaa89ebb822b8c9c0abed88c17.tar.xz |
Rewrote syslog to use components and remove view-specific code from controller.
Also made sure not to write to conf file unless all variables pass validation.
git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@1116 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r-- | app/acf_www-controller.lua | 29 | ||||
-rw-r--r-- | lib/daemoncontrol.lua | 2 | ||||
-rw-r--r-- | lib/viewfunctions.lua | 32 |
3 files changed, 47 insertions, 16 deletions
diff --git a/app/acf_www-controller.lua b/app/acf_www-controller.lua index bd99f8c..8f2a33f 100644 --- a/app/acf_www-controller.lua +++ b/app/acf_www-controller.lua @@ -60,7 +60,7 @@ local function build_menus(self) end -- This function is made available within the view to allow loading of components -local dispatch_component = function(action, controller, prefix, clientdata) +local dispatch_component = function(str, clientdata) -- Before we call dispatch, we have to set up conf and clientdata like it was really called for this component self = APP local tempconf = self.conf @@ -73,7 +73,10 @@ local dispatch_component = function(action, controller, prefix, clientdata) self.clientdata = clientdata or {} self.clientdata.sessionid = tempclientdata.sessionid - self.dispatch(self, prefix or self.conf.prefix, controller or self.conf.controller, action or "") + local prefix, controller, action = self.parse_path_info("/" .. str) + if prefix == "/" then prefix = self.conf.prefix end + if controller == "" then controller = self.conf.controller end + self.dispatch(self, prefix, controller, action) -- Revert to the old conf and clientdata self.conf = nil @@ -321,18 +324,22 @@ exception_handler = function (self, message ) if type(message) == "table" then if message.type == "redir" and self.conf.component == true then io.write ("Component cannot be found") - elseif message.type == "redir" then + elseif message.type == "redir" or message.type == "redir_to_referrer" then if sessiondata.id then logevent("Redirecting " .. sessiondata.id) end io.write ("Status: 302 Moved\n") - io.write ("Location: " .. ENV["SCRIPT_NAME"] .. + if message.type == "redir" then + io.write ("Location: " .. ENV["SCRIPT_NAME"] .. message.prefix .. message.controller .. "/" .. message.action .. (message.extra or "" ) .. "\n") - if self.sessiondata.id then - io.write (html.cookie.set("sessionid", self.sessiondata.id)) - else - io.write (html.cookie.unset("sessionid")) - end + else + io.write ("Location: " .. ENV.HTTP_REFERER .. "\n") + end + if self.sessiondata.id then + io.write (html.cookie.set("sessionid", self.sessiondata.id)) + else + io.write (html.cookie.unset("sessionid")) + end io.write ( "Content-Type: text/html\n\n" ) elseif message.type == "dispatch" then parent_exception_handler(self, message) @@ -360,4 +367,6 @@ logevent = function ( message ) conf.logfile:write (string.format("%s: %s\n", os.date(), message)) end - +redirect_to_referrer = function(self) + error({type="redir_to_referrer"}) +end diff --git a/lib/daemoncontrol.lua b/lib/daemoncontrol.lua index 27564ef..db9423c 100644 --- a/lib/daemoncontrol.lua +++ b/lib/daemoncontrol.lua @@ -5,7 +5,7 @@ function daemoncontrol (process, action) local cmdmessage = "" if (string.lower(action) == "start") or (string.lower(action) == "stop") or (string.lower(action) == "restart") then local file = io.popen( "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin /etc/init.d/" .. - process .. " " .. action .. " 2>&1" ) + process .. " " .. string.lower(action) .. " 2>&1" ) if file ~= nil then cmdmessage = file:read( "*a" ) file:close() diff --git a/lib/viewfunctions.lua b/lib/viewfunctions.lua index 5080a34..bb6e6ec 100644 --- a/lib/viewfunctions.lua +++ b/lib/viewfunctions.lua @@ -75,7 +75,24 @@ function displaymanagement (myform,tags) end end -function displayitem(myitem, viewtype) +function displayitem(myitem) + if not myitem then return end + io.write("<DT") + if myitem.errtxt then + myitem.class = "error" + io.write(" class='error'") + end + io.write(">" .. myitem.label .. "</DT>\n") + io.write("<DD>") + io.write(myitem.value .. "\n") + if myitem.descr then io.write("<P CLASS='descr'>" .. string.gsub(myitem.descr, "\n", "<BR>") .. "</P>\n") end + if myitem.errtxt then io.write("<P CLASS='error'>" .. string.gsub(myitem.errtxt, "\n", "<BR>") .. "</P>\n") end + io.write("</DD>\n") +end + +function displayformitem(myitem, name, viewtype) + if not myitem then return end + if name then myitem.name = name end io.write("<DT") if myitem.errtxt then myitem.class = "error" @@ -104,8 +121,12 @@ function displayitem(myitem, viewtype) end myitem.name = tempname myitem.value = tempval + elseif myitem.type == "boolean" then + if (myitem.value == true) then myitem.checked = "" end + myitem.value = "true" + io.write(html.form.checkbox(myitem) .. "\n") else - io.write(html.form[myitem.type](myitem) .. "\n") + io.write((html.form[myitem.type](myitem) or "") .. "\n") end if myitem.descr then io.write("<P CLASS='descr'>" .. string.gsub(myitem.descr, "\n", "<BR>") .. "</P>\n") end if myitem.errtxt then io.write("<P CLASS='error'>" .. string.gsub(myitem.errtxt, "\n", "<BR>") .. "</P>\n") end @@ -113,6 +134,7 @@ function displayitem(myitem, viewtype) end function displayform(myform, order) + if not myform then return end if myform.descr then io.write("<P CLASS='descr'>" .. string.gsub(myform.descr, "\n", "<BR>") .. "</P>\n") end if myform.errtxt then io.write("<P CLASS='error'>" .. string.gsub(myform.errtxt, "\n", "<BR>") .. "</P>\n") end io.write('<form action="' .. myform.action .. '" method="POST">\n') @@ -123,17 +145,17 @@ function displayform(myform, order) reverseorder[name] = x if myform.value[name] then myform.value[name].name = name - displayitem(myform.value[name]) + displayformitem(myform.value[name]) end end end for name,item in pairs(myform.value) do if nil == reverseorder[name] then item.name = name - displayitem(item) + displayformitem(item) end end - io.write('<DT><input class="submit" type="submit" value="' .. myform.submit .. '"></DT>\n') + io.write('<DT><input class="submit" type="submit" name="save" value="' .. myform.submit .. '"></DT>\n') io.write('</DL>\n') io.write('</FORM>') end |