From 6051b3a43d38af1758b88620d7320a3482a23ae6 Mon Sep 17 00:00:00 2001 From: Zach LeBar Date: Wed, 21 Mar 2012 20:55:37 +0000 Subject: Change lbu-controller.lua to use new handle_form() functions found in acf_www-controller.lua instead of the controllerfunctions.lua version and also instead of redirect_to_referrer(). Made corresponding changes to vmail-model.lua to make everything work. --- lbu-controller.lua | 13 ++++++------- lbu-listbackups-html.lsp | 2 +- lbu-model.lua | 38 +++++++++++++++++++++++--------------- 3 files changed, 30 insertions(+), 23 deletions(-) diff --git a/lbu-controller.lua b/lbu-controller.lua index 8ced688..64a479c 100644 --- a/lbu-controller.lua +++ b/lbu-controller.lua @@ -1,5 +1,4 @@ module(..., package.seeall) -require("controllerfunctions") default_action = "listchanges" @@ -12,23 +11,23 @@ function listchanges (self) end function config (self) - return controllerfunctions.handle_form(self, self.model.getconfig, self.model.setconfig, self.clientdata, "Save", "Edit Config", "Configuration Set") + return self.handle_form(self, self.model.getconfig, self.model.setconfig, self.clientdata, "Save", "Edit Config", "Configuration Set") end function editincluded (self) - return controllerfunctions.handle_form(self, self.model.getincluded, self.model.setincluded, self.clientdata, "Save", "Edit Included Files", "Included files set") + return self.handle_form(self, self.model.getincluded, self.model.setincluded, self.clientdata, "Save", "Edit Included Files", "Included files set") end function editexcluded (self) - return controllerfunctions.handle_form(self, self.model.getexcluded, self.model.setexcluded, self.clientdata, "Save", "Edit Excluded Files", "Excluded files set") + return self.handle_form(self, self.model.getexcluded, self.model.setexcluded, self.clientdata, "Save", "Edit Excluded Files", "Excluded files set") end function commit(self) - return controllerfunctions.handle_form(self, self.model.getcommit, self.model.commit, self.clientdata, "Commit", "Commit Changes") + return self.handle_form(self, self.model.getcommit, self.model.commit, self.clientdata, "Commit", "Commit Changes") end function expert (self) - return controllerfunctions.handle_form(self, self.model.get_filedetails, self.model.set_filedetails, self.clientdata, "Save", "Edit Config File", "Configuration saved") + return self.handle_form(self, self.model.get_filedetails, self.model.set_filedetails, self.clientdata, "Save", "Edit Config File", "Configuration saved") end function listbackups(self) @@ -40,7 +39,7 @@ function deletebackup(self) end --]] function selectbackup(self) - return self:redirect_to_referrer(self.model.selectbackupfile(self.clientdata.backup)) + return self.handle_form(self, self.model.get_selectbackup, self.model.selectbackupfile, self.clientdata, "Revert") end function getpackage(self) diff --git a/lbu-listbackups-html.lsp b/lbu-listbackups-html.lsp index f528227..579411e 100644 --- a/lbu-listbackups-html.lsp +++ b/lbu-listbackups-html.lsp @@ -15,7 +15,7 @@ No backup files <% for i,name in ipairs(view.value) do %> - <%= html.link{value="selectbackup?backup="..name, label="Revert "} %> + <%= html.link{value="selectbackup?backup="..name.."&redir=config&submit=true", label="Revert "} %> <%= html.html_escape(name) %> <% end diff --git a/lbu-model.lua b/lbu-model.lua index 30dc9f1..88e4a83 100644 --- a/lbu-model.lua +++ b/lbu-model.lua @@ -3,9 +3,9 @@ module (..., package.seeall) -- Load libraries require("posix") require("modelfunctions") -require("fs") -require("format") -require("validator") +fs = require("acf.fs") +format = require("acf.format") +validator = require("acf.validator") -- Set variables local configfile = "/etc/lbu/lbu.conf" @@ -176,7 +176,9 @@ end local function validatefilecontent (filedetails) local success = true - local config = getconfig(filedetails.value.filecontent.value) + local clientdata = clientdata or self.clientdata or {} + clientdata.configcontents = filedetails.value.filecontent.value + local config = getconfig(clientdata) local errors = {} for name,value in pairs(config.value) do if value.errtxt then @@ -251,11 +253,12 @@ function list() return cfe({ type="structure", value=ret, label="List of changes" }) end -function getconfig (configcontents) +function getconfig (clientdata) + local clientdata = clientdata or {} local config = {} local configopts = {} - if configcontents then - configopts = format.parse_ini_file(configcontents, "") or {} + if clientdata.configcontents then + configopts = format.parse_ini_file(clientdata.configcontents, "") or {} elseif (fs.is_file(configfile)) then configopts = format.parse_ini_file(fs.read_file(configfile) or "", "") or {} end @@ -440,22 +443,27 @@ function getbackupfiles() return cfe({ type="list", value=files, label="Backup archive list"}) end -function selectbackupfile(selectfile) - local cmdresult = cfe({ value="Failed to revert to backup", errtxt="Backup not found", label="Revert Backup result"}) +function get_selectbackup(clientdata) + local result = {} + result.backup = cfe({ value=clientdata.backup or "", label="Backup" }) + return cfe({ type="group", value=result, label="Revert to Backup" }) +end + +function selectbackupfile(backuprequest) local files = getbackupfiles() for i,file in ipairs(files.value) do - if file == selectfile then + if file == backuprequest.value.backup.value then local f = io.popen("PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin lbu revert "..file.." 2>&1", "r") - cmdresult.errtxt = f:read("*a") - if "" == cmdresult.errtxt then - cmdresult.errtxt = nil - cmdresult.value = "Reverted to backup "..file + backuprequest.errtxt = f:read("*a") + if "" == backuprequest.errtxt then + backuprequest.errtxt = nil + backuprequest.descr = "Reverted to backup "..file end f:close() break end end - return cmdresult + return backuprequest end function getpackage() -- cgit v1.2.3