Denny Vrandecic has submitted this change and it was merged.
Change subject: editentity aliases only 1 changeop per change type
......................................................................
editentity aliases only 1 changeop per change type
Previously a changeop was created for each alias
given to wbeditentity. As each changeop is a set
each changeop was overwriting the previous changes
Bug: 50983
Change-Id: Iae7d15467c31bbf09f03acd4b069b3a2199a1509
---
M repo/includes/api/EditEntity.php
1 file changed, 12 insertions(+), 5 deletions(-)
Approvals:
Denny Vrandecic: Looks good to me, approved
jenkins-bot: Verified
diff --git a/repo/includes/api/EditEntity.php b/repo/includes/api/EditEntity.php
index 72a228f..a35e7a7 100644
--- a/repo/includes/api/EditEntity.php
+++ b/repo/includes/api/EditEntity.php
@@ -171,7 +171,6 @@
$this->addLabelsToResult( $entity->getLabels(), 'entity' );
$this->addDescriptionsToResult( $entity->getDescriptions(),
'entity' );
$this->addAliasesToResult( $entity->getAllAliases(), 'entity' );
-
// TODO: This is a temporary fix that should be handled
properly with a
// serializer class that is specific for the given entity
if ( $entity->getType() === Item::ENTITY_TYPE ) {
@@ -274,25 +273,33 @@
}
}
+ $aliasesChanges = array();
+
foreach ( $indexedAliases as $langCode => $args ) {
foreach ( $args as $arg ) {
$status->merge( $this->checkMultilangArgs(
$arg, $langCode ) );
- $alias = array(
$this->stringNormalizer->trimToNFC( $arg['value'] ) );
+ $alias = $this->stringNormalizer->trimToNFC(
$arg['value'] );
$language = $arg['language'];
if ( array_key_exists( 'remove', $arg ) ) {
- $aliasesChangeOps[] = new
ChangeOpAliases( $language, $alias, 'remove' );
+ $aliasesChanges['remove'][$language][]
= $alias;
}
elseif ( array_key_exists( 'add', $arg ) ) {
- $aliasesChangeOps[] = new
ChangeOpAliases( $language, $alias, 'add' );
+ $aliasesChanges['add'][$language][] =
$alias;
}
else {
- $aliasesChangeOps[] = new
ChangeOpAliases( $language, $alias, 'set' );
+ $aliasesChanges['set'][$language][] =
$alias;
}
}
}
+ foreach ( $aliasesChanges as $opType => $aliasChange ) {
+ foreach ( $aliasChange as $language => $aliasArray ) {
+ $aliasesChangeOps[] = new ChangeOpAliases(
$language, $aliasArray, $opType );
+ }
+ }
+
if ( !$status->isOk() ) {
wfProfileOut( __METHOD__ );
$this->dieUsage( "Contained status: $1",
$status->getWikiText() );
--
To view, visit https://gerrit.wikimedia.org/r/73172
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iae7d15467c31bbf09f03acd4b069b3a2199a1509
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Anja Jentzsch <[email protected]>
Gerrit-Reviewer: Ataherivand <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Daniel Werner <[email protected]>
Gerrit-Reviewer: Denny Vrandecic <[email protected]>
Gerrit-Reviewer: Ebrahim <[email protected]>
Gerrit-Reviewer: Henning Snater <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: Jens Ohlig <[email protected]>
Gerrit-Reviewer: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: John Erling Blad <[email protected]>
Gerrit-Reviewer: Liangent <[email protected]>
Gerrit-Reviewer: Lydia Pintscher <[email protected]>
Gerrit-Reviewer: Markus Kroetzsch <[email protected]>
Gerrit-Reviewer: Nikola Smolenski <[email protected]>
Gerrit-Reviewer: Nilesh <[email protected]>
Gerrit-Reviewer: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits