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

Reply via email to