diff options
| -rw-r--r-- | fetchmail-controller.lua | 22 | ||||
| -rw-r--r-- | fetchmail-model.lua | 30 | 
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  | 
