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 | 4b82433c8a6149f14e24bdca209bfcf54cedbaa3 (patch) | |
tree | ac5cb1d808f96ad7cded6c9ae0a73df9bd3989d5 /syslog-controller.lua | |
parent | 4d05e67ca4d9e29cea6fc3390a700b237a20d31e (diff) | |
download | acf-alpine-baselayout-4b82433c8a6149f14e24bdca209bfcf54cedbaa3.tar.bz2 acf-alpine-baselayout-4b82433c8a6149f14e24bdca209bfcf54cedbaa3.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/alpine-baselayout/trunk@1116 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'syslog-controller.lua')
-rw-r--r-- | syslog-controller.lua | 197 |
1 files changed, 34 insertions, 163 deletions
diff --git a/syslog-controller.lua b/syslog-controller.lua index b592672..5c47415 100644 --- a/syslog-controller.lua +++ b/syslog-controller.lua @@ -2,186 +2,57 @@ module(..., package.seeall) default_action = "status" -local function getstatus(self) - local status = self.model.getstatus() - if (#status.status.value > 0) then - status.status.value = "Enabled" - else - status.status.value = "Disabled" - end - return status -end - -local function displaycmdsave(self) - -- Add a cmd button to the view - local cmdsave = cfe({ name="cmdsave", - label="Save/Apply above settings", - value="Save", - type="submit", - }) - return cmdsave -end - -local function displaycmdmanagement(disablestart,disablestop,disablerestart) - -- Add a management buttons - local management = {} - management.start = cfe({ name="cmdmanagement", - label="Program control-panel", - value="Start", - type="submit", - }) - management.stop = cfe({ name="cmdmanagement", - label="Program control-panel", - value="Stop", - type="submit", - }) - management.restart = cfe({ name="cmdmanagement", - label="Program control-panel", - value="Restart", - type="submit", - }) - - -- Disable management buttons based on if the process is running or not - if (disablestart) then management.start.disabled = "yes" end - if (disablestop) then management.stop.disabled = "yes" end - if (disablerestart) then management.restart.disabled = "yes" end - - return management -end - function status(self) - return { status=getstatus(self) } + return self.model.getlogging() end function config(self) - local cmdmanagement, cmdmanagementresult - local cmdsavereply = {} - local cmdsaveresult = {} - if ( self.clientdata.cmdmanagement) then - cmdmanagement = cfe({ - name="cmdmanagement", - value=string.lower(self.clientdata.cmdmanagement), - }) - cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement ) - end - if ( self.clientdata.cmdsave) then - local variables="logfile loglevel smallerlogs maxsize numrotate localandnetworklog remotelogging" -- Advanced-config options --- local variables="remotelogging" -- Guided-config options - for var in string.gmatch(variables, "%S+") do - -- Send nil instead of "" causes the parameter to be removed/deleted/empty/unset the variable in the config-file - if (self.clientdata[var] == "") then self.clientdata[var] = nil end - cmdsaveresult[var], cmdsavereply[var] = self.model:setconfigs( var,self.clientdata[var] ) - end - end - - local status = getstatus(self) - local config = self.model.getconfig() - - -- Write out erros from previous cmdsave actions - for k,v in pairs(cmdsaveresult) do - if not (v) then - config[k]["errtxt"] = tostring(cmdsavereply[k]["errtxt"]) - end - end - - -- Display save button - config.cmdsave = displaycmdsave() - if (self.clientdata.cmdsave) then - config.cmdsave.descr="* Changes has been saved!" - end - - -- Management buttons - local disablestart,disablestop,disablerestart - -- Disable management buttons based on if the process is running or not - if (string.lower(status.status.value) == "enabled" ) then - disablestart = "yes" + local config + if self.clientdata.save then + config = self.model.updateconfig(self.clientdata) else - disablestop = "yes" - end - -- Disable management buttons if there exist errors in the config - for k,v in pairs(config) do - if (config[k]["errtxt"]) then - disablestart = "yes" - disablestop = "yes" - disablerestart = "yes" - break - end + config = self.model.getconfig() end - -- Display management buttons - local management = displaycmdmanagement(disablestart,disablestop,disablerestart) - - return { - option={ script=ENV["SCRIPT_NAME"], - prefix=self.conf.prefix, - controller = self.conf.controller, - action = "config", }, - status = status, - cmdmanagement = cmdmanagement, - management = management, - config = config, - debugclientdata = self.clientdata, - } + config.type = "form" + + return config end function expert(self) - local cmdmanagement, cmdmanagementresult - if ( self.clientdata.cmdmanagement) then - cmdmanagement = cfe({ - name="cmdmanagement", - value=string.lower(self.clientdata.cmdmanagement), - }) - cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement ) - end - -- Save changes local modifications = self.clientdata.filecontent or "" - if ( self.clientdata.cmdsave) then - modifications = self.model:update_filecontent(modifications) + if self.clientdata.save then + self.model:update_filecontent(modifications) end - local status = getstatus(self) local config = self.model:get_filedetails() + config.type = "form" + if self.clientdata.save then + config.descr = "Saved File" + end + return config +end - -- Display save button - config.cmdsave = displaycmdsave() - if (self.clientdata.cmdsave) then - config.cmdsave.descr="* Changes has been saved!" - end - - - -- Management buttons - local disablestart,disablestop,disablerestart - -- Disable management buttons based on if the process is running or not - if (string.lower(status.status.value) == "enabled" ) then - disablestart = "yes" - else - disablestop = "yes" +function startstop(self) + local result + if self.clientdata.action then + result = self.model:startstop_service(self.clientdata.action) + self.sessiondata.syslogstartstopresult = result + self.redirect_to_referrer(self) end - -- Disable management buttons if there exist errors in the config - for k,v in pairs(config) do - if (config[k]["errtxt"]) then - disablestart = "yes" - disablestop = "yes" - disablerestart = "yes" - break - end - end - -- Display management buttons - local management = displaycmdmanagement(disablestart,disablestop,disablerestart) - - return { - option={ script=ENV["SCRIPT_NAME"], - prefix=self.conf.prefix, - controller = self.conf.controller, - action = "expert", }, - cmdmanagement = cmdmanagement, - management = management, - config = config, - status = status, - startstop = startstop, - debugclientdata = self.clientdata, - } + local status = self.model.getstatus() + if self.sessiondata.syslogstartstopresult then + result = self.sessiondata.syslogstartstopresult + self.sessiondata.syslogstartstopresult = nil + end + + return cfe({ type="group", value={status=status, result=result} }) end +function basicstatus(self) + status = self.model.getstatus() + version = self.model.getversion() + return cfe({ type="group", value={status=status, version=version} }) +end |