diff options
author | Mika Havela <mika.havela@gmail.com> | 2008-03-04 08:49:41 +0000 |
---|---|---|
committer | Mika Havela <mika.havela@gmail.com> | 2008-03-04 08:49:41 +0000 |
commit | 73433bf9ea9a0f7f56203bafa111821bb47856cf (patch) | |
tree | 8961f85a4d8827ad05c6c085daf04f0de998b0a3 /shorewall-controller.lua | |
parent | 8c41156d76be7332fd34d1ab18a078510745b81a (diff) | |
download | acf-shorewall-73433bf9ea9a0f7f56203bafa111821bb47856cf.tar.bz2 acf-shorewall-73433bf9ea9a0f7f56203bafa111821bb47856cf.tar.xz |
Added the missing (example)-page. Added functionallity so that the page has live data
git-svn-id: svn://svn.alpinelinux.org/acf/shorewall/trunk@799 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'shorewall-controller.lua')
-rw-r--r-- | shorewall-controller.lua | 245 |
1 files changed, 36 insertions, 209 deletions
diff --git a/shorewall-controller.lua b/shorewall-controller.lua index efcaa65..b2bc2bb 100644 --- a/shorewall-controller.lua +++ b/shorewall-controller.lua @@ -13,16 +13,6 @@ mvc.on_load = function(self, parent) end end -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 displaycmdmanagement(disablestart,disablestop,disablerestart) -- Add a management buttons local management = {} @@ -63,18 +53,36 @@ local function displaycmdsave(self) end function status(self) - return { status=getstatus(self) } + return { status=self.model.getstatus() } end function config(self) local config=self.model:getconfig() - local status=getstatus(self) + local status=self.model.getstatus() + + -- Redirect if button is pressed + if (self.clientdata.params_list_cmd) then + self.conf.action = "edit_params" + self.conf.type = "redir" + error (self.conf) + end -- Add a [New] record to the options table.insert(config.interfaces_list.option, "[New]") table.insert(config.zones_list.option, "[New]") table.insert(config.policies_list.option, "[New]") table.insert(config.rules_list.option, "[New]") + table.insert(config.params_list.option, "[New]") + + -- Add button + config.params_list_cmd = cfe ({ + name="params_list_cmd", + label="Edit above record", + value="Edit", + type="submit", +-- disabled="yes", + }) + config.params_list_cmd.descr="Mark a item in above list before pressing [" .. config.params_list_cmd.value .. "]" -- Add button config.interfaces_list_cmd = cfe ({ @@ -104,7 +112,7 @@ function config(self) type="submit", disabled="yes", }) - config.zones_list_cmd.descr="Mark a item in above list before pressing [" .. config.zones_list_cmd.value .. "]" + config.policies_list_cmd.descr="Mark a item in above list before pressing [" .. config.policies_list_cmd.value .. "]" -- Add button config.rules_list_cmd = cfe ({ @@ -114,7 +122,7 @@ function config(self) type="submit", disabled="yes", }) - config.zones_list_cmd.descr="Mark a item in above list before pressing [" .. config.zones_list_cmd.value .. "]" + config.rules_list_cmd.descr="Mark a item in above list before pressing [" .. config.rules_list_cmd.value .. "]" -- Management buttons -- Display management buttons @@ -125,77 +133,10 @@ function config(self) config=config, management = management, - } -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() + clientdata=clientdata, - -- 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() - - -- 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" - 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 = "config", }, - status = status, - cmdmanagement = cmdmanagement, - management = management, - config = config, - debugclientdata = self.clientdata, } end ---]=] function check(self) local cmdmanagement, cmdmanagementresult @@ -207,40 +148,9 @@ function check(self) cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement ) end ---[[ - -- Save changes - local modifications = self.clientdata.filecontent or "" - if ( self.clientdata.cmdsave) then - modifications = self.model:updatefilecontent(modifications) - end ---]] - - local status = getstatus(self) + local status = self.model.getstatus() local config = self.model:configcheck() - - -- Display save button --- config.cmdsave = displaycmdsave() - ---[[ - -- 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" - 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) @@ -269,43 +179,9 @@ function logfile(self) cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement ) end ---[[ - -- Save changes - local modifications = self.clientdata.filecontent or "" - if ( self.clientdata.cmdsave) then - modifications = self.model:updatefilecontent(modifications) - end ---]] - local status = getstatus(self) + local status = self.model.getstatus() local config = self.model:getlogfile() - - -- Display save button --- config.cmdsave = displaycmdsave() - ---[[ - -- 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" - 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, @@ -331,43 +207,9 @@ function expert(self) cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement ) end ---[[ - -- Save changes - local modifications = self.clientdata.filecontent or "" - if ( self.clientdata.cmdsave) then - modifications = self.model:updatefilecontent(modifications) - end ---]] - local status = getstatus(self) + local status = self.model.getstatus() local config = self.model:getfilelist() - - -- Display save button --- config.cmdsave = displaycmdsave() - ---[[ - -- 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" - 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, @@ -393,15 +235,14 @@ function edit(self) cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement ) end ----[[ -- Save changes if ( self.clientdata.cmdsave) then local filetochange = cfe ({ name=self.clientdata.filename, value=self.clientdata.filecontent, }) modifications = self.model:updatefilecontent(filetochange) self.clientdata.name = self.clientdata.filename end ---]] - local status = getstatus(self) + + local status = self.model.getstatus() local config = self.model:getfiledetails(cfe({ name="editfile", value=self.clientdata.name, @@ -410,28 +251,6 @@ function edit(self) -- Display save button config.cmdsave = displaycmdsave() ---[[ - -- 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" - 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"], @@ -448,3 +267,11 @@ function edit(self) } end + +function edit_params(self) + + + return { + status=status, + } +end |