diff options
author | Ted Trask <ttrask01@yahoo.com> | 2012-07-02 12:11:41 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2012-07-02 12:11:41 +0000 |
commit | c74eb33abc4976ad2d252a72667064e83e581231 (patch) | |
tree | 24c83325141c6d2418340cc48ed09769e92f01b9 | |
parent | 18f2e3306f702babf749ac60f27498f9ffdb436a (diff) | |
download | acf-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.lua | 10 | ||||
-rw-r--r-- | dhcp-listhosts-html.lsp | 2 | ||||
-rw-r--r-- | dhcp-listsubnets-html.lsp | 2 | ||||
-rw-r--r-- | dhcp-model.lua | 45 |
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) |