summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Beaver <sbeaver@netgate.com>2016-04-11 10:27:32 -0400
committerStephen Beaver <sbeaver@netgate.com>2016-04-11 10:28:33 -0400
commite4751372eb418677141ce562a390b1cc8719d4e2 (patch)
treef4bb86265b3662e31ca69750af647f13eead9984
parented66d182d02623a0dcd3f3c10abfdbba969b475f (diff)
downloadpfsense-e4751372eb418677141ce562a390b1cc8719d4e2.zip
pfsense-e4751372eb418677141ce562a390b1cc8719d4e2.tar.gz
Fixed #6092
-rw-r--r--src/usr/local/www/firewall_rules.php51
-rw-r--r--src/usr/local/www/vpn_ipsec.php7
2 files changed, 47 insertions, 11 deletions
diff --git a/src/usr/local/www/firewall_rules.php b/src/usr/local/www/firewall_rules.php
index f9630c0..6ba27c2 100644
--- a/src/usr/local/www/firewall_rules.php
+++ b/src/usr/local/www/firewall_rules.php
@@ -69,6 +69,9 @@ require_once("filter.inc");
require_once("ipsec.inc");
require_once("shaper.inc");
+$XmoveTitle = gettext("Move checked rules above this one");
+$ShXmoveTitle = gettext("Move checked rules below this one");
+
$pgtitle = array(gettext("Firewall"), gettext("Rules"));
$shortcut_section = "firewall";
@@ -789,7 +792,7 @@ foreach ($a_filter as $filteri => $filterent):
</td>
<td class="action-icons">
<!-- <?=(isset($filterent['disabled']) ? 'enable' : 'disable')?> -->
- <a class="fa fa-anchor icon-pointer" id="Xmove_<?=$filteri?>" title="<?=gettext("Move checked rules above this one")?>"></a>
+ <a class="fa fa-anchor icon-pointer" id="Xmove_<?=$filteri?>" title="<?=$XmoveTitle?>"></a>
<a href="firewall_rules_edit.php?id=<?=$filteri;?>" class="fa fa-pencil" title="<?=gettext('Edit')?>"></a>
<a href="firewall_rules_edit.php?dup=<?=$filteri;?>" class="fa fa-clone" title="<?=gettext('Copy')?>"></a>
<?php if (isset($filterent['disabled'])) {
@@ -884,6 +887,9 @@ if ($seprows[$nrules]) {
"other rules match. Pay close attention to the rule order and options " .
"chosen. If no rule here matches, the per-interface or default rules are used. "));
}
+
+ printf(gettext("%sClick the anchor icon %s to move checked rules before the clicked row. Hold down " .
+ "the shift key and click to move the rules after the clicked row"), '<br /><br />', '<i class="fa fa-anchor"></i>')
?>
</div>
</div>
@@ -910,18 +916,33 @@ events.push(function() {
// Save the target rule position
var anchor_row = $(this).parents("tr:first");
- $('#ruletable > tbody > tr').each(function() {
- ruleid = this.id.slice(2);
+ if (event.shiftKey) {
+ $($('#ruletable > tbody > tr').get().reverse()).each(function() {
+ ruleid = this.id.slice(2);
- if (ruleid && !isNaN(ruleid)) {
- if ($('#frc' + ruleid).prop('checked')) {
- // Move the selected rows, un-select them and add highlight class
- $(this).insertBefore(anchor_row);
- fr_toggle(ruleid, "fr");
- $('#fr' + ruleid).addClass("highlight");
+ if (ruleid && !isNaN(ruleid)) {
+ if ($('#frc' + ruleid).prop('checked')) {
+ // Move the selected rows, un-select them and add highlight class
+ $(this).insertAfter(anchor_row);
+ fr_toggle(ruleid, "fr");
+ $('#fr' + ruleid).addClass("highlight");
+ }
}
- }
- });
+ });
+ } else {
+ $('#ruletable > tbody > tr').each(function() {
+ ruleid = this.id.slice(2);
+
+ if (ruleid && !isNaN(ruleid)) {
+ if ($('#frc' + ruleid).prop('checked')) {
+ // Move the selected rows, un-select them and add highlight class
+ $(this).insertBefore(anchor_row);
+ fr_toggle(ruleid, "fr");
+ $('#fr' + ruleid).addClass("highlight");
+ }
+ }
+ });
+ }
// Temporarily set background color so user can more easily see the moved rules, then fade
$('.highlight').effect("highlight", {color: "#739b4b;"}, 4000);
@@ -966,6 +987,14 @@ events.push(function() {
return undefined;
}
});
+
+ $(document).on('keyup keydown', function(e){
+ if (e.shiftKey) {
+ $('[id^=Xmove_]').attr("title", "<?=$ShXmoveTitle?>");
+ } else {
+ $('[id^=Xmove_]').attr("title", "<?=$XmoveTitle?>");
+ }
+ });
});
//]]>
</script>
diff --git a/src/usr/local/www/vpn_ipsec.php b/src/usr/local/www/vpn_ipsec.php
index 8d2ad76..03d30a4 100644
--- a/src/usr/local/www/vpn_ipsec.php
+++ b/src/usr/local/www/vpn_ipsec.php
@@ -573,6 +573,13 @@ function show_phase2(id, buttonid) {
events.push(function() {
$('[id^=Xmove_]').click(function (event) {
+ // ToDo: We POST shift="yes" if the user has the shift key depressed, but that is not yet used
+ // by the $_POST code. It is intended to allow the user to choose to move stuff to the row before or
+ // after the clicked anchor icon
+ if (event.shiftKey) {
+ $('form').append('<input type="hidden" id="shift" name="shift" value="yes" />');
+ }
+
$('#' + event.target.id.slice(1)).click();
});
OpenPOWER on IntegriCloud