jenkins-bot has submitted this change and it was merged.
Change subject: Triggering snaklistview's change event when moving items
..
Triggering snaklistview's change event when moving items
Change-Id: I35cc6f81c5b44127ead6f6be9a5e04fd0ea6019a
---
M lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
1 file changed, 29 insertions(+), 22 deletions(-)
Approvals:
Tobias Gritschacher: Looks good to me, approved
jenkins-bot: Verified
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
index ddec4bb..1951e2a 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
@@ -134,28 +134,30 @@
_attachEditModeEventHandlers: function() {
var self = this;
+ var changeEvents = [
+ 'snakviewchange.' + this.widgetName,
+ 'snaklistviewchange.' + this.widgetName,
+ 'referenceviewafteritemmove.' + this.widgetName,
+ 'listviewitemadded.' + this.widgetName,
+ 'listviewitemremoved.' + this.widgetName
+ ];
+
this.element
- .on(
- 'snakviewchange.' + this.widgetName
- + ' snaklistviewchange.' + this.widgetName
- + ' listviewitemadded.' + this.widgetName + '
listviewitemremoved.' + this.widgetName,
- function( event ) {
+ .on( changeEvents.join( ' ' ), function( event ) {
+ if( event.type === 'listviewitemremoved' ) {
+ // Check if last snaklistview item (snakview)
has been removed and remove the
+ // listview item (the snaklistview itself) if
so:
+ var $snaklistview = $( event.target ).closest(
':wikibase-snaklistview' ),
+ snaklistview = $snaklistview.data(
'snaklistview' );
- if( event.type === 'listviewitemremoved' ) {
- // Check if last snaklistview item
(snakview) has been removed and remove the
- // listview item (the snaklistview
itself) if so:
- var $snaklistview = $( event.target
).closest( ':wikibase-snaklistview' ),
- snaklistview =
$snaklistview.data( 'snaklistview' );
-
- if( snaklistview
!snaklistview.value() ) {
- self.removeItem(
snaklistview.element );
- }
+ if( snaklistview !snaklistview.value() ) {
+ self.removeItem( snaklistview.element );
}
-
- // Propagate change event.
- self._trigger( 'change' );
}
- )
+
+ // Propagate change event.
+ self._trigger( 'change' );
+ } )
.one( this.options.listItemAdapter.prefixedEvent(
'stopediting.' + this.widgetName ),
function( event, dropValue ) {
event.stopPropagation();
@@ -168,10 +170,15 @@
* Detaches the event handlers needed during edit mode.
*/
_detachEditModeEventHandlers: function() {
- this.element
- .off( 'snakviewchange.' + this.widgetName + ' ' +
'snaklistviewchange.' + this.widgetName )
- .off( 'listviewitemadded.' + this.widgetName + '
listviewitemremoved.' + this.widgetName )
- .off( this.options.listItemAdapter.prefixedEvent(
'stopediting.' + this.widgetName ) );
+ var events = [
+ 'snakviewchange.' + this.widgetName,
+ 'snaklistviewchange.' + this.widgetName,
+ 'referenceviewafteritemmove.' + this.widgetName,
+ 'listviewitemadded.' + this.widgetName,
+ 'listviewitemremoved.' + this.widgetName,
+ this.options.listItemAdapter.prefixedEvent(
'stopediting.' + this.widgetName )
+ ];
+ this.element.off( events.join( ' ' ) );
},
/**
--
To view, visit https://gerrit.wikimedia.org/r/84507
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I35cc6f81c5b44127ead6f6be9a5e04fd0ea6019a
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater