diff options
Diffstat (limited to 'fetchmail-controller.lua')
-rw-r--r-- | fetchmail-controller.lua | 66 |
1 files changed, 46 insertions, 20 deletions
diff --git a/fetchmail-controller.lua b/fetchmail-controller.lua index cf30d9b..654a519 100644 --- a/fetchmail-controller.lua +++ b/fetchmail-controller.lua @@ -60,10 +60,40 @@ local function displaycmdmanagement(disablestart,disablestop,disablerestart) return management 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=getstatus(self) } end - +--[==[ function config(self) local cmdmanagement, cmdmanagementresult local cmdsavereply = {} @@ -145,15 +175,20 @@ function config(self) debugclientdata = self.clientdata, } end - +--]==] function expert(self) - local cmdmanagement, cmdmanagementresult + -- Start/Stop/Restart process + local cmdmanagement if ( self.clientdata.cmdmanagement) then - cmdmanagement = cfe({ + cmdmanagement = cfe({ + name="cmdmanagement", + label="Previous action result", + action=cfe({ name="cmdmanagement", - value=string.lower(self.clientdata.cmdmanagement), - }) - cmdmanagementresult, cmdmanagement = self.model:startstop_service( 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 -- Save changes @@ -169,7 +204,7 @@ function expert(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 @@ -178,25 +213,16 @@ function expert(self) 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) ---]] +-- 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, + cmdmanagement = cmdmanagement, config = config, status = status, startstop = startstop, |