From 3d3d7027edaf845c827bf9cf7233e6c5041a377a Mon Sep 17 00:00:00 2001 From: melloware Date: Thu, 29 Feb 2024 14:25:23 -0500 Subject: [PATCH 1/4] Fix #11540: Picklist trigger input changes on transfer --- .../META-INF/resources/primefaces/picklist/picklist.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js b/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js index 6c076f5696..e1da707121 100644 --- a/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js +++ b/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js @@ -1168,6 +1168,10 @@ PrimeFaces.widget.PickList = PrimeFaces.widget.BaseWidget.extend({ $($this.jqId + ' ul').sortable('enable'); $this.updateButtonsState(); } + + // #11540: trigger change events on inputs for form handling + this.targetInput.trigger("change"); + this.sourceInput.trigger("change")? }, /** From 7f3282d0c7c66ea8647243f2b85d5157888aa2c3 Mon Sep 17 00:00:00 2001 From: Jasper de Vries Date: Fri, 1 Mar 2024 11:56:10 +0100 Subject: [PATCH 2/4] Update primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js --- .../META-INF/resources/primefaces/picklist/picklist.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js b/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js index e1da707121..5f99074f78 100644 --- a/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js +++ b/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js @@ -1171,7 +1171,7 @@ PrimeFaces.widget.PickList = PrimeFaces.widget.BaseWidget.extend({ // #11540: trigger change events on inputs for form handling this.targetInput.trigger("change"); - this.sourceInput.trigger("change")? + this.sourceInput.trigger("change"); }, /** From 82fd5cae9c317100c0b8e65db35c66cc9f9f5043 Mon Sep 17 00:00:00 2001 From: melloware Date: Fri, 1 Mar 2024 10:16:27 -0500 Subject: [PATCH 3/4] Fix #11540: Picklist trigger input changes on transfer --- docs/migrationguide/14_0_0.md | 1 + .../resources/primefaces/picklist/picklist.js | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/migrationguide/14_0_0.md b/docs/migrationguide/14_0_0.md index 1b3f5d39a2..c2dffb6ba2 100644 --- a/docs/migrationguide/14_0_0.md +++ b/docs/migrationguide/14_0_0.md @@ -89,6 +89,7 @@ Few selection attributes have been renamed for consistency purposes: ## PickList * `addLabel, addAllLabel, removeLabel, removeAllLabel, moveUpLabel, moveTopLabel, moveDownLabel, moveBottomLabel` properties have been moved to client side locale + * `transfer` and `reorder` events now fire `change` events on the source and target inputs to make it consistent with other inputs ## SelectOneRadio diff --git a/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js b/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js index 5f99074f78..8316574b62 100644 --- a/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js +++ b/primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js @@ -1169,9 +1169,7 @@ PrimeFaces.widget.PickList = PrimeFaces.widget.BaseWidget.extend({ $this.updateButtonsState(); } - // #11540: trigger change events on inputs for form handling - this.targetInput.trigger("change"); - this.sourceInput.trigger("change"); + this.fireInputChanged(); }, /** @@ -1233,6 +1231,17 @@ PrimeFaces.widget.PickList = PrimeFaces.widget.BaseWidget.extend({ */ fireReorderEvent: function() { this.callBehavior('reorder'); + this.fireInputChanged(); + }, + + /** + * Triggers change events on the input fields. + * @private + */ + fireInputChanged: function() { + // #11540: trigger change events on inputs for form handling + this.targetInput.trigger("change"); + this.sourceInput.trigger("change"); }, /** From bcd954f790f871ad1059f615fe4cc3d0c150df2d Mon Sep 17 00:00:00 2001 From: melloware Date: Fri, 1 Mar 2024 13:12:41 -0500 Subject: [PATCH 4/4] Fix #11540: Picklist trigger input changes on transfer --- docs/14_0_0/components/picklist.md | 6 ++++++ .../java/org/primefaces/component/picklist/PickList.java | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/docs/14_0_0/components/picklist.md b/docs/14_0_0/components/picklist.md index 465068c18b..0a66b355f2 100644 --- a/docs/14_0_0/components/picklist.md +++ b/docs/14_0_0/components/picklist.md @@ -187,6 +187,11 @@ to _onTransfer_ attribute. ## Ajax Behavior Events +The following AJAX behavior events are available for this component. If no event is specified the default event is called. + +**Default Event:** `transfer` +**Available Events:** `reorder, select, transfer, unselect` + | Event | Listener Parameter | Fired | | --- | --- | --- | select | org.primefaces.event.SelectEvent | When an item selected. @@ -194,6 +199,7 @@ unselect | org.primefaces.event.UnselectEvent | When an item unselected. reorder | javax.faces.event.AjaxBehaviorEvent | When list is reordered. transfer | org.primefaces.event.TransferEvent | When an item is moved to another list. + ```xhtml diff --git a/primefaces/src/main/java/org/primefaces/component/picklist/PickList.java b/primefaces/src/main/java/org/primefaces/component/picklist/PickList.java index fc3b2080d5..c11b26b9d1 100644 --- a/primefaces/src/main/java/org/primefaces/component/picklist/PickList.java +++ b/primefaces/src/main/java/org/primefaces/component/picklist/PickList.java @@ -104,6 +104,11 @@ public Collection getEventNames() { return EVENT_NAMES; } + @Override + public String getDefaultEventName() { + return "transfer"; + } + @Override protected void validateValue(FacesContext facesContext, Object newValue) { super.validateValue(facesContext, newValue);