Adrian Lang has uploaded a new change for review.

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

Change subject: Store shortcut to references listview in statementview
......................................................................

Store shortcut to references listview in statementview

Change-Id: I62b6d9149e9f2ed61eceed820c90a52c6d1249f3
---
M lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
1 file changed, 19 insertions(+), 18 deletions(-)


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

diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
index b9ce7d4..9b98287 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
@@ -54,6 +54,12 @@
        _referenceviewLia: null,
 
        /**
+        * Shortcut to the listview holding the reference views.
+        * @type {jquery.wikibase.listview}
+        */
+       _referencesListview: null,
+
+       /**
         * @see jQuery.claimview._create
         */
        _create: function() {
@@ -95,7 +101,9 @@
                                value: refs
                        } );
 
-                       this._referenceviewLia = $listview.data( 'listview' 
).listItemAdapter();
+                       this._referencesListview = $listview.data( 'listview' );
+
+                       this._referenceviewLia = 
this._referencesListview.listItemAdapter();
 
                        $listview
                        .on( 'listviewitemadded listviewitemremoved', function( 
event, value, $li ) {
@@ -107,13 +115,11 @@
                        .on( 'referenceviewafterstopediting', function( event, 
dropValue ) {
                                if( dropValue ) {
                                        // Re-order claims according to their 
initial indices:
-                                       var $referenceListview = 
self.$references.children( ':wikibase-listview' ),
-                                               referenceListview = 
$referenceListview.data( 'listview' ),
-                                               $referenceviews = 
referenceListview.items();
+                                       var $referenceviews = 
self._referencesListview.items();
 
                                        for( var i = 0; i < 
$referenceviews.length; i++ ) {
                                                var referenceview = 
self._referenceviewLia.liInstance( $referenceviews.eq( i ) );
-                                               referenceListview.move( 
$referenceviews.eq( i ), referenceview.getInitialIndex() );
+                                               self._referencesListview.move( 
$referenceviews.eq( i ), referenceview.getInitialIndex() );
                                        }
                                }
                        } )
@@ -146,7 +152,7 @@
                        } );
 
                        // Collapse references if there is at least one.
-                       if ( $listview.data( 'listview' ).items().length > 0 ) {
+                       if ( self._referencesListview.items().length > 0 ) {
                                this.$references.css( 'display', 'none' );
                        }
 
@@ -271,8 +277,7 @@
         * @param {wb.Reference} reference
         */
        _addReference: function( reference ) {
-               var lv = this.$references.children( ':wikibase-listview' 
).data( 'listview' );
-               lv.addItem( reference );
+               this._referencesListview.addItem( reference );
        },
 
        /**
@@ -282,16 +287,15 @@
         */
        getReferences: function() {
                var self = this,
-                       listview = this.$references.children( 
':wikibase-listview' ).data( 'listview' ),
                        references = [];
 
                // If the statement is pending (not yet stored), the listview 
widget for the references is
                // not defined.
-               if ( !listview ) {
+               if ( !this._referencesListview ) {
                        return references;
                }
 
-               $.each( listview.items(), function( i, item ) {
+               $.each( this._referencesListview.items(), function( i, item ) {
                        var referenceview = self._referenceviewLia.liInstance( 
$( item ) );
                        references.push( referenceview.value() );
                } );
@@ -304,8 +308,7 @@
         * @since 0.5
         */
        _updateReferenceIndices: function() {
-               var $referenceListview = this.$references.children( 
':wikibase-listview' ),
-                       $referenceviews = $referenceListview.data( 'listview' 
).items();
+               var $referenceviews = this._referencesListview.items();
 
                for( var i = 0; i < $referenceviews.length; i++ ) {
                        var referenceview = this._referenceviewLia.liInstance( 
$referenceviews.eq( i ) );
@@ -326,8 +329,7 @@
 
                this._removeReferenceApiCall( referenceview.value() )
                        .done( function( pageInfo ) {
-                               var listview = self.$references.children( 
':wikibase-listview' ).data( 'listview' );
-                               listview.removeItem( referenceview.element );
+                               self._referencesListview.removeItem( 
referenceview.element );
                                self._trigger( 'afterremove' );
                        } ).fail( function( errorCode, details ) {
                                var error = wb.RepoApiError.newFromApiResponse( 
errorCode, details, 'remove' );
@@ -396,9 +398,8 @@
         * @since 0.4
         */
        drawReferencesCounter: function() {
-               var listView = this.$references.children( ':wikibase-listview' 
).data( 'listview' ),
-                       numberOfValues = listView.nonEmptyItems().length,
-                       numberOfPendingValues = listView.items().length - 
numberOfValues;
+               var numberOfValues = 
this._referencesListview.nonEmptyItems().length,
+                       numberOfPendingValues = 
this._referencesListview.items().length - numberOfValues;
 
                // build a nice counter, displaying fixed and pending values:
                var $counterMsg = wb.utilities.ui.buildPendingCounter(

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I62b6d9149e9f2ed61eceed820c90a52c6d1249f3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <adrian.l...@wikimedia.de>

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

Reply via email to