module(..., package.seeall) -- Cause an http redirect to our "read" action -- We use the self.conf table because it already has prefix,controller,etc -- The redir code is defined in the application error handler (acf-controller) local list_redir = function (self) self.conf.action = "read" self.conf.type = "redir" error (self.conf) end mvc={} mvc.on_load = function(self, parent) if (self.worker[self.conf.action] == nil ) or ( self.conf.action == "init" ) then self.worker[self.conf.action] = list_redir(self) end end check = function(self) if self.clientdata.cmd == "restart" then return ( {programstats = self.model:restart_service(), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller } ) end return ( {check = self.model:check_config(), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller } ) end read = function(self) if self.clientdata.cmd == "check" then self.conf.action = "check" self.conf.type = "redir" error (self.conf) end if self.clientdata.cmd == "restart" then return ( {programstats = self.model:restart_service(), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller } ) end return ( {programstats = self.model:get_status(), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller } ) end advanced = function(self) return ( {filelist = self.model:get_filelist(), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller } ) end edit = function (self) local filename = self.clientdata.name or "" local filecontent = self.clientdata.modifications or "" if ( filecontent ~= "") then local me = ( {filecontent = self.model:update_filecontent(filename,filecontent), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller } ) if ( me.filecontent == nil ) then list_redir(self) else return me end else local me = ( {filecontent = self.model:get_filecontent(filename), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller } ) if ( me.filecontent == nil ) then list_redir(self) else return me end end end