module(..., package.seeall) -- ################################################################################ -- PUBLIC FUNCTIONS default_action = "status" function basicstatus (self) return self.model.getstatus() end function status (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 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 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 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 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.descr = "Saved config" end end filedetails.type = "form" filedetails.option = "Save" filedetails.label = "Edit config file" return filedetails end