diff options
Diffstat (limited to 'dnscache-controller.lua')
-rw-r--r-- | dnscache-controller.lua | 85 |
1 files changed, 9 insertions, 76 deletions
diff --git a/dnscache-controller.lua b/dnscache-controller.lua index d50fb63..bed2356 100644 --- a/dnscache-controller.lua +++ b/dnscache-controller.lua @@ -1,40 +1,7 @@ module(..., package.seeall) -- Load libraries -require("format") - -local function handle_form(getFunction, setFunction, clientdata, option, label, descr) - local form = getFunction() - - if clientdata[option] then - form.errtxt = nil - for name,value in pairs(form.value) do - value.errtxt = nil - if value.type == "boolean" then - value.value = (clientdata[name] ~= nil) - elseif value.type == "list" then - value.value = {} - if clientdata[name] and clientdata[name] ~= "" then - for ip in string.gmatch(clientdata[name].."\n", "%s*(%S[^\n]*%S)%s*\n") do - table.insert(value.value, ip) - end - end - else - value.value = clientdata[name] or value.value - end - end - form = setFunction(form) - if not form.errtxt then - form.descr = descr - end - end - - form.type = "form" - form.option = option - form.label = label - - return form -end +require("controllerfunctions") default_action = "status" @@ -43,47 +10,19 @@ function status(self) end function startstop(self) - local result - if self.clientdata.action then - result = self.model.startstop_service(self.clientdata.action) - self.sessiondata.dnscachestartstopresult = result - self.redirect_to_referrer(self) - end - - local status = self.model.getstatus() - status = status.value.status - if self.sessiondata.dnscachestartstopresult then - result = self.sessiondata.dnscachestartstopresult - self.sessiondata.dnscachestartstopresult = nil - end - - return cfe({ type="group", value={status=status, result=result} }) + return controllerfunctions.handle_startstop(self, self.model.startstop_service, self.model.getstatus, self.clientdata) end function config(self) - return handle_form(self.model.getconfig, self.model.setconfig, self.clientdata, "Save", "Edit Config", "Configuration Set") + return controllerfunctions.handle_form(self, self.model.getconfig, self.model.setconfig, self.clientdata, "Save", "Edit Config", "Configuration Set") end function expert(self) - local filedetails - if self.clientdata.Save then - filedetails = self.model.setconfigfile(self.clientdata.filecontent) - if not filedetails.errtxt then - filedetails.descr = "Config file set" - end - else - filedetails = self.model.getconfigfile() - end - - filedetails.type = "form" - filedetails.option = "Save" - filedetails.label = "Set config file" - - return filedetails + return controllerfunctions.handle_form(self, self.model.getconfigfile, self.model.setconfigfile, self.clientdata, "Save", "Edit Config File", "Configuration File Set") end function editips(self) - return handle_form(self.model.getIPs, self.model.setIPs, self.clientdata, "Save", "Edit IP List", "IP List Set") + return controllerfunctions.handle_form(self, self.model.getIPs, self.model.setIPs, self.clientdata, "Save", "Edit IP List", "IP List Set") end function listdomains(self) @@ -91,20 +30,14 @@ function listdomains(self) end function createdomain(self) - local cmdresult = handle_form(self.model.getNewDomain, self.model.setNewDomain, self.clientdata, "Create", "Create new domain", "New domain created") - if cmdresult.descr then - redirect_to_referrer(self) - end - return cmdresult + return controllerfunctions.handle_form(self, self.model.getNewDomain, self.model.setNewDomain, self.clientdata, "Create", "Create New Domain", "New Domain Created") end function editdomain(self) - return handle_form(function(form) return self.model.getDomain(self.clientdata.domain) end, - self.model.setDomain, self.clientdata, "Save", "Edit domain entry", "Domain saved") + return controllerfunctions.handle_form(self, function(form) return self.model.getDomain(self.clientdata.domain) end, + self.model.setDomain, self.clientdata, "Save", "Edit Domain Entry", "Domain Saved") end function deletedomain(self) - local cmdresult = self.model.deleteDomain(self.clientdata.domain) - redirect_to_referrer(self) - return cmdresult + return self:redirect_to_referrer(self.model.deleteDomain(self.clientdata.domain)) end |