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 = "status" 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 logfile = function (self) return ( {status = self.model:getstatus(), logfile = self.model:get_logfile(), url = url } ) end check = function(self) local check = nil if (self.clientdata.cmd) then if self.clientdata.cmd == "stop" then self.conf.action = "confirmation" self.conf.type = "redir" end check = self.model:startstop_service(self.clientdata.cmd) check = self.clientdata.cmd else check = self.model:check_config() end return ( {status = self.model:getstatus(), check = check, previousaction = self.clientdata.cmd, confirm_url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller .. "/confirmation" } ) end status = 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 ( {status = self.model:getstatus(), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller } ) end expert = function(self) return ( {status = self.model:getstatus(),filelist = self.model:get_filelist(), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller } ) end edit = function (self) local name = self.clientdata.name or "" if (name == "") then self.conf.action = "status" self.conf.type = "redir" end local modifications = self.clientdata.modifications or "" local cmd = self.clientdata.cmd local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller if ( modifications ~= "") then modifications = self.model:update_filecontent(name,modifications) end if ( cmd ~= nil ) then startstop = self.model:startstop_service( cmd ) end return ( {name=name,startstop = startstop, status = self.model:getstatus(), file = self.model:get_filedetails(name), modifications = modifications, url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller, confirm_url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller .. "/confirmation", } ) end confirmation = function (self) local confirm = self.clientdata.confirm if ( confirm ~= nil ) then startstop = self.model:startstop_service( confirm ) end return ( {startstop = startstop, previousaction = self.clientdata.cmd, status = self.model:getstatus(), confirm_url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller .. "/confirmation", url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller, } ) end