Jeroen De Dauw has submitted this change and it was merged.
Change subject: Inject configured mwApi into RepoApi
......................................................................
Inject configured mwApi into RepoApi
Change-Id: Ibae5bfca6f5d3b72257a5a97ecaf19b01ed42a15
---
M client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
M lib/resources/wikibase.RepoApi/resources.php
M lib/resources/wikibase.RepoApi/wikibase.RepoApi.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.referenceview.tests.js
M lib/tests/qunit/resources.php
M lib/tests/qunit/wikibase.RepoApi/wikibase.RepoApi.tests.js
M repo/resources/Resources.php
M repo/resources/wikibase.ui.entityViewInit.js
9 files changed, 29 insertions(+), 20 deletions(-)
Approvals:
Jeroen De Dauw: Looks good to me, approved
diff --git a/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
b/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
index 746edef..39b5aeb 100644
--- a/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
+++ b/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
@@ -347,7 +347,7 @@
this.targetArticle = $( '#wbclient-linkItem-page' ).val();
this._pageConnector = new wb.PageConnector(
- new wb.RepoApi(),
+ new wb.RepoApi( this._mwApiForRepo ),
this.options.globalSiteId,
this.options.pageTitle,
this.targetSite,
diff --git a/lib/resources/wikibase.RepoApi/resources.php
b/lib/resources/wikibase.RepoApi/resources.php
index adc3e24..4831406 100644
--- a/lib/resources/wikibase.RepoApi/resources.php
+++ b/lib/resources/wikibase.RepoApi/resources.php
@@ -33,9 +33,7 @@
),
'dependencies' => array(
'json',
- 'mw.config.values.wbRepo',
'wikibase',
- 'wikibase.api.getLocationAgnosticMwApi',
),
),
diff --git a/lib/resources/wikibase.RepoApi/wikibase.RepoApi.js
b/lib/resources/wikibase.RepoApi/wikibase.RepoApi.js
index f501b31..ca9248b 100644
--- a/lib/resources/wikibase.RepoApi/wikibase.RepoApi.js
+++ b/lib/resources/wikibase.RepoApi/wikibase.RepoApi.js
@@ -8,25 +8,29 @@
( function( mw, wb, $ ) {
'use strict';
-var repoConfig = mw.config.get( 'wbRepo' );
-var repoApiEndpoint = repoConfig.url + repoConfig.scriptPath + '/api.php';
-var mwApi = wb.api.getLocationAgnosticMwApi( repoApiEndpoint );
-
/**
* Constructor to create an API object for interaction with the repo Wikibase
API.
* @constructor
- * @since 0.4 (since 0.3 as wb.Api without support for client usage)
+ * @since 0.5 (in 0.4 without constructor parameters, in 0.3 as wb.Api without
support for client
+ * usage)
+ *
+ * @param {mw.Api} api
+ *
+ * @throws {Error} if parameters are not specified properly.
*/
-wb.RepoApi = function wbRepoApi() {
+wb.RepoApi = function wbRepoApi( api ) {
+ if( api === undefined ) {
+ throw new Error( 'Required parameters not specified properly' );
+ }
+
+ this._api = api;
};
$.extend( wb.RepoApi.prototype, {
/**
- * mediaWiki.Api object for internal usage. By having this initialized
in the prototype, we can
- * share one instance for all instances of the wikibase API.
* @type mw.Api
*/
- _api: mwApi,
+ _api: null,
/**
* Creates a new entity with the given type and data.
diff --git a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
index e64246e..79954b9 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.claimview.tests.js
@@ -30,7 +30,7 @@
value: value || null,
entityStore: entityStore,
valueViewBuilder: valueViewBuilder,
- api: new wb.AbstractedRepoApi( new wb.RepoApi() )
+ api: new wb.AbstractedRepoApi( new mw.Api() )
};
return $( '<div/>' )
diff --git
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.referenceview.tests.js
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.referenceview.tests.js
index 6c8ed81..13f3017 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.referenceview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.referenceview.tests.js
@@ -38,7 +38,7 @@
statementGuid: statementGuid,
entityStore: entityStore,
valueViewBuilder: valueViewBuilder,
- api: new wb.AbstractedRepoApi( new wb.RepoApi() )
+ api: new wb.AbstractedRepoApi( new mw.Api() )
} );
return $( '<div/>' )
diff --git a/lib/tests/qunit/resources.php b/lib/tests/qunit/resources.php
index aaab898..0e0ded7 100644
--- a/lib/tests/qunit/resources.php
+++ b/lib/tests/qunit/resources.php
@@ -68,7 +68,9 @@
'wikibase.RepoApi/wikibase.RepoApi.tests.js',
),
'dependencies' => array(
+ 'mw.config.values.wbRepo',
'wikibase',
+ 'wikibase.api.getLocationAgnosticMwApi',
'wikibase.AbstractedRepoApi',
'wikibase.RepoApi',
),
diff --git a/lib/tests/qunit/wikibase.RepoApi/wikibase.RepoApi.tests.js
b/lib/tests/qunit/wikibase.RepoApi/wikibase.RepoApi.tests.js
index d2a69b8..8931456 100644
--- a/lib/tests/qunit/wikibase.RepoApi/wikibase.RepoApi.tests.js
+++ b/lib/tests/qunit/wikibase.RepoApi/wikibase.RepoApi.tests.js
@@ -6,14 +6,16 @@
* @author H. Snater < [email protected] >
*/
-( function( wb, $, QUnit, undefined ) {
+( function( mw, wb, $, QUnit, undefined ) {
'use strict';
+
+ var mwApi = new mw.Api();
/**
* wb.RepoApi object
* @var {Object}
*/
- var api = new wb.RepoApi();
+ var api = new wb.RepoApi( mwApi );
/**
* Queue used run asynchronous tests synchronously.
@@ -511,4 +513,4 @@
} );
-}( wikibase, jQuery, QUnit ) );
+}( mediaWiki, wikibase, jQuery, QUnit ) );
diff --git a/repo/resources/Resources.php b/repo/resources/Resources.php
index 70c88c8..45a1c6d 100644
--- a/repo/resources/Resources.php
+++ b/repo/resources/Resources.php
@@ -24,14 +24,15 @@
'wikibase.ui.entityViewInit.js' // should
probably be adjusted for more modularity
),
'dependencies' => array(
- 'mediawiki.api',
'mediawiki.user',
+ 'mw.config.values.wbRepo',
'jquery.wikibase.entityview',
'jquery.wikibase.toolbarcontroller',
'jquery.wikibase.wbtooltip',
'jquery.cookie',
'jquery.wikibase.claimgrouplabelscroll',
'jquery.wikibase.sitelinkgroupview',
+ 'wikibase.api.getLocationAgnosticMwApi',
'wikibase.AbstractedRepoApi',
'wikibase.dataTypes',
'wikibase.experts',
diff --git a/repo/resources/wikibase.ui.entityViewInit.js
b/repo/resources/wikibase.ui.entityViewInit.js
index 8f03ffc..4494942 100644
--- a/repo/resources/wikibase.ui.entityViewInit.js
+++ b/repo/resources/wikibase.ui.entityViewInit.js
@@ -110,8 +110,10 @@
* @param {jQuery} $entityview
*/
function createEntityDom( entity, $entityview ) {
- var abstractedRepoApi = new wb.AbstractedRepoApi(),
- entityStore = buildEntityStore( abstractedRepoApi );
+ var repoConfig = mw.config.get( 'wbRepo' );
+ var mwApi = wb.api.getLocationAgnosticMwApi( repoConfig.url +
repoConfig.scriptPath + '/api.php' );
+ var abstractedRepoApi = new wb.AbstractedRepoApi( mwApi );
+ var entityStore = buildEntityStore( abstractedRepoApi );
$entityview
.entityview( {
--
To view, visit https://gerrit.wikimedia.org/r/145281
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ibae5bfca6f5d3b72257a5a97ecaf19b01ed42a15
Gerrit-PatchSet: 13
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <[email protected]>
Gerrit-Reviewer: Adrian Lang <[email protected]>
Gerrit-Reviewer: Henning Snater <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: WikidataJenkins <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits