summaryrefslogtreecommitdiff
path: root/httemplate/elements/tr-select-router_block_ip.html
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2012-03-11 20:57:40 -0700
committerMark Wells <mark@freeside.biz>2012-03-11 20:57:40 -0700
commite5fcc68aab310814b0ba5444bc97ef504e6e16da (patch)
tree27b2ce0492bc0772e21f812b14be76c4e5d6c206 /httemplate/elements/tr-select-router_block_ip.html
parent0c4d2f8b768b5eb6ed51c27c5f9c482c2c2e96aa (diff)
cleanup for svc_broadband manual router feature, #14698
Diffstat (limited to 'httemplate/elements/tr-select-router_block_ip.html')
-rw-r--r--httemplate/elements/tr-select-router_block_ip.html47
1 files changed, 34 insertions, 13 deletions
diff --git a/httemplate/elements/tr-select-router_block_ip.html b/httemplate/elements/tr-select-router_block_ip.html
index 45d1dacd8..ed8fe810f 100644
--- a/httemplate/elements/tr-select-router_block_ip.html
+++ b/httemplate/elements/tr-select-router_block_ip.html
@@ -1,14 +1,22 @@
<script type="text/javascript">
-var auto_addr_routernum = <% encode_json(\%auto_addr_routernum) %>;
-function hide_if_auto_addr(obj, i) {
+var manual_addr_routernum = <% encode_json(\%manual_addr_routernum) %>;
+var ip_addr_curr_value = <% $opt{'ip_addr'} |js_string %>;
+function lock_ip_addr(obj, i) {
var routernum = obj.value;
var select_blocknum = document.getElementsByName('blocknum')[0];
- var label_auto_addr = document.getElementById('label_auto_addr');
var input_ip_addr = document.getElementById('input_ip_addr');
- var auto = ( auto_addr_routernum[routernum] == 'Y' );
- select_blocknum.style.display = auto ? '' : 'none';
- label_auto_addr.style.display = auto ? '' : 'none';
- input_ip_addr.style.display = !auto ? '' : 'none';
+ if ( manual_addr_routernum[routernum] == 'Y' ) {
+%# enable ip_addr, default it to its previous value, and hide block selection
+ select_blocknum.style.display = 'none';
+ input_ip_addr.value = ip_addr_curr_value;
+ input_ip_addr.disabled = false;
+ }
+ else {
+%# the reverse
+ select_blocknum.style.display = '';
+ input_ip_addr.disabled = true;
+ input_ip_addr.value = '(automatic)';
+ }
}
</script>
<& /elements/tr-td-label.html, label => ($opt{'label'} || 'Router') &>
@@ -19,7 +27,7 @@ function hide_if_auto_addr(obj, i) {
records => \@routers,
name_col => 'routername',
value_col => 'routernum',
- onchange => 'hide_if_auto_addr',
+ onchange => 'lock_ip_addr',
curr_value=> $opt{'routernum'},
},
{
@@ -44,17 +52,18 @@ function hide_if_auto_addr(obj, i) {
% }
% else {
<input type="text" id="input_ip_addr" name="ip_addr"
- style="display:none" value="<% $opt{'ip_addr'} |h%>">
+ value="<% $opt{'ip_addr'} |h%>">
% }
- <span id="label_auto_addr"><% $opt{'ip_addr'} || '' %>
- <i>(automatic)</i></span>
</td> </tr>
+<input type="hidden" name="prev_ip_addr" value="<% $opt{'ip_addr'} |h%>">
<script type="text/javascript">
-hide_if_auto_addr(document.getElementsByName('routernum')[0],0);
+lock_ip_addr(document.getElementsByName('routernum')[0],0);
</script>
<%init>
+
my %opt = @_;
my @routers;
+my $conf = FS::Conf->new;
my $svc_x = $opt{'object'};
if ( $svc_x ) {
@@ -91,5 +100,17 @@ else {
@routers = qsearch('router', {});
}
-my %auto_addr_routernum = map { $_->routernum, $_->auto_addr } @routers;
+my %manual_addr_routernum = map { $_->routernum, $_->manual_addr } @routers;
+
+if ( $conf->exists('auto_router') ) {
+ # Then show an "(automatic)" router, with no blocks. manual_addr is on
+ # so that the ip_addr field will be unlocked.
+ unshift @routers, FS::router->new({
+ 'routernum' => '',
+ 'routername' => '(automatic)',
+ 'manual_addr' => 'Y',
+ });
+ $manual_addr_routernum{''} = 'Y';
+}
+
</%init>