jenkins-bot has submitted this change and it was merged.

Change subject: Possible optimizations in sitelinkgroupview
......................................................................


Possible optimizations in sitelinkgroupview

Change-Id: I4348ae29b9be7ad6596e5ed9ebb1538671fa7754
---
M view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js
M view/resources/wikibase/view/ViewFactory.js
M view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js
3 files changed, 24 insertions(+), 33 deletions(-)

Approvals:
  Hoo man: Looks good to me, but someone else must approve
  Adrian Heine: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js 
b/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js
index 6bae21d..8a6f175 100644
--- a/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js
+++ b/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js
@@ -93,11 +93,14 @@
         * @see jQuery.ui.TemplatedWidget._create
         */
        _create: function() {
-               if ( !this.options.groupName || !this.options.siteLinksChanger 
|| !this.options.entityIdPlainFormatter ) {
+               if ( !this.options.groupName
+                       || !this.options.siteLinksChanger
+                       || !this.options.entityIdPlainFormatter
+               ) {
                        throw new Error( 'Required parameter(s) missing' );
                }
 
-               this.options.value = this._checkValue( this.options.value );
+               this.options.value = this.options.value || [];
                this._siteIdsOfGroup = getSiteIdsOfGroup( 
this.options.groupName );
 
                PARENT.prototype._create.call( this );
@@ -203,18 +206,6 @@
        },
 
        /**
-        * @param {*} value
-        * @return {Object}
-        */
-       _checkValue: function( value ) {
-               if ( !value ) {
-                       value = [];
-               }
-
-               return value;
-       },
-
-       /**
         * @see jQuery.ui.EditableTemplatedWidget.startEditing
         */
        startEditing: function() {
@@ -271,8 +262,8 @@
        /**
         * @see jQuery.ui.EditableTemplatedWidget.value
         *
-        * @param {Object} [value]
-        * @return {Object|*}
+        * @param {wikibase.datamodel.SiteLink[]} [value]
+        * @return {wikibase.datamodel.SiteLink[]}
         */
        value: function( value ) {
                if ( value !== undefined ) {
@@ -286,7 +277,7 @@
         * @see jQuery.ui.EditableTemplatedWidget.isEmpty
         */
        isEmpty: function() {
-               return !this.value().length;
+               return !this.options.value.length;
        },
 
        /**
@@ -317,7 +308,13 @@
         */
        _setOption: function( key, value ) {
                if ( key === 'value' ) {
-                       value = this._checkValue( value );
+                       value = value || [];
+               } else if ( key === 'groupName' && value !== 
this.options.groupName ) {
+                       this._siteIdsOfGroup = getSiteIdsOfGroup( value );
+                       this.$sitelinklistview.data( 'sitelinklistview' )
+                               .option( 'allowedSiteIds', this._siteIdsOfGroup 
);
+
+                       this.draw();
                }
 
                var response = PARENT.prototype._setOption.call( this, key, 
value );
@@ -325,12 +322,6 @@
                if ( key === 'value' ) {
                        this.$sitelinklistview.data( 'sitelinklistview' )
                        .value( this.options.value );
-
-                       this.draw();
-               } else if ( key === 'groupName' ) {
-                       this._siteIdsOfGroup = getSiteIdsOfGroup( value );
-                       this.$sitelinklistview.data( 'sitelinklistview' )
-                       .option( 'allowedSiteIds', this._siteIdsOfGroup );
 
                        this.draw();
                } else if ( key === 'disabled' ) {
diff --git a/view/resources/wikibase/view/ViewFactory.js 
b/view/resources/wikibase/view/ViewFactory.js
index c504756..19f2bbb 100644
--- a/view/resources/wikibase/view/ViewFactory.js
+++ b/view/resources/wikibase/view/ViewFactory.js
@@ -214,17 +214,17 @@
         *
         * @param {jQuery.util.EventSingletonManager} eventSingletonManager
         * @param {string} groupName
-        * @param {wikibase.datamodel.SiteLink[]} value
+        * @param {wikibase.datamodel.SiteLink[]} siteLinks
         * @param {jQuery} $sitelinkgroupview
         * @return {jQuery.wikibase.sitelinkgroupview} The constructed 
sitelinkgroupview
         **/
-       SELF.prototype.getSitelinkGroupView = function( eventSingletonManager, 
groupName, value, $sitelinkgroupview ) {
+       SELF.prototype.getSitelinkGroupView = function( eventSingletonManager, 
groupName, siteLinks, $sitelinkgroupview ) {
                return this._getView(
                        'sitelinkgroupview',
                        $sitelinkgroupview,
                        {
                                groupName: groupName,
-                               value: value,
+                               value: siteLinks,
                                eventSingletonManager: eventSingletonManager,
                                siteLinksChanger: 
this._entityChangersFactory.getSiteLinksChanger(),
                                entityIdPlainFormatter: 
this._entityIdPlainFormatter
diff --git 
a/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js 
b/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js
index 4d615aa..b9619cf 100644
--- 
a/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js
+++ 
b/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js
@@ -229,29 +229,29 @@
 QUnit.test( 'value()', function( assert ) {
        assert.expect( 2 );
        var siteLink = new wikibase.datamodel.SiteLink( 'enwiki', 'Main Page' ),
-               value = [siteLink],
+               siteLinks = [siteLink],
                $sitelinkgroupview = createSitelinkgroupview( {
                        groupName: 'group1',
-                       value: value
+                       value: siteLinks
                } ),
                sitelinkgroupview = $sitelinkgroupview.data( 
'sitelinkgroupview' );
 
        assert.deepEqual(
                sitelinkgroupview.value(),
-               value,
+               siteLinks,
                'Retrieved initial value.'
        );
 
-       value = [
+       siteLinks = [
                new wikibase.datamodel.SiteLink( 'dewiki', '1234' ),
                new wikibase.datamodel.SiteLink( 'enwiki', '5678' )
        ];
 
-       sitelinkgroupview.value( value );
+       sitelinkgroupview.value( siteLinks );
 
        assert.deepEqual(
                sitelinkgroupview.value(),
-               value,
+               siteLinks,
                'Set and retrieved new value.'
        );
 } );

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I4348ae29b9be7ad6596e5ed9ebb1538671fa7754
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: Adrian Heine <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to