From d6eaceb7368639a4d634b06b2e1f09498c81e1e4 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Tue, 8 Jul 2008 13:27:06 +0000 Subject: Modified tinydns to use controllerfunctions, modelfunctions, common lsp files, and new view without action functionality. git-svn-id: svn://svn.alpinelinux.org/acf/tinydns/trunk@1290 ab2d0c66-481e-0410-8bed-d214d4d58bed --- tinydns-config-html.lsp | 6 +-- tinydns-controller.lua | 117 ++++----------------------------------------- tinydns-edit-html.lsp | 17 +++---- tinydns-editfile-html.lsp | 1 + tinydns-expert-html.lsp | 42 ---------------- tinydns-listfiles-html.lsp | 8 ++-- tinydns-model.lua | 100 ++++++++------------------------------ tinydns-newfile-html.lsp | 18 +------ tinydns-startstop-html.lsp | 27 +---------- tinydns-status-html.lsp | 2 +- tinydns.roles | 2 +- 11 files changed, 52 insertions(+), 288 deletions(-) create mode 120000 tinydns-editfile-html.lsp delete mode 100644 tinydns-expert-html.lsp mode change 100644 => 120000 tinydns-newfile-html.lsp mode change 100644 => 120000 tinydns-startstop-html.lsp diff --git a/tinydns-config-html.lsp b/tinydns-config-html.lsp index 1119a50..a213785 100755 --- a/tinydns-config-html.lsp +++ b/tinydns-config-html.lsp @@ -1,4 +1,4 @@ - ") viewlibrary.dispatch_component("status") end ?> -

CONFIGURATION

-

+

diff --git a/tinydns-controller.lua b/tinydns-controller.lua index dd567c5..e0e7e2a 100644 --- a/tinydns-controller.lua +++ b/tinydns-controller.lua @@ -1,12 +1,7 @@ module(..., package.seeall) +require("controllerfunctions") require("validator") --- ################################################################################ --- LOCAL FUNCTIONS - --- ################################################################################ --- PUBLIC FUNCTIONS - default_action = "status" function status(self) @@ -18,71 +13,15 @@ function view(self) end function startstop(self) - local result - if self.clientdata.action then - result = self.model:startstop_service(self.clientdata.action) - self.sessiondata.tinydnsstartstopresult = result - self.redirect_to_referrer(self) - end - - local status = self.model.getstatus() - status = status.value.status - if self.sessiondata.tinydnsstartstopresult then - result = self.sessiondata.tinydnsstartstopresult - self.sessiondata.tinydnsstartstopresult = 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) - local config = self.model.getconfig() - - if self.clientdata.Save then - for name,value in pairs(self.clientdata) do - if config.value[name] then - config.value[name].errtxt = nil - config.value[name].value = value - end - end - - config = self.model.setconfig(config) - if not config.errtxt then - config.descr = "Configuration Set" - end - end - - config.type = "form" - config.option = "Save" - config.label = "Edit configuration" - - return config + return controllerfunctions.handle_form(self, self.model.getconfig, self.model.setconfig, self.clientdata, "Save", "Edit Configuration", "Configuration Saved") end function newfile(self) - local create = self.model.getnewconfigfile() - - -- In case we are trying to create a new configfile - if (self.clientdata.Create) then - for name,value in pairs(self.clientdata) do - if create.value[name] then - create.value[name].errtxt = nil - create.value[name].value = value - end - end - - create = self.model.createconfigfile(create) - if not create.errtxt then - create.descr = "Created new config file" - redirect(self, "listfiles") - end - end - - create.type = "form" - create.option = "Create" - create.label = "Create new config file" - - return create + return controllerfunctions.handle_form(self, self.model.getnewconfigfile, self.model.createconfigfile, self.clientdata, "Create", "Create New Config File", "Config File Created", "listfiles") end function listfiles(self) @@ -96,53 +35,15 @@ function listfiles(self) return cfe({ type="list", value=config, label="Config files" }) end -function edit(self) - local config = self.model.get_filedetails(self.clientdata.filename) - if self.clientdata.Save then - local result = self.model.updatefilecontent(self.clientdata.filename, self.clientdata.filecontent) - if not result.value then - config.value.filecontent.value = self.clientdata.filecontent - config.value.filecontent.errtxt = result.errtxt - config.errtxt = "Failed to save config!" - else - config = self.model.get_filedetails(self.clientdata.filename) - config.descr = "Saved file" - end - elseif self.clientdata.linenumber and validator.is_integer(self.clientdata.linenumber) then +function editfile(self) + config = controllerfunctions.handle_form(self, function() return self.model.get_filedetails(self.clientdata.filename) end, self.model.set_filedetails, 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 - - config.type = "form" - config.option = "Save" - config.label = "Edit config file" - - return config -end - -function expert(self) - local config = self.model.get_filedetails(self.clientdata.filename) - if self.clientdata.Save then - local result = self.model.updatefilecontent(self.clientdata.filename, self.clientdata.filecontent) - if not result.value then - config.value.filecontent.value = self.clientdata.filecontent - config.value.filecontent.errtxt = result.errtxt - config.errtxt = "Failed to save config!" - else - config = self.model.get_filedetails(self.clientdata.filename) - config.descr = "Saved file" - end - end - - config.type = "form" - config.option = "Save" - config.label = "Edit config file" - return config end function delete(self) - local cmdresult = self.model.remove_file(self.clientdata.filename) - --self.sessiondata.cmdresult = cmdresult - redirect_to_referrer(self) - return cmdresult + return self:redirect_to_referrer(self.model.remove_file(self.clientdata.filename)) end diff --git a/tinydns-edit-html.lsp b/tinydns-edit-html.lsp index 92cdd21..44cf642 100644 --- a/tinydns-edit-html.lsp +++ b/tinydns-edit-html.lsp @@ -1,5 +1,6 @@ - + +