diff options
Diffstat (limited to 'src/usr/local')
-rwxr-xr-x | src/usr/local/www/firewall_aliases_edit.php | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/usr/local/www/firewall_aliases_edit.php b/src/usr/local/www/firewall_aliases_edit.php index 89ee9dc..9141e3c 100755 --- a/src/usr/local/www/firewall_aliases_edit.php +++ b/src/usr/local/www/firewall_aliases_edit.php @@ -591,6 +591,19 @@ $help = array( "update frequency in days.</b>" ); +// Tab type specific patterns. +// Intentionally loose (valid character check only, no pattern recognition). +// Can be tightend up with pattern recognition as desired for each tab type. +$pattern_str = array( + 'network' => '[a-zA-Z0-9_:.-]+', // Alias Name, Host Name, IP Address, FQDN, Network or IP Address Range + 'host' => '[a-zA-Z0-9_:.-]+', // Alias Name, Host Name, IP Address, FQDN + 'port' => '[a-zA-Z0-9_:]+', // Alias Name, Port Number, or Port Number Range + 'url' => '.*', // Alias Name or URL + 'url_ports' => '.*', // Alias Name or URL + 'urltable' => '.*', // Alias Name or URL + 'urltable_ports' => '.*' // Alias Name or URL +); + $types = array( 'host' => 'Host(s)', 'network' => 'Network(s)', @@ -699,7 +712,7 @@ while ($counter < count($addresses)) { 'address' . $counter, 'Address', $address - ))->addMask('address_subnet' . $counter, $address_subnet)->setWidth(4)->setPattern('[a-zA-Z0-9\-\.\:]+'); + ))->addMask('address_subnet' . $counter, $address_subnet)->setWidth(4)->setPattern($pattern_str[$tab]); $group->add(new Form_Input( 'detail' . $counter, @@ -757,6 +770,12 @@ events.push(function() { var labelstr = <?=json_encode($label_str);?>; $('.repeatable:first').find('label').text(labelstr[tab]); + // Set the input field pattern by tab type + var patternstr = <?=json_encode($pattern_str);?>; + for (i = 0; i < <?=$counter;?>; i++) { + $('#address' + i).prop('pattern', patternstr[tab]); + } + // Hide and disable rows other than the first hideRowsAfter(1, (tab == 'urltable') || (tab == 'urltable_ports')); |