diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml b/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml index 38e338187..a24a18f57 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml @@ -40,8 +40,10 @@ IPv6 - - + + Days and hours should be numeric values or left empty + + N /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){1,255}$/u diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/M1_0_0.php b/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/M1_0_0.php index 3cd0bcf2a..dfd3d5523 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/M1_0_0.php +++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/M1_0_0.php @@ -79,6 +79,9 @@ class M1_0_0 extends BaseModelMigration if ($alias->proto) { $node->proto = (string)$alias->proto; } + if ($alias->updatefreq) { + $node->updatefreq = (string)$alias->updatefreq; + } } } } diff --git a/src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt b/src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt index 8b35c16c7..702b542d6 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt @@ -12,6 +12,10 @@ background-color: transparent !important; } + .update_table { + background-color: transparent !important; + } + .geo_area_check { cursor: pointer; } @@ -128,6 +132,7 @@ */ $("#alias\\.type").change(function(){ $(".alias_type").hide(); + $("#row_alias\\.updatefreq").hide(); switch ($(this).val()) { case 'geoip': $("#alias_type_geoip").show(); @@ -135,6 +140,8 @@ break; case 'external': break; + case 'urltable': + $("#row_alias\\.updatefreq").show(); default: $("#alias_type_default").show(); $("#alias\\.proto").selectpicker('hide'); @@ -157,7 +164,32 @@ }); $(".geoip_select").selectpicker('refresh'); geoip_update_labels(); - }) + }); + + /** + * update expiration (updatefreq is splitted into days and hours on the form) + */ + $("#alias\\.updatefreq").change(function(){ + var freq = $(this).val(); + var freq_hours = ((parseFloat(freq) - parseInt(freq)) * 24.0).toFixed(2); + var freq_days = parseInt(freq); + $("input[data-id=\"alias.updatefreq_hours\"]").val(freq_hours); + $("input[data-id=\"alias.updatefreq_days\"]").val(freq_days); + }); + $(".updatefreq").keyup(function(){ + var freq = 0.0; + if ($("input[data-id=\"alias.updatefreq_days\"]").val().trim() != "") { + freq = parseFloat($("input[data-id=\"alias.updatefreq_days\"]").val()); + } + if ($("input[data-id=\"alias.updatefreq_hours\"]").val().trim() != "") { + freq += (parseFloat($("input[data-id=\"alias.updatefreq_hours\"]").val()) / 24.0); + } + if (freq != 0.0) { + $("#alias\\.updatefreq").val(freq); + } else { + $("#alias\\.updatefreq").val(""); + } + }); }); @@ -276,6 +308,34 @@ + + +
+ + {{lang._('Expiration')}} +
+ + + + + + + + + + + + + + + + +
{{lang._('Days')}}{{lang._('Hours')}}
+ + + + +