Skip to content

Commit b589e07

Browse files
authored
Merge pull request #752 from AllenBW/bug/#751-unsafe-links
fix(pfFilter): unsafe:javascript:void(0) redirect when clearing filters
2 parents 4ae52da + 81d349a commit b589e07

File tree

8 files changed

+24
-13
lines changed

8 files changed

+24
-13
lines changed

src/filters/filter-panel/filter-panel-results-component.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,9 @@ angular.module('patternfly.filters').component('pfFilterPanelResults', {
5757
}
5858
}
5959

60-
function clearFilter (filter, value) {
60+
function clearFilter (evt, filter, value) {
6161
var changedFilterId = filter.id;
62+
evt.preventDefault();
6263

6364
_.pull(filter.values, value);
6465

@@ -71,7 +72,9 @@ angular.module('patternfly.filters').component('pfFilterPanelResults', {
7172
}
7273
}
7374

74-
function clearAllFilters () {
75+
function clearAllFilters (evt) {
76+
evt.preventDefault();
77+
7578
ctrl.config.appliedFilters = [];
7679

7780
if (ctrl.config.onFilterChange) {

src/filters/filter-panel/filter-panel-results.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ <h5>
1313
<ul class="list-inline filter-pf-category-values">
1414
<li ng-repeat="value in filter.values">
1515
<span class="label label-info">{{value}}
16-
<a href="javascript:void(0);"><span ng-click="$ctrl.clearFilter(filter, value)" class="pficon pficon-close"></span></a>
16+
<a href="#"><span ng-click="$ctrl.clearFilter($event, filter, value)" class="pficon pficon-close"></span></a>
1717
</span>
1818
</li>
1919
</ul>
2020
</span>
2121
</li>
2222
</ul>
23-
<p><a href="javascript:void(0);" ng-click="$ctrl.clearAllFilters()" ng-if="$ctrl.config.appliedFilters.length > 0">Clear All Filters</a></p>
23+
<p><a href="#" ng-click="$ctrl.clearAllFilters($event)" ng-if="$ctrl.config.appliedFilters.length > 0">Clear All Filters</a></p>
2424
</div>
2525
</div>

src/filters/simple-filter/filter-results-component.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,10 @@ angular.module('patternfly.filters').component('pfFilterResults', {
7171
ctrl.config.itemsLabelPlural = ctrl.config.itemsLabelPlural || 'Results';
7272
}
7373

74-
function clearFilter (item) {
74+
function clearFilter (evt, item) {
7575
var newFilters = [];
76+
evt.preventDefault();
77+
7678
ctrl.config.appliedFilters.forEach(function (filter) {
7779
if (item.title !== filter.title || item.value !== filter.value) {
7880
newFilters.push(filter);
@@ -85,7 +87,9 @@ angular.module('patternfly.filters').component('pfFilterResults', {
8587
}
8688
}
8789

88-
function clearAllFilters () {
90+
function clearAllFilters (evt) {
91+
evt.preventDefault();
92+
8993
ctrl.config.appliedFilters = [];
9094

9195
if (ctrl.config.onFilterChange) {

src/filters/simple-filter/filter-results.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ <h5 ng-if="$ctrl.config.totalCount !== 1">{{$ctrl.config.resultsCount}} of {{$ct
1313
<li ng-repeat="filter in $ctrl.config.appliedFilters">
1414
<span class="active-filter label label-info">
1515
{{filter.title}}: {{((filter.value.filterCategory.title || filter.value.filterCategory) + filter.value.filterDelimiter + (filter.value.filterValue.title || filter.value.filterValue)) || filter.value.title || filter.value}}
16-
<a href="javascript:void(0);"><span class="pficon pficon-close" ng-click="$ctrl.clearFilter(filter)"></span></a>
16+
<a href="#"><span class="pficon pficon-close" ng-click="$ctrl.clearFilter($event, filter)"></span></a>
1717
</span>
1818
</li>
1919
</ul>
20-
<p><a href="javascript:void(0);" class="clear-filters" ng-click="$ctrl.clearAllFilters()" ng-if="$ctrl.config.appliedFilters.length > 0">Clear All Filters</a></p>
20+
<p><a href="#" class="clear-filters" ng-click="$ctrl.clearAllFilters($event)" ng-if="$ctrl.config.appliedFilters.length > 0">Clear All Filters</a></p>
2121
<div ng-if="$ctrl.config.selectedCount !== undefined && $ctrl.config.totalCount !== undefined" class="pf-table-view-selected-label">
2222
<strong>{{$ctrl.config.selectedCount}}</strong> of <strong>{{$ctrl.config.totalCount}}</strong> selected
2323
</div>

src/select/select.component.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ angular.module('patternfly.select').component('pfSelect', {
3333
return value;
3434
}
3535

36-
function selectItem (item) {
36+
function selectItem (evt, item) {
37+
evt.preventDefault();
38+
3739
ctrl.selected = item;
3840
if (angular.isFunction(ctrl.onSelect)) {
3941
ctrl.onSelect(item);

src/select/select.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
</button>
66
<ul uib-dropdown-menu>
77
<li ng-if="$ctrl.emptyValue" ng-class="{'selected': !$ctrl.selected}">
8-
<a href="javascript:void(0);" role="menuitem" tabindex="-1" ng-click="$ctrl.selectItem()">
8+
<a href="#" role="menuitem" tabindex="-1" ng-click="$ctrl.selectItem($event)">
99
{{$ctrl.emptyValue}}
1010
</a>
1111
</li>
1212
<li ng-repeat="item in $ctrl.options" ng-class="{'selected': item === $ctrl.selected}">
13-
<a href="javascript:void(0);" role="menuitem" tabindex="-1" ng-click="$ctrl.selectItem(item)">
13+
<a href="#" role="menuitem" tabindex="-1" ng-click="$ctrl.selectItem($event, item)">
1414
{{$ctrl.getDisplayValue(item)}}
1515
</a>
1616
</li>

src/sort/sort-component.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@ angular.module('patternfly.sort').component('pfSort', {
5858
}
5959
}
6060

61-
function selectField (field) {
61+
function selectField (evt, field) {
62+
evt.preventDefault();
63+
6264
ctrl.config.currentField = field;
6365

6466
if (ctrl.config.onSortChange) {

src/sort/sort.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</button>
77
<ul uib-dropdown-menu>
88
<li ng-repeat="item in $ctrl.config.fields" ng-class="{'selected': item === $ctrl.config.currentField}">
9-
<a href="javascript:void(0);" class="sort-field" role="menuitem" tabindex="-1" ng-click="$ctrl.selectField(item)">
9+
<a href="#" class="sort-field" role="menuitem" tabindex="-1" ng-click="$ctrl.selectField($event, item)">
1010
{{item.title}}
1111
</a>
1212
</li>

0 commit comments

Comments
 (0)