WikidataBuilder has uploaded a new change for review.
https://gerrit.wikimedia.org/r/304691
Change subject: New Wikidata Build - 2016-08-14T10:00:02+0000
......................................................................
New Wikidata Build - 2016-08-14T10:00:02+0000
Change-Id: I13a3b58af19ecd008b4c6fd67ce4327d3da619f1
---
M composer.lock
M extensions/ArticlePlaceholder/extension.json
A extensions/ArticlePlaceholder/i18n/cy.json
A extensions/ArticlePlaceholder/includes/BaseTemplateToolboxHookHandler.php
M extensions/ArticlePlaceholder/phpcs.xml
A
extensions/ArticlePlaceholder/tests/phpunit/includes/BaseTemplateToolboxHookHandlerTest.php
M extensions/Wikibase/client/i18n/ckb.json
M extensions/Wikibase/client/i18n/la.json
M extensions/Wikibase/client/i18n/te.json
M extensions/Wikibase/lib/i18n/is.json
M extensions/Wikibase/lib/i18n/lb.json
M extensions/Wikibase/lib/i18n/nn.json
M extensions/Wikibase/lib/i18n/te.json
A extensions/Wikibase/lib/i18n/tokipona.json
M extensions/Wikibase/repo/i18n/bg.json
M extensions/Wikibase/repo/i18n/ckb.json
M extensions/Wikibase/repo/i18n/diq.json
M extensions/Wikibase/repo/i18n/id.json
M extensions/Wikibase/repo/i18n/is.json
M extensions/Wikibase/repo/i18n/it.json
M extensions/Wikibase/repo/i18n/ja.json
M extensions/Wikibase/repo/i18n/mr.json
M extensions/Wikibase/repo/i18n/nn.json
M extensions/Wikibase/repo/i18n/ru.json
M extensions/Wikibase/repo/i18n/yue.json
M extensions/Wikibase/repo/includes/Api/CreateClaim.php
M extensions/Wikibase/repo/includes/Api/EntityLoadingHelper.php
M extensions/Wikibase/repo/includes/Api/EntitySavingHelper.php
M extensions/Wikibase/repo/includes/Api/GetClaims.php
M extensions/Wikibase/repo/includes/Api/RemoveClaims.php
M extensions/Wikibase/repo/includes/Api/RemoveQualifiers.php
M extensions/Wikibase/repo/includes/Api/RemoveReferences.php
M extensions/Wikibase/repo/includes/Api/SetClaim.php
M extensions/Wikibase/repo/includes/Api/SetClaimValue.php
M extensions/Wikibase/repo/includes/Api/SetQualifier.php
M extensions/Wikibase/repo/includes/Api/SetReference.php
M extensions/Wikibase/repo/includes/Specials/SpecialItemByTitle.php
M extensions/Wikibase/repo/resources/Resources.php
D
extensions/Wikibase/repo/resources/wikibase.special/wikibase.special.itemByTitle.js
M extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js
M
extensions/Wikibase/repo/tests/phpunit/includes/Api/EntityLoadingHelperTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/Api/EntitySavingHelperTest.php
M
extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialItemByTitleTest.php
M
extensions/Wikibase/view/resources/jquery/wikibase/toolbar/jquery.wikibase.edittoolbar.js
M extensions/Wikibase/view/resources/wikibase/view/ToolbarViewController.js
M vendor/composer/autoload_classmap.php
M vendor/composer/installed.json
47 files changed, 694 insertions(+), 237 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata
refs/changes/91/304691/1
diff --git a/composer.lock b/composer.lock
index 9bfaef3..dbbd31b 100644
--- a/composer.lock
+++ b/composer.lock
@@ -782,12 +782,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-ArticlePlaceholder.git",
- "reference": "abe5908651e37f1a341d752552a72baf98454456"
+ "reference": "825dcf735dd4be4f0794f5c1ec23a561256a4167"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/abe5908651e37f1a341d752552a72baf98454456",
- "reference": "abe5908651e37f1a341d752552a72baf98454456",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/825dcf735dd4be4f0794f5c1ec23a561256a4167",
+ "reference": "825dcf735dd4be4f0794f5c1ec23a561256a4167",
"shasum": ""
},
"require-dev": {
@@ -812,7 +812,7 @@
],
"description": "Provides a special page with Wikibase information
about a certain topic, with invitation to create an article for the topic",
"homepage":
"https://www.mediawiki.org/wiki/Extension:ArticlePlaceholder",
- "time": "2016-08-10 20:34:15"
+ "time": "2016-08-11 21:49:41"
},
{
"name": "propertysuggester/property-suggester",
@@ -1568,12 +1568,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "56096e27d96a6e71f97e92f9b092deabb38307a3"
+ "reference": "10af0cf1d56dab400f3a305e282ad1247d4e6f8a"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/56096e27d96a6e71f97e92f9b092deabb38307a3",
- "reference": "56096e27d96a6e71f97e92f9b092deabb38307a3",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/10af0cf1d56dab400f3a305e282ad1247d4e6f8a",
+ "reference": "10af0cf1d56dab400f3a305e282ad1247d4e6f8a",
"shasum": ""
},
"require": {
@@ -1645,7 +1645,7 @@
"wikibaserepo",
"wikidata"
],
- "time": "2016-08-11 00:41:04"
+ "time": "2016-08-13 20:33:48"
},
{
"name": "wikibase/wikimedia-badges",
diff --git a/extensions/ArticlePlaceholder/extension.json
b/extensions/ArticlePlaceholder/extension.json
index d9dd0ba..75ebe1f 100644
--- a/extensions/ArticlePlaceholder/extension.json
+++ b/extensions/ArticlePlaceholder/extension.json
@@ -62,6 +62,9 @@
"remoteExtPath": "ArticlePlaceholder/modules"
},
"Hooks": {
+ "BaseTemplateToolbox": [
+
"ArticlePlaceholder\\BaseTemplateToolboxHookHandler::onBaseTemplateToolbox"
+ ],
"ScribuntoExternalLibraries": [
"ArticlePlaceholder\\Hooks::onScribuntoExternalLibraries"
],
diff --git a/extensions/ArticlePlaceholder/i18n/cy.json
b/extensions/ArticlePlaceholder/i18n/cy.json
new file mode 100644
index 0000000..6e5ac5a
--- /dev/null
+++ b/extensions/ArticlePlaceholder/i18n/cy.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jason.nlw",
+ "Robin Owain"
+ ]
+ },
+ "createtopicpage": "Creu'r ddalen",
+ "articleplaceholder-desc": "Darparwch ddalen arbennig gyda gwybodaeth
{{WBREPONAME}} am unrhyw bwnc, gyda gwahoddiad i greu erthygl am y topig
hwnnw.",
+ "articleplaceholder-abouttopic": "Am y pwnc",
+ "articleplaceholder-abouttopic-intro": "Mae'r ddalen arbennig hon yn
rhoi braslun i chi o dopig, sy'n tynnu data o {{WBREPONAME}}.",
+ "articleplaceholder-abouttopic-entityid": "Rhowch ID yr eitem ee Q25",
+ "articleplaceholder-abouttopic-submit": "crefft",
+ "articleplaceholder-abouttopic-no-entity-error": "Nid yw'r ID yma'n
ddilys.",
+ "articleplaceholder-abouttopic-create-article": "Crewch erthygl newydd,
gyda theitl",
+ "articleplaceholder-abouttopic-create-article-label": "Teitl yr
erthygl",
+ "articleplaceholder-abouttopic-create-article-mandatory": "Mae'n rhaid
rhoi teitl i'r erthygl",
+ "articleplaceholder-abouttopic-create-article-button": "Creu erthygl",
+ "articleplaceholder-abouttopic-create-article-submit-button":
"Cyflwyner",
+ "articleplaceholder-abouttopic-article-exists-error": "Mae tudalen o'r
enw yma ar y wici hwn",
+ "articleplaceholder-abouttopic-lua-entity": "Endid",
+ "articleplaceholder-abouttopic-lua-reference": "Cyfeiriadau",
+ "articleplaceholder-abouttopic-lua-identifier": "Adnoddau allanol",
+ "articleplaceholder-search-header": "Darganfod data ar y pwnc",
+ "articleplaceholder-createpage-title": "Creu $1",
+ "articleplaceholder-createpage-alreadyexists": "Mae dalen gyda'r teitl
$1 yn bodloi eisioes. Dewisiwch deitl arall.",
+ "articleplaceholder-createpage-notitleprovided": "Ni roesoch deitl;
gwnewch hynny ar gyfer y ddalen yr hoffwch ei chreu.",
+ "articleplaceholder-createpage-invalidtitleprovided": "Mae'r teitl a
roesoch yn annilys. Rhowch deitl dilys."
+}
diff --git
a/extensions/ArticlePlaceholder/includes/BaseTemplateToolboxHookHandler.php
b/extensions/ArticlePlaceholder/includes/BaseTemplateToolboxHookHandler.php
new file mode 100644
index 0000000..a70e87d
--- /dev/null
+++ b/extensions/ArticlePlaceholder/includes/BaseTemplateToolboxHookHandler.php
@@ -0,0 +1,137 @@
+<?php
+
+namespace ArticlePlaceholder;
+
+use BaseTemplate;
+use Exception;
+use SpecialPage;
+use SpecialPageFactory;
+use Title;
+use WebRequest;
+use Wikibase\Client\RepoLinker;
+use Wikibase\Client\WikibaseClient;
+use Wikibase\DataModel\Entity\EntityIdParser;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Services\Lookup\EntityLookup;
+
+/**
+ * Add Wikibase item link in toolbox for placeholders: Handler for the
"BaseTemplateToolbox" hook.
+ *
+ * @license GPL-2.0+
+ * @author Marius Hoch < [email protected] >
+ */
+class BaseTemplateToolboxHookHandler {
+
+ /**
+ * @var EntityIdParser
+ */
+ private $entityIdParser;
+
+ /**
+ * @var RepoLinker
+ */
+ private $repoLinker;
+
+ /**
+ * @var EntityLookup
+ */
+ private $entityLookup;
+
+ /**
+ * @param SpecialPage $specialPage
+ *
+ * @return self
+ */
+ private static function newFromGlobalState() {
+ $wikibaseClient = WikibaseClient::getDefaultInstance();
+
+ return new self(
+ $wikibaseClient->getEntityIdParser(),
+ $wikibaseClient->newRepoLinker(),
+ $wikibaseClient->getStore()->getEntityLookup()
+ );
+ }
+
+ /**
+ * @param EntityIdParser $entityIdParser
+ * @param RepoLinker $repoLinker
+ * @param EntityLookup $entityLookup
+ */
+ public function __construct(
+ EntityIdParser $entityIdParser,
+ RepoLinker $repoLinker,
+ EntityLookup $entityLookup
+ ) {
+ $this->entityIdParser = $entityIdParser;
+ $this->repoLinker = $repoLinker;
+ $this->entityLookup = $entityLookup;
+ }
+
+ /**
+ * @param BaseTemplate $baseTemplate
+ * @param array &$toolbox
+ */
+ public static function onBaseTemplateToolbox( BaseTemplate
$baseTemplate, array &$toolbox ) {
+ // Return early (for performance reasons) in case we're not on
+ // Special:AboutTopic (even before calling newFromGlobalState)
+ $title = $baseTemplate->getSkin()->getTitle();
+
+ if ( $title->getNamespace() !== NS_SPECIAL ) {
+ return;
+ }
+
+ $canonicalSpecialPageName = SpecialPageFactory::resolveAlias(
$title->getText() )[0];
+ if ( $canonicalSpecialPageName !== 'AboutTopic' ) {
+ return;
+ }
+
+ $self = self::newFromGlobalState();
+ $self->doBaseTemplateToolbox( $baseTemplate, $toolbox );
+ }
+
+ /**
+ * @param BaseTemplate $baseTemplate
+ * @param array &$toolbox
+ */
+ public function doBaseTemplateToolbox( BaseTemplate $baseTemplate,
array &$toolbox ) {
+ $itemId = $this->getItemId(
+ $baseTemplate->getSkin()->getTitle(),
+ $baseTemplate->getSkin()->getRequest()
+ );
+
+ if ( $itemId && $this->entityLookup->hasEntity( $itemId ) ) {
+ // Duplicated from
Wikibase\ClientHooks::onBaseTemplateToolbox
+ $toolbox['wikibase'] = [
+ 'text' => $baseTemplate->getMsg(
'wikibase-dataitem' )->text(),
+ 'href' => $this->repoLinker->getEntityUrl(
$itemId ),
+ 'id' => 't-wikibase'
+ ];
+ }
+ }
+
+ /**
+ * @param Title $title
+ * @param WebRequest $webRequest
+ *
+ * @return ItemId|null
+ */
+ private function getItemId( Title $title, WebRequest $webRequest ) {
+ $idSerialization = $webRequest->getText(
+ 'entityid',
+ SpecialPageFactory::resolveAlias( $title->getText() )[1]
+ );
+
+ if ( !$idSerialization ) {
+ return null;
+ }
+
+ try {
+ return $this->entityIdParser->parse( $idSerialization );
+ } catch ( Exception $ex ) {
+ // Ignore
+ }
+
+ return null;
+ }
+
+}
diff --git a/extensions/ArticlePlaceholder/phpcs.xml
b/extensions/ArticlePlaceholder/phpcs.xml
index df524dd..b03ae21 100644
--- a/extensions/ArticlePlaceholder/phpcs.xml
+++ b/extensions/ArticlePlaceholder/phpcs.xml
@@ -7,6 +7,11 @@
<rule ref="Generic.PHP.CharacterBeforePHPOpeningTag" />
<rule ref="PSR1" />
+ <rule ref="PSR1.Methods.CamelCapsMethodName.NotCamelCaps">
+ <!-- Exclude test methods like
"testGivenInvalidInput_methodThrowsException". -->
+ <exclude-pattern>tests.phpunit*Test*\.php</exclude-pattern>
+ </rule>
+
<rule ref="PSR2.Files" />
<rule ref="Squiz.Classes.DuplicateProperty" />
diff --git
a/extensions/ArticlePlaceholder/tests/phpunit/includes/BaseTemplateToolboxHookHandlerTest.php
b/extensions/ArticlePlaceholder/tests/phpunit/includes/BaseTemplateToolboxHookHandlerTest.php
new file mode 100644
index 0000000..77bf5f7
--- /dev/null
+++
b/extensions/ArticlePlaceholder/tests/phpunit/includes/BaseTemplateToolboxHookHandlerTest.php
@@ -0,0 +1,208 @@
+<?php
+
+namespace ArticlePlaceholder\Tests;
+
+use ArticlePlaceholder\BaseTemplateToolboxHookHandler;
+use BaseTemplate;
+use MediaWikiTestCase;
+use Skin;
+use Title;
+use WebRequest;
+use Wikibase\Client\WikibaseClient;
+use Wikibase\DataModel\Entity\Item;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\Test\MockClientStore;
+
+/**
+ * @group ArticlePlaceholder
+ *
+ * @covers ArticlePlaceholder\BaseTemplateToolboxHookHandler
+ *
+ * @license GPL-2.0+
+ * @author Marius Hoch < [email protected] >
+ */
+class BaseTemplateToolboxHookHandlerTest extends MediaWikiTestCase {
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->setUserLang( 'qqx' );
+
+ $clientStore = new MockClientStore();
+ $wikibaseClient = WikibaseClient::getDefaultInstance();
+ $wikibaseClient->overrideStore( $clientStore );
+
+ $mockRepository = $clientStore->getEntityRevisionLookup();
+ $item = new Item( new ItemId( 'Q2013' ) );
+
+ $mockRepository->putEntity( $item );
+ }
+
+ public function tearDown() {
+ parent::tearDown();
+
+ WikibaseClient::getDefaultInstance( 'reset' );
+ }
+
+ public function testOnBaseTemplateToolbox_wrongNamespace() {
+ $title = $this->getMock( Title::class );
+ $title->expects( $this->once() )
+ ->method( 'getNamespace' )
+ ->will( $this->returnValue( 2 ) );
+
+ // We abort early, before Title::getText is ever called
+ $title->expects( $this->never() )
+ ->method( 'getText' );
+
+ $baseTemplate = $this->getBaseTemplate( $title );
+
+ $arr = [];
+ BaseTemplateToolboxHookHandler::onBaseTemplateToolbox(
$baseTemplate, $arr );
+
+ $this->assertSame( [], $arr );
+ }
+
+ public function testOnBaseTemplateToolbox_wrongSpecialPageName() {
+ $title = $this->getMock( Title::class );
+ $title->expects( $this->once() )
+ ->method( 'getNamespace' )
+ ->will( $this->returnValue( NS_SPECIAL ) );
+
+ // Title::getText is only called once, because we abort after
checking the name
+ $title->expects( $this->once() )
+ ->method( 'getText' )
+ ->will( $this->returnValue( 'Preferences' ) );
+
+ $baseTemplate = $this->getBaseTemplate( $title );
+
+ $arr = [];
+ BaseTemplateToolboxHookHandler::onBaseTemplateToolbox(
$baseTemplate, $arr );
+
+ $this->assertSame( [], $arr );
+ }
+
+ public function testOnBaseTemplateToolbox_invalidItemId() {
+ $title = $this->getAboutTopicTitle( 'not-an-item-id' );
+
+ $baseTemplate = $this->getBaseTemplate( $title );
+
+ $arr = [];
+ BaseTemplateToolboxHookHandler::onBaseTemplateToolbox(
$baseTemplate, $arr );
+
+ $this->assertSame( [], $arr );
+ }
+
+ public function testOnBaseTemplateToolbox_unknownItemId() {
+ $title = $this->getAboutTopicTitle( 'Q42' );
+
+ $baseTemplate = $this->getBaseTemplate( $title );
+
+ $arr = [];
+ BaseTemplateToolboxHookHandler::onBaseTemplateToolbox(
$baseTemplate, $arr );
+
+ $this->assertSame( [], $arr );
+ }
+
+ public function testOnBaseTemplateToolbox_subPage() {
+ $title = $this->getAboutTopicTitle( 'Q2013' );
+
+ $baseTemplate = $this->getBaseTemplate( $title );
+
+ $toolbox = [];
+ BaseTemplateToolboxHookHandler::onBaseTemplateToolbox(
$baseTemplate, $toolbox );
+
+ $this->assertAmendedToolbox( $toolbox );
+ }
+
+ public function testOnBaseTemplateToolbox_entityidParam() {
+ $title = $this->getAboutTopicTitle();
+
+ $baseTemplate = $this->getBaseTemplate( $title, 'Q2013' );
+
+ $toolbox = [];
+ BaseTemplateToolboxHookHandler::onBaseTemplateToolbox(
$baseTemplate, $toolbox );
+
+ $this->assertAmendedToolbox( $toolbox );
+ }
+
+ public function
testOnBaseTemplateToolbox_entityidParamOverridesSubPage() {
+ // This matches the special page's behaviour.
+ $title = $this->getAboutTopicTitle( 'Q123' );
+
+ $baseTemplate = $this->getBaseTemplate( $title, 'Q2013' );
+
+ $toolbox = [];
+ BaseTemplateToolboxHookHandler::onBaseTemplateToolbox(
$baseTemplate, $toolbox );
+
+ $this->assertAmendedToolbox( $toolbox );
+ }
+
+ private function assertAmendedToolbox( $toolbox ) {
+ $itemId = new ItemId( 'Q2013' );
+ $href =
WikibaseClient::getDefaultInstance()->newRepoLinker()->getEntityUrl( $itemId );
+
+ $this->assertSame(
+ [
+ 'wikibase' => [
+ 'text' => '(wikibase-dataitem)',
+ 'href' => $href,
+ 'id' => 't-wikibase'
+ ]
+ ],
+ $toolbox
+ );
+ }
+
+ private function getAboutTopicTitle( $subPage = null ) {
+ $titleText = 'AboutTopic';
+
+ if ( $subPage ) {
+ $titleText .= '/' . $subPage;
+ }
+
+ $title = $this->getMock( Title::class );
+ $title->expects( $this->once() )
+ ->method( 'getNamespace' )
+ ->will( $this->returnValue( NS_SPECIAL ) );
+
+ $title->expects( $this->exactly( 2 ) )
+ ->method( 'getText' )
+ ->will( $this->returnValue( $titleText ) );
+
+ return $title;
+ }
+
+ private function getBaseTemplate( Title $title, $itemIdParam = null ) {
+ $request = $this->getMock( WebRequest::class );
+ $request->expects( $this->any() )
+ ->method( 'getText' )
+ ->will( $this->returnCallback( function( $name,
$default ) use ( $itemIdParam ) {
+ $this->assertSame( 'entityid', $name );
+
+ return $itemIdParam ?: $default;
+ } ) );
+
+ $skin = $this->getMockBuilder( Skin::class )
+ ->setMethods( [ 'getTitle', 'getRequest' ] )
+ ->getMockForAbstractClass();
+
+ $skin->expects( $this->any() )
+ ->method( 'getTitle' )
+ ->will( $this->returnValue( $title ) );
+
+ $skin->expects( $this->any() )
+ ->method( 'getRequest' )
+ ->will( $this->returnValue( $request ) );
+
+ $baseTemplate = $this->getMockBuilder( BaseTemplate::class )
+ ->setMethods( [ 'getSkin' ] )
+ ->getMockForAbstractClass();
+
+ $baseTemplate->expects( $this->any() )
+ ->method( 'getSkin' )
+ ->will( $this->returnValue( $skin ) );
+
+ return $baseTemplate;
+ }
+
+}
diff --git a/extensions/Wikibase/client/i18n/ckb.json
b/extensions/Wikibase/client/i18n/ckb.json
index 95f28a8..74ac6b4 100644
--- a/extensions/Wikibase/client/i18n/ckb.json
+++ b/extensions/Wikibase/client/i18n/ckb.json
@@ -19,7 +19,7 @@
"wikibase-comment-sitelink-remove": "بەستەری زمانی سڕدراو: $1",
"wikibase-comment-multi": "$1 {{PLURAL:$1|گۆڕانکاری}}",
"wikibase-dataitem": "بەندی {{WBREPONAME}}",
- "wikibase-editlinks": "دەستکاریی گرێدانەکان بکە",
+ "wikibase-editlinks": "دەستکاریی گرێدانەکان",
"wikibase-editlinkstitle": "بەستەرەکانی نێوانویکی دەستکاری بکە",
"wikibase-linkitem-addlinks": "گرێدانەکان زیاد بکە",
"wikibase-linkitem-close": "وتووێژەکە ببەستە و دیسان پەڕەکە بار بکەوە",
diff --git a/extensions/Wikibase/client/i18n/la.json
b/extensions/Wikibase/client/i18n/la.json
index 1df28df..d0d1917 100644
--- a/extensions/Wikibase/client/i18n/la.json
+++ b/extensions/Wikibase/client/i18n/la.json
@@ -4,7 +4,8 @@
"Autokrator",
"UV",
"Lesgles",
- "Laurentianus"
+ "Laurentianus",
+ "Amahoney"
]
},
"tooltip-t-wikibase": "Nexus ad rem repositorii Vicibasis",
@@ -16,6 +17,7 @@
"wikibase-rc-hide-wikidata-hide": "Celare",
"wikibase-rc-hide-wikidata-show": "Monstrare",
"wikibase-rc-show-wikidata-pref": "Recensiones apud {{WBREPONAME}}
factas in nuper mutatorum indice ostendere",
+ "wikibase-rc-wikibase-edit-letter": "D",
"wikibase-rc-wikibase-edit-title": "Recensio apud Wikidata facta",
"wikibase-watchlist-show-changes-pref": "Mutationes apud {{WBREPONAME}}
factas, siquas paginas observandas afficiant, in earum indice ostendere",
"wikibase-otherprojects": "Inceptis aliis"
diff --git a/extensions/Wikibase/client/i18n/te.json
b/extensions/Wikibase/client/i18n/te.json
index f179cc3..6ac799f 100644
--- a/extensions/Wikibase/client/i18n/te.json
+++ b/extensions/Wikibase/client/i18n/te.json
@@ -4,7 +4,8 @@
"Arjunaraoc",
"Ravichandra",
"Veeven",
- "రహ్మానుద్దీన్"
+ "రహ్మానుద్దీన్",
+ "WP MANIKHANTA"
]
},
"tooltip-t-wikibase": "ఈ పేజీకి జత చేసి ఉన్న వికీడేటా పేజీకి లంకె",
@@ -27,5 +28,5 @@
"wikibase-rc-wikibase-edit-title": "{{WBREPONAME}} సవరణ",
"wikibase-unconnectedpages-submit": "పేజీలను చూపించు",
"wikibase-pageinfo-entity-id-none": "ఏమీలేదు",
- "wikibase-otherprojects": "ఇతర ప్రాజెక్టులు"
+ "wikibase-otherprojects": "ఇతర ప్రాజక్టులలో"
}
diff --git a/extensions/Wikibase/lib/i18n/is.json
b/extensions/Wikibase/lib/i18n/is.json
index d6e0848..d5008e6 100644
--- a/extensions/Wikibase/lib/i18n/is.json
+++ b/extensions/Wikibase/lib/i18n/is.json
@@ -10,10 +10,10 @@
"wikibase-deletedentity-property": "Eyddur eiginleiki",
"wikibase-deletedentity-query": "Eydd fyrirspurn",
"wikibase-error-unexpected": "Villa: $1",
- "wikibase-error-save-generic": "Villa átti sér stað þegar þú vistaðir.
Það mistókst að vista breytingarnar þínar.",
- "wikibase-error-remove-generic": "Villa átti sér stað þegar þú
fjarlægðir. Það mistókst að ljúka breytingum þínum.",
- "wikibase-error-save-connection": "Tengingar villa átti sér stað þegar
þú vistaðir. Það mistókst að ljúka breytingunum þínum. Athugaðu hvort þú sért
tengd/ur netinu.",
- "wikibase-error-remove-connection": "Tengingar villa átti sér stað
þegar þú fjarlægðir. Það mistókst að ljúka breytingunum þínum. Vinsamlegast
athugaðu hvort þú sért tengd/ur netinu.",
+ "wikibase-error-save-generic": "Gat ekki vistað vegna villu.",
+ "wikibase-error-remove-generic": "Gat ekki fjarlægt vegna villu.",
+ "wikibase-error-save-connection": "Gat ekki vistað vegna tengingar
villu. Athugaðu hvort þú sért tengd/ur netinu.",
+ "wikibase-error-remove-connection": "Gat ekki fjarlægt vegna tengingar
villu. Athugaðu hvort þú sért tengd/ur netinu.",
"wikibase-error-save-timeout": "Við höfum orðið fyrir tæknilegum
örðugleikum. Það mistókst að vista breytingarnar þínar.",
"wikibase-error-remove-timeout": "Við höfum orðið fyrir tæknilegum
örðugleikum. Þín tilraun við að fjarlægja mistókst.",
"wikibase-error-autocomplete-connection": "Mistókst að senda fyrirspurn
til síðunnar. Vinsamlegast reyndu aftur síðar.",
diff --git a/extensions/Wikibase/lib/i18n/lb.json
b/extensions/Wikibase/lib/i18n/lb.json
index eb0d93f..2fe11be 100644
--- a/extensions/Wikibase/lib/i18n/lb.json
+++ b/extensions/Wikibase/lib/i18n/lb.json
@@ -14,6 +14,7 @@
"wikibase-error-save-generic": "Duerch e Feeler konnt et net
gespäichert ginn.",
"wikibase-error-remove-generic": "Duerch e Feeler konnt et net
ewechgeholl ginn.",
"wikibase-error-save-connection": "Konnt duerch e Verbindunsproblem net
gespäichert ginn. Iwwerpréift w.e.g. Är Internetverbindung.",
+ "wikibase-error-remove-connection": "Konnt duerch e Verbindunsproblem
net ewechgeholl ginn. Iwwerpréift w.e.g. Är Internetverbindung.",
"wikibase-error-save-timeout": "Mir hunn technesch Schwieregkeeten. Är
Ännerung konnt net \"gespäichert\" ginn.",
"wikibase-error-remove-timeout": "Mir hunn technesch Schwieregkeeten.
Är \"Ännerung\" konnt net ofgeschloss ginn.",
"wikibase-error-autocomplete-connection": "Den API-Site konnt net
ofgefrot ginn. Probéiert w.e.g. méi spéit nach eng Kéier.",
diff --git a/extensions/Wikibase/lib/i18n/nn.json
b/extensions/Wikibase/lib/i18n/nn.json
index 1e2d3e6..cd25ebd 100644
--- a/extensions/Wikibase/lib/i18n/nn.json
+++ b/extensions/Wikibase/lib/i18n/nn.json
@@ -92,6 +92,8 @@
"wikibase-entity-summary-wbsetclaim-create": "Oppretta
{{PLURAL:$3|påstand|påstandar}}",
"wikibase-entity-summary-wbsetclaim-update-qualifiers": "Endra
{{PLURAL:$4|éin kvalifikator|$4 kvalifikatorar}} for {{PLURAL:$3|éin
påstand|fleire påstandar}}",
"wikibase-entity-summary-clientsitelink-update": "Sida flytt frå [$3]
til [$4]",
+ "wikibase-entity-summary-wbmergeitems-from": "Flette element frå $3",
+ "wikibase-entity-summary-wbmergeitems-to": "Flette element inn i $3",
"wikibase-item-summary-wbcreate-new": "Oppretta eit nytt element",
"wikibase-item-summary-wbeditentity": "Oppretta eit nytt element",
"wikibase-item-summary-wbeditentity-create": "Oppretta eit nytt
element",
diff --git a/extensions/Wikibase/lib/i18n/te.json
b/extensions/Wikibase/lib/i18n/te.json
index afa98c7..0adaa5e 100644
--- a/extensions/Wikibase/lib/i18n/te.json
+++ b/extensions/Wikibase/lib/i18n/te.json
@@ -1,9 +1,12 @@
{
"@metadata": {
"authors": [
- "Veeven"
+ "Veeven",
+ "Chaduvari"
]
},
+ "wikibase-error-remove-generic": "ఏదో లోపం కారణంగా తీసివేయలేకపోయాం.",
+ "wikibase-error-save-connection": "కనెక్షను లోపం కారణంగా
భద్రపరచలేకపోయాం. మీ అంతర్జాల కనెక్షన్ను చెక్ చేసుకోండి.",
"wikibase-timedetails-time": "సమయం",
"wikibase-timedetails-timezone": "కాలమండలం",
"wikibase-timedetails-calendar": "క్యాలెండర్",
diff --git a/extensions/Wikibase/lib/i18n/tokipona.json
b/extensions/Wikibase/lib/i18n/tokipona.json
new file mode 100644
index 0000000..d12cc6f
--- /dev/null
+++ b/extensions/Wikibase/lib/i18n/tokipona.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Robin van der Vliet"
+ ]
+ },
+ "wikibase-sitelinks-wikipedia": "Wikipesija"
+}
diff --git a/extensions/Wikibase/repo/i18n/bg.json
b/extensions/Wikibase/repo/i18n/bg.json
index 8d05aef..3f6b494 100644
--- a/extensions/Wikibase/repo/i18n/bg.json
+++ b/extensions/Wikibase/repo/i18n/bg.json
@@ -26,6 +26,7 @@
"wikibase-entitytermsforlanguagelistview-description": "Описание",
"wikibase-entitytermsforlanguagelistview-label": "Етикет",
"wikibase-entitytermsforlanguagelistview-language": "Език",
+ "wikibase-entitytermsforlanguagelistview-more": "Всички въведени езици",
"wikibase-label-empty": "Не е зададен етикет",
"wikibase-label-edit-placeholder-language-aware": "въведете етикет на
$1",
"wikibase-description-empty": "Не е въведено описание",
@@ -44,7 +45,6 @@
"wikibase-sitelinks-special": "Други сайтове",
"wikibase-remove": "премахване",
"wikibase-restore-title": "Възстановяване на стара версия на \"$1\"",
- "wikibase-aliases-empty": "Не е зададен псевдоним",
"wikibase-propertypage-datatype": "Тип на данните",
"wikibase-statementview-rank-preferred": "Предпочитан ранг",
"wikibase-statementview-rank-normal": "Нормален ранг",
diff --git a/extensions/Wikibase/repo/i18n/ckb.json
b/extensions/Wikibase/repo/i18n/ckb.json
index e1df63e..782e665 100644
--- a/extensions/Wikibase/repo/i18n/ckb.json
+++ b/extensions/Wikibase/repo/i18n/ckb.json
@@ -10,13 +10,14 @@
},
"wikibase-entity-item": "بەند",
"wikibase-entity-property": "تایبەتمەندی",
- "wikibase-edit": "دەستکاریی بکە",
+ "wikibase-edit": "دەستکاری",
"wikibase-save": "پاشەکەوت",
"wikibase-cancel": "ھەڵوەشاندنەوە",
"wikibase-add": "زیاد بکە",
- "wikibase-addreference": "سەرچاوە زیاد بکە",
+ "wikibase-addreference": "زیادکردنی سەرچاوە",
"wikibase-save-inprogress": "پاشەکەوتکردن…",
"wikibase-remove-inprogress": "سڕینەوە…",
+ "wikibase-entitytermsforlanguagelistview-language": "زمان",
"wikibase-label-empty": "سەرناوێک دیاری نەکراوە",
"wikibase-label-edit-placeholder": "سەرناوێک بنووسە",
"wikibase-label-edit-placeholder-language-aware": "سەرناوێک بە $1
بنووسە",
diff --git a/extensions/Wikibase/repo/i18n/diq.json
b/extensions/Wikibase/repo/i18n/diq.json
index 444c5f1..c64612b 100644
--- a/extensions/Wikibase/repo/i18n/diq.json
+++ b/extensions/Wikibase/repo/i18n/diq.json
@@ -29,7 +29,7 @@
"wikibase-diffview-alias": "nameyê bini",
"wikibase-diffview-description": "şınasnayış",
"wikibase-diffview-link": "gırey",
- "wikibase-sitelink-site-edit-placeholder": "sita",
+ "wikibase-sitelink-site-edit-placeholder": "wiki",
"wikibase-sitelink-page-edit-placeholder": "per",
"wikibase-statementsection-statements": "İfadey",
"wikibase-sitelinks-special": "Pelê bini",
diff --git a/extensions/Wikibase/repo/i18n/id.json
b/extensions/Wikibase/repo/i18n/id.json
index 3996415..47cb48c 100644
--- a/extensions/Wikibase/repo/i18n/id.json
+++ b/extensions/Wikibase/repo/i18n/id.json
@@ -42,7 +42,7 @@
"wikibase-label-edit-placeholder-language-aware": "masukkan label dalam
$1",
"wikibase-description-empty": "Tidak ada pemerian",
"wikibase-description-edit-placeholder": "masukkan pemerian",
- "wikibase-description-edit-placeholder-language-aware": "masukkan
pemerian dalam $1",
+ "wikibase-description-edit-placeholder-language-aware": "masukkan
pemerian dalam bahasa $1",
"wikibase-aliases-edit-placeholder": "masukkan nama lain",
"wikibase-aliases-edit-placeholder-language-aware": "masukkan nama lain
dalam $1",
"wikibase-diffview-reference": "rujukan",
@@ -55,7 +55,7 @@
"wikibase-diffview-alias": "nama lain",
"wikibase-diffview-description": "pemerian",
"wikibase-diffview-link": "pranala",
- "wikibase-sitelink-site-edit-placeholder": "situs",
+ "wikibase-sitelink-site-edit-placeholder": "wiki",
"wikibase-sitelink-page-edit-placeholder": "laman",
"wikibase-alias-edit-placeholder": "masukkan nama lain",
"wikibase-label-input-help-message": "Masukkan label dari entitas ini
ke dalam $1 .",
@@ -107,6 +107,7 @@
"wikibase-shortcopyrightwarning": "Dengan mengeklik \"$1\", Anda
menyetujui [[$2|ketentuan layanan]], dan Anda sepakat untuk melepas sumbangan
Anda di bawah $3 tanpa bisa ditarik kembali.",
"wikibase-copyrighttooltip-acknowledge": "Saya menerima syarat ini
untuk suntingan selanjutnya. Jangan tampilkan lagi pesan ini.",
"wikibase-entityselector-more": "kembangkan",
+ "wikibase-entityselector-notfound": "Tidak ditemukan data yang cocok",
"wikibase-anonymouseditwarning": "Peringatan: Anda belum masuk
log.\nAlamat IP Anda akan direkam dalam sejarah penyuntingan entitas ini.",
"wikibase-move-error": "Anda tidak dapat memindahkan laman yang ada
pada ruang nama data dan Anda tidak dapat memmindahkan laman ke dalamnya.",
"wikibase-validator-sitelink-conflict": "Pranala $1 sudah digunakan
oleh butir $2. Anda bisa menghapusnya dari $2 jika memang tidak seharusnya di
sana atau gabungkan kedua butir jika memang merupakan topik yang sama.",
@@ -157,6 +158,8 @@
"wikibase-newproperty-fieldset": "Buat atribut baru",
"wikibase-newproperty-datatype": "Jenis data:",
"wikibase-newproperty-invalid-datatype": "Jenis data tidak sahih
tertentu.",
+ "wikibase-description-helppage": "Bantuan:Pemerian",
+ "wikibase-label-helppage": "Bantuan:Label",
"special-newitem": "Buat butir baru",
"wikibase-newitem-summary": "Pastikan Anda selalu
[[Special:Search|memeriksa butir yang akan dimasukkan, siapa tahu data itu
sudah ada]]<br />Buatlah [[{{int:Wikibase-label-helppage}}|label]] dan
[[{{int:Wikibase-description-helppage}}|pemerian]] untuk semua butir baru.",
"wikibase-newitem-fieldset": "Buat butir baru",
@@ -164,6 +167,7 @@
"wikibase-newitem-page": "Nama dari laman tertaut pertama",
"wikibase-newitem-no-external-page": "Laman yang dicari tidak ditemukan
di situs bersangkutan.",
"wikibase-newitem-not-recognized-siteid": "Penanda situs yang tersedia
tidak dapat dikenali.",
+ "wikibase-newitem-not-recognized-language": "kode bahasa yang diberikan
tidak dikenal.",
"wikibase-newentity-language": "Bahasa:",
"wikibase-newentity-label": "Label:",
"wikibase-newentity-description": "Pemerian:",
diff --git a/extensions/Wikibase/repo/i18n/is.json
b/extensions/Wikibase/repo/i18n/is.json
index 2f80f77..af63e9b 100644
--- a/extensions/Wikibase/repo/i18n/is.json
+++ b/extensions/Wikibase/repo/i18n/is.json
@@ -26,7 +26,7 @@
"wikibase-entitytermsforlanguagelistview-description": "Lýsing",
"wikibase-entitytermsforlanguagelistview-label": "Merkimiði",
"wikibase-entitytermsforlanguagelistview-language": "Tungumál",
- "wikibase-entitytermsforlanguagelistview-more": "Fleiri tungumál",
+ "wikibase-entitytermsforlanguagelistview-more": "Öll tilgreind
tungumál",
"wikibase-entitytermsforlanguagelistview-less": "Færri tungumál",
"wikibase-label-empty": "Enginn merking skilgreind",
"wikibase-label-edit-placeholder": "bæta við merkimiða",
diff --git a/extensions/Wikibase/repo/i18n/it.json
b/extensions/Wikibase/repo/i18n/it.json
index 47ca60f..130430c 100644
--- a/extensions/Wikibase/repo/i18n/it.json
+++ b/extensions/Wikibase/repo/i18n/it.json
@@ -116,7 +116,7 @@
"wikibase-copyrighttooltip-acknowledge": "Accetto questi termini per le
mie future modifiche. Non mostrare di nuovo questo messaggio.",
"wikibase-entityselector-more": "altro",
"wikibase-entityselector-notfound": "Nessun risultato trovato",
- "wikibase-anonymouseditwarning": "Attenzione: Accesso non
effettuato.\nNella cronologia dell'entità verrà registrato il tuo indirizzo
IP.",
+ "wikibase-anonymouseditwarning": "Attenzione: non hai effettuato
l'accesso.\nNella cronologia dell'entità verrà registrato il tuo indirizzo IP.",
"wikibase-move-error": "Non è possibile spostare le pagine che sono in
un namespace dei dati e non è possibile spostare le pagine in esso.",
"wikibase-validator-sitelink-conflict": "Il collegamento $1 è già usato
dall'elemento $2. Puoi rimuoverlo da $2 se non coincide, o unire gli elementi
se sono sullo stesso argomento esatto.",
"wikibase-validator-label-conflict": "La proprietà $3 ha già
l'etichetta \"$1\" associata con il codice lingua $2.",
diff --git a/extensions/Wikibase/repo/i18n/ja.json
b/extensions/Wikibase/repo/i18n/ja.json
index c553fff..9d25040 100644
--- a/extensions/Wikibase/repo/i18n/ja.json
+++ b/extensions/Wikibase/repo/i18n/ja.json
@@ -37,7 +37,7 @@
"wikibase-entitytermsforlanguagelistview-description": "説明",
"wikibase-entitytermsforlanguagelistview-label": "ラベル",
"wikibase-entitytermsforlanguagelistview-language": "言語",
- "wikibase-entitytermsforlanguagelistview-more": "その他の言語",
+ "wikibase-entitytermsforlanguagelistview-more": "入力済みの全言語",
"wikibase-entitytermsforlanguagelistview-less": "言語を減らす",
"wikibase-label-empty": "ラベルは設定されていません",
"wikibase-label-edit-placeholder": "ラベルを入力",
diff --git a/extensions/Wikibase/repo/i18n/mr.json
b/extensions/Wikibase/repo/i18n/mr.json
index 0806726..d680f84 100644
--- a/extensions/Wikibase/repo/i18n/mr.json
+++ b/extensions/Wikibase/repo/i18n/mr.json
@@ -79,6 +79,7 @@
"wikibase-shortcopyrightwarning": "\"$1\" टिचकण्याने,आपण
[[$2|वापरण्याच्या शर्ती]]मान्य करीत आहात व आपण न परतवण्याजोग्या मान्यतेने, $3
अंतर्गत आपल्या योगदानाचे विमोचन करीत आहात.",
"wikibase-copyrighttooltip-acknowledge": "भविष्यातील संपादनांसाठी या
शर्तींचा मी स्वीकार करतो.हा संदेश कृपया पुन्हा दाखवु नका.",
"wikibase-entityselector-more": "अधिक",
+ "wikibase-entityselector-notfound": "या सम सापडले नाही",
"wikibase-anonymouseditwarning": "ईशारा:आपण सनोंद-प्रवेशित नाहीत.आपला
अंकपत्ता याच्या संपादनाच्या इतिहासात नोंदला जाईल.",
"wikibase-move-error": "माहिती(डाटा) नामविश्वात असलेली पाने आपण
(दुसरीकडे) स्थानांतरीत करू शकत नाही व त्यात आपण (इतर) पाने स्थानांतरीत करू शकत
नाही.",
"wikibase-validator-no-such-media": "[https://commons.wikimedia.org/
विकिमिडिया कॉमन्सवर] \"$1\" ही संचिका अस्तित्वात नाही.",
diff --git a/extensions/Wikibase/repo/i18n/nn.json
b/extensions/Wikibase/repo/i18n/nn.json
index e6d0201..88eca38 100644
--- a/extensions/Wikibase/repo/i18n/nn.json
+++ b/extensions/Wikibase/repo/i18n/nn.json
@@ -25,6 +25,8 @@
"wikibase-entitytermsforlanguagelistview-description": "Skildring",
"wikibase-entitytermsforlanguagelistview-label": "Merkelapp",
"wikibase-entitytermsforlanguagelistview-language": "Språk",
+ "wikibase-entitytermsforlanguagelistview-more": "Alle språk med data",
+ "wikibase-entitytermsforlanguagelistview-less": "Færre språk",
"wikibase-label-empty": "Ingen merkelapp er definert",
"wikibase-label-edit-placeholder": "skriv inn merkelapp",
"wikibase-label-edit-placeholder-language-aware": "skriv inn merkelapp
på $1",
@@ -202,7 +204,7 @@
"wikibase-listdatatypes-commonsmedia-head": "Commons-media",
"wikibase-listdatatypes-globe-coordinate-head": "Geografisk koordinat",
"wikibase-listdatatypes-quantity-head": "Mengd",
- "wikibase-listdatatypes-monolingualtext-head": "Éinspråkleg tekst",
+ "wikibase-listdatatypes-monolingualtext-head": "Einspråkleg tekst",
"wikibase-listdatatypes-multilingualtext-head": "Fleirspråkleg tekst",
"wikibase-listdatatypes-string-head": "Streng",
"wikibase-listdatatypes-time-head": "Tid",
diff --git a/extensions/Wikibase/repo/i18n/ru.json
b/extensions/Wikibase/repo/i18n/ru.json
index 4123e32..612caee 100644
--- a/extensions/Wikibase/repo/i18n/ru.json
+++ b/extensions/Wikibase/repo/i18n/ru.json
@@ -24,7 +24,8 @@
"Frhdkazan",
"Ядерный Трамвай",
"Adam-Yourist",
- "Mailman"
+ "Mailman",
+ "Lockal"
]
},
"wikibase-desc": "Хранилище структурированных данных",
@@ -303,7 +304,7 @@
"wikibase-self-conflict-patched": "Ваша правка была помещена в
последнюю версию, при этом были перекрыты некоторые из ваших собственных
промежуточных изменений.",
"wikibase-conflict-patched": "Ваша правка было исправлена в последней
версии.",
"wikibase-restoreold": "восстановить",
- "wikibase-entity-summary-restore": "Восстановлена версия $3 с помощью
[[Special:Contributions/$4|{{GENDER:$4|$4}}]]",
+ "wikibase-entity-summary-restore": "Восстановлена версия $3
{{GENDER:$4|участника|участницы}} [[Special:Contributions/$4|$4]]",
"wikibase-no-direct-editing": "В пространстве имён «$1» отключено
прямое редактирование",
"wikibase-noentity": "Такой сущности не существует. Вы можете
[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} поискать соответствующие
записи в журналах], чтобы узнать, где он может быть.",
"wikibase-noentity-createone": "Вы также можете [[$1|создать его]].",
diff --git a/extensions/Wikibase/repo/i18n/yue.json
b/extensions/Wikibase/repo/i18n/yue.json
index c380493..61d857c 100644
--- a/extensions/Wikibase/repo/i18n/yue.json
+++ b/extensions/Wikibase/repo/i18n/yue.json
@@ -1,16 +1,17 @@
{
"@metadata": {
"authors": [
- "Yueman"
+ "Yueman",
+ "Ktchankt"
]
},
"wikibase-edit": "改",
"wikibase-add": "加",
+ "wikibase-entitytermsforlanguagelistview-less": "少啲語言",
"wikibase-label-empty": "未定義標籤",
"wikibase-description-empty": "未定義描述",
"wikibase-statementsection-statements": "陳述",
"wikibase-sitelinks-special": "第啲網站",
- "wikibase-aliases-empty": "未定義其他名。",
"wikibase-statementview-rank-normal": "正常等級",
"wikibase-statementview-references-counter":
"$1{{PLURAL:$2|0=|$3+$2$4}} {{PLURAL:$1|參考來源}}"
}
diff --git a/extensions/Wikibase/repo/includes/Api/CreateClaim.php
b/extensions/Wikibase/repo/includes/Api/CreateClaim.php
index 4e27490..6c5d237 100644
--- a/extensions/Wikibase/repo/includes/Api/CreateClaim.php
+++ b/extensions/Wikibase/repo/includes/Api/CreateClaim.php
@@ -82,15 +82,7 @@
$this->validateParameters( $params );
$entityId = $this->modificationHelper->getEntityIdFromString(
$params['entity'] );
- if ( isset( $params['baserevid'] ) ) {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision(
- $entityId,
- (int)$params['baserevid']
- );
- } else {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision( $entityId );
- }
- $entity = $entityRevision->getEntity();
+ $entity = $this->entitySavingHelper->loadEntity( $entityId );
$propertyId = $this->modificationHelper->getEntityIdFromString(
$params['property'] );
if ( !( $propertyId instanceof PropertyId ) ) {
diff --git a/extensions/Wikibase/repo/includes/Api/EntityLoadingHelper.php
b/extensions/Wikibase/repo/includes/Api/EntityLoadingHelper.php
index bf239f1..35ba2e4 100644
--- a/extensions/Wikibase/repo/includes/Api/EntityLoadingHelper.php
+++ b/extensions/Wikibase/repo/includes/Api/EntityLoadingHelper.php
@@ -2,14 +2,17 @@
namespace Wikibase\Repo\Api;
+use ApiBase;
use LogicException;
use UsageException;
+use Wikibase\DataModel\Entity\EntityDocument;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\EntityRevision;
use Wikibase\Lib\Store\BadRevisionException;
use Wikibase\Lib\Store\EntityRevisionLookup;
use Wikibase\Lib\Store\StorageException;
use Wikibase\Lib\Store\RevisionedUnresolvedRedirectException;
+use Wikimedia\Assert\Assert;
/**
* Helper class for api modules to load entities.
@@ -31,12 +34,33 @@
*/
protected $errorReporter;
+ /**
+ * @var string See the LATEST_XXX constants defined in
EntityRevisionLookup
+ */
+ protected $defaultRetrievalMode =
EntityRevisionLookup::LATEST_FROM_SLAVE;
+
public function __construct(
EntityRevisionLookup $entityRevisionLookup,
ApiErrorReporter $errorReporter
) {
$this->entityRevisionLookup = $entityRevisionLookup;
$this->errorReporter = $errorReporter;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDefaultRetrievalMode() {
+ return $this->defaultRetrievalMode;
+ }
+
+ /**
+ * @param string $defaultRetrievalMode Use the LATEST_XXX constants
defined
+ * in EntityRevisionLookup
+ */
+ public function setDefaultRetrievalMode( $defaultRetrievalMode ) {
+ Assert::parameterType( 'string', $defaultRetrievalMode,
'$defaultRetrievalMode' );
+ $this->defaultRetrievalMode = $defaultRetrievalMode;
}
/**
@@ -48,16 +72,22 @@
* @since 0.5
*
* @param EntityId $entityId EntityId of the page to load the revision
for
- * @param int|string $revId revision to load. If not given, the current
revision will be loaded.
+ * @param int|string|null $revId revision to load, or the retrieval
mode,
+ * see the LATEST_XXX constants defined in EntityRevisionLookup.
+ * If not given, the current revision will be loaded, using the
default retrieval mode.
*
* @throws UsageException
* @throws LogicException
* @return EntityRevision
*/
- public function loadEntityRevision(
+ protected function loadEntityRevision(
EntityId $entityId,
- $revId = EntityRevisionLookup::LATEST_FROM_MASTER
+ $revId = null
) {
+ if ( $revId === null ) {
+ $revId = $this->defaultRetrievalMode;
+ }
+
try {
$revision =
$this->entityRevisionLookup->getEntityRevision( $entityId, $revId );
@@ -79,4 +109,13 @@
throw new LogicException( 'ApiErrorReporter::dieException did
not throw a UsageException' );
}
+ /**
+ * @param EntityId $entityId
+ * @return EntityDocument
+ */
+ public function loadEntity( EntityId $entityId ) {
+ $entityRevision = $this->loadEntityRevision( $entityId );
+ return $entityRevision->getEntity();
+ }
+
}
diff --git a/extensions/Wikibase/repo/includes/Api/EntitySavingHelper.php
b/extensions/Wikibase/repo/includes/Api/EntitySavingHelper.php
index 1d4eaea..a828a74 100644
--- a/extensions/Wikibase/repo/includes/Api/EntitySavingHelper.php
+++ b/extensions/Wikibase/repo/includes/Api/EntitySavingHelper.php
@@ -7,6 +7,7 @@
use Status;
use UsageException;
use Wikibase\DataModel\Entity\EntityDocument;
+use Wikibase\DataModel\Entity\EntityId;
use Wikibase\EditEntity as EditEntityHandler;
use Wikibase\EditEntityFactory;
use Wikibase\Lib\Store\EntityRevisionLookup;
@@ -49,6 +50,27 @@
$this->apiBase = $apiBase;
$this->summaryFormatter = $summaryFormatter;
$this->editEntityFactory = $editEntityFactory;
+
+ $this->defaultRetrievalMode =
EntityRevisionLookup::LATEST_FROM_MASTER;
+ }
+
+ /**
+ * Returns the given EntityDocument.
+ *
+ * @param EntityId $entityId
+ * @return EntityDocument
+ */
+ public function loadEntity( EntityId $entityId ) {
+ $params = $this->apiBase->extractRequestParams();
+
+ // If a base revision is given, use if for consistency!
+ $baseRev = isset( $params['baserevid'] )
+ ? (int)$params['baserevid']
+ : $this->defaultRetrievalMode;
+
+ $entityRevision = $this->loadEntityRevision( $entityId,
$baseRev );
+
+ return $entityRevision->getEntity();
}
/**
diff --git a/extensions/Wikibase/repo/includes/Api/GetClaims.php
b/extensions/Wikibase/repo/includes/Api/GetClaims.php
index 1b2fc61..04270a9 100644
--- a/extensions/Wikibase/repo/includes/Api/GetClaims.php
+++ b/extensions/Wikibase/repo/includes/Api/GetClaims.php
@@ -96,11 +96,7 @@
}
/** @var EntityId $entityId */
- $entityRevision =
$this->entityLoadingHelper->loadEntityRevision(
- $entityId,
- EntityRevisionLookup::LATEST_FROM_SLAVE
- );
- $entity = $entityRevision->getEntity();
+ $entity = $this->entityLoadingHelper->loadEntity( $entityId );
$statements = $this->getStatements( $entity, $guid );
$this->resultBuilder->addStatements( $statements, null,
$params['props'] );
diff --git a/extensions/Wikibase/repo/includes/Api/RemoveClaims.php
b/extensions/Wikibase/repo/includes/Api/RemoveClaims.php
index 305f447..5e3ccee 100644
--- a/extensions/Wikibase/repo/includes/Api/RemoveClaims.php
+++ b/extensions/Wikibase/repo/includes/Api/RemoveClaims.php
@@ -91,15 +91,7 @@
public function execute() {
$params = $this->extractRequestParams();
$entityId = $this->getEntityId( $params );
- if ( isset( $params['baserevid'] ) ) {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision(
- $entityId,
- (int)$params['baserevid']
- );
- } else {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision( $entityId );
- }
- $entity = $entityRevision->getEntity();
+ $entity = $this->entitySavingHelper->loadEntity( $entityId );
if ( $entity instanceof StatementListProvider ) {
$this->assertStatementListContainsGuids(
$entity->getStatements(), $params['claim'] );
diff --git a/extensions/Wikibase/repo/includes/Api/RemoveQualifiers.php
b/extensions/Wikibase/repo/includes/Api/RemoveQualifiers.php
index 9b89e1c..780c526 100644
--- a/extensions/Wikibase/repo/includes/Api/RemoveQualifiers.php
+++ b/extensions/Wikibase/repo/includes/Api/RemoveQualifiers.php
@@ -91,15 +91,8 @@
$guid = $params['claim'];
$entityId = $this->guidParser->parse( $guid )->getEntityId();
- if ( isset( $params['baserevid'] ) ) {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision(
- $entityId,
- (int)$params['baserevid']
- );
- } else {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision( $entityId );
- }
- $entity = $entityRevision->getEntity();
+ $entity = $this->entitySavingHelper->loadEntity( $entityId );
+
$summary = $this->modificationHelper->createSummary( $params,
$this );
$claim = $this->modificationHelper->getStatementFromEntity(
$guid, $entity );
diff --git a/extensions/Wikibase/repo/includes/Api/RemoveReferences.php
b/extensions/Wikibase/repo/includes/Api/RemoveReferences.php
index c3685b2..b4597d1 100644
--- a/extensions/Wikibase/repo/includes/Api/RemoveReferences.php
+++ b/extensions/Wikibase/repo/includes/Api/RemoveReferences.php
@@ -91,15 +91,7 @@
$guid = $params['statement'];
$entityId = $this->guidParser->parse( $guid )->getEntityId();
- if ( isset( $params['baserevid'] ) ) {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision(
- $entityId,
- (int)$params['baserevid']
- );
- } else {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision( $entityId );
- }
- $entity = $entityRevision->getEntity();
+ $entity = $this->entitySavingHelper->loadEntity( $entityId );
$summary = $this->modificationHelper->createSummary( $params,
$this );
$claim = $this->modificationHelper->getStatementFromEntity(
$guid, $entity );
diff --git a/extensions/Wikibase/repo/includes/Api/SetClaim.php
b/extensions/Wikibase/repo/includes/Api/SetClaim.php
index 85b38f8..7bbd68d 100644
--- a/extensions/Wikibase/repo/includes/Api/SetClaim.php
+++ b/extensions/Wikibase/repo/includes/Api/SetClaim.php
@@ -121,15 +121,7 @@
}
$entityId = $statementGuid->getEntityId();
- if ( isset( $params['baserevid'] ) ) {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision(
- $entityId,
- (int)$params['baserevid']
- );
- } else {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision( $entityId );
- }
- $entity = $entityRevision->getEntity();
+ $entity = $this->entitySavingHelper->loadEntity( $entityId );
if ( !( $entity instanceof StatementListProvider ) ) {
$this->errorReporter->dieError( 'The given entity
cannot contain statements', 'not-supported' );
diff --git a/extensions/Wikibase/repo/includes/Api/SetClaimValue.php
b/extensions/Wikibase/repo/includes/Api/SetClaimValue.php
index 73d9859..3f92a43 100644
--- a/extensions/Wikibase/repo/includes/Api/SetClaimValue.php
+++ b/extensions/Wikibase/repo/includes/Api/SetClaimValue.php
@@ -89,15 +89,7 @@
$guid = $params['claim'];
$entityId = $this->guidParser->parse( $guid )->getEntityId();
- if ( isset( $params['baserevid'] ) ) {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision(
- $entityId,
- (int)$params['baserevid']
- );
- } else {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision( $entityId );
- }
- $entity = $entityRevision->getEntity();
+ $entity = $this->entitySavingHelper->loadEntity( $entityId );
$claim = $this->modificationHelper->getStatementFromEntity(
$guid, $entity );
diff --git a/extensions/Wikibase/repo/includes/Api/SetQualifier.php
b/extensions/Wikibase/repo/includes/Api/SetQualifier.php
index c786e0f..36625b4 100644
--- a/extensions/Wikibase/repo/includes/Api/SetQualifier.php
+++ b/extensions/Wikibase/repo/includes/Api/SetQualifier.php
@@ -90,15 +90,7 @@
$this->validateParameters( $params );
$entityId = $this->guidParser->parse( $params['claim']
)->getEntityId();
- if ( isset( $params['baserevid'] ) ) {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision(
- $entityId,
- (int)$params['baserevid']
- );
- } else {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision( $entityId );
- }
- $entity = $entityRevision->getEntity();
+ $entity = $this->entitySavingHelper->loadEntity( $entityId );
$summary = $this->modificationHelper->createSummary( $params,
$this );
diff --git a/extensions/Wikibase/repo/includes/Api/SetReference.php
b/extensions/Wikibase/repo/includes/Api/SetReference.php
index bdb9657..6ed8c49 100644
--- a/extensions/Wikibase/repo/includes/Api/SetReference.php
+++ b/extensions/Wikibase/repo/includes/Api/SetReference.php
@@ -98,15 +98,7 @@
$this->validateParameters( $params );
$entityId = $this->guidParser->parse( $params['statement']
)->getEntityId();
- if ( isset( $params['baserevid'] ) ) {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision(
- $entityId,
- (int)$params['baserevid']
- );
- } else {
- $entityRevision =
$this->entitySavingHelper->loadEntityRevision( $entityId );
- }
- $entity = $entityRevision->getEntity();
+ $entity = $this->entitySavingHelper->loadEntity( $entityId );
$summary = $this->modificationHelper->createSummary( $params,
$this );
diff --git a/extensions/Wikibase/repo/includes/Specials/SpecialItemByTitle.php
b/extensions/Wikibase/repo/includes/Specials/SpecialItemByTitle.php
index 7afabcd..3a4178f 100644
--- a/extensions/Wikibase/repo/includes/Specials/SpecialItemByTitle.php
+++ b/extensions/Wikibase/repo/includes/Specials/SpecialItemByTitle.php
@@ -6,9 +6,10 @@
use Html;
use Site;
use SiteStore;
+use Wikibase\Lib\LanguageNameLookup;
use Wikibase\Lib\Store\EntityTitleLookup;
use Wikibase\Lib\Store\SiteLinkLookup;
-use Wikibase\Repo\Content\ItemHandler;
+use Wikibase\Repo\SiteLinkTargetProvider;
use Wikibase\Repo\WikibaseRepo;
/**
@@ -29,6 +30,11 @@
private $titleLookup;
/**
+ * @var LanguageNameLookup
+ */
+ private $languageNameLookup;
+
+ /**
* @var SiteStore
*/
private $sites;
@@ -37,6 +43,11 @@
* @var SiteLinkLookup
*/
private $siteLinkLookup;
+
+ /**
+ * @var SiteLinkTargetProvider
+ */
+ private $siteLinkTargetProvider;
/**
* site link groups
@@ -60,10 +71,17 @@
$wikibaseRepo->getSettings()->getSetting(
'siteLinkGroups' )
);
+ $siteLinkTargetProvider = new SiteLinkTargetProvider(
+ $wikibaseRepo->getSiteStore(),
+ $wikibaseRepo->getSettings()->getSetting(
'specialSiteLinkGroups' )
+ );
+
$this->initServices(
$wikibaseRepo->getEntityTitleLookup(),
+ new LanguageNameLookup(),
$wikibaseRepo->getSiteStore(),
- $wikibaseRepo->getStore()->newSiteLinkStore()
+ $wikibaseRepo->getStore()->newSiteLinkStore(),
+ $siteLinkTargetProvider
);
}
@@ -84,17 +102,23 @@
* May be used to inject mock services for testing.
*
* @param EntityTitleLookup $titleLookup
+ * @param LanguageNameLookup $languageNameLookup
* @param SiteStore $siteStore
* @param SiteLinkLookup $siteLinkLookup
+ * @param SiteLinkTargetProvider $siteLinkTargetProvider
*/
public function initServices(
EntityTitleLookup $titleLookup,
+ LanguageNameLookup $languageNameLookup,
SiteStore $siteStore,
- SiteLinkLookup $siteLinkLookup
+ SiteLinkLookup $siteLinkLookup,
+ SiteLinkTargetProvider $siteLinkTargetProvider
) {
$this->titleLookup = $titleLookup;
+ $this->languageNameLookup = $languageNameLookup;
$this->sites = $siteStore;
$this->siteLinkLookup = $siteLinkLookup;
+ $this->siteLinkTargetProvider = $siteLinkTargetProvider;
}
/**
@@ -163,6 +187,21 @@
}
/**
+ * Return options for the site input field.
+ *
+ * @return array
+ */
+ private function getSiteOptions() {
+ $options = array();
+ foreach ( $this->siteLinkTargetProvider->getSiteList(
$this->groups ) as $site ) {
+ $siteId = $site->getGlobalId();
+ $languageName = $this->languageNameLookup->getName(
$site->getLanguageCode() );
+ $options["$languageName ($siteId)"] = $siteId;
+ }
+ return $options;
+ }
+
+ /**
* Output a form to allow searching for a page
*
* @param string $siteId
@@ -178,13 +217,12 @@
wfDebugLog( __CLASS__, __FUNCTION__ . ": Site $siteId exists: "
. var_export( $siteExists, true ) );
- $this->getOutput()->addModules( 'wikibase.special.itemByTitle'
);
-
$formDescriptor = array(
'site' => array(
'name' => 'site',
'default' => $siteId,
- 'type' => 'text',
+ 'type' => 'combobox',
+ 'options' => $this->getSiteOptions(),
'id' => 'wb-itembytitle-sitename',
'size' => 12,
'label-message' =>
'wikibase-itembytitle-lookup-site'
diff --git a/extensions/Wikibase/repo/resources/Resources.php
b/extensions/Wikibase/repo/resources/Resources.php
index 05ca96d..97a10d4 100644
--- a/extensions/Wikibase/repo/resources/Resources.php
+++ b/extensions/Wikibase/repo/resources/Resources.php
@@ -148,17 +148,6 @@
),
),
- 'wikibase.special.itemByTitle' => $moduleTemplate + array(
- 'scripts' => array(
-
'wikibase.special/wikibase.special.itemByTitle.js'
- ),
- 'dependencies' => array(
- 'wikibase.sites',
- 'jquery.ui.suggester',
- 'oojs-ui'
- )
- ),
-
);
return array_merge(
diff --git
a/extensions/Wikibase/repo/resources/wikibase.special/wikibase.special.itemByTitle.js
b/extensions/Wikibase/repo/resources/wikibase.special/wikibase.special.itemByTitle.js
deleted file mode 100644
index 2d10b95..0000000
---
a/extensions/Wikibase/repo/resources/wikibase.special/wikibase.special.itemByTitle.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * JavaScript for 'wikibase' extension special page 'ItemByTitle'
- *
- * @since 0.1
- *
- * @license GPL-2.0+
- * @author Jens Ohlig
- */
-( function( $, mw, OO, wb ) {
- 'use strict';
-
- $( document ).ready( function() {
- if ( ( mw.config.get( 'wgCanonicalSpecialPageName' ) !==
'ItemByTitle' ) ) {
- return; // not the right special page
- }
-
- // this will build a drop-down for the language selection:
- var sites = wb.sites.getSites(),
- siteList = [];
- for ( var siteId in sites ) {
- if ( sites.hasOwnProperty( siteId ) ) {
- siteList.push( sites[ siteId ].getName() + ' ('
+ siteId + ')' );
- }
- }
-
- var $input = OO.ui.infuse( $( '#wb-itembytitle-sitename' )
).$input;
-
- $input
- .attr( 'autocomplete', 'off' )
- .suggester( { source: siteList } );
- // Hackety hack hack...
- // On submit, replace human readable value like "English (en)"
with actual sitename ("enwiki")
- $( '#wb-itembytitle-form1' ).submit( function() {
- var langID = String( $input.val().replace(
/.*\(|\).*/gi, '' ) );
- if ( wb.sites.getSite( langID ).getId() !== undefined )
{
- $input.val( wb.sites.getSite( langID ).getId()
);
- }
- } );
- } );
-
-} )( jQuery, mediaWiki, OO, wikibase );
diff --git a/extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js
b/extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js
index 872b4df..529aff7 100644
--- a/extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js
+++ b/extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js
@@ -8,6 +8,15 @@
'use strict';
/**
+ * @return {boolean}
+ */
+ function isEditable() {
+ return mw.config.get( 'wbIsEditView' )
+ && mw.config.get( 'wbUserCanEdit' )
+ && !mw.config.get( 'wbUserIsBlocked' );
+ }
+
+ /**
* @param {jQuery} $entityview
*/
function initToolbarController( $entityview ) {
@@ -106,10 +115,8 @@
htmlDataValueEntityIdFormatter =
formatterFactory.getFormatter( null, null, 'text/html' ),
plaintextDataValueEntityIdFormatter =
formatterFactory.getFormatter( null, null, 'text/plain' ),
entityIdParser = new ( parserStore.getParser(
wb.datamodel.EntityId.TYPE ) )( { lang: userLanguages[0] } ),
- toolbarFactory = new wb.view.ToolbarFactory(),
- viewFactory = new wb.view.ControllerViewFactory(
- toolbarFactory,
- entityChangersFactory,
+ viewFactoryClass = wb.view.ViewFactory,
+ viewFactoryArguments = [
contentLanguages,
dataTypeStore,
new
wb.entityIdFormatter.CachingEntityIdHtmlFormatter(
@@ -129,8 +136,18 @@
parserStore,
userLanguages,
repoApiUrl
- );
+ ];
+ if ( isEditable() ) {
+ viewFactoryClass = wb.view.ControllerViewFactory;
+ viewFactoryArguments.unshift(
+ new wb.view.ToolbarFactory(),
+ entityChangersFactory
+ );
+ }
+
+ viewFactoryArguments.unshift( null );
+ var viewFactory = new ( Function.prototype.bind.apply(
viewFactoryClass, viewFactoryArguments ) );
var entityView = viewFactory.getEntityView( entity, $entityview
);
return entityView.widgetName;
@@ -355,8 +372,7 @@
var $entityview = $( '.wikibase-entityview' );
var entityInitializer = new wb.EntityInitializer( 'wbEntity' );
- var canEdit = !mw.config.get( 'wbUserIsBlocked' ) &&
mw.config.get( 'wbUserCanEdit' )
- && mw.config.get( 'wbIsEditView' );
+ var canEdit = isEditable();
if ( canEdit ) {
initToolbarController( $entityview );
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/Api/EntityLoadingHelperTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/Api/EntityLoadingHelperTest.php
index aa19333..b0cfd7b 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/Api/EntityLoadingHelperTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/Api/EntityLoadingHelperTest.php
@@ -3,8 +3,8 @@
namespace Wikibase\Test\Repo\Api;
use Exception;
-use Revision;
use UsageException;
+use Wikibase\DataModel\Entity\EntityDocument;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\EntityRevision;
use Wikibase\Lib\Store\BadRevisionException;
@@ -43,7 +43,7 @@
$mock->expects( $this->once() )
->method( 'getEntityRevision' )
->will( $this->throwException(
$entityRevisionReturn ) );
- } else {
+ } elseif ( $entityRevisionReturn instanceof EntityRevision ) {
$mock->expects( $this->once() )
->method( 'getEntityRevision' )
->will( $this->returnValue(
$entityRevisionReturn ) );
@@ -76,12 +76,20 @@
}
/**
- * @return Revision
+ * @return EntityRevision
*/
protected function getMockRevision() {
- return $this->getMockBuilder( Revision::class )
+ $entity = $this->getMock( EntityDocument::class );
+
+ $revision = $this->getMockBuilder( EntityRevision::class )
->disableOriginalConstructor()
->getMock();
+
+ $revision->expects( $this->any() )
+ ->method( 'getEntity' )
+ ->will( $this->returnValue( $entity ) );
+
+ return $revision;
}
/**
@@ -100,23 +108,25 @@
);
}
- public function testRevision_returnsRevision() {
+ public function testLoadEntity() {
$revision = $this->getMockRevision();
+ $entity = $revision->getEntity();
+
$helper = $this->newEntityLoadingHelper( $revision );
- $return = $helper->loadEntityRevision( new ItemId( 'Q1' ) );
+ $return = $helper->loadEntity( new ItemId( 'Q1' ) );
- $this->assertSame( $revision, $return );
+ $this->assertSame( $entity, $return );
}
- public function testNullRevision_callsErrorReporter() {
+ public function testLoadEntity_NullRevision() {
$helper = $this->newEntityLoadingHelper( null, null,
'cant-load-entity-content' );
$this->setExpectedException( UsageException::class );
- $helper->loadEntityRevision( new ItemId( 'Q1' ) );
+ $helper->loadEntity( new ItemId( 'Q1' ) );
}
- public function testUnresolvedRedirectException_callsErrorReporter() {
+ public function testLoadEntity_UnresolvedRedirectException() {
$helper = $this->newEntityLoadingHelper(
new RevisionedUnresolvedRedirectException(
new ItemId( 'Q1' ),
@@ -126,21 +136,21 @@
);
$this->setExpectedException( UsageException::class );
- $helper->loadEntityRevision( new ItemId( 'Q1' ) );
+ $helper->loadEntity( new ItemId( 'Q1' ) );
}
- public function testBadRevisionException_callsErrorReporter() {
+ public function testLoadEntity_BadRevisionException() {
$helper = $this->newEntityLoadingHelper( new
BadRevisionException(), 'nosuchrevid' );
$this->setExpectedException( UsageException::class );
- $helper->loadEntityRevision( new ItemId( 'Q1' ) );
+ $helper->loadEntity( new ItemId( 'Q1' ) );
}
- public function testStorageException_callsErrorReporter() {
+ public function testLoadEntity_StorageException() {
$helper = $this->newEntityLoadingHelper( new
StorageException(), 'cant-load-entity-content' );
$this->setExpectedException( UsageException::class );
- $helper->loadEntityRevision( new ItemId( 'Q1' ) );
+ $helper->loadEntity( new ItemId( 'Q1' ) );
}
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/Api/EntitySavingHelperTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/Api/EntitySavingHelperTest.php
index 7115a9a..a1de57f 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/Api/EntitySavingHelperTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/Api/EntitySavingHelperTest.php
@@ -16,7 +16,6 @@
use Wikibase\EditEntity;
use Wikibase\EditEntityFactory;
use Wikibase\EntityRevision;
-use Wikibase\Repo\Api\ApiErrorReporter;
use Wikibase\Repo\Api\EntityLoadingHelper;
use Wikibase\Repo\Api\EntitySavingHelper;
use Wikibase\SummaryFormatter;
@@ -92,6 +91,42 @@
return $context;
}
+ public function testLoadEntity_baserevid() {
+ $itemId = new ItemId( 'Q1' );
+
+ $revision = $this->getMockRevision();
+ $entity = $revision->getEntity();
+
+ $mockApiBase = $this->getMockApiBase();
+ $mockApiBase->expects( $this->any() )
+ ->method( 'isWriteMode' )
+ ->will( $this->returnValue( true ) );
+ $mockApiBase->expects( $this->any() )
+ ->method( 'getContext' )
+ ->will( $this->returnValue( $this->newContext() ) );
+ $mockApiBase->expects( $this->any() )
+ ->method( 'extractRequestParams' )
+ ->will( $this->returnValue( array( 'baserevid' => 17 )
) );
+
+ $revisionLookup = $this->getMockEntityRevisionLookup( true );
+ $revisionLookup->expects( $this->once() )
+ ->method( 'getEntityRevision' )
+ ->with( $itemId, 17 )
+ ->will( $this->returnValue( $revision ) );
+
+ $helper = new EntitySavingHelper(
+ $mockApiBase,
+ $revisionLookup,
+ $this->getMockErrorReporter(),
+ $this->getMockSummaryFormatter(),
+ $this->getMockEditEntityFactory()
+ );
+
+ $return = $helper->loadEntity( $itemId );
+
+ $this->assertSame( $entity, $return );
+ }
+
public function testAttemptSave() {
$mockApiBase = $this->getMockApiBase();
$mockApiBase->expects( $this->once() )
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialItemByTitleTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialItemByTitleTest.php
index 3cdc982..b60c39f 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialItemByTitleTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialItemByTitleTest.php
@@ -2,7 +2,6 @@
namespace Wikibase\Repo\Tests\Specials;
-use FauxResponse;
use Site;
use SiteList;
use SiteStore;
@@ -10,8 +9,10 @@
use Title;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\Lib\LanguageNameLookup;
use Wikibase\Lib\Store\EntityTitleLookup;
use Wikibase\Lib\Store\SiteLinkLookup;
+use Wikibase\Repo\SiteLinkTargetProvider;
use Wikibase\Repo\Specials\SpecialItemByTitle;
/**
@@ -46,6 +47,18 @@
}
/**
+ * @return LanguageNameLookup
+ */
+ private function getMockLanguageNameLookup() {
+ $mock = $this->getMock( LanguageNameLookup::class );
+ $mock->expects( $this->any() )
+ ->method( 'getName' )
+ ->will( $this->returnValue( '<LANG>' ) );
+
+ return $mock;
+ }
+
+ /**
* @return SiteLinkLookup
*/
private function getMockSiteLinkLookup() {
@@ -74,10 +87,9 @@
return $site;
};
- $mockSiteList = $this->getMock( SiteList::class );
- $mockSiteList->expects( $this->any() )
- ->method( 'getSite' )
- ->will( $this->returnCallback( $getSite ) );
+ $siteList = new SiteList();
+ $siteList[] = $getSite( 'dewiki' );
+ $siteList[] = $getSite( 'enwiki' );
$mock = $this->getMock( SiteStore::class );
$mock->expects( $this->any() )
@@ -86,7 +98,7 @@
$mock->expects( $this->any() )
->method( 'getSites' )
- ->will( $this->returnValue( $mockSiteList ) );
+ ->will( $this->returnValue( $siteList ) );
return $mock;
}
@@ -101,10 +113,16 @@
array( 'wikipedia' )
);
+ $siteStore = $this->getMockSiteStore();
+
+ $siteLinkTargetProvider = new SiteLinkTargetProvider(
$siteStore, array() );
+
$page->initServices(
$this->getMockTitleLookup(),
- $this->getMockSiteStore(),
- $this->getMockSiteLinkLookup()
+ $this->getMockLanguageNameLookup(),
+ $siteStore,
+ $this->getMockSiteLinkLookup(),
+ $siteLinkTargetProvider
);
return $page;
diff --git
a/extensions/Wikibase/view/resources/jquery/wikibase/toolbar/jquery.wikibase.edittoolbar.js
b/extensions/Wikibase/view/resources/jquery/wikibase/toolbar/jquery.wikibase.edittoolbar.js
index fbf0194..cdfef14 100644
---
a/extensions/Wikibase/view/resources/jquery/wikibase/toolbar/jquery.wikibase.edittoolbar.js
+++
b/extensions/Wikibase/view/resources/jquery/wikibase/toolbar/jquery.wikibase.edittoolbar.js
@@ -248,9 +248,8 @@
self.toNonEditMode();
self.enable();
if ( !dropValue ) {
- self.toggleActionMessage( function() {
- self._trigger(
'afterstopediting' );
- } );
+ self.toggleActionMessage();
+ self._trigger( 'afterstopediting' );
}
}
} )
@@ -268,12 +267,11 @@
}
self.enable();
- self.toggleActionMessage( function() {
- // FIXME Move responsibility of
displaying error out of here completely.
- if ( $( event.target ).data(
'sitelinkgroupview' ) === undefined ) {
- self.displayError( error,
$anchor );
- }
- } );
+ self.toggleActionMessage();
+ // FIXME Move responsibility of displaying
error out of here completely.
+ if ( $( event.target ).data(
'sitelinkgroupview' ) === undefined ) {
+ self.displayError( error, $anchor );
+ }
}
} );
},
@@ -439,32 +437,24 @@
/**
* Toggles a message replacing the toolbar contents.
*
- * @param {string|Function} [messageOrCallback] Message to be displayed
instead of the
- * toolbar contents or callback that is supposed to be triggered
after removing the
- * replacement message again.
+ * @param {string} [message] Message to be displayed instead of the
+ * toolbar contents. If omitted, the toolbar contents will be
shown.
*/
- toggleActionMessage: function( messageOrCallback ) {
+ toggleActionMessage: function( message ) {
var $container = this.getContainer(),
actionMessageClass = this.widgetBaseClass +
'-actionmsg',
$actionMsg = $container.find( '.' + actionMessageClass
);
- messageOrCallback = messageOrCallback || function() {};
-
- if ( $.isFunction( messageOrCallback ) ) {
- if ( !$actionMsg.length ) {
- messageOrCallback();
- } else {
- $actionMsg.remove();
- $container.contents().show();
- messageOrCallback();
- }
- } else {
+ if ( message !== undefined ) {
$container.contents().hide();
$actionMsg = $( '<span/>' )
.addClass( actionMessageClass + ' wb-actionmsg'
)
- .text( messageOrCallback )
+ .text( message )
.appendTo( $container );
+ } else if ( $actionMsg.length ) {
+ $actionMsg.remove();
+ $container.contents().show();
}
},
diff --git
a/extensions/Wikibase/view/resources/wikibase/view/ToolbarViewController.js
b/extensions/Wikibase/view/resources/wikibase/view/ToolbarViewController.js
index 9501557..2015975 100644
--- a/extensions/Wikibase/view/resources/wikibase/view/ToolbarViewController.js
+++ b/extensions/Wikibase/view/resources/wikibase/view/ToolbarViewController.js
@@ -237,10 +237,8 @@
}
this._toolbar.enable();
- var self = this;
- this._toolbar.toggleActionMessage( function() {
- self._toolbar.displayError( error, $anchor );
- } );
+ this._toolbar.toggleActionMessage();
+ this._toolbar.displayError( error, $anchor );
}
};
diff --git a/vendor/composer/autoload_classmap.php
b/vendor/composer/autoload_classmap.php
index 750d4b2..d347745 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -6,6 +6,7 @@
$baseDir = dirname($vendorDir);
return array(
+ 'ArticlePlaceholder\\BaseTemplateToolboxHookHandler' => $baseDir .
'/extensions/ArticlePlaceholder/includes/BaseTemplateToolboxHookHandler.php',
'ArticlePlaceholder\\Hooks' => $baseDir .
'/extensions/ArticlePlaceholder/includes/Hooks.php',
'ArticlePlaceholder\\ItemNotabilityFilter' => $baseDir .
'/extensions/ArticlePlaceholder/includes/ItemNotabilityFilter.php',
'ArticlePlaceholder\\Lua\\Scribunto_LuaArticlePlaceholderLibrary' =>
$baseDir .
'/extensions/ArticlePlaceholder/includes/Lua/Scribunto_LuaArticlePlaceholderLibrary.php',
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index a1aa372..255f850 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -110,19 +110,19 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-ArticlePlaceholder.git",
- "reference": "abe5908651e37f1a341d752552a72baf98454456"
+ "reference": "825dcf735dd4be4f0794f5c1ec23a561256a4167"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/abe5908651e37f1a341d752552a72baf98454456",
- "reference": "abe5908651e37f1a341d752552a72baf98454456",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/825dcf735dd4be4f0794f5c1ec23a561256a4167",
+ "reference": "825dcf735dd4be4f0794f5c1ec23a561256a4167",
"shasum": ""
},
"require-dev": {
"jakub-onderka/php-parallel-lint": "0.9.2",
"mediawiki/mediawiki-codesniffer": "0.7.2"
},
- "time": "2016-08-10 20:34:15",
+ "time": "2016-08-11 21:49:41",
"type": "mediawiki-extension",
"installation-source": "dist",
"autoload": {
@@ -1348,12 +1348,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "56096e27d96a6e71f97e92f9b092deabb38307a3"
+ "reference": "10af0cf1d56dab400f3a305e282ad1247d4e6f8a"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/56096e27d96a6e71f97e92f9b092deabb38307a3",
- "reference": "56096e27d96a6e71f97e92f9b092deabb38307a3",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/10af0cf1d56dab400f3a305e282ad1247d4e6f8a",
+ "reference": "10af0cf1d56dab400f3a305e282ad1247d4e6f8a",
"shasum": ""
},
"require": {
@@ -1386,7 +1386,7 @@
"jakub-onderka/php-parallel-lint": "0.9.2",
"mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0"
},
- "time": "2016-08-11 00:41:04",
+ "time": "2016-08-13 20:33:48",
"type": "mediawiki-extension",
"installation-source": "dist",
"autoload": {
--
To view, visit https://gerrit.wikimedia.org/r/304691
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I13a3b58af19ecd008b4c6fd67ce4327d3da619f1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits