summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Brodmann <andreas.brodmann@gmail.com>2007-11-19 14:50:04 +0000
committerAndreas Brodmann <andreas.brodmann@gmail.com>2007-11-19 14:50:04 +0000
commite0d088c76ee0639a3979ffc810867a0221a3213d (patch)
tree515f9ea2124eab812f620317aaba0270f7de89f4
parent7a793a47b6da94ea68808f61972158056e1d5649 (diff)
downloadacf-dhcp-e0d088c76ee0639a3979ffc810867a0221a3213d.tar.bz2
acf-dhcp-e0d088c76ee0639a3979ffc810867a0221a3213d.tar.xz
/acf/dhcp: properly enable/disable dynamic hosts window and advanced window
git-svn-id: svn://svn.alpinelinux.org/acf/dhcp/trunk@336 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r--dhcp-controller.lua14
-rw-r--r--dhcp-editnet-html.lsp39
-rw-r--r--dhcp-model.lua23
3 files changed, 58 insertions, 18 deletions
diff --git a/dhcp-controller.lua b/dhcp-controller.lua
index 4db9f25..d0a046f 100644
--- a/dhcp-controller.lua
+++ b/dhcp-controller.lua
@@ -125,9 +125,17 @@ editnet = function ( self )
if self.clientdata.cmd == "update" then
tmp = self.clientdata
+ dynamicx = tmp.dynamichosts
+ advancedx = tmp.advanced
+ if tmp.unknownclients == "permit" then
+ dynamicx = tmp.dynamicx
+ end
+ if tmp.useadvanced ~= "use" then
+ advancedx = tmp.advancedx
+ end
net = self.model.create_new_net( tmp.name, tmp.defleasetime, tmp.maxleasetime, tmp.gateway,
tmp.domainname, tmp.dnssrv1, tmp.dnssrv2, tmp.subnet, tmp.netmask, tmp.leaserangestart,
- tmp.leaserangeend, tmp.wpad, tmp.statichosts, tmp.unknownclients, tmp.dynamichosts, tmp.advanced )
+ tmp.leaserangeend, tmp.wpad, tmp.statichosts, tmp.unknownclients, dynamicx, advancedx, tmp.useadvanced )
errcode, net = self.model.subnet_write( net )
return ( cfe({ option = option, value = net, errcode = errcode }) )
end
@@ -150,13 +158,13 @@ createnet = function ( self )
}
if self.clientdata.cmd == "new" then
- net = self.model.create_new_net( "<new>", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil )
+ net = self.model.create_new_net( "<new>", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil )
return ( cfe({ option = option, value = net, errcode = { msg = "", fields = nil }}) )
elseif self.clientdata.cmd == "create" then
tmp = self.clientdata
net = self.model.create_new_net( tmp.name, tmp.defleasetime, tmp.maxleasetime,
tmp.gateway, tmp.domainname, tmp.dnssrv1, tmp.dnssrv2, tmp.subnet,
- tmp.netmask, tmp.leaserangestart, tmp.leaserangeend, tmp.wpad, "", tmp.unknownclients, "", "" )
+ tmp.netmask, tmp.leaserangestart, tmp.leaserangeend, tmp.wpad, "", tmp.unknownclients, "", "", "" )
errcode, net = self.model.subnet_create( net )
if #errcode.msg == 0 then
self.conf.type = "redir"
diff --git a/dhcp-editnet-html.lsp b/dhcp-editnet-html.lsp
index 92c83c4..d2b4c75 100644
--- a/dhcp-editnet-html.lsp
+++ b/dhcp-editnet-html.lsp
@@ -4,6 +4,31 @@
local net = form.value
local errcode = form.errcode
?>
+<script language="JavaScript">
+
+ function handleDynChg() {
+ if (document.myform.unknownclients.value == "permit") {
+ document.getElementById('dynamic').innerHTML = '';
+ } else {
+ document.getElementById('dynamic').innerHTML = '<textarea name="dynamichosts" style="width:600px">' + document.myform.dynamicx.value + '</textarea>';
+ }
+ }
+
+ function initDynChg() {
+ if (document.myform.unknownclients.value == "deny") {
+ document.getElementById('dynamic').innerHTML = '<textarea name="dynamichosts" style="width:600px">' + document.myform.dynamicx.value + '</textarea>';
+ }
+ }
+
+ function handleAdvChg() {
+ if (document.myform.useadvanced.checked == true) {
+ document.getElementById('advanced').innerHTML = '<textarea name="advanced" style="width:600px">' + document.myform.advancedx.value + '</textarea>';
+ } else {
+ document.getElementById('advanced').innerHTML = '';
+ }
+ }
+
+</script>
<h1>Basic Configuration</h1>
<h2>Subnet: <? io.write(net.name.value) ?></h2>
@@ -13,7 +38,7 @@
end
?>
-<form name="mainform" action="<? io.write(option.script .. option.prefix ..
+<form name="myform" action="<? io.write(option.script .. option.prefix ..
option.controller .. "/" .. option.action .. option.extra) ?>" method="POST">
<input type="hidden" name="name" value="<? io.write(net.name.value) ?>">
<input type="hidden" name="dynhost1" value="">
@@ -29,7 +54,7 @@
<tr><td><nobr>WPAD:</nobr></td><td><input type="text" name="wpad" value="<? io.write(net.wpad.value) ?>"></td></tr>
<tr><td><nobr>Lease Range Start:</nobr></td><td><input type="text" name="leaserangestart" value="<? io.write(net.leaserangestart.value) ?>"></td></tr>
<tr><td><nobr>Lease Range End:</nobr></td><td><input type="text" name="leaserangeend" value="<? io.write(net.leaserangeend.value) ?>"></td></tr>
- <tr><td><nobr>Unknown Clients</nobr></td><td><select name="unknownclients" size="1">
+ <tr><td><nobr>Unknown Clients</nobr></td><td><select name="unknownclients" size="1" onChange="javascript:handleDynChg();">
<?
if net.unknownclients.value == "permit" then
io.write(" <option selected>permit</option>\n");
@@ -61,14 +86,16 @@ Enter one host per line in the format: <i>hostname;mac;comment</i><br>
<tr><td>MAC</td><td>XX:XX:XX:XX:XX:XX</td></tr>
</table>
<table>
-<tr><td><div id="dynamic"><textarea name="dynamichosts" style="width:600px;"><? io.write( net.dynamichosts.value ) ?></textarea></div></td></tr>
+<tr><td><div id="dynamic"></div></td></tr>
</table><br>
+<input type="hidden" name="advancedx" value="<? io.write(net.advanced.value) ?>">
+<input type="hidden" name="dynamicx" value="<? io.write(net.dynamichosts.value) ?>">
<h2>Subnet: Advanced Configuration</h2>
-<input type="checkbox" name="use_advanced"> <i>Activate Advanced Configuration - use with caution!</i><br><br>
+<input type="checkbox" name="useadvanced" value="use" onChange="javascript:handleAdvChg();"> <i>Activate Advanced Configuration - use with caution!</i><br><br>
<table>
<tr><td>
-<div id="advanced"><textarea name="advanced" style="width:600px"><? io.write( net.advanced.value ) ?></textarea></div></td></tr>
+<div id="advanced"></div></td></tr>
<tr><td><input type=submit name="cmd" value="update" style="width:100px"></form>
<form action="<? io.write(option.script .. option.prefix .. option.controller .. "/delnet") ?>" method="POST">
<input type=submit name="cmd" value="delete" style="width:100px">
@@ -77,4 +104,6 @@ Enter one host per line in the format: <i>hostname;mac;comment</i><br>
<input type=submit name="cmd" value="back" style="width:100px"></form></td></tr>
</table>
</form>
+<body onload="initDynChg();">
+</body>
diff --git a/dhcp-model.lua b/dhcp-model.lua
index 7361bc0..63a0533 100644
--- a/dhcp-model.lua
+++ b/dhcp-model.lua
@@ -325,7 +325,7 @@ end
subnet_read = function( name )
local filename = cfgdir .. name .. ".subnet"
- local net = create_new_net( name, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil )
+ local net = create_new_net( name, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil )
for line in io.lines(filename) do
if (string.sub(line, 1, 15) == "def-lease-time:") then
@@ -478,16 +478,18 @@ subnet_write = function( net )
table.insert( fields, "statichosts" )
end
- spec_msg = validate_dynamichosts( net.dynamichosts.value )
- if #spec_msg == 0 then
- spec_msg = subnet_update_dynamichosts( net.name.value, net.dynamichosts.value )
- if #spec_msg > 0 then
+ if net.unknownclients.value == "deny" then
+ spec_msg = validate_dynamichosts( net.dynamichosts.value )
+ if #spec_msg == 0 then
+ spec_msg = subnet_update_dynamichosts( net.name.value, net.dynamichosts.value )
+ if #spec_msg > 0 then
+ msg = spec_msg
+ table.insert( fields, "dynamichosts" )
+ end
+ else
msg = spec_msg
table.insert( fields, "dynamichosts" )
end
- else
- msg = spec_msg
- table.insert( fields, "dynamichosts" )
end
spec_msg = subnet_update_advanced( net.name.value, net.advanced.value )
@@ -776,7 +778,7 @@ get_subnets = function ()
return retval
end
-create_new_net = function( name, defleasetime, maxleasetime, gateway, domainname, dnssrv1, dnssrv2, subnet, netmask, leaserangestart, leaserangeend, wpad, statichosts, unknownclients, dynamichosts, advanced )
+create_new_net = function( name, defleasetime, maxleasetime, gateway, domainname, dnssrv1, dnssrv2, subnet, netmask, leaserangestart, leaserangeend, wpad, statichosts, unknownclients, dynamichosts, advanced, useadvanced )
net = { name = { label="Name", value=nonil(name), type="message" },
defleasetime = { label="Default Lease Time", value=nonil(defleasetime), type="text" },
maxleasetime = { label="Maximum Lease Time", value=nonil(maxleasetime), type="text" },
@@ -792,7 +794,8 @@ create_new_net = function( name, defleasetime, maxleasetime, gateway, domainname
statichosts = { label="Static Hosts", value=nonil(statichosts), type="text" },
dynamichosts = { label="Dynamic Hosts", value=nonil(dynamichosts), type="text" },
unknownclients = { label="Unknown Clients", value=nonil(unknownclients), type="text" },
- advanced = { label="Advanced", value=nonil(advanced), type="text" }
+ advanced = { label="Advanced", value=nonil(advanced), type="text" },
+ useadvanced = { label="Use Advanced", value=nonil(useadvanced), type="text" }
}
if net.unknownclients.value ~= "permit" then
net.unknownclients.value = "deny"