jenkins-bot has submitted this change and it was merged.

Change subject: New auto-summary message for SpecialSetLabelDescriptionAliases
......................................................................


New auto-summary message for SpecialSetLabelDescriptionAliases

Again, this is only one step, more patches are coming. There are a lot of
FIXMEs in here, but I would love to fix them in later patches. Please
review and merge so we can move forward. If you find actual issues
introduced by this patch I will fix them. If you find issues *not*
introduced here I will mark them as FIXME if not already done. Ok?

Bug: T93853
Change-Id: I66f06792386adddf48e342a7a623e38033bc28ae
---
M repo/i18n/en.json
M repo/i18n/qqq.json
M repo/includes/specials/SpecialSetLabelDescriptionAliases.php
3 files changed, 76 insertions(+), 42 deletions(-)

Approvals:
  Tobias Gritschacher: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/repo/i18n/en.json b/repo/i18n/en.json
index 416d3d3..2ef6536 100644
--- a/repo/i18n/en.json
+++ b/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/repo/i18n/qqq.json b/repo/i18n/qqq.json
index 9afa0fb..a777010 100644
--- a/repo/i18n/qqq.json
+++ b/repo/i18n/qqq.json
@@ -368,6 +368,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\".}}",
@@ -420,6 +421,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/repo/includes/specials/SpecialSetLabelDescriptionAliases.php 
b/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
index a52487e..73bff9b 100644
--- a/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
+++ b/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
@@ -5,9 +5,11 @@
 use Html;
 use Language;
 use SiteStore;
+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\Lib\Store\EntityRevisionLookup;
@@ -281,7 +283,7 @@
        }
 
        /**
-        * @param string $languageCode
+        * @param string|null $languageCode
         *
         * @return bool
         */
@@ -294,52 +296,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;
@@ -348,9 +317,70 @@
 
                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 !== '' ) {
+                       $changeOps['wbsetlabel'] = 
$changeOpFactory->newSetLabelOp(
+                               $this->languageCode,
+                               $this->label
+                       );
+               } elseif ( $fingerprint->hasLabel( $this->languageCode ) ) {
+                       $changeOps['wbsetlabel'] = 
$changeOpFactory->newRemoveLabelOp(
+                               $this->languageCode
+                       );
+               }
+
+               if ( $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 ) ) {
+                       $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: Use the existing messages if only 1 of the 3 fields 
changed.
+               // 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;
        }
 
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/191592
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I66f06792386adddf48e342a7a623e38033bc28ae
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[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

Reply via email to