diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-07-04 14:54:19 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-07-04 14:54:19 +0000 |
commit | a0f64cff3dfc675ed5ea641c10be72c842b693d5 (patch) | |
tree | d49c25941ade8d3463141fde095a077b48fc29e1 | |
parent | e36290cc32c9d9a7b70e1ce09127517be7aadf9a (diff) | |
download | acf-alpine-conf-a0f64cff3dfc675ed5ea641c10be72c842b693d5.tar.bz2 acf-alpine-conf-a0f64cff3dfc675ed5ea641c10be72c842b693d5.tar.xz |
Modified lbu to use controllerfunctions, modelfunctions, and common lsp files. Moved basicstatus->status and status->listchanges.
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-conf/trunk@1276 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r-- | lbu-basicstatus-html.lsp | 28 | ||||
-rw-r--r-- | lbu-config-html.lsp | 9 | ||||
-rw-r--r-- | lbu-controller.lua | 113 | ||||
l---------[-rw-r--r--] | lbu-expert-html.lsp | 37 | ||||
l---------[-rw-r--r--] | lbu-html.lsp | 17 | ||||
-rw-r--r-- | lbu-listbackups-html.lsp | 2 | ||||
-rw-r--r-- | lbu-listchanges-html.lsp | 31 | ||||
-rw-r--r-- | lbu-model.lua | 48 | ||||
-rw-r--r-- | lbu-status-html.lsp | 31 | ||||
-rw-r--r-- | lbu.menu | 2 | ||||
-rw-r--r-- | lbu.roles | 2 |
11 files changed, 86 insertions, 234 deletions
diff --git a/lbu-basicstatus-html.lsp b/lbu-basicstatus-html.lsp deleted file mode 100644 index 6b8a77d..0000000 --- a/lbu-basicstatus-html.lsp +++ /dev/null @@ -1,28 +0,0 @@ -<? local view, viewlibrary, pageinfo, session = ... -require("viewfunctions") -?> -<? ---[[ DEBUG INFORMATION -io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>") -io.write(html.cfe_unpack(view)) -io.write("</span>") ---]] -?> - -<H1>System Info</H1> -<DL> -<? -if view.value.committed.value then - view.value.committed.value = "There are no uncommitted files" -else - view.value.committed.value = "WARNING!\nUntil you commit, you will lose your changes at next reboot/shutdown!" -end -view.value.committed.type = "string" -displayitem(view.value.committed) - -for name,value in pairs(view.value) do - if name ~= "committed" then - displayitem(value) - end -end ?> -</DL> diff --git a/lbu-config-html.lsp b/lbu-config-html.lsp index 6749785..5072423 100644 --- a/lbu-config-html.lsp +++ b/lbu-config-html.lsp @@ -9,11 +9,10 @@ io.write("</span>") --]] ?> -<? - if viewlibrary and viewlibrary.dispatch_component then - viewlibrary.dispatch_component("basicstatus") - end -?> +<? if viewlibrary and viewlibrary.dispatch_component then + viewlibrary.dispatch_component("status") +end ?> + <H1>Config</H1> <? local order = { "LBU_MEDIA", "ENCRYPTION", "DEFAULT_CIPHER", "PASSWORD" } diff --git a/lbu-controller.lua b/lbu-controller.lua index d70dde7..3db860d 100644 --- a/lbu-controller.lua +++ b/lbu-controller.lua @@ -1,123 +1,34 @@ module(..., package.seeall) +require("controllerfunctions") --- ################################################################################ --- PUBLIC FUNCTIONS +default_action = "listchanges" -default_action = "status" - -function basicstatus (self) +function status (self) return self.model.getstatus() end -function status (self) +function listchanges (self) return self.model.list() end function config (self) - local config = self.model.getconfig() - if self.clientdata.Save then - config.errtxt = nil - for name,value in pairs(config.value) do - value.errtxt = nil - if value.type == "boolean" then - value.value = (self.clientdata[name]~=nil) - else - value.value = self.clientdata[name] or 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 Config" - - return config + return controllerfunctions.handle_form(self, self.model.getconfig, self.model.setconfig, self.clientdata, "Save", "Edit Config", "Configuration Set") end function editincluded (self) - local errtxt, descr - local included = self.model.getincluded() - if self.clientdata.Save then - included.errtxt = nil - included.value = self.clientdata.included - included = self.model.setincluded(included) - if included.errtxt then - errtxt = "Failed to set included files" - else - descr = "Included files set" - redirect_to_referrer(self) - end - end - - return cfe({ type="form", value={included=included}, option="Save", label="Edit included files", errtxt=errtxt, descr=descr }) + return controllerfunctions.handle_form(self, self.model.getincluded, self.model.setincluded, self.clientdata, "Save", "Edit Included Files", "Included files set") end function editexcluded (self) - local errtxt, descr - local excluded = self.model.getexcluded() - if self.clientdata.Save then - excluded.errtxt = nil - excluded.value = self.clientdata.excluded - excluded = self.model.setexcluded(excluded) - if excluded.errtxt then - errtxt = "Failed to set excluded files" - else - descr = "Excluded files set" - redirect_to_referrer(self) - end - end - - return cfe({ type="form", value={excluded=excluded}, option="Save", label="Edit excluded files", errtxt=errtxt, descr=descr }) + return controllerfunctions.handle_form(self, self.model.getexcluded, self.model.setexcluded, self.clientdata, "Save", "Edit Excluded Files", "Excluded files set") end function commit(self) - local comm = self.model.getcommit() - if self.clientdata.Commit then - comm.errtxt = nil - for name,value in pairs(comm.value) do - value.errtxt = nil - value.value = (self.clientdata[name]~=nil) - end - comm = self.model.commit(comm) - self.sessiondata.commitresult = cfe({ value=comm.descr or "", errtxt=comm.errtxt }) - redirect_to_referrer(self) - end - - if self.sessiondata.commitresult then - comm.descr = self.sessiondata.commitresult.value - comm.errtxt = self.sessiondata.commitresult.errtxt - self.sessiondata.commitresult = nil - end - - comm.type = "form" - comm.option = "Commit" - comm.label = "Commit changes" - - return comm + return controllerfunctions.handle_form(self, self.model.getcommit, self.model.commit, self.clientdata, "Commit", "Commit Changes") end function expert (self) - local filedetails = self.model.get_filedetails() - if self.clientdata.Save then - filedetails.value.filecontent.errtxt = nil - filedetails.value.filecontent.value = self.clientdata.filecontent - filedetails.value.filecontent = self.model.set_filecontent(filedetails.value.filecontent) - if filedetails.value.filecontent.errtxt then - filedetails.errtxt = "Failed to save config" - else - filedetails = self.model.get_filedetails() - filedetails.descr = "Saved config" - end - end - - filedetails.type = "form" - filedetails.option = "Save" - filedetails.label = "Edit config file" - - return filedetails + return controllerfunctions.handle_form(self, self.model.get_filedetails, self.model.set_filedetails, self.clientdata, "Save", "Edit Config File", "Configuration saved") end function listbackups(self) @@ -125,11 +36,9 @@ function listbackups(self) end --[[ function deletebackup(self) - self.model.deletebackupfile(self.clientdata.backup) - redirect_to_referrer(self) + return self:redirect_to_referrer(self.model.deletebackupfile(self.clientdata.backup)) end --]] function selectbackup(self) - self.model.selectbackupfile(self.clientdata.backup) - redirect_to_referrer(self) + return self:redirect_to_referrer(self.model.selectbackupfile(self.clientdata.backup)) end diff --git a/lbu-expert-html.lsp b/lbu-expert-html.lsp index 04dfd45..207f324 100644..120000 --- a/lbu-expert-html.lsp +++ b/lbu-expert-html.lsp @@ -1,36 +1 @@ -<? local form, viewlibrary = ... -require("viewfunctions") -?> -<? ---[[ DEBUG INFORMATION -io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>") -io.write(html.cfe_unpack(form)) -io.write("</span>") ---]] -?> - -<? if viewlibrary and viewlibrary.dispatch_component then - viewlibrary.dispatch_component("basicstatus") -end ?> - -<h1>Configuration</h1> -<H2>File Details</H2> -<DL> -<? -displayitem(form.value.filename) -displayitem(form.value.filesize) -displayitem(form.value.mtime) -?> -</DL> - -<H2>File Content</H2> -<? if form.descr then ?><P CLASS='descr'><?= string.gsub(form.descr, "\n", "<BR>") ?></P><? end ?> -<? if form.errtxt then ?><P CLASS='error'><?= string.gsub(form.errtxt, "\n", "<BR>") ?></P><? end ?> -<form action="" method="POST"> -<textarea name="filecontent"> -<?= form.value.filecontent.value ?> -</textarea> -<? if form.value.filecontent.errtxt then ?><P CLASS='error'><?= string.gsub(form.value.filecontent.errtxt, "\n", "<BR>") ?></P><? end ?> - -<DL><DT><input class="submit" type="submit" name="<?= form.option ?>" value="<?= form.option ?>"></DT></DL> -</form> +../expert-html.lsp
\ No newline at end of file diff --git a/lbu-html.lsp b/lbu-html.lsp index 71269f5..4b6b762 100644..120000 --- a/lbu-html.lsp +++ b/lbu-html.lsp @@ -1,16 +1 @@ -<? local form, viewlibrary, pageinfo = ... -require("viewfunctions") -?> -<? ---[[ DEBUG INFORMATION -io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>") -io.write(html.cfe_unpack(form)) -io.write("</span>") ---]] -?> - -<H1><?= form.label ?></H1> -<? - form.action = pageinfo.action - displayform(form) -?> +../form-html.lsp
\ No newline at end of file diff --git a/lbu-listbackups-html.lsp b/lbu-listbackups-html.lsp index cfd6efc..5995c2b 100644 --- a/lbu-listbackups-html.lsp +++ b/lbu-listbackups-html.lsp @@ -9,6 +9,8 @@ io.write("</span>") --]] ?> +<? displaycommandresults({"selectbackup"}, session) ?> + <H1>Backup Archive</H1> <DL> <? if #view.value == 0 then ?> diff --git a/lbu-listchanges-html.lsp b/lbu-listchanges-html.lsp new file mode 100644 index 0000000..0cc7f03 --- /dev/null +++ b/lbu-listchanges-html.lsp @@ -0,0 +1,31 @@ +<? local view, viewlibrary, pageinfo, session = ... +require("viewfunctions") +?> +<? +--[[ DEBUG INFORMATION +io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>") +io.write(html.cfe_unpack(view)) +io.write("</span>") +--]] +?> + +<? if viewlibrary and viewlibrary.dispatch_component then + viewlibrary.dispatch_component("status") + if session.permissions.lbu.commit then + viewlibrary.dispatch_component("commit") + end +end ?> + +<H1>Changes Since Last Commit</H1> +<DL> + <dt>Files changed since last commit</dt> + <dd><pre><? + if (#view.value == 0) then + io.write("None") + else + for i,file in pairs(view.value) do + io.write(file.status .. "\t" .. file.name .. "\n") + end + end + ?></pre></DD> +</DL> diff --git a/lbu-model.lua b/lbu-model.lua index 3ae6c87..0ff1b96 100644 --- a/lbu-model.lua +++ b/lbu-model.lua @@ -1,10 +1,10 @@ module (..., package.seeall) -- Load libraries +require("modelfunctions") require("fs") require("format") require("getopts") -require("daemoncontrol") require("validator") -- Set variables @@ -308,13 +308,15 @@ function getincluded () validatefilelist(included) - return included + return cfe({ type="group", value={included = included} }) end function setincluded (included) - validatefilelist(included) - if not included.errtxt then - fs.write_file(includefile, included.value) + validatefilelist(included.value.included) + if not included.value.included.errtxt then + fs.write_file(includefile, included.value.included.value) + else + included.errtxt = "Failed to set included" end return included end @@ -329,44 +331,34 @@ function getexcluded () validatefilelist(excluded) - return excluded + return cfe({ type="group", value={excluded = excluded} }) end function setexcluded (excluded) - validatefilelist(excluded) - if not excluded.errtxt then - fs.write_file(excludefile, excluded.value) + validatefilelist(excluded.value.excluded) + if not excluded.value.excluded.errtxt then + fs.write_file(excludefile, excluded.value.excluded.value) + else + excluded.errtxt = "Failed to set excluded" end return excluded end function get_filedetails() - local filename = cfe({ value=configfile, label="File name" }) - local filecontent = cfe({ type="longtext", label="Config file" }) - local filesize = cfe({ value="0", label="File size" }) - local mtime = cfe({ value="---", label="File date" }) - - if fs.is_file(configfile) then - local filedetails = fs.stat(configfile) - filecontent.value = fs.read_file(configfile) - filesize.value = filedetails.size - mtime.value = filedetails.mtime - - validatefilecontent(filecontent) - else - filename.errtxt = "File not found" - end - - return cfe({ type="group", value={filename=filename, filecontent=filecontent, filesize=filesize, mtime=mtime}, label="Config file details" }) + return modelfunctions.getfiledetails(configfile) end -function set_filecontent (filecontent) +function set_filedetails(filedetails) + local filecontent = filedetails.value.filecontent filecontent.value = format.dostounix(filecontent.value) + filecontent.value = filecontent.value:gsub("\n+$", "") validatefilecontent(filecontent) if not filecontent.errtxt then fs.write_file(configfile, filecontent.value) + else + filedetails.errtxt = "Failed to set config" end - return filecontent + return filedetails end function getcommit() diff --git a/lbu-status-html.lsp b/lbu-status-html.lsp index afe0164..6b8a77d 100644 --- a/lbu-status-html.lsp +++ b/lbu-status-html.lsp @@ -9,23 +9,20 @@ io.write("</span>") --]] ?> -<? if viewlibrary and viewlibrary.dispatch_component then - viewlibrary.dispatch_component("basicstatus") - if session.permissions.lbu.commit then - viewlibrary.dispatch_component("commit") +<H1>System Info</H1> +<DL> +<? +if view.value.committed.value then + view.value.committed.value = "There are no uncommitted files" +else + view.value.committed.value = "WARNING!\nUntil you commit, you will lose your changes at next reboot/shutdown!" +end +view.value.committed.type = "string" +displayitem(view.value.committed) + +for name,value in pairs(view.value) do + if name ~= "committed" then + displayitem(value) end end ?> - -<H1>Changes Since Last Commit</H1> -<DL> - <dt>Files changed since last commit</dt> - <dd><pre><? - if (#view.value == 0) then - io.write("None") - else - for i,file in pairs(view.value) do - io.write(file.status .. "\t" .. file.name .. "\n") - end - end - ?></pre></DD> </DL> @@ -1,4 +1,4 @@ #CAT GROUP/DESC TAB ACTION -System 99Local_backups Status status +System 99Local_backups Status listchanges System 99Local_backups Config config System 99Local_backups Expert expert @@ -1,2 +1,2 @@ UPDATE=lbu:config,lbu:commit,lbu:expert,lbu:editincluded,lbu:editexcluded,lbu:listbackups,lbu:selectbackup -ALL=lbu:basicstatus,lbu:status +ALL=lbu:status,lbu:listchanges |