Changeset 595
- Timestamp:
- 05/15/13 17:26:55 (12 years ago)
- Location:
- branches/stable
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/cgi-bin/IPDB.pm
r594 r595 504 504 # really be specified in the call for clarity 505 505 my $tlist; 506 if ($tgroup eq 'p') { 507 # grouping 'p' - primary allocation types. These include static IP pools (_d and _p), 508 # dynamic-allocation ranges (_e), containers (_c), and the "miscellaneous" cn, in, and en types. 509 $tlist = $dbh->selectall_arrayref("SELECT type,listname FROM alloctypes WHERE listorder < 500 ". 510 "AND type NOT LIKE '_i' AND type NOT LIKE '_r' ORDER BY listorder", { Slice => {} }); 506 if ($tgroup eq 'n') { 507 # grouping 'n' - all netblock types. These include routed blocks, containers (_c) 508 # and contained (_r) types, dynamic-allocation ranges (_e), static IP pools (_d and _p), 509 # and the "miscellaneous" cn, in, and en types. 510 $tlist = $dbh->selectall_arrayref("SELECT type,listname FROM alloctypes WHERE listorder <= 500 ". 511 "AND type NOT LIKE '_i' ORDER BY listorder", { Slice => {} }); 512 } elsif ($tgroup eq 'p') { 513 # grouping 'p' - primary allocation types. As with 'n' above but without the _r contained types. 514 $tlist = $dbh->selectall_arrayref("SELECT type,listname FROM alloctypes WHERE listorder <= 500 ". 515 "AND type NOT LIKE '_i' AND type NOT LIKE '_r' ORDER BY listorder", { Slice => {} }); 511 516 } elsif ($tgroup eq 'c') { 512 517 # grouping 'c' - contained types. These include all static IPs and all _r types. 513 518 $tlist = $dbh->selectall_arrayref("SELECT type,listname FROM alloctypes WHERE listorder <= 500 ". 514 " AND (type LIKE '_i' OR type LIKE '_r') ORDER BY listorder", { Slice => {} }); 519 " AND (type LIKE '_i' OR type LIKE '_r') ORDER BY listorder", { Slice => {} }); 520 } elsif ($tgroup eq 'i') { 521 # grouping 'i' - static IP types. 522 $tlist = $dbh->selectall_arrayref("SELECT type,listname FROM alloctypes WHERE listorder <= 500 ". 523 " AND type LIKE '_i' ORDER BY listorder", { Slice => {} }); 515 524 } else { 516 525 # grouping 'a' - all standard allocation types. This includes everything 517 526 # but mm (present only as a formality). Make this the default. 518 527 $tlist = $dbh->selectall_arrayref("SELECT type,listname FROM alloctypes WHERE listorder <= 500 ". 519 528 " ORDER BY listorder", { Slice => {} }); 520 529 } 521 530 return $tlist; -
branches/stable/cgi-bin/main.cgi
r594 r595 238 238 my $flist = listFree($ip_dbh, $webvar{block}); 239 239 $page->param(unrouted => $flist); 240 $page->param(mayadd => ($IPDBacl{$authuser} =~ /a/)); 240 241 } # showMaster 241 242 … … 312 313 $page->param(rowa => 'row'.($webvar{block} eq '' ? 1 : 0)); 313 314 $page->param(rowb => 'row'.($webvar{block} eq '' ? 0 : 1)); 314 $page->param( block => $webvar{block});# fb-assign flag, if block is set, we're in fb-assign315 $page->param(iscontained => ($webvar{fbtype} && $webvar{fbtype} ne 'y')); 316 317 # New special case- block to assign is specified 318 if ($webvar{block} ne '') {315 $page->param(allocfrom => $webvar{block}); # fb-assign flag, if block is set, we're in fb-assign 316 317 if ($webvar{fbtype}) { 318 319 # Common case, according to reported usage. Block to assign is specified. 319 320 my $block = new NetAddr::IP $webvar{block}; 320 321 321 # Handle contained freeblock allocation. 322 # This is a little dangerous, as it's *theoretically* possible to 323 # get fbtype='n' (aka a non-routed freeblock). However, should 324 # someone manage to get there, they get what they deserve. 325 if ($webvar{fbtype} ne 'y') { 326 # Snag the type of the container block from the database. 327 ## hmm. need a flag for parent class/type, sort of? 328 my $pblock = subParent($ip_dbh, $webvar{block}); 329 my $ptype = $pblock->{type}; 330 $ptype =~ s/c$/r/; 331 $page->param(fbdisptype => $list_alloctypes{$ptype}); 332 $page->param(type => $ptype); 322 $webvar{fbtype} = '' if !$webvar{fbtype}; 323 if ($webvar{fbtype} eq 'i') { 324 my $ipinfo = getBlockData($ip_dbh, $webvar{block}, 'i'); 325 my $pinfo = getBlockData($ip_dbh, $webvar{parent}); 326 $page->param( 327 fbip => 1, 328 block => $ipinfo->{block}, 329 fbdisptype => $list_alloctypes{$ipinfo->{type}}, 330 type => $ipinfo->{type}, 331 allocfrom => $pinfo->{block}, 332 ); 333 } elsif ($webvar{fbtype} eq 'n') { 334 $page->param( 335 fbrouted => 1, 336 fbdisptype => $list_alloctypes{'rm'}, 337 type => 'rm', 338 block => $block, 339 ); 333 340 } else { 334 341 # get "primary" alloctypes, since these are all that can correctly be assigned if we're in this branch 335 my $tlist = getTypeList($ip_dbh, ' p');342 my $tlist = getTypeList($ip_dbh, 'n'); 336 343 $tlist->[0]->{sel} = 1; 337 $page->param(typelist => $tlist); 338 } 344 $page->param(typelist => $tlist, block => $block); 345 } 346 339 347 } else { 348 349 # Uncommon case, according to reported usage. Block to assign needs to be found based on criteria. 340 350 my $mlist = getMasterList($ip_dbh, 'c'); 341 351 $page->param(masterlist => $mlist); 342 352 343 353 my @pops; 344 foreach my $pop (@ poplist) {354 foreach my $pop (@citylist) { 345 355 my %row = (pop => $pop); 346 356 push (@pops, \%row); … … 353 363 $page->param(typelist => $tlist); 354 364 } 355 356 365 my @cities; 357 366 foreach my $city (@citylist) { … … 400 409 401 410 if ($webvar{fbassign} && $webvar{fbassign} eq 'y') { 411 $cidr = new NetAddr::IP $webvar{block}; 402 412 $alloc_from = new NetAddr::IP $webvar{allocfrom}; 403 ## possibly messy behaviour: force the _from and block to be the network addr?404 $alloc_from = qq($alloc_from<input type=hidden name=alloc_from value="$alloc_from">);405 $cidr = new NetAddr::IP $webvar{block};406 413 $webvar{maskbits} = $cidr->masklen; 407 414 } else { # done with direct freeblocks assignment … … 440 447 441 448 # this chunk now specific to "guided" allocation; freeblock-select can now slice-n-dice on its own. 442 $alloc_from = qq($cidr<input type=hidden name=alloc_from value="$cidr">);449 $alloc_from = "$cidr"; 443 450 # If the block to be allocated is smaller than the one we found, 444 451 # figure out the "real" block to be allocated. … … 452 459 } 453 460 } # check for freeblocks assignment or IPDB-controlled assignment 454 455 $alloc_from = "$cidr";456 461 457 462 } # if ($webvar{alloctype} =~ /^.i$/) -
branches/stable/templates/assign.tmpl
r594 r595 1 1 <div class="indent"> 2 <TMPL_IF block> 3 <div class="tblsubtitle"> 4 Assign free <TMPL_IF iscontained><TMPL_VAR NAME=fbdisptype></TMPL_IF> block <TMPL_VAR NAME=block> 5 </div> 6 <TMPL_ELSE> 7 <div class="tblsubtitle">Assign IPs</div> 8 </TMPL_IF> 2 <div class="tblsubtitle">Assign IP<TMPL_UNLESS fbip>s</TMPL_UNLESS></div> 9 3 <br> 10 4 … … 12 6 <fieldset><legend class="noshow"> </legend> 13 7 14 <TMPL_IF block> 15 <input type="hidden" name="block" value="<TMPL_VAR NAME=block>"> 8 <table class="regular" cellspacing="1" cellpadding="1"> 9 10 <TMPL_IF allocfrom> 11 <tr class="row0"> 12 <TMPL_IF fbip> 13 <td>IP pool:</td> 14 <TMPL_ELSE> 15 <td>Free block selected:</td> 16 </TMPL_IF> 17 <td><TMPL_VAR NAME=allocfrom><input type="hidden" name="allocfrom" value="<TMPL_VAR NAME=allocfrom>"> 18 <input type="hidden" name="parent" value="<TMPL_VAR NAME=parent>"> 19 <input type="hidden" name="fbid" value="<TMPL_VAR NAME=fbid>"> 20 </td> 21 </tr> 22 <tr class="row1"> 23 <TMPL_IF fbip> 24 <td>IP:</td> 25 <td> 26 <TMPL_VAR NAME=block><input type="hidden" name="block" value="<TMPL_VAR NAME=block>"> 16 27 <input type="hidden" name="fbassign" value="y"> 28 </td> 29 <TMPL_ELSE> 30 <td>Allocation:</td> 31 <td> 32 <input name="block" value="<TMPL_VAR NAME=block>"> 33 <input type="hidden" name="fbassign" value="y"> 34 </td> 17 35 </TMPL_IF> 18 19 < table class="regular" cellspacing="1" cellpadding="1">36 </tr> 37 </TMPL_IF> 20 38 21 39 <tr class="row0"> … … 34 52 <td>Allocation type:</td> 35 53 <td> 36 <TMPL_IF iscontained> 54 <TMPL_IF fbip> 55 <TMPL_VAR NAME=fbdisptype><input type="hidden" name="alloctype" value="<TMPL_VAR NAME=type>"> 56 <TMPL_ELSE> 57 <TMPL_IF fbrouted> 37 58 <TMPL_VAR NAME=fbdisptype><input type="hidden" name="alloctype" value="<TMPL_VAR NAME=type>"> 38 59 <TMPL_ELSE> … … 43 64 <input type="button" value=" ? " onclick="helpAllocTypes()" class="regular"> 44 65 </TMPL_IF> 66 </TMPL_IF> 45 67 </td> 46 68 </tr> 47 69 48 <TMPL_UNLESS block>70 <TMPL_UNLESS allocfrom> 49 71 <tr class="row0"> 50 72 <td>Subnet CIDR mask length:</td> … … 59 81 60 82 <tr class="<TMPL_VAR NAME=rowb>"> 61 <td> Wifi tower/Fibre demarc</td>83 <td>Layer-2/demarc node</td> 62 84 <td> 63 85 <select name="node"> … … 66 88 <option value="<TMPL_VAR NAME=node_id>"><TMPL_VAR NAME=node_name></option></TMPL_LOOP> 67 89 </select> 68 <a href="javascript:popNotes('<TMPL_VAR NAME=webpath>/cgi-bin/newnode.cgi')">Add new location</a>90 <a href="javascript:popNotes('<TMPL_VAR NAME=webpath>/cgi-bin/newnode.cgi')">Add new demarc node</a> 69 91 </td> 70 92 </tr> 71 93 72 <TMPL_UNLESS block>94 <TMPL_UNLESS allocfrom> 73 95 <tr class="<TMPL_VAR NAME=rowa>"> 74 <td> Route from/through:</td>96 <td>Limit to blocks in this location:</td> 75 97 <td> 76 98 <select name="pop"> … … 83 105 84 106 <tr class="<TMPL_VAR NAME=rowb>"> 85 <td> Route/allocate fromthis master: </td>107 <td>Limit to blocks in this master: </td> 86 108 <td> 87 109 <select name="allocfrom"> 88 110 <option selected="selected">-</option> 89 111 <TMPL_LOOP NAME=masterlist> 90 <option ><TMPL_VAR NAME=master></option></TMPL_LOOP>112 <option value=<TMPL_VAR NAME=id>><TMPL_VAR NAME=master> (<TMPL_VAR NAME=vrf>)</option></TMPL_LOOP> 91 113 </select> 92 114 Allow automatic allocation from private IP ranges:<input type="checkbox" name="allowpriv"></td> -
branches/stable/templates/showmaster.tmpl
r594 r595 54 54 <TMPL_LOOP name=unrouted> 55 55 <tr class="row<TMPL_IF __odd__>0<TMPL_ELSE>1</TMPL_IF>"> 56 <td><TMPL_ VAR NAME=fblock></td>56 <td><TMPL_IF mayadd><a href="<TMPL_VAR NAME=webpath>/cgi-bin/main.cgi?action=assign&block=<TMPL_VAR NAME=fblock>&fbtype=n"><TMPL_VAR NAME=fblock><TMPL_ELSE><TMPL_VAR NAME=fblock></TMPL_IF></td> 57 57 <td><TMPL_VAR NAME=frange></td> 58 58 </tr>
Note:
See TracChangeset
for help on using the changeset viewer.