module(..., package.seeall) require("controllerfunctions") require("validator") default_action = "status" function status(self) return self.model.getstatus(self) end function view(self) return self.model.getconfigobjects(self.clientdata.filename, sessiondata.userinfo.dnsfiles) end function startstop(self) return controllerfunctions.handle_startstop(self, self.model.startstop_service, self.model.getstatus, self.clientdata) end function config(self) return controllerfunctions.handle_form(self, self.model.getconfig, self.model.setconfig, self.clientdata, "Save", "Edit Configuration", "Configuration Saved") end function newfile(self) return controllerfunctions.handle_form(self, self.model.getnewconfigfile, function(value) return self.model.createconfigfile(self, value, sessiondata.userinfo.dnsfiles) end, self.clientdata, "Create", "Create New Config File", "Config File Created", "listfiles") end function listfiles(self) local configfiles = self.model.getfilelist(sessiondata.userinfo.dnsfiles) local config = {} for k,v in pairs(configfiles.value) do local filedetails = self.model.get_filedetails(v, sessiondata.userinfo.dnsfiles) table.insert(config,filedetails) end return cfe({ type="list", value=config, label="Config files" }) end function editfile(self) config = controllerfunctions.handle_form(self, function() return self.model.get_filedetails(self.clientdata.filename, sessiondata.userinfo.dnsfiles) end, function(value) return self.model.set_filedetails(value, sessiondata.userinfo.dnsfiles) end, self.clientdata, "Save", "Edit Config File", "Config File Saved") if self.clientdata.linenumber and validator.is_integer(self.clientdata.linenumber) then config.value.filecontent.linenumber = self.clientdata.linenumber end return config end function delete(self) return self:redirect_to_referrer(self.model.remove_file(self.clientdata.filename, sessiondata.userinfo.dnsfiles)) end