Henning Snater has uploaded a new change for review.
https://gerrit.wikimedia.org/r/99069
Change subject: Filter events when moving $.wikibase.*view objects
......................................................................
Filter events when moving $.wikibase.*view objects
Change-Id: I99592c8d1335d10744120153460af24b7fd41670
---
M lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
M lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
3 files changed, 31 insertions(+), 7 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/69/99069/1
diff --git
a/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
index 9071908..b969021 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
@@ -435,6 +435,9 @@
|| isBottommostInClaimlistview && action ===
'moveDown'
) {
claimgrouplistviewListview[action](
$claimlistview );
+
+ // Stop repeatedly triggering the event on the
moved DOM node:
+ event.stopImmediatePropagation();
} else {
claimlistviewListview[action]( $claimview );
}
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
index 01a6a9a..b61af8d 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
@@ -931,9 +931,17 @@
},
'movetoolbarup movetoolbardown': function( event ) {
var $snakview = $( event.target ),
- snak = $snakview.data( 'wikibaseSnakview'
).snak(),
- $snaklistview = $snakview.closest(
':wikibase-snaklistview' ),
- snaklistview = $snaklistview.data(
'snaklistview' ),
+ $snaklistview = $snakview.closest(
':wikibase-snaklistview' );
+
+ if( !$snaklistview.length ) {
+ // Unrelated "move" action.
+ return;
+ }
+
+ var snaklistview = $snaklistview.data( 'snaklistview' ),
+ snaklistviewListview =
snaklistview.$listview.data( 'listview' ),
+ snaklistviewListviewLia =
snaklistviewListview.listItemAdapter(),
+ snak = snaklistviewListviewLia.liInstance(
$snakview ).snak(),
snakList = snaklistview.value(),
$listview = $snaklistview.closest(
':wikibase-listview' ),
listview = $listview.data( 'listview' ),
@@ -972,6 +980,11 @@
listview = $target.data( 'listview' );
}
+ if( !listview ) {
+ // Unrelated "move" action.
+ return;
+ }
+
var listviewItems = listview.items();
listviewItems.each( function( i, snaklistviewNode ) {
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
index 8c564a3..cb4525c 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
@@ -776,15 +776,15 @@
},
'movetoolbarup movetoolbardown': function( event ) {
var $snakview = $( event.target ),
- $snaklistview = $snakview.closest(
':wikibase-snaklistview' );
+ $snaklistview = $snakview.closest(
':wikibase-snaklistview' ),
+ $referenceview = $snaklistview.closest(
':wikibase-referenceview' );
- if( !$snaklistview.length ) {
+ if( !$referenceview.length ) {
// Event belongs to another movetoolbar.
return;
}
- var $referenceview = $snaklistview.closest(
':wikibase-referenceview' ),
- referenceview = $referenceview.data(
'referenceview' ),
+ var referenceview = $referenceview.data(
'referenceview' ),
snaklistview =
referenceview.options.listItemAdapter.liInstance( $snaklistview ),
snakview =
snaklistview._listview.listItemAdapter().liInstance( $snakview ),
snak = snakview.snak(),
@@ -811,6 +811,11 @@
var referenceview = ( event.type.indexOf(
'referenceview' ) === 0 )
? $target.data( 'referenceview' )
: $target.closest( ':wikibase-referenceview'
).data( 'referenceview' );
+
+ if( !referenceview ) {
+ // Unrelated "move" action.
+ return;
+ }
var referenceviewLia =
referenceview.options.listItemAdapter,
$snaklistviews = referenceview.items();
@@ -856,6 +861,9 @@
}
} );
} );
+
+ // Stop repeatedly triggering the event on the moved
DOM node:
+ event.stopImmediatePropagation();
}
}
} );
--
To view, visit https://gerrit.wikimedia.org/r/99069
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I99592c8d1335d10744120153460af24b7fd41670
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits