diff options
author | Mika Havela <mika.havela@gmail.com> | 2008-04-01 15:40:14 +0000 |
---|---|---|
committer | Mika Havela <mika.havela@gmail.com> | 2008-04-01 15:40:14 +0000 |
commit | f8b1afd4fed3f3df068fae35692bfff675b50cdc (patch) | |
tree | ee513568cd20ea20b9161b3ac0e513b5a0ab41e8 /ipsectools-controller.lua | |
parent | fdaecbf0715a1f68252d400585811d06998b56fc (diff) | |
download | acf-ipsec-tools-f8b1afd4fed3f3df068fae35692bfff675b50cdc.tar.bz2 acf-ipsec-tools-f8b1afd4fed3f3df068fae35692bfff675b50cdc.tar.xz |
Saving work for today.
Adding Expert tab to edit config (still missing edit /etc/ipsec.conf)
git-svn-id: svn://svn.alpinelinux.org/acf/ipsec-tools/trunk@872 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'ipsectools-controller.lua')
-rw-r--r-- | ipsectools-controller.lua | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/ipsectools-controller.lua b/ipsectools-controller.lua index 2a31dd6..11d597d 100644 --- a/ipsectools-controller.lua +++ b/ipsectools-controller.lua @@ -17,9 +17,91 @@ mvc.on_load = function(self, parent) end 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 + -- ################################################################################ -- PUBLIC FUNCTIONS function status(self) return { status=self.model.getstatus() } end +expert = function (self) + local modifications = self.clientdata.filecontent or "" + if ( self.clientdata.cmdsave ) then + modifications = self.model:update_filecontent(modifications) + end + local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller + + -- Start/Stop/Restart process + local cmdmanagement + if ( self.clientdata.cmdmanagement) then + cmdmanagement = cfe({ + name="cmdmanagement", + label="Previous action result", + action=cfe({ + name="cmdmanagement", + value=string.lower(self.clientdata.cmdmanagement), -- This row contains start/stop/restart (one of these commands) + }), + }) + local actionresult, cmdmanagement = self.model:startstop_service( cmdmanagement.action ) + end + + local status=self.model.getstatus() + local file = self.model:get_filedetails() + + -- Add buttons + file.cmdsave = cfe ({ + name="cmdsave", + label="Apply settings", + value="Apply", + type="submit", + }) + if (self.clientdata.cmdsave) then + file.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" + end + -- Display management buttons + management = displaycmdmanagement(disablestart,disablestop,disablerestart) + + return ( { + status = status, + file = file, + modifications = modifications, + management = management, + cmdmanagement = cmdmanagement, + url = url, } ) +end |