Ricordisamoa has uploaded a new change for review. https://gerrit.wikimedia.org/r/236537
Change subject: [WIP] wbeditentity: use specific summary if only label or description changes ...................................................................... [WIP] wbeditentity: use specific summary if only label or description changes Bug: T67846 Change-Id: Ia95e4aef9b67858bc8f0ca1e320b9af6cdd1a2da --- M repo/includes/api/EditEntity.php 1 file changed, 22 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/37/236537/1 diff --git a/repo/includes/api/EditEntity.php b/repo/includes/api/EditEntity.php index 4304cf9..89c3f92 100644 --- a/repo/includes/api/EditEntity.php +++ b/repo/includes/api/EditEntity.php @@ -12,6 +12,8 @@ use Title; use UsageException; use Wikibase\ChangeOp\ChangeOp; +use Wikibase\ChangeOp\ChangeOpLabel; +use Wikibase\ChangeOp\ChangeOpDescription; use Wikibase\ChangeOp\ChangeOps; use Wikibase\ChangeOp\FingerprintChangeOpFactory; use Wikibase\ChangeOp\SiteLinkChangeOpFactory; @@ -252,10 +254,15 @@ $changeOps = $this->getChangeOps( $data, $entity ); - $this->applyChangeOp( $changeOps, $entity ); + $applied = false; + $summary = $this->getSummary( $params, $entity, $changeOps->getChangeOps(), $applied ); + + if ( !$applied ) { + $this->applyChangeOp( $changeOps, $entity ); + } $this->buildResult( $entity ); - return $this->getSummary( $params ); + return $summary; } /** @@ -263,12 +270,23 @@ * * @return Summary */ - private function getSummary( array $params ) { + private function getSummary( array $params, Entity &$entity, array $changeOps, &$applied ) { //TODO: Construct a nice and meaningful summary from the changes that get applied! // Perhaps that could be based on the resulting diff?] $summary = $this->createSummary( $params ); if ( isset( $params['id'] ) xor ( isset( $params['site'] ) && isset( $params['title'] ) ) ) { - $summary->setAction( $params['clear'] === false ? 'update' : 'override' ); + if ( $params['clear'] !== false ) { + $summary->setAction( 'override' ); + } elseif ( + count( $changeOps ) === 1 && + ( $changeOps[0] instanceof ChangeOpLabel || $changeOps[0] instanceof ChangeOpDescription ) + ) { + $summary->setModuleName( $changeOps[0] instanceof ChangeOpLabel ? 'wbsetlabel' : 'wbsetdescription' ); + $this->applyChangeOp( $changeOps[0], $entity, $summary ); + $applied = true; + } else { + $summary->setAction( 'update' ); + } } else { $summary->setAction( 'create' ); }# -- To view, visit https://gerrit.wikimedia.org/r/236537 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia95e4aef9b67858bc8f0ca1e320b9af6cdd1a2da Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Ricordisamoa <ricordisa...@openmailbox.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits