summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2012-07-02 12:11:41 +0000
committerTed Trask <ttrask01@yahoo.com>2012-07-02 12:11:41 +0000
commitc74eb33abc4976ad2d252a72667064e83e581231 (patch)
tree24c83325141c6d2418340cc48ed09769e92f01b9
parent18f2e3306f702babf749ac60f27498f9ffdb436a (diff)
downloadacf-dhcp-c74eb33abc4976ad2d252a72667064e83e581231.tar.bz2
acf-dhcp-c74eb33abc4976ad2d252a72667064e83e581231.tar.xz
Made changes for new handle_form style, remove redirect_to_referrer, and fix fs library references
-rw-r--r--dhcp-controller.lua10
-rw-r--r--dhcp-listhosts-html.lsp2
-rw-r--r--dhcp-listsubnets-html.lsp2
-rw-r--r--dhcp-model.lua45
4 files changed, 37 insertions, 22 deletions
diff --git a/dhcp-controller.lua b/dhcp-controller.lua
index b48bcfd..127a7a6 100644
--- a/dhcp-controller.lua
+++ b/dhcp-controller.lua
@@ -16,7 +16,7 @@ settings = function( self )
end
editsubnet = function ( self )
- return self.handle_form(self, function() return self.model.subnet_read(self.clientdata.subnet) end, self.model.subnet_update, self.clientdata, "Save", "Edit Subnet", "Subnet Settings Updated")
+ return self.handle_form(self, self.model.subnet_read, self.model.subnet_update, self.clientdata, "Save", "Edit Subnet", "Subnet Settings Updated")
end
createsubnet = function ( self )
@@ -24,7 +24,7 @@ createsubnet = function ( self )
end
delsubnet = function(self)
- return self:redirect_to_referrer(self.model.subnet_delete(self.clientdata.subnet))
+ return self.handle_form(self, self.model.get_subnet_delete, self.model.subnet_delete, self.clientdata, "Delete", "Delete subnet", "Subnet Deleted")
end
listsubnets = function ( self )
@@ -32,7 +32,7 @@ listsubnets = function ( self )
end
edithost = function ( self )
- return self.handle_form(self, function() return self.model.host_read(self.clientdata.host) end, self.model.host_update, self.clientdata, "Save", "Edit Host", "Host Settings Updated")
+ return self.handle_form(self, self.model.host_read, self.model.host_update, self.clientdata, "Save", "Edit Host", "Host Settings Updated")
end
createhost = function ( self )
@@ -40,7 +40,7 @@ createhost = function ( self )
end
delhost = function(self)
- return self:redirect_to_referrer(self.model.host_delete(self.clientdata.host))
+ return self.handle_form(self, self.model.get_host_delete, self.model.host_delete, self.clientdata, "Delete", "Delete host", "Host Deleted")
end
listhosts = function ( self )
@@ -56,5 +56,5 @@ listfiles = function(self)
end
expert = function(self)
- return self.handle_form(self, function() return self.model.getconfigfile(self.clientdata.filename) end, self.model.setconfigfile, self.clientdata, "Save", "Edit DHCP File", "File Saved")
+ return self.handle_form(self, self.model.getconfigfile, self.model.setconfigfile, self.clientdata, "Save", "Edit DHCP File", "File Saved")
end
diff --git a/dhcp-listhosts-html.lsp b/dhcp-listhosts-html.lsp
index f19c9d1..0e3a4b9 100644
--- a/dhcp-listhosts-html.lsp
+++ b/dhcp-listhosts-html.lsp
@@ -15,7 +15,7 @@
<TR>
<TD style="padding-right:20px;white-space:nowrap;">
<%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/edithost?host="..host.."&redir="..page_info.orig_action, label="Edit "} %>
- <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/delhost?host="..host, label="Delete "} %>
+ <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/delhost?submit=true&host="..host, label="Delete "} %>
</TD>
<TD style="white-space:nowrap;"><%= html.html_escape(host) %></TD>
</TR>
diff --git a/dhcp-listsubnets-html.lsp b/dhcp-listsubnets-html.lsp
index f79cf78..fae85be 100644
--- a/dhcp-listsubnets-html.lsp
+++ b/dhcp-listsubnets-html.lsp
@@ -15,7 +15,7 @@
<TR>
<TD style="padding-right:20px;white-space:nowrap;">
<%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/editsubnet?subnet="..subnet.."&redir="..page_info.orig_action, label="Edit "} %>
- <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/delsubnet?subnet="..subnet.."&redir="..page_info.orig_action, label="Delete "} %>
+ <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/delsubnet?submit=true&subnet="..subnet, label="Delete "} %>
</TD>
<TD style="white-space:nowrap;"><%= html.html_escape(subnet) %></TD>
</TR>
diff --git a/dhcp-model.lua b/dhcp-model.lua
index cad7ba8..d26e2ee 100644
--- a/dhcp-model.lua
+++ b/dhcp-model.lua
@@ -5,6 +5,7 @@ module (..., package.seeall)
--- get additional libraries
require("modelfunctions")
validator = require("acf.validator")
+fs = require("acf.fs")
local subnet = {}
local configfile = "/etc/dhcp/dhcpd.conf"
@@ -418,7 +419,8 @@ create_new_host = function()
return cfe({ type="group", value=host, label="Host" })
end
-host_read = function( name )
+host_read = function(self, clientdata)
+ local name = clientdata.host
config = config or parseconfigfile(fs.read_file(configfile) or "")
local host = create_new_host()
host.value.host.value = name
@@ -484,14 +486,19 @@ host_create = function(self, host)
return host
end
-host_delete = function(name)
+get_host_delete = function()
+ local host = cfe({ label="Host" })
+ return cfe({ type="group", value={host=host}, label="Delete Host" })
+end
+
+host_delete = function(self, host)
local file = fs.read_file(configfile) or ""
config = config or parseconfigfile(file)
local cmdresult = cfe({ value="Failed to delete host - not found", label="Delete host result" })
local hosts = get_hosts()
- for i,host in ipairs(hosts.value) do
- if host == name then
- local start, endd = string.find(file, "host%s*"..replacemagiccharacters(name).."[^{]*{")
+ for i,h in ipairs(hosts.value) do
+ if h == host.value.host.value then
+ local start, endd = string.find(file, "host%s*"..replacemagiccharacters(h).."[^{]*{")
endd = find_section_end(file, endd)
endd = string.find(file, "\n", endd)
file = string.sub(file, 1, start-1) .. string.sub(file, endd+1, -1)
@@ -534,7 +541,8 @@ create_new_subnet = function()
return cfe({ type="group", value=net, label="Subnet" })
end
-subnet_read = function( name )
+subnet_read = function(self, clientdata)
+ local name = clientdata.subnet
config = config or parseconfigfile(fs.read_file(configfile) or "")
local net = create_new_subnet()
net.value.subnet.value = name
@@ -643,24 +651,31 @@ subnet_create = function(self, net)
return net
end
-subnet_delete = function(name)
+get_subnet_delete = function()
+ local subnet = cfe({ label="Subnet" })
+ return cfe({ type="group", value={subnet=subnet}, label="Delete Subnet" })
+end
+
+subnet_delete = function(self, subnet)
local file = fs.read_file(configfile) or ""
config = config or parseconfigfile(file)
- local cmdresult = cfe({ value="Failed to delete subnet - not found", label="Delete subnet result" })
+ subnet.value.subnet.errtxt = "Subnet not found"
+ subnet.errtxt = "Failed to delete subnet"
local subnets = get_subnets()
- for i,subnet in ipairs(subnets.value) do
- if subnet == name then
- local start, endd = string.find(file, "subnet%s*"..replacemagiccharacters(name).."%s*netmask[^{]*{")
+ for i,s in ipairs(subnets.value) do
+ if s == subnet.value.subnet.value then
+ local start, endd = string.find(file, "subnet%s*"..replacemagiccharacters(s).."%s*netmask[^{]*{")
endd = find_section_end(file, endd)
endd = string.find(file, "\n", endd)
file = string.sub(file, 1, start-1) .. string.sub(file, endd+1, -1)
fs.write_file(configfile, string.gsub(file, "\n*$", ""))
config = nil
- cmdresult.value = "Subnet Deleted"
+ subnet.value.subnet.errtxt = nil
+ subnet.errtxt = nil
end
end
- return cmdresult
+ return subnet
end
get_subnets = function ()
@@ -781,8 +796,8 @@ listconfigfiles = function()
return cfe({ type="list", value=listed_files, label="DHCP File List" })
end
-getconfigfile = function(filename)
- return modelfunctions.getfiledetails(filename, filelist)
+getconfigfile = function(self, clientdata)
+ return modelfunctions.getfiledetails(clientdata.filename, filelist)
end
setconfigfile = function(self, filedetails)