summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dnscache-controller.lua5
-rw-r--r--dnscache-listdomains-html.lsp2
-rw-r--r--dnscache-model.lua25
3 files changed, 19 insertions, 13 deletions
diff --git a/dnscache-controller.lua b/dnscache-controller.lua
index 4182bbf..651e8f4 100644
--- a/dnscache-controller.lua
+++ b/dnscache-controller.lua
@@ -31,10 +31,9 @@ function createdomain(self)
end
function editdomain(self)
- return self.handle_form(self, function() return self.model.getDomain(self.clientdata.domain) end,
- self.model.setDomain, self.clientdata, "Save", "Edit Domain Entry", "Domain Saved")
+ return self.handle_form(self, self.model.getDomain, self.model.setDomain, self.clientdata, "Save", "Edit Domain Entry", "Domain Saved")
end
function deletedomain(self)
- return self:redirect_to_referrer(self.model.deleteDomain(self.clientdata.domain))
+ return self.handle_form(self, self.model.getDeleteDomain, self.model.deleteDomain, self.clientdata, "Delete", "Delete Domain Entry", "Domain Deleted")
end
diff --git a/dnscache-listdomains-html.lsp b/dnscache-listdomains-html.lsp
index 993e58c..8e01ae1 100644
--- a/dnscache-listdomains-html.lsp
+++ b/dnscache-listdomains-html.lsp
@@ -17,7 +17,7 @@ require("htmlviewfunctions")
<TD style="padding-right:20px;white-space:nowrap;">
<% io.write(html.link{value = "editdomain?domain=" .. domain.."&redir="..page_info.orig_action, label="Edit " }) %>
<% if domain ~= "@" then
- io.write(html.link{value = "deletedomain?domain=" .. domain, label="Delete " })
+ io.write(html.link{value = "deletedomain?submit=true&domain=" .. domain, label="Delete " })
end %>
</TD>
<TD style="white-space:nowrap;" width="90%"><%= html.html_escape(domain) %></TD>
diff --git a/dnscache-model.lua b/dnscache-model.lua
index 89685e3..2b0ee44 100644
--- a/dnscache-model.lua
+++ b/dnscache-model.lua
@@ -192,7 +192,8 @@ function setNewDomain(self, domain)
return domain
end
-function getDomain(getdomainname)
+function getDomain(self, clientdata)
+ local getdomainname = clientdata.domain
local domain = cfe({ value=getdomainname, label="Domain", errtxt="Invalid domain" })
local iplist = cfe({ type="list", value={}, label="List of DNS servers" })
local domains = getDomains()
@@ -222,20 +223,26 @@ function setDomain(self, domain)
return domain
end
-function deleteDomain(domainname)
- local cmdresult = cfe({ value="Domain not deleted", label="Delete domain result", errtxt="Invalid domain" })
+function getDeleteDomain(self, clientdata)
+ local domain = cfe({ value=clientdata.domain or "", label="Domain" })
+ return cfe({ type="group", value={domain=domain}, label="Delete Domain" })
+end
+
+function deleteDomain(self, domain)
+ domain.errtxt = "Domain not deleted"
+ domain.value.domain.errtxt = "Invalid domain"
local domains = getDomains()
- if domainname == "@" then
- cmdresult.errtxt = "Cannot delete root domain"
+ if domain.value.domain.value == "@" then
+ domain.value.domain.errtxt = "Cannot delete root domain"
else
for i,name in ipairs(domains.value) do
- if name == domainname then
+ if name == domain.value.domain.value then
os.remove(baseurl.."servers/"..name)
- cmdresult.errtxt = nil
- cmdresult.value = "Domain deleted"
+ domain.errtxt = nil
+ domain.value.domain.errtxt = nil
break
end
end
end
- return cmdresult
+ return domain
end