summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--postfix-controller.lua6
-rw-r--r--postfix-listfiles-html.lsp4
-rw-r--r--postfix-listqueue-html.lsp2
-rw-r--r--postfix-model.lua52
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