summaryrefslogtreecommitdiffstats
path: root/syslog-controller.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-05-13 20:02:56 +0000
committerTed Trask <ttrask01@yahoo.com>2008-05-13 20:02:56 +0000
commit4b82433c8a6149f14e24bdca209bfcf54cedbaa3 (patch)
treeac5cb1d808f96ad7cded6c9ae0a73df9bd3989d5 /syslog-controller.lua
parent4d05e67ca4d9e29cea6fc3390a700b237a20d31e (diff)
downloadacf-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.lua197
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