diff options
-rw-r--r-- | postfix-controller.lua | 6 | ||||
-rw-r--r-- | postfix-listfiles-html.lsp | 4 | ||||
-rw-r--r-- | postfix-listqueue-html.lsp | 2 | ||||
-rw-r--r-- | postfix-model.lua | 52 |
4 files changed, 41 insertions, 23 deletions
diff --git a/postfix-controller.lua b/postfix-controller.lua index 501087b..ec3d771 100644 --- a/postfix-controller.lua +++ b/postfix-controller.lua @@ -23,7 +23,7 @@ function createfile(self) end function deletefile(self) - return self:redirect_to_referrer(self.model.deletefile(self.clientdata.filename)) + return self.handle_form(self, self.model.getdeletefile, self.model.deletefile, self.clientdata, "Delete", "Delete file", "File deleted") end function expert(self) @@ -31,7 +31,7 @@ function expert(self) end function rebuilddatabases(self) - return self:redirect_to_referrer(self.model.rebuild_databases()) + return self.handle_form(self, self.model.get_rebuild_databases, self.model.rebuild_databases, self.clientdata, "Rebuild", "Rebuild Databases") end function listqueue(self) @@ -39,5 +39,5 @@ function listqueue(self) end function flushqueue(self) - return self:redirect_to_referrer(self.model.flushqueue()) + return self.handle_form(self, self.model.getflushqueue, self.model.flushqueue, self.clientdata, "Flush", "Flush Queue") end diff --git a/postfix-listfiles-html.lsp b/postfix-listfiles-html.lsp index 1e6e09a..4d47a24 100644 --- a/postfix-listfiles-html.lsp +++ b/postfix-listfiles-html.lsp @@ -24,7 +24,7 @@ end %> <TR> <TD style="padding-right:20px;white-space:nowrap;"> <%= html.link{value = "expert?filename=" .. file.filename.."&redir="..page_info.orig_action, label="Edit "} %> - <% if file.filename ~= "/etc/mail/aliases" then %><%= html.link{value = "deletefile?filename=" .. file.filename, label="Delete "} %><% end %> + <% if file.filename ~= "/etc/mail/aliases" then %><%= html.link{value = "deletefile?submit=true&filename=" .. file.filename, label="Delete "} %><% end %> </TD> <TD style="padding-right:20px;white-space:nowrap;"><%= html.html_escape(file.filename) %></TD> <TD style="padding-right:20px;white-space:nowrap;"><%= html.html_escape(file.filesize) %></TD> @@ -34,7 +34,7 @@ end %> </TABLE> <form action="<%= html.html_escape(page_info.script .. page_info.prefix .. page_info.controller .. "/rebuilddatabases") %>"> <DT>Rebuild Databases</DT> -<DD><input class="submit" type="submit" value="Rebuild"></DD> +<DD><input class="submit" type="submit" name="submit" value="Rebuild"></DD> </form> </DL> diff --git a/postfix-listqueue-html.lsp b/postfix-listqueue-html.lsp index ee6ba50..c86e7ab 100644 --- a/postfix-listqueue-html.lsp +++ b/postfix-listqueue-html.lsp @@ -11,6 +11,6 @@ require("htmlviewfunctions") </pre> <form action="flushqueue"> <DT>Flush Queue</DT> -<DD><input class="submit" type="submit" value="Flush"></DD> +<DD><input class="submit" type="submit" name="submit" value="Flush"></DD> </form> </DL> diff --git a/postfix-model.lua b/postfix-model.lua index 36646ed..f3a0634 100644 --- a/postfix-model.lua +++ b/postfix-model.lua @@ -113,22 +113,34 @@ function createfile(self, newfile) return newfile end -function deletefile(filename) - local result = cfe({ value="Failed to delete file", label="Delete file result" }) +function getdeletefile(self, clientdata) + local retval = {} + retval.filename = cfe({ value=clientdata.filename or "", label="File Name" }) + return cfe({ type="group", value=retval, label="Delete File" }) +end + +function deletefile(self, delfile) + local filename = delfile.value.filename.value + delfile.errtxt = "Failed to delete file" if not validator.is_valid_filename(filename, baseurl) then - result.errtxt = "Not a valid filename!" + delfile.value.filename.errtxt = "Not a valid filename!" elseif not fs.is_file(filename) then - result.errtxt = "File doesn't exist!" + delfile.value.filename.errtxt = "File doesn't exist!" else os.remove(filename) - result.value = "File Deleted" + delfile.errtxt = nil end - return result + return delfile +end + +function get_rebuild_databases() + local retval = {} + return cfe({ type="group", value=retval, label="Rebuild Databases" }) end -function rebuild_databases() - local result = cfe({ value={"Rebuilding databases"}, label="Rebuild Databases result" }) - table.insert(result.value, " See logfile for possible errors") +function rebuild_databases(self, rebuild) + local result = {"Rebuilding databases"} + table.insert(result, " See logfile for possible errors") local cmd,f,cmdresult -- parse main.cf looking for hash files local config, content = getconfig() @@ -138,22 +150,22 @@ function rebuild_databases() -- run postmap on file if filename and not string.find(filename, aliasesfile) then cmd = "postmap "..filename - table.insert(result.value, "Running: "..cmd) + table.insert(result, "Running: "..cmd) f = io.popen(format.escapespecialcharacters(path..cmd)) - table.insert(result.value, f:read("*a")) + table.insert(result, f:read("*a")) f:close() end end end -- finally, run newaliases cmd = "newaliases" - table.insert(result.value, "Running: "..cmd) + table.insert(result, "Running: "..cmd) f = io.popen(format.escapespecialcharacters(path..cmd)) - table.insert(result.value, f:read("*a")) + table.insert(result, f:read("*a")) f:close() - result.value = table.concat(result.value, "\n") - return result + rebuild.descr = table.concat(result, "\n") + return rebuild end function getmailqueue() @@ -163,10 +175,16 @@ function getmailqueue() return cfe({ type="longtext", value=result, label="Postfix Mail Queue" }) end -function flushqueue() +function getflushqueue() + local retval = {} + return cfe({ type="group", value=retval, label="Flush Queue" }) +end + +function flushqueue(self, flush) local f = io.popen(path.."postqueue -f") local result = f:read("*a") f:close() if not result or result == "" then result = "Queue Flushed" end - return cfe({ type="longtext", value=result, label="Postfix Flush Queue Result" }) + flush.descr = result + return flush end |