jenkins-bot has submitted this change and it was merged. Change subject: Consolidated wikibase.Site ......................................................................
Consolidated wikibase.Site Change-Id: Ife7f678086b15696280fe693bbc6acdb9c86f6b1 --- M client/resources/jquery.wikibase/jquery.wikibase.linkitem.js M client/resources/wikibase.client.PageConnector.js M lib/resources/Resources.php M lib/resources/wikibase.Site.js M lib/resources/wikibase.ui.PropertyEditTool.EditableSiteLink.js M lib/resources/wikibase.ui.PropertyEditTool.EditableValue.Interface.js M lib/resources/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.js M lib/tests/qunit/wikibase.Site.tests.js M lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.Interface.tests.js M lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.tests.js 10 files changed, 78 insertions(+), 108 deletions(-) Approvals: WikidataJenkins: Verified Thiemo Mättig (WMDE): Looks good to me, approved jenkins-bot: Verified diff --git a/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js b/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js index 74972e9..1a1ba47 100644 --- a/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js +++ b/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js @@ -526,13 +526,13 @@ $( '<td>' ) .addClass( 'wbclient-linkItem-column-site' ) .text( site.getName() ) - .css( 'direction', site.getLanguage().dir ) + .css( 'direction', site.getLanguageDirection() ) ) .append( $( '<td>' ) .addClass( 'wbclient-linkItem-column-page' ) .append( site.getLinkTo( entitySitelinks.title ) ) - .css( 'direction', site.getLanguage().dir ) + .css( 'direction', site.getLanguageDirection() ) ); }, diff --git a/client/resources/wikibase.client.PageConnector.js b/client/resources/wikibase.client.PageConnector.js index 931b381..8d29597 100644 --- a/client/resources/wikibase.client.PageConnector.js +++ b/client/resources/wikibase.client.PageConnector.js @@ -341,12 +341,12 @@ }; // Sitelinks - entityData.sitelinks[ firstSite.getGlobalSiteId() ] = { - site: firstSite.getGlobalSiteId(), + entityData.sitelinks[ firstSite.getId() ] = { + site: firstSite.getId(), title: firstPageName }; - entityData.sitelinks[ secondSite.getGlobalSiteId() ] = { - site: secondSite.getGlobalSiteId(), + entityData.sitelinks[ secondSite.getId() ] = { + site: secondSite.getId(), title: secondPageName }; diff --git a/lib/resources/Resources.php b/lib/resources/Resources.php index f9f054a..f910d90 100644 --- a/lib/resources/Resources.php +++ b/lib/resources/Resources.php @@ -33,12 +33,24 @@ 'wikibase.sites' => $moduleTemplate + array( 'scripts' => array( 'wikibase.sites.js', - 'wikibase.Site.js', ), 'dependencies' => array( 'mw.config.values.wbSiteDetails', - 'wikibase' + 'wikibase', + 'wikibase.Site', ) + ), + + 'wikibase.Site' => $moduleTemplate + array( + 'scripts' => array( + 'wikibase.Site.js', + ), + 'dependencies' => array( + 'jquery', + 'mediawiki.util', + 'util.inherit', + 'wikibase', + ), ), 'mw.config.values.wbSiteDetails' => $moduleTemplate + array( @@ -782,7 +794,7 @@ if ( defined( 'ULS_VERSION' ) ) { $modules['wikibase']['dependencies'][] = 'ext.uls.mediawiki'; - $modules['wikibase.sites']['dependencies'][] = 'ext.uls.mediawiki'; + $modules['wikibase.Site']['dependencies'][] = 'ext.uls.mediawiki'; $modules['wikibase.ui.PropertyEditTool']['dependencies'][] = 'ext.uls.mediawiki'; } diff --git a/lib/resources/wikibase.Site.js b/lib/resources/wikibase.Site.js index 22dc0c1..0b428ba 100644 --- a/lib/resources/wikibase.Site.js +++ b/lib/resources/wikibase.Site.js @@ -47,22 +47,6 @@ }, /** - * Returns the global site id of the site. - * - * @deprecated Use getId() instead. There is no "global" ID anymore. Before, the local ID - * simply was the language code which is still available by getLanguageCode() and - * the global ID was the normal ID. - * - * NOTE: The getGlobalSiteId() in the PHP class is a concept of the Sites within MediaWiki and - * has nothing to do with the Site in our data model. - * - * @return string - */ - getGlobalSiteId: function() { - return this.getId(); - }, - - /** * Returns the group of the site. * * @since 0.4 @@ -128,28 +112,12 @@ }, /** - * Returns an object containing the site's language code and language direction + * Returns the site language's text direction. * - * @return object language code and direction + * @return {string} */ - getLanguage: function() { - var dir = 'ltr', - languageCode = this.getLanguageCode(); - - // language might not be defined in ULS - if ( wb.getLanguages()[languageCode] ) { - if ( $.uls.data.isRtl( languageCode ) ) { - dir = 'rtl'; - } - } else { - // TODO: This should probably be logged somehow, because it really shouldn't happen. - dir = 'auto'; - } - - return { - code: languageCode, - dir: dir - }; + getLanguageDirection: function() { + return $.uls && $.uls.data.getDir( this.getLanguageCode() ) || 'auto'; }, /** diff --git a/lib/resources/wikibase.ui.PropertyEditTool.EditableSiteLink.js b/lib/resources/wikibase.ui.PropertyEditTool.EditableSiteLink.js index b089662..3777c6e 100644 --- a/lib/resources/wikibase.ui.PropertyEditTool.EditableSiteLink.js +++ b/lib/resources/wikibase.ui.PropertyEditTool.EditableSiteLink.js @@ -73,12 +73,15 @@ _bindInterfaces: function( interfaces ) { PARENT.prototype._bindInterfaces.call( this, interfaces ); + var selectedSite = this.siteIdInterface.getSelectedSite(); + // TODO: move this into _init() perhaps /* TODO: Setting the language attributes on initialisation will not be required as soon as the attributes are already attached in PHP for the non-JS version */ - if ( this.siteIdInterface.getSelectedSite() !== null ) { + if( selectedSite !== null ) { this.sitePageInterface.setLanguageAttributes( - this.siteIdInterface.getSelectedSite().getLanguage() + selectedSite.getLanguageCode(), + selectedSite.getLanguageDirection() ); } }, @@ -118,7 +121,10 @@ pageInterfaceCell.removeClassByRegex( /^wb-sitelinks-link-.+/ ); pageInterfaceCell.addClass( 'wb-sitelinks-link wb-sitelinks-link-' + siteId ); // directly updating the page interface's language attributes when a site is selected - pageInterface.setLanguageAttributes( site.getLanguage() ); + pageInterface.setLanguageAttributes( + site.getLanguageCode(), + site.getLanguageDirection() + ); } // only enable site page selector if there is a valid site id selected diff --git a/lib/resources/wikibase.ui.PropertyEditTool.EditableValue.Interface.js b/lib/resources/wikibase.ui.PropertyEditTool.EditableValue.Interface.js index f8dafa8..42e4f02 100644 --- a/lib/resources/wikibase.ui.PropertyEditTool.EditableValue.Interface.js +++ b/lib/resources/wikibase.ui.PropertyEditTool.EditableValue.Interface.js @@ -216,10 +216,11 @@ /** * Set HTML language and directionality attributes. * - * @param {object} language + * @param {string} code + * @param {string} dir */ - setLanguageAttributes: function( language ) { - this.getSubject().attr( 'lang', language.code ).attr( 'dir', language.dir ); + setLanguageAttributes: function( code, dir ) { + this.getSubject().attr( 'lang', code ).attr( 'dir', dir ); this.updateLanguageAttributes(); }, diff --git a/lib/resources/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.js b/lib/resources/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.js index ab79cf5..1bac97f 100644 --- a/lib/resources/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.js +++ b/lib/resources/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.js @@ -350,7 +350,7 @@ } return mw.util.getUrl( - 'Special:SetSiteLink/' + entityId + '/' + this.getSite().getGlobalSiteId() + 'Special:SetSiteLink/' + entityId + '/' + this.getSite().getId() ); }, diff --git a/lib/tests/qunit/wikibase.Site.tests.js b/lib/tests/qunit/wikibase.Site.tests.js index 3d218aa..667de5b 100644 --- a/lib/tests/qunit/wikibase.Site.tests.js +++ b/lib/tests/qunit/wikibase.Site.tests.js @@ -1,77 +1,60 @@ /** - * QUnit tests for site component - * @see https://www.mediawiki.org/wiki/Extension:Wikibase - * - * @since 0.1 - * * @licence GNU GPL v2+ * @author H. Snater */ -( function( mw, wb, $, QUnit, undefined ) { +( function( mw, wb, $, QUnit ) { 'use strict'; - QUnit.module( 'wikibase.Site', QUnit.newWbEnvironment( { - setup: function() { - this.siteDetails = { - apiUrl: 'http://en.wikipedia.org/w/api.php', - id: 'en-global', - name: 'English Wikipedia', - pageUrl: 'http://en.wikipedia.org/wiki/$1', - shortName: 'English', - languageCode: 'en', - group: 'wikipedia' - }; - this.string = 'test'; - this.site = new wb.Site( this.siteDetails ); - }, - teardown: function() { - delete( this.siteDetails ); - delete( this.string ); - delete( this.site ); - } - } ) ); + var siteDetails = { + apiUrl: 'http://en.wikipedia.org/w/api.php', + id: 'en-global', + name: 'English Wikipedia', + pageUrl: 'http://en.wikipedia.org/wiki/$1', + shortName: 'English', + languageCode: 'en', + group: 'wikipedia' + }; + + var string = 'test', + site = new wb.Site( siteDetails ); + + QUnit.module( 'wikibase.Site', QUnit.newWbEnvironment() ); QUnit.test( 'check init', function( assert ) { assert.strictEqual( - this.site._siteDetails, - this.siteDetails, + site._siteDetails, + siteDetails, 'set site details' ); assert.strictEqual( - this.site.getId(), - this.siteDetails.id, + site.getId(), + siteDetails.id, 'verified site id' ); assert.strictEqual( - this.site.getGlobalSiteId(), // deprecated, equivalent to getId() now - this.site.getId(), - 'verified global site id' - ); - - assert.strictEqual( - this.site.getName(), - this.siteDetails.name, + site.getName(), + siteDetails.name, 'verified site name' ); assert.strictEqual( - this.site.getShortName(), - this.siteDetails.shortName, + site.getShortName(), + siteDetails.shortName, 'verified short site name' ); assert.strictEqual( - this.site.getApi(), - this.siteDetails.apiUrl, + site.getApi(), + siteDetails.apiUrl, 'verified site api' ); assert.strictEqual( - this.site.getGroup(), - this.siteDetails.group, + site.getGroup(), + siteDetails.group, 'verified site group' ); } ); @@ -79,7 +62,7 @@ QUnit.test( 'link handling', function( assert ) { assert.equal( - this.site.getLinkTo( this.string )[0].nodeName, + site.getLinkTo( string )[0].nodeName, 'A', 'created DOM node for link' ); @@ -89,29 +72,29 @@ QUnit.test( 'language functions', function( assert ) { assert.equal( - this.site.getLanguageCode(), + site.getLanguageCode(), 'en', 'retrieved language code' ); assert.equal( - this.site.getLanguage().dir, + site.getLanguageDirection(), ( $.uls !== undefined ) ? 'ltr' : 'auto', 'retrieved ltr language direction' ); - this.site._siteDetails.languageCode = 'ar'; + site._siteDetails.languageCode = 'ar'; assert.equal( - this.site.getLanguage().dir, + site.getLanguageDirection(), ( $.uls !== undefined ) ? 'rtl' : 'auto', 'retrieved rtl language direction' ); - this.site._siteDetails.languageCode = 'non-existing-code'; + site._siteDetails.languageCode = 'non-existing-code'; assert.equal( - this.site.getLanguage().dir, + site.getLanguageDirection(), 'auto', 'received "auto" when no special language direction could be retrieved' ); diff --git a/lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.Interface.tests.js b/lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.Interface.tests.js index 905b4ec..c5055f8 100644 --- a/lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.Interface.tests.js +++ b/lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.Interface.tests.js @@ -293,7 +293,7 @@ var subject = newTestInterface(); subject._subject.appendTo( 'body' ); - subject.setLanguageAttributes( this.language.ltr ); + subject.setLanguageAttributes( this.language.ltr.code, this.language.ltr.dir ); assert.equal( subject.getSubject().attr( 'lang' ), @@ -307,7 +307,7 @@ 'assign ltr language direction to subject' ); - subject.setLanguageAttributes( this.language.rtl ); + subject.setLanguageAttributes( this.language.rtl.code, this.language.rtl.dir ); assert.equal( subject.getSubject().attr( 'lang' ), @@ -339,7 +339,7 @@ 'input has rtl direction' ); - subject.setLanguageAttributes( this.language.ltr ); + subject.setLanguageAttributes( this.language.ltr.code, this.language.ltr.dir ); assert.equal( subject._inputElem.attr( 'lang' ), diff --git a/lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.tests.js b/lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.tests.js index f5578eb..47d7d9e 100644 --- a/lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.tests.js +++ b/lib/tests/qunit/wikibase.ui.PropertyEditTool.EditableValue.SitePageInterface.tests.js @@ -89,7 +89,7 @@ test( 'update language attributes', function() { - this.subject.setLanguageAttributes( this.language.ltr ); + this.subject.setLanguageAttributes( this.language.ltr.code, this.language.ltr.dir ); this.subject._subject.appendTo( 'body' ); equal( @@ -110,7 +110,7 @@ 'start editing' ); - this.subject.setLanguageAttributes( this.language.rtl ); + this.subject.setLanguageAttributes( this.language.rtl.code, this.language.rtl.dir ); equal( this.subject._inputElem.data( 'suggester' ).options.menu.element.attr( 'lang' ), -- To view, visit https://gerrit.wikimedia.org/r/150855 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ife7f678086b15696280fe693bbc6acdb9c86f6b1 Gerrit-PatchSet: 8 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Henning Snater <henning.sna...@wikimedia.de> Gerrit-Reviewer: Fomafix Gerrit-Reviewer: Hoo man <h...@online.de> Gerrit-Reviewer: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de> Gerrit-Reviewer: WikidataJenkins <wikidata-servi...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits