Skip to content

Commit

Permalink
Fix #11540: Picklist trigger input changes on transfer (#11543)
Browse files Browse the repository at this point in the history
* Fix #11540: Picklist trigger input changes on transfer

* Update primefaces/src/main/resources/META-INF/resources/primefaces/picklist/picklist.js

* Fix #11540: Picklist trigger input changes on transfer

* Fix #11540: Picklist trigger input changes on transfer

---------

Co-authored-by: Jasper de Vries <jepsar@gmail.com>
  • Loading branch information
melloware and jepsar committed Mar 4, 2024
1 parent 6a543d6 commit c4ed952
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 0 deletions.
6 changes: 6 additions & 0 deletions docs/14_0_0/components/picklist.md
Expand Up @@ -187,13 +187,19 @@ 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.
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
<p:pickList value="#{pickListBean.cities}" var="city" itemLabel="#{city}" itemValue="#{city}">
<p:ajax event="transfer" listener="#{pickListBean.handleTransfer}" />
Expand Down
1 change: 1 addition & 0 deletions docs/migrationguide/14_0_0.md
Expand Up @@ -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

Expand Down
Expand Up @@ -104,6 +104,11 @@ public Collection<String> getEventNames() {
return EVENT_NAMES;
}

@Override
public String getDefaultEventName() {
return "transfer";
}

@Override
protected void validateValue(FacesContext facesContext, Object newValue) {
super.validateValue(facesContext, newValue);
Expand Down
Expand Up @@ -1163,6 +1163,8 @@ PrimeFaces.widget.PickList = PrimeFaces.widget.BaseWidget.extend({
$($this.jqId + ' ul').sortable('enable');
$this.updateButtonsState();
}

this.fireInputChanged();
},

/**
Expand Down Expand Up @@ -1224,6 +1226,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");
},

/**
Expand Down

0 comments on commit c4ed952

Please sign in to comment.