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