Aude has uploaded a new change for review.
https://gerrit.wikimedia.org/r/199617
Change subject: Update Wikidata - Fix recent changes formatting on wikidata
......................................................................
Update Wikidata - Fix recent changes formatting on wikidata
* also fixes edit summary on SpecialSetLabelDescriptionAliases page
* add debug logging to UpdateRepo code
* fix php notice in PhpDateTimeParser
Change-Id: I6d8e0019e11674ffbe1ca62b337c5f41b61b4e6b
---
M composer.json
M composer.lock
M extensions/Wikibase/client/includes/Hooks/UpdateRepoHookHandlers.php
M extensions/Wikibase/client/includes/UpdateRepo/UpdateRepo.php
M extensions/Wikibase/lib/includes/formatters/EntityIdLinkFormatter.php
M extensions/Wikibase/lib/includes/parsers/PhpDateTimeParser.php
M extensions/Wikibase/lib/tests/phpunit/formatters/EntityIdLinkFormatterTest.php
M extensions/Wikibase/lib/tests/phpunit/parsers/PhpDateTimeParserTest.php
M extensions/Wikibase/repo/i18n/en.json
M extensions/Wikibase/repo/i18n/qqq.json
M extensions/Wikibase/repo/includes/Localizer/MessageParameterFormatter.php
M extensions/Wikibase/repo/includes/WikibaseRepo.php
M
extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
M
extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
M vendor/composer/installed.json
15 files changed, 169 insertions(+), 89 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata
refs/changes/17/199617/1
diff --git a/composer.json b/composer.json
index 1c414a4..227596d 100644
--- a/composer.json
+++ b/composer.json
@@ -5,6 +5,10 @@
"repositories": [
{
"type": "vcs",
+ "url":
"https://git.wikimedia.org/git/mediawiki/extensions/Wikibase.git"
+ },
+ {
+ "type": "vcs",
"url": "https://github.com/wmde/Wikidata.org.git"
},
{
@@ -33,4 +37,4 @@
"preferred-install": "dist",
"autoloader-suffix": "wikidata_1_25wmf22"
}
-}
\ No newline at end of file
+}
diff --git a/composer.lock b/composer.lock
index 2ab3e90..a0e9c21 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at
http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "2c17a6721641ee4dfc829a9a94dc98f5",
+ "hash": "99b3db77c3640ec4fa944bb1517f39d7",
"packages": [
{
"name": "composer/installers",
@@ -1236,14 +1236,8 @@
"version": "dev-wmf/1.25wmf22",
"source": {
"type": "git",
- "url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "7d3a0b11d0321ff09fde1b5692599860fea6496c"
- },
- "dist": {
- "type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/7d3a0b11d0321ff09fde1b5692599860fea6496c",
- "reference": "7d3a0b11d0321ff09fde1b5692599860fea6496c",
- "shasum": ""
+ "url":
"https://git.wikimedia.org/git/mediawiki/extensions/Wikibase.git",
+ "reference": "c42291f422f391dd14388859caf39857e80a4959"
},
"require": {
"data-values/common": "~0.2.0",
@@ -1291,7 +1285,6 @@
"Wikibase\\Repo\\View\\": "repo/includes/View"
}
},
- "notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-2.0+"
],
@@ -1309,7 +1302,11 @@
"wikibaserepo",
"wikidata"
],
- "time": "2015-03-25 00:03:14"
+ "support": {
+ "issues": "https://bugzilla.wikimedia.org/",
+ "irc": "irc://irc.freenode.net/wikidata"
+ },
+ "time": "2015-03-25 14:50:27"
},
{
"name": "wikibase/wikimedia-badges",
diff --git
a/extensions/Wikibase/client/includes/Hooks/UpdateRepoHookHandlers.php
b/extensions/Wikibase/client/includes/Hooks/UpdateRepoHookHandlers.php
index ec41526..53dcc5c 100644
--- a/extensions/Wikibase/client/includes/Hooks/UpdateRepoHookHandlers.php
+++ b/extensions/Wikibase/client/includes/Hooks/UpdateRepoHookHandlers.php
@@ -230,6 +230,7 @@
// show a message to the user that the Wikibase item
needs to be
// manually updated.
wfLogWarning( $e->getMessage() );
+ wfDebugLog( 'UpdateRepo', "OnDelete: Failed to inject
job: " . $e->getMessage() );
}
return true;
@@ -274,6 +275,7 @@
// show a message to the user that the Wikibase item
needs to be
// manually updated.
wfLogWarning( $e->getMessage() );
+ wfDebugLog( 'UpdateRepo', "OnMove: Failed to inject
job: " . $e->getMessage() );
}
return true;
diff --git a/extensions/Wikibase/client/includes/UpdateRepo/UpdateRepo.php
b/extensions/Wikibase/client/includes/UpdateRepo/UpdateRepo.php
index 89f158b..ea21694 100644
--- a/extensions/Wikibase/client/includes/UpdateRepo/UpdateRepo.php
+++ b/extensions/Wikibase/client/includes/UpdateRepo/UpdateRepo.php
@@ -91,6 +91,13 @@
$this->title->getFullText()
)
);
+
+ if ( $this->entityId === null ) {
+ wfDebugLog(
+ 'UpdateRepo',
+ "Couldn't find an item for
{$this->title->getFullText()}"
+ );
+ }
}
return $this->entityId;
@@ -106,18 +113,33 @@
if ( !class_exists( 'CentralAuthUser' ) ) {
// We can't do anything without CentralAuth as there's
no way to verify that
// the local user equals the repo one with the same name
+ wfDebugLog(
+ 'UpdateRepo',
+ "Can't validate user " . $this->user->getName()
. ": class CentralAuthUser doesn't exist"
+ );
+
return false;
}
$caUser = CentralAuthUser::getInstance( $this->user );
if ( !$caUser || !$caUser->exists() ) {
// The current user doesn't have a central account
+ wfDebugLog(
+ 'UpdateRepo',
+ "Can't validate user " . $this->user->getName()
. ": User doesn't have a global account"
+ );
+
return false;
}
if ( !$caUser->isAttached() || !$caUser->attachedOn(
$this->repoDB ) ) {
// Either the user account on this wiki or the one on
the repo do not exist
// or they aren't connected
+ wfDebugLog(
+ 'UpdateRepo',
+ "Can't validate user " . $this->user->getName()
. ": User is not attached locally or on {$this->repoDB}"
+ );
+
return false;
}
diff --git
a/extensions/Wikibase/lib/includes/formatters/EntityIdLinkFormatter.php
b/extensions/Wikibase/lib/includes/formatters/EntityIdLinkFormatter.php
index 9a520aa..60567f4 100644
--- a/extensions/Wikibase/lib/includes/formatters/EntityIdLinkFormatter.php
+++ b/extensions/Wikibase/lib/includes/formatters/EntityIdLinkFormatter.php
@@ -24,7 +24,7 @@
public function formatEntityId( EntityId $entityId ) {
$title = parent::formatEntityId( $entityId );
- return "[[$title|" . wfEscapeWikiText(
$entityId->getSerialization() ) . "]]";
+ return "[[$title]]";
}
}
diff --git a/extensions/Wikibase/lib/includes/parsers/PhpDateTimeParser.php
b/extensions/Wikibase/lib/includes/parsers/PhpDateTimeParser.php
index 986da80..3c02785 100644
--- a/extensions/Wikibase/lib/includes/parsers/PhpDateTimeParser.php
+++ b/extensions/Wikibase/lib/includes/parsers/PhpDateTimeParser.php
@@ -172,7 +172,7 @@
}
}
- if ( !isset( $matches ) ) {
+ if ( !isset( $matches[1] ) ) {
return null;
}
diff --git
a/extensions/Wikibase/lib/tests/phpunit/formatters/EntityIdLinkFormatterTest.php
b/extensions/Wikibase/lib/tests/phpunit/formatters/EntityIdLinkFormatterTest.php
index d7084b9..035a916 100644
---
a/extensions/Wikibase/lib/tests/phpunit/formatters/EntityIdLinkFormatterTest.php
+++
b/extensions/Wikibase/lib/tests/phpunit/formatters/EntityIdLinkFormatterTest.php
@@ -5,6 +5,7 @@
use LogicException;
use PHPUnit_Framework_TestCase;
use Title;
+use ValueFormatters\FormatterOptions;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
@@ -16,6 +17,8 @@
* @covers Wikibase\Lib\EntityIdLinkFormatter
*
* @group Wikibase
+ * @group ValueFormatters
+ * @group DataValueExtensions
* @group WikibaseLib
* @group EntityIdFormatterTest
*
@@ -28,11 +31,11 @@
return array(
'ItemId' => array(
new ItemId( 'Q23' ),
- '[[ITEM-TEST--Q23|Q23]]'
+ '[[ITEM-TEST--Q23]]'
),
'PropertyId' => array(
new PropertyId( 'P23' ),
- '[[PROPERTY-TEST--P23|P23]]'
+ '[[PROPERTY-TEST--P23]]'
),
);
}
@@ -58,7 +61,8 @@
}
}
- private function newEntityIdLinkFormatter() {
+ protected function newEntityIdLinkFormatter() {
+ $options = new FormatterOptions();
$titleLookup = $this->getMock(
'Wikibase\Lib\Store\EntityTitleLookup' );
$titleLookup->expects( $this->any() )->method( 'getTitleForId' )
->will( $this->returnCallback( array( $this,
'getTitleForId' ) ) );
diff --git
a/extensions/Wikibase/lib/tests/phpunit/parsers/PhpDateTimeParserTest.php
b/extensions/Wikibase/lib/tests/phpunit/parsers/PhpDateTimeParserTest.php
index ad63be6..0f9f825 100644
--- a/extensions/Wikibase/lib/tests/phpunit/parsers/PhpDateTimeParserTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/parsers/PhpDateTimeParserTest.php
@@ -137,6 +137,8 @@
array( '+0000000000000111-07-04T00:00:00Z' ),
'4th July 1' =>
array( '+0000000000000001-07-04T00:00:00Z' ),
+ '12.Jun.10x' =>
+ array( '+0000000000000010-06-12T00:00:00Z' ),
// More than 4 digit years
'4th July 10000' =>
@@ -265,6 +267,7 @@
'1980+3',
'1980+x',
'x',
+ 'x x x',
'zz',
'America/New_York'
);
diff --git a/extensions/Wikibase/repo/i18n/en.json
b/extensions/Wikibase/repo/i18n/en.json
index 416d3d3..2ef6536 100644
--- a/extensions/Wikibase/repo/i18n/en.json
+++ b/extensions/Wikibase/repo/i18n/en.json
@@ -341,6 +341,7 @@
"wikibase-item-summary-wbsetaliases-add-remove": "Added and removed
[$2] {{PLURAL:$1|alias|aliases}}",
"wikibase-item-summary-wbsetaliases-add": "Added [$2]
{{PLURAL:$1|alias|aliases}}",
"wikibase-item-summary-wbsetaliases-remove": "Removed [$2]
{{PLURAL:$1|alias|aliases}}",
+ "wikibase-item-summary-wbsetlabeldescriptionaliases": "Changed [$2]
label, description and aliases",
"wikibase-item-summary-wbsetsitelink-add": "Added link to [$2]",
"wikibase-item-summary-wbsetsitelink-add-both": "Added link with badges
to [$2]",
"wikibase-item-summary-wbsetsitelink-set": "Changed link to [$2]",
@@ -393,6 +394,7 @@
"wikibase-property-summary-wbsetaliases-add-remove": "Added and removed
[$2] {{PLURAL:$1|alias|aliases}}",
"wikibase-property-summary-wbsetaliases-add": "Added [$2]
{{PLURAL:$1|alias|aliases}}",
"wikibase-property-summary-wbsetaliases-remove": "Removed [$2]
{{PLURAL:$1|alias|aliases}}",
+ "wikibase-property-summary-wbsetlabeldescriptionaliases": "Changed [$2]
label, description and aliases",
"wikibase-property-summary-wbsetclaim-update": "Changed
{{PLURAL:$3|claim|claims}}",
"wikibase-property-summary-wbsetclaim-create": "Created
{{PLURAL:$3|claim|claims}}",
"wikibase-property-summary-wbsetclaim-update-qualifiers": "Changed
{{PLURAL:$4|one qualifier|$4 qualifiers}} of {{PLURAL:$3|claim|claims}}",
diff --git a/extensions/Wikibase/repo/i18n/qqq.json
b/extensions/Wikibase/repo/i18n/qqq.json
index 8f1178e..248f76d 100644
--- a/extensions/Wikibase/repo/i18n/qqq.json
+++ b/extensions/Wikibase/repo/i18n/qqq.json
@@ -363,6 +363,7 @@
"wikibase-item-summary-wbsetaliases-add-remove": "{{wikibase summary
messages|item|Automatic edit summary when adding and removing item aliases. A
user can be in edit mode for aliases and can remove one or more aliases, while
adding others in the same edit.}}",
"wikibase-item-summary-wbsetaliases-add": "{{wikibase summary
messages|item|Automatic edit summary when adding one or more aliases.}}",
"wikibase-item-summary-wbsetaliases-remove": "{{wikibase summary
messages|item|Automatic edit summary when a user removes one or more
aliases.}}",
+ "wikibase-item-summary-wbsetlabeldescriptionaliases": "{{wikibase
summary messages|item|Automatic edit summary generated when editing an item
label, description and aliases. Example of a full edit summary is \"Changed
[en] label, description and aliases: Label, Description, Alias 1, Alias 2\".}}",
"wikibase-item-summary-wbsetsitelink-add": "{{wikibase summary
messages|sitelinks|Automatic edit summary (autocomment) when adding a language
link. Such a summary could appear in English as \"Added link to [itwiki]:
Italia\".}}",
"wikibase-item-summary-wbsetsitelink-add-both": "{{wikibase summary
messages|sitelinks|Automatic edit summary (autocomment) when adding a language
link with badges. Such a summary could appear in English as \"Added link to
[itwiki]: Italia, Q2, Q3\".}}",
"wikibase-item-summary-wbsetsitelink-set": "{{doc-important|Translate
this as \"Changed link which points to <nowiki>[$2]</nowiki>\".}}\n{{wikibase
summary messages|sitelinks|Automatic edit summary (autocomment) when editing a
language link. Such a summary could appear in English as \"Changed link to
[itwiki]: Italia\".}}",
@@ -415,6 +416,7 @@
"wikibase-property-summary-wbsetaliases-add-remove": "Automatic edit
summary when adding and removing property aliases. A user can be in edit mode
for aliases and can remove one or more aliases, while adding others in the same
edit.\n\nParameters:\n* $1 - the number of aliases added/removed\n* $2 - the
language code of the item page",
"wikibase-property-summary-wbsetaliases-add": "Automatic edit summary
when adding an alias(es) for a property. Parameters:\n* $1 - the number of
aliases that were added\n* $2 - the language code for the item page",
"wikibase-property-summary-wbsetaliases-remove": "Automatic edit
summary when a user removes one or more aliases from a property. Parameters:\n*
$1 - the number of aliases that were removed\n* $2 - the language code for the
item page",
+ "wikibase-property-summary-wbsetlabeldescriptionaliases": "{{wikibase
summary messages|item|Automatic edit summary generated when editing an property
label, description and aliases. Example of a full edit summary is \"Changed
[en] label, description and aliases: Label, Description, Alias 1, Alias 2\".}}",
"wikibase-property-summary-wbsetclaim-update": "Automatic edit summary
generated when modifying a claim using setclaim. Parameters:\n* $3 - number of
claims changed.\n{{related|Wikibase-property-summary-wbsetclaim}}",
"wikibase-property-summary-wbsetclaim-create": "Automatic edit summary
generated when creating a new claim using setclaim. Parameters:\n* $3 - number
of claims changed.\n{{related|Wikibase-property-summary-wbsetclaim}}",
"wikibase-property-summary-wbsetclaim-update-qualifiers": "Automatic
edit summary generated when modifying the qualifiers of a claim using setclaim.
Parameters:\n* $3 - number of claims changed\n* $4 - number of qualifiers
changed.\n{{related|Wikibase-property-summary-wbsetclaim}}",
diff --git
a/extensions/Wikibase/repo/includes/Localizer/MessageParameterFormatter.php
b/extensions/Wikibase/repo/includes/Localizer/MessageParameterFormatter.php
index 6cd3c75..7d54deb 100644
--- a/extensions/Wikibase/repo/includes/Localizer/MessageParameterFormatter.php
+++ b/extensions/Wikibase/repo/includes/Localizer/MessageParameterFormatter.php
@@ -10,8 +10,8 @@
use ValueFormatters\ValueFormatter;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\SiteLink;
-use Wikibase\Lib\EntityIdFormatter;
use Wikibase\Lib\MediaWikiNumberLocalizer;
+use Wikibase\Lib\Store\EntityTitleLookup;
/**
* ValueFormatter for formatting objects that may be encountered in
@@ -28,9 +28,9 @@
private $dataValueFormatter;
/**
- * @var EntityIdFormatter
+ * @var EntityTitleLookup
*/
- private $entityIdFormatter;
+ private $entityTitleLookup;
/**
* @var SiteStore
@@ -49,18 +49,18 @@
/**
* @param ValueFormatter $dataValueFormatter A formatter for turning
DataValues into wikitext.
- * @param EntityIdFormatter $entityIdFormatter An entity id formatter
returning wikitext.
+ * @param EntityTitleLookup $entityTitleLookup
* @param SiteStore $sites
* @param Language $language
*/
public function __construct(
ValueFormatter $dataValueFormatter,
- EntityIdFormatter $entityIdFormatter,
+ EntityTitleLookup $entityTitleLookup,
SiteStore $sites,
Language $language
) {
$this->dataValueFormatter = $dataValueFormatter;
- $this->entityIdFormatter = $entityIdFormatter;
+ $this->entityTitleLookup = $entityTitleLookup;
$this->sites = $sites;
$this->language = $language;
@@ -129,7 +129,13 @@
* @return string The formatted ID (as a wikitext link).
*/
private function formatEntityId( EntityId $entityId ) {
- return $this->entityIdFormatter->formatEntityId( $entityId );
+ // @todo: this should use TitleValue +
MediaWikiPageLinkRenderer!
+ $title = $this->entityTitleLookup->getTitleForId( $entityId );
+
+ $target = $title->getFullText();
+ $text = wfEscapeWikiText( $entityId->getSerialization() );
+
+ return "[[$target|$text]]";
}
/**
diff --git a/extensions/Wikibase/repo/includes/WikibaseRepo.php
b/extensions/Wikibase/repo/includes/WikibaseRepo.php
index 683db98..9f4bacd 100644
--- a/extensions/Wikibase/repo/includes/WikibaseRepo.php
+++ b/extensions/Wikibase/repo/includes/WikibaseRepo.php
@@ -761,7 +761,7 @@
return new MessageParameterFormatter(
new DispatchingValueFormatter( $valueFormatters ),
- new EntityIdLinkFormatter(
$this->getEntityTitleLookup() ),
+ $this->getEntityTitleLookup(),
$this->getSiteStore(),
$wgLang
);
diff --git
a/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
b/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
index 95ecfe6..d7d2d51 100644
---
a/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
+++
b/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
@@ -4,9 +4,11 @@
use Html;
use Language;
+use Wikibase\ChangeOp\ChangeOp;
use Wikibase\ChangeOp\ChangeOpException;
use Wikibase\ChangeOp\FingerprintChangeOpFactory;
use Wikibase\DataModel\Entity\Entity;
+use Wikibase\DataModel\Term\Fingerprint;
use Wikibase\DataModel\Term\FingerprintProvider;
use Wikibase\Lib\ContentLanguages;
use Wikibase\Repo\WikibaseRepo;
@@ -239,7 +241,7 @@
}
/**
- * @param string $languageCode
+ * @param string|null $languageCode
*
* @return bool
*/
@@ -252,52 +254,19 @@
*
* @param Entity $entity
*
- * @return Summary[]|bool
+ * @return Summary|bool
*/
protected function modifyEntity( Entity $entity ) {
- $fingerprint = $entity->getFingerprint();
- $changeOpFactory = $this->changeOpFactory;
- $changeOps = array();
+ $changeOps = $this->getChangeOps( $entity->getFingerprint() );
- if ( $this->label !== '' ) {
- $changeOps[] = $changeOpFactory->newSetLabelOp(
- $this->languageCode,
- $this->label
- );
- } elseif ( $fingerprint->hasLabel( $this->languageCode ) ) {
- $changeOps[] = $changeOpFactory->newRemoveLabelOp(
- $this->languageCode
- );
- }
-
- if ( $this->description !== '' ) {
- $changeOps[] = $changeOpFactory->newSetDescriptionOp(
- $this->languageCode,
- $this->description
- );
- } elseif ( $fingerprint->hasDescription( $this->languageCode )
) {
- $changeOps[] = $changeOpFactory->newRemoveDescriptionOp(
- $this->languageCode
- );
- }
-
- if ( !empty( $this->aliases ) ) {
- $changeOps[] = $changeOpFactory->newSetAliasesOp(
- $this->languageCode,
- $this->aliases
- );
- } elseif ( $fingerprint->hasAliasGroup( $this->languageCode ) )
{
- $changeOps[] = $changeOpFactory->newRemoveAliasesOp(
- $this->languageCode,
- $fingerprint->getAliasGroup(
$this->languageCode )->getAliases()
- );
- }
-
+ $summary = false;
$success = true;
- foreach ( $changeOps as $changeOp ) {
+ foreach ( $changeOps as $module => $changeOp ) {
+ $summary = new Summary( $module );
+
try {
- $this->applyChangeOp( $changeOp, $entity );
+ $this->applyChangeOp( $changeOp, $entity,
$summary );
} catch ( ChangeOpException $ex ) {
$this->showErrorHTML( $ex->getMessage() );
$success = false;
@@ -306,9 +275,81 @@
if ( !$success ) {
return false;
+ } elseif ( count( $changeOps ) === 1 ) {
+ return $summary;
}
- return new Summary( 'wbeditentity' );
+ return $this->getSummaryForLabelDescriptionAliases();
+ }
+
+ /**
+ * @param Fingerprint $fingerprint
+ *
+ * @return ChangeOp[]
+ */
+ private function getChangeOps( Fingerprint $fingerprint ) {
+ $changeOpFactory = $this->changeOpFactory;
+ $changeOps = array();
+
+ if ( $this->label !== '' ) {
+ if ( !$fingerprint->hasLabel( $this->languageCode )
+ || $fingerprint->getLabel( $this->languageCode
)->getText() !== $this->label
+ ) {
+ $changeOps['wbsetlabel'] =
$changeOpFactory->newSetLabelOp(
+ $this->languageCode,
+ $this->label
+ );
+ }
+ } elseif ( $fingerprint->hasLabel( $this->languageCode ) ) {
+ $changeOps['wbsetlabel'] =
$changeOpFactory->newRemoveLabelOp(
+ $this->languageCode
+ );
+ }
+
+ if ( $this->description !== '' ) {
+ if ( !$fingerprint->hasDescription( $this->languageCode
)
+ || $fingerprint->getDescription(
$this->languageCode )->getText() !== $this->description
+ ) {
+ $changeOps['wbsetdescription'] =
$changeOpFactory->newSetDescriptionOp(
+ $this->languageCode,
+ $this->description
+ );
+ }
+ } elseif ( $fingerprint->hasDescription( $this->languageCode )
) {
+ $changeOps['wbsetdescription'] =
$changeOpFactory->newRemoveDescriptionOp(
+ $this->languageCode
+ );
+ }
+
+ if ( !empty( $this->aliases ) ) {
+ if ( !$fingerprint->hasAliasGroup( $this->languageCode )
+ || $fingerprint->getAliasGroup(
$this->languageCode )->getAliases() !== $this->aliases
+ ) {
+ $changeOps['wbsetaliases'] =
$changeOpFactory->newSetAliasesOp(
+ $this->languageCode,
+ $this->aliases
+ );
+ }
+ } elseif ( $fingerprint->hasAliasGroup( $this->languageCode ) )
{
+ $changeOps['wbsetaliases'] =
$changeOpFactory->newRemoveAliasesOp(
+ $this->languageCode,
+ $fingerprint->getAliasGroup(
$this->languageCode )->getAliases()
+ );
+ }
+
+ return $changeOps;
+ }
+
+ /**
+ * @return Summary
+ */
+ private function getSummaryForLabelDescriptionAliases() {
+ // FIXME: Introduce more specific messages if only 2 of the 3
fields changed.
+ $summary = new Summary( 'wbsetlabeldescriptionaliases' );
+ $summary->addAutoSummaryArgs( $this->label, $this->description,
$this->aliases );
+
+ $summary->setLanguage( $this->languageCode );
+ return $summary;
}
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
index a3bb80a..08e4ada 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
@@ -5,14 +5,14 @@
use DataValues\DataValue;
use DataValues\DecimalValue;
use Language;
-use PHPUnit_Framework_TestCase;
use Site;
use SiteStore;
+use Title;
use ValueFormatters\ValueFormatter;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\DataModel\SiteLink;
-use Wikibase\Lib\EntityIdFormatter;
+use Wikibase\Lib\Store\EntityTitleLookup;
use Wikibase\Repo\Localizer\MessageParameterFormatter;
/**
@@ -25,7 +25,7 @@
* @licence GNU GPL v2+
* @author Daniel Kinzler
*/
-class MessageParameterFormatterTest extends PHPUnit_Framework_TestCase {
+class MessageParameterFormatterTest extends \PHPUnit_Framework_TestCase {
public function formatProvider() {
$decimal = new DecimalValue( '+123.456' );
@@ -38,7 +38,7 @@
'float en' => array( 123.456, 'en', '123.456' ),
'float de' => array( 123.456, 'de', '123,456' ),
'DecimalValue en' => array( $decimal, 'en',
'DataValues\DecimalValue:+123.456' ),
- 'EntityId' => array( $entityId, 'en', '[[ENTITYID]]' ),
+ 'EntityId' => array( $entityId, 'en', '[[Q123|Q123]]' ),
'SiteLink' => array( $siteLink, 'en',
'[http://acme.com/Foo acme:Foo]' ),
'list of floats' => array( array( 1.2, 0.5 ), 'en',
'1.2, 0.5' ),
);
@@ -50,7 +50,7 @@
public function testFormat( $param, $lang, $expected ) {
$formatter = new MessageParameterFormatter(
$this->getMockValueFormatter(),
- $this->getMockIdFormatter(),
+ $this->getMockTitleLookup(),
$this->getMockSitesTable(),
Language::factory( $lang )
);
@@ -79,15 +79,15 @@
}
/**
- * @return EntityIdFormatter
+ * @return EntityTitleLookup
*/
- private function getMockIdFormatter() {
- $mock = $this->getMock( 'Wikibase\Lib\EntityIdFormatter' );
+ private function getMockTitleLookup() {
+ $mock = $this->getMock( 'Wikibase\Lib\Store\EntityTitleLookup'
);
$mock->expects( $this->any() )
- ->method( 'formatEntityId' )
+ ->method( 'getTitleForId' )
->will( $this->returnCallback(
function ( EntityId $id ) {
- return '[[ENTITYID]]';
+ return Title::makeTitle( NS_MAIN,
$id->getSerialization() );
}
) );
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 86c90e8..ff25f42 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1328,14 +1328,8 @@
"version_normalized": "dev-wmf/1.25wmf22",
"source": {
"type": "git",
- "url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "7d3a0b11d0321ff09fde1b5692599860fea6496c"
- },
- "dist": {
- "type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/7d3a0b11d0321ff09fde1b5692599860fea6496c",
- "reference": "7d3a0b11d0321ff09fde1b5692599860fea6496c",
- "shasum": ""
+ "url":
"https://git.wikimedia.org/git/mediawiki/extensions/Wikibase.git",
+ "reference": "c42291f422f391dd14388859caf39857e80a4959"
},
"require": {
"data-values/common": "~0.2.0",
@@ -1362,9 +1356,9 @@
"conflict": {
"mediawiki/mediawiki": "<1.23"
},
- "time": "2015-03-25 00:03:14",
+ "time": "2015-03-25 14:50:27",
"type": "mediawiki-extension",
- "installation-source": "dist",
+ "installation-source": "source",
"autoload": {
"files": [
"Wikibase.composer.php"
@@ -1385,7 +1379,6 @@
"Wikibase\\Repo\\View\\": "repo/includes/View"
}
},
- "notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-2.0+"
],
@@ -1402,6 +1395,10 @@
"wikibaselib",
"wikibaserepo",
"wikidata"
- ]
+ ],
+ "support": {
+ "issues": "https://bugzilla.wikimedia.org/",
+ "irc": "irc://irc.freenode.net/wikidata"
+ }
}
]
--
To view, visit https://gerrit.wikimedia.org/r/199617
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6d8e0019e11674ffbe1ca62b337c5f41b61b4e6b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: wmf/1.25wmf22
Gerrit-Owner: Aude <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits