summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fetchmail-controller.lua22
-rw-r--r--fetchmail-model.lua30
2 files changed, 28 insertions, 24 deletions
diff --git a/fetchmail-controller.lua b/fetchmail-controller.lua
index 405bd33..550d2e8 100644
--- a/fetchmail-controller.lua
+++ b/fetchmail-controller.lua
@@ -1,35 +1,37 @@
-module(..., package.seeall)
+local mymodule = {}
-default_action = "status"
+mymodule.default_action = "status"
-function status(self)
+function mymodule.status(self)
return self.model.getstatus()
end
-function startstop(self)
+function mymodule.startstop(self)
return self.handle_form(self, self.model.get_startstop, self.model.startstop_service, self.clientdata)
end
-function editconfig(self)
+function mymodule.editconfig(self)
return self.handle_form(self, self.model.getconfig, self.model.updateconfig, self.clientdata, "Save", "Edit Config", "Configuration Set")
end
-function expert(self)
+function mymodule.expert(self)
return self.handle_form(self, self.model.get_filedetails, self.model.update_filecontent, self.clientdata, "Save", "Edit Config", "Configuration Set")
end
-function listentries(self)
+function mymodule.listentries(self)
return self.model.readentries()
end
-function editentry(self)
+function mymodule.editentry(self)
return self.handle_form(self, function() return self.model.readentry(self.clientdata.remotehost, self.clientdata.method, self.clientdata.remotemailbox, self.clientdata.localdomain) end, self.model.updateentry, self.clientdata, "Save", "Edit Entry", "Entry Saved")
end
-function createentry(self)
+function mymodule.createentry(self)
return self.handle_form(self, function() return self.model.readentry() end, self.model.createentry, self.clientdata, "Create", "Create Entry", "Entry Created")
end
-function deleteentry(self)
+function mymodule.deleteentry(self)
return self.handle_form(self, self.model.get_deleteentry, self.model.deleteentry, self.clientdata, "Delete", "Delete Entry", "Entry Deleted")
end
+
+return mymodule
diff --git a/fetchmail-model.lua b/fetchmail-model.lua
index ba896c9..cd36f89 100644
--- a/fetchmail-model.lua
+++ b/fetchmail-model.lua
@@ -1,4 +1,4 @@
-module(..., package.seeall)
+local mymodule = {}
-- Load libraries
modelfunctions = require("modelfunctions")
@@ -388,12 +388,12 @@ end
-- ################################################################################
-- PUBLIC FUNCTIONS
-function get_startstop(self, clientdata)
+function mymodule.get_startstop(self, clientdata)
local actions = {"Run", "Test"}
return cfe({ type="group", label="Management", value={}, option=actions })
end
-function startstop_service(self, startstop, action)
+function mymodule.startstop_service(self, startstop, action)
if action and (action:lower() == "run" or action:lower() == "test") then
local cmd
if action:lower() == "run" then
@@ -408,16 +408,16 @@ function startstop_service(self, startstop, action)
return startstop
end
-function getstatus()
+function mymodule.getstatus()
return modelfunctions.getstatus(processname, packagename, "Fetchmail Status")
end
-function get_filedetails()
+function mymodule.get_filedetails()
-- FIXME - validation
return modelfunctions.getfiledetails(configfile)
end
-function update_filecontent(self, filedetails)
+function mymodule.update_filecontent(self, filedetails)
-- FIXME - validation
local retval = modelfunctions.setfiledetails(self, filedetails, {configfile})
posix.chmod(configfile, "rw-------")
@@ -426,7 +426,7 @@ function update_filecontent(self, filedetails)
return retval
end
-function getconfig()
+function mymodule.getconfig()
local interval = cfe({ value="60", label="Polling Interval", descr="Interval in seconds" })
local postmaster = cfe({ label="Postmaster", descr="If defined, undeliverable mail is sent to this account, otherwise it is discarded" })
local bounceerrors = cfe({ type="boolean", value=true, label="Bounce Errors", descr="Bounce errors back to the sender or send them to the postmaster" })
@@ -448,7 +448,7 @@ function getconfig()
return cfe({ type="group", value={interval=interval, postmaster=postmaster, bounceerrors=bounceerrors}, label="Fetchmail Global Config" })
end
-function updateconfig(self, conf)
+function mymodule.updateconfig(self, conf)
local success, conf = validateconfig(conf)
if success then
@@ -491,7 +491,7 @@ function updateconfig(self, conf)
return conf
end
-function readentries()
+function mymodule.readentries()
local entries = cfe({ type="structure", value={}, label="List of Fetchmail entries" })
config = config or parseconfigfile(fs.read_file(configfile) or "")
for i,entry in ipairs(config or {}) do
@@ -519,7 +519,7 @@ function readentries()
return entries
end
-function readentry(entryname, meth, remotemailbx, localdom)
+function mymodule.readentry(entryname, meth, remotemailbx, localdom)
local enabled = cfe({ type="boolean", value=true, label="Enable", seq=2 })
local method = cfe({ type="select", value="pop3", label="Method", option=methods, seq=3 })
local remotehost = cfe({ value=entryname, label="Remote Host", seq=1 })
@@ -581,7 +581,7 @@ function readentry(entryname, meth, remotemailbx, localdom)
return cfe({ type="group", value={enabled=enabled, method=method, remotehost=remotehost, remotemailbox=remotemailbox, remotepassword=remotepassword, localhost=localhost, localmailbox=localmailbox, localdomain=localdomain, ssl=ssl, envelope=envelope}, label="Fetchmail Entry" })
end
-function updateentry(self, entrystruct)
+function mymodule.updateentry(self, entrystruct)
local success, entrystruct = validateentry(entrystruct)
local entry = findentryline(entrystruct.value.remotehost.value, entrystruct.value.method.value, entrystruct.value.remotemailbox.value, entrystruct.value.localdomain.value)
if not entry then
@@ -598,7 +598,7 @@ function updateentry(self, entrystruct)
return entrystruct
end
-function createentry(self, entrystruct)
+function mymodule.createentry(self, entrystruct)
local success, entrystruct = validateentry(entrystruct)
local entry = findentryline(entrystruct.value.remotehost.value, entrystruct.value.method.value, entrystruct.value.remotemailbox.value, entrystruct.value.localdomain.value)
if entry then
@@ -615,7 +615,7 @@ function createentry(self, entrystruct)
return entrystruct
end
-function get_deleteentry(self, clientdata)
+function mymodule.get_deleteentry(self, clientdata)
local retval = {}
retval.remotehost = cfe({ value=clientdata.remotehost or "", label="Remote Host" })
retval.method = cfe({ type="select", value=clientdata.method or "pop3", label="Method", option=methods })
@@ -625,7 +625,7 @@ function get_deleteentry(self, clientdata)
return cfe({ type="group", value=retval, label="Delete Entry" })
end
-function deleteentry(self, ent)
+function mymodule.deleteentry(self, ent)
local entry = findentryline(ent.value.remotehost.value, ent.value.method.value, ent.value.remotemailbox.value, ent.value.localdomain.value)
if entry then
writeentryline(nil, entry)
@@ -635,3 +635,5 @@ function deleteentry(self, ent)
return ent
end
+
+return mymodule