Henning Snater has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/98819


Change subject: Reset claimgroup when cancelling edit
......................................................................

Reset claimgroup when cancelling edit

Change-Id: I992af5f16aaa4212b02bba2fe8a634fbdd632bc1
---
M lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.claimview.js
M lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
4 files changed, 56 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/19/98819/1

diff --git 
a/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
index 4fd75e6..ee794e8 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.claimgrouplistview.js
@@ -80,6 +80,16 @@
                .on( afterStopEditingEvent, function( event, dropValue ) {
                        self._toggleGroupTitleClass( $( event.target ), 
'wb-error' );
                        self._removeGroupTitleClass( $( event.target ), 
'wb-edit' );
+
+                       // Re-oder claimlistviews according to their initial 
indices:
+                       var listview = self.$listview.data( 'listview' ),
+                               $claimlistviews = listview.items();
+
+                               for( var i = 0; i < $claimlistviews.length; i++ 
) {
+                                       var lia = listview.listItemAdapter(),
+                                               claimlistviewInstance = 
lia.liInstance( $claimlistviews.eq( i ) );
+                                       listview.move( $claimlistviews.eq( i ), 
claimlistviewInstance.getInitialIndex() );
+                               }
                } )
                .on( startEditingEvent, function( event ) {
                        self._addGroupTitleClass( $( event.target ), 'wb-edit' 
);
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
index a09f578..e4633bb 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
@@ -70,6 +70,14 @@
        _listItemWidget: null,
 
        /**
+        * The index of the claimlistview's first claim within the flat list of 
claims (if it is
+        * contained within a list of claims). The initial index is stored to 
be able to detect whether
+        * the index has changed and the claim list does not feature its 
initial value.
+        * @type {number|null}
+        */
+       _initialIndex: null,
+
+       /**
         * @see jQuery.Widget._create
         */
        _create: function() {
@@ -78,6 +86,8 @@
                this._listItemWidget = ( this.option( 'entityType' ) === 'item' 
)
                        ? $.wikibase.statementview
                        : $.wikibase.claimview;
+
+               this._initialIndex = this.option( 'firstClaimIndex' );
 
                this._createListView();
 
@@ -192,6 +202,17 @@
        },
 
        /**
+        * Returns the initial index of the claimlist's first claim within the 
flat list of claims (if
+        * in any).
+        * @since 0.5
+        *
+        * @return {number|null}
+        */
+       getInitialIndex: function() {
+               return this._initialIndex;
+       },
+
+       /**
         * Returns the listview widget used to manage the claimviews.
         * @since 0.5
         *
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..5debdf6 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(),
@@ -812,6 +812,11 @@
                                ? $target.data( 'referenceview' )
                                : $target.closest( ':wikibase-referenceview' 
).data( 'referenceview' );
 
+                       if( !referenceview ) {
+                               // Unrelated "move" action.
+                               return;
+                       }
+
                        var referenceviewLia = 
referenceview.options.listItemAdapter,
                                $snaklistviews = referenceview.items();
 

-- 
To view, visit https://gerrit.wikimedia.org/r/98819
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I992af5f16aaa4212b02bba2fe8a634fbdd632bc1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <henning.sna...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to