diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-06-05 14:06:22 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-06-05 14:06:22 +0000 |
commit | ab9e94b01060564436b9ba4eef0a2ab1465e7b83 (patch) | |
tree | 3fde3c8f315e234c51867fe946f6a48eb526b247 /lbu-controller.lua | |
parent | dfcf164b909dc654e42820cce73baf8aeb54a26b (diff) | |
download | acf-alpine-conf-ab9e94b01060564436b9ba4eef0a2ab1465e7b83.tar.bz2 acf-alpine-conf-ab9e94b01060564436b9ba4eef0a2ab1465e7b83.tar.xz |
Updated lbu to use new cfe model and components
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-conf/trunk@1197 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'lbu-controller.lua')
-rw-r--r-- | lbu-controller.lua | 255 |
1 files changed, 90 insertions, 165 deletions
diff --git a/lbu-controller.lua b/lbu-controller.lua index a5b6256..1d5c22b 100644 --- a/lbu-controller.lua +++ b/lbu-controller.lua @@ -5,192 +5,117 @@ module(..., package.seeall) default_action = "status" +function basicstatus (self) + return self.model.getstatus() +end + function status (self) - local cmd = self.clientdata.cmd - local url = self.conf.script .. self.conf.prefix .. self.conf.controller - local status, errors = self.model:getstatus() - return ( {status = status, - errors = errors, - lbustatus = self.model:list(), - url = url, } ) + return self.model.list() end function config (self) - local errors = {} - local cmdresult - if (self.clientdata.cmd_delete_excluded) and (self.clientdata.lbu_excluded) then - cmdresult = self.model:lbuincexcl("exclude", self.clientdata.lbu_excluded, "remove") - end - if (self.clientdata.cmd_delete_included) and (self.clientdata.lbu_included) then - cmdresult = self.model:lbuincexcl("include", self.clientdata.lbu_included, "remove") - end - if (self.clientdata.config_submit) then - local variables="ENCRYPTION LBU_MEDIA DEFAULT_CIPHER PASSWORD" - cmdresult = {} - for var in string.gmatch(variables, "%S+") do - cmdresult[var] = self.model:editconfig(var, self.clientdata[var], "change_value") + 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 - if (self.clientdata.cmd_add_included) and (self.clientdata.item_add_included) then - cmdresult = self.model:lbuincexcl("include", self.clientdata.item_add_included, "add") - end - if (self.clientdata.cmd_add_excluded) and (self.clientdata.item_add_excluded) then - cmdresult = self.model:lbuincexcl("exclude", self.clientdata.item_add_excluded, "add") - end + config.type = "form" + config.option = "Save" + config.label = "Edit Config" - local config = self.model:getconfig() - -- This needs to be done /after/ the editing of the config (done earlier in this code) - local status = self.model:getstatus() - - -- Add submit and other buttons - config["cmd_delete_included"] = cfe({ - name="cmd_delete_included", - value="Delete", - label="Delete selected included-item", - type="submit", - descr="Mark a item in '" .. config.lbu_included.label .. "'-list before pressing [Delete]", - }) - - config["item_add_included"] = cfe({ - name="item_add_included", - label="Item to add to included-list", - }) - - config["cmd_add_included"] = cfe({ - name="cmd_add_included", - value="Add", - label="Add the item into the included-list", - type="submit", - descr="Enter a value in '" .. config.item_add_included.label .. "'-input before pressing [Add]", - }) - - config["cmd_delete_excluded"] = cfe({ - name="cmd_delete_excluded", - value="Delete", - label="Delete selected excluded-item", - type="submit", - descr="Mark a item in '" .. config.lbu_excluded.label .. "'-list before pressing [Delete]", - }) - - config["item_add_excluded"] = cfe({ - name="item_add_excluded", - label="Item to add to excluded-list", - }) - - config["cmd_add_excluded"] = cfe({ - name="cmd_add_excluded", - value="Add", - label="Add the item into the excluded-list", - type="submit", - descr="Enter a value in '" .. config.item_add_excluded.label .. "'-input before pressing [Add]", - }) - - config["config_submit"] = cfe({ - name="config_submit", - value="Apply", - label="Apply above settings", - type="submit", - }) - if (self.clientdata.config_submit) then - config.config_submit.descr="* Changes has been saved!" - end - - - -- Disable buttons/commands that is usable for som reason - if (config.lbu_included.option) and (#config.lbu_included.option == 0) then - config.cmd_delete_included.disabled= "yes" - config.cmd_delete_included.descr= "" - end - if (config.lbu_excluded.option) and (#config.lbu_excluded.option == 0) then - config.cmd_delete_excluded.disabled= "yes" - config.cmd_delete_excluded.descr= "" + return config +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 }) +end - local url = self.conf.script .. self.conf.prefix .. self.conf.controller - return ( {status = status, - cmdresult = cmdresult, - errors = errors, - clientdata = self.clientdata, - config = config, - url = url, } ) +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 }) end function commit(self) - local cmdresult, cmderror - local url = self.conf.script .. self.conf.prefix .. self.conf.controller - local cmdflag = nil - if (self.clientdata.lbucleanmedia) then cmdflag = "-d" else cmdflag = "" end - if (self.clientdata.lbusimulate) then - cmdresult, cmderror = self.model:getsimulate(cmdflag) - end - if (self.clientdata.lbucommit) then - cmdresult, cmderror = self.model:getcommit(cmdflag) + 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 no clientdata then do a dryrun and see if it's going to work else report - if not (cmdresult) then - tmp_cmdresult, cmderror = self.model:getsimulate() + if self.sessiondata.commitresult then + comm.descr = self.sessiondata.commitresult.value + comm.errtxt = self.sessiondata.commitresult.errtxt + self.sessiondata.commitresult = nil end - local status, errors = self.model:getstatus() - - -- Add buttons - status["lbusimulate"] = cfe({ - name="lbusimulate", - value="Simulate", - label="Simulate/Test a commit", - type="submit", - }) - - status["lbucommit"] = cfe({ - name="lbucommit", - value="Commit", - label="Actually commit and save changes", - type="submit", - }) - - if (cmderror["-d"]) then - status["lbucleanmedia"] = cfe({ - name="lbucleanmedia", - value="lbucleanmedia", - label="Remove existing apk.ovls from media", - type="checkbox", - }) - end + comm.type = "form" + comm.option = "Commit" + comm.label = "Commit changes" - return ( {status = status, - cmdresult = cmdresult, - cmdflag = cmdflag, - cmderror = cmderror, - clientdata = self.clientdata, - url = url, } ) + return comm end + function expert (self) - local modifications = self.clientdata.filecontent or "" - if ( self.clientdata.cmdsave) then - modifications = self.model:update_filecontent(modifications) + 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.descr = "Saved config" + end end - local status = self.model.getstatus() - local file = self.model:get_filedetails() - -- Add submit and other buttons - file["cmdsave"] = cfe({ - name="cmdsave", - value="Apply", - label="Apply settings", - type="submit", - }) - if (self.clientdata.cmdsave) then - file.cmdsave.descr="* Changes has been saved!" - end - - local url = self.conf.script .. self.conf.prefix .. self.conf.controller - - return { - file = file, - status = status, - clientdata = self.clientdata, - url = url, } + filedetails.type = "form" + filedetails.option = "Save" + filedetails.label = "Edit config file" + + return filedetails end |