Addshore has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/73172


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(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/72/73172/1

diff --git a/repo/includes/api/EditEntity.php b/repo/includes/api/EditEntity.php
index 72a228f..8e530fd 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: newchange
Gerrit-Change-Id: Iae7d15467c31bbf09f03acd4b069b3a2199a1509
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to