Skip to content

Commit

Permalink
Fix #11561: Filter keyup/down prevent DefaultCommand (#11565)
Browse files Browse the repository at this point in the history
  • Loading branch information
melloware committed Mar 4, 2024
1 parent 9db422f commit 6a543d6
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -570,11 +570,15 @@ if (!PrimeFaces.utils) {
* Blocks the enter key for an event like `keyup` or `keydown`. Useful in filter input events in many
* components.
* @param {JQuery.TriggeredEvent} e The key event that occurred.
* @return {boolean} `true` if ENTER key was blocked, false if not.
*/
blockEnterKey: function(e) {
if(e.key === 'Enter') {
e.preventDefault();
e.stopPropagation();
return true;
}
return false;
},

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -736,11 +736,8 @@ PrimeFaces.widget.DataTable = PrimeFaces.widget.DeferredWidget.extend({
var $this = this;

filter.off('keydown').on('keydown', function(e) {
if(e.key === 'Enter') {
if(PrimeFaces.utils.blockEnterKey(e)) {
$this.filter();

e.preventDefault();
e.stopPropagation();
}
});
},
Expand Down Expand Up @@ -769,12 +766,10 @@ PrimeFaces.widget.DataTable = PrimeFaces.widget.DeferredWidget.extend({
bindFilterEvent: function(filter) {
var $this = this;
var filterEventName = this.cfg.filterEvent + '.dataTable';

//prevent form submit on enter key
filter.off('keydown.dataTable-blockenter ' + filterEventName)
.on('keydown.dataTable-blockenter', PrimeFaces.utils.blockEnterKey)
.on(filterEventName, function(e) {
if (e.key && PrimeFaces.utils.ignoreFilterKey(e)) {

filter.on(filterEventName, function(e) {
//prevent form submit on enter key
if (e.key && (PrimeFaces.utils.ignoreFilterKey(e) || PrimeFaces.utils.blockEnterKey(e))) {
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,14 +181,11 @@ PrimeFaces.widget.OverlayPanel = PrimeFaces.widget.DynamicOverlayWidget.extend({
});
}

$this.target.off('keydown.ui-overlaypanel keyup.ui-overlaypanel')
.on('keydown.ui-overlaypanel', PrimeFaces.utils.blockEnterKey)
.on('keyup.ui-overlaypanel', function(e) {
if (e.key === 'Enter') {
$this.toggle();
e.preventDefault();
}
});
$this.target.off('keyup.ui-overlaypanel').on('keyup.ui-overlaypanel', function(e) {
if (PrimeFaces.utils.blockEnterKey(e)) {
$this.toggle();
}
});

this.bindAutoHide();
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -673,15 +673,11 @@ PrimeFaces.widget.PickList = PrimeFaces.widget.BaseWidget.extend({
bindEnterKeyFilter: function(filter) {
var $this = this;

filter
.on('keydown', PrimeFaces.utils.blockEnterKey)
.on('keyup', function(e) {
if(e.key === 'Enter') {
$this.filter(this.value, $this.getFilteredList($(this)));

e.preventDefault();
}
});
filter.on('keyup', function(e) {
if (PrimeFaces.utils.blockEnterKey(e)) {
$this.filter(this.value, $this.getFilteredList($(this)));
}
});
},

/**
Expand All @@ -694,7 +690,7 @@ PrimeFaces.widget.PickList = PrimeFaces.widget.BaseWidget.extend({

//prevent form submit on enter key
filter.on(this.cfg.filterEvent, function(e) {
if (PrimeFaces.utils.ignoreFilterKey(e)) {
if (PrimeFaces.utils.ignoreFilterKey(e) || PrimeFaces.utils.blockEnterKey(e)) {
return;
}

Expand All @@ -709,8 +705,7 @@ PrimeFaces.widget.PickList = PrimeFaces.widget.BaseWidget.extend({
$this.filterTimeout = null;
},
$this.cfg.filterDelay);
})
.on('keydown', PrimeFaces.utils.blockEnterKey);
});
},

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,8 @@ PrimeFaces.widget.VerticalTree = PrimeFaces.widget.BaseTree.extend({
this.filterInput = this.jq.find('.ui-tree-filter');
PrimeFaces.skinInput(this.filterInput);

this.filterInput.on('keydown.tree-filter', PrimeFaces.utils.blockEnterKey)
.on('keyup.tree-filter', function(e) {
if (PrimeFaces.utils.ignoreFilterKey(e)) {
this.filterInput.on('keyup.tree-filter', function(e) {
if (PrimeFaces.utils.ignoreFilterKey(e) || PrimeFaces.utils.blockEnterKey(e)) {
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -340,11 +340,8 @@ PrimeFaces.widget.TreeTable = PrimeFaces.widget.DeferredWidget.extend({
var $this = this;

filter.off('keydown').on('keydown', function(e) {
if(e.key === 'Enter') {
if(PrimeFaces.utils.blockEnterKey(e)) {
$this.filter();

e.preventDefault();
e.stopPropagation();
}
});
},
Expand Down Expand Up @@ -373,9 +370,11 @@ PrimeFaces.widget.TreeTable = PrimeFaces.widget.DeferredWidget.extend({
bindFilterEvent: function(filter) {
var $this = this;

//prevent form submit on enter key
filter.on('keydown.treeTable-blockenter', PrimeFaces.utils.blockEnterKey)
.on(this.cfg.filterEvent + '.treeTable', function(e) {
filter.on(this.cfg.filterEvent + '.treeTable', function(e) {
//prevent form submit on enter key
if (e.key && (PrimeFaces.utils.ignoreFilterKey(e) || PrimeFaces.utils.blockEnterKey(e))) {
return;
}
if($this.filterTimeout) {
clearTimeout($this.filterTimeout);
}
Expand Down

0 comments on commit 6a543d6

Please sign in to comment.