Merge "Migrate SpecialUndelete and Diff from tag_summary to change_tag"
This commit is contained in:
commit
8beca8a8fe
2 changed files with 45 additions and 12 deletions
|
|
@ -21,8 +21,10 @@
|
|||
* @ingroup DifferenceEngine
|
||||
*/
|
||||
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use MediaWiki\Revision\RevisionRecord;
|
||||
use MediaWiki\Revision\SlotRecord;
|
||||
use MediaWiki\Storage\NameTableAccessException;
|
||||
|
||||
/**
|
||||
* DifferenceEngine is responsible for rendering the difference between two revisions as HTML.
|
||||
|
|
@ -1797,22 +1799,42 @@ class DifferenceEngine extends ContextSource {
|
|||
|
||||
// Load tags information for both revisions
|
||||
$dbr = wfGetDB( DB_REPLICA );
|
||||
$changeTagDefStore = MediaWikiServices::getInstance()->getChangeTagDefStore();
|
||||
if ( $this->mOldid !== false ) {
|
||||
$this->mOldTags = $dbr->selectField(
|
||||
'tag_summary',
|
||||
'ts_tags',
|
||||
[ 'ts_rev_id' => $this->mOldid ],
|
||||
$tagIds = $dbr->selectFieldValues(
|
||||
'change_tag',
|
||||
'ct_tag_id',
|
||||
[ 'ct_rev_id' => $this->mOldid ],
|
||||
__METHOD__
|
||||
);
|
||||
$tags = [];
|
||||
foreach ( $tagIds as $tagId ) {
|
||||
try {
|
||||
$tags[] = $changeTagDefStore->getName( (int)$tagId );
|
||||
} catch ( NameTableAccessException $exception ) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$this->mOldTags = implode( ',', $tags );
|
||||
} else {
|
||||
$this->mOldTags = false;
|
||||
}
|
||||
$this->mNewTags = $dbr->selectField(
|
||||
'tag_summary',
|
||||
'ts_tags',
|
||||
[ 'ts_rev_id' => $this->mNewid ],
|
||||
|
||||
$tagIds = $dbr->selectFieldValues(
|
||||
'change_tag',
|
||||
'ct_tag_id',
|
||||
[ 'ct_rev_id' => $this->mNewid ],
|
||||
__METHOD__
|
||||
);
|
||||
$tags = [];
|
||||
foreach ( $tagIds as $tagId ) {
|
||||
try {
|
||||
$tags[] = $changeTagDefStore->getName( (int)$tagId );
|
||||
} catch ( NameTableAccessException $exception ) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$this->mNewTags = implode( ',', $tags );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use MediaWiki\Revision\RevisionRecord;
|
||||
use MediaWiki\Storage\NameTableAccessException;
|
||||
use Wikimedia\Rdbms\IResultWrapper;
|
||||
|
||||
/**
|
||||
|
|
@ -596,12 +597,22 @@ class SpecialUndelete extends SpecialPage {
|
|||
|
||||
$minor = $rev->isMinor() ? ChangesList::flag( 'minor' ) : '';
|
||||
|
||||
$tags = wfGetDB( DB_REPLICA )->selectField(
|
||||
'tag_summary',
|
||||
'ts_tags',
|
||||
[ 'ts_rev_id' => $rev->getId() ],
|
||||
$tagIds = wfGetDB( DB_REPLICA )->selectFieldValues(
|
||||
'change_tag',
|
||||
'ct_tag_id',
|
||||
[ 'ct_rev_id' => $rev->getId() ],
|
||||
__METHOD__
|
||||
);
|
||||
$tags = [];
|
||||
$changeTagDefStore = MediaWikiServices::getInstance()->getChangeTagDefStore();
|
||||
foreach ( $tagIds as $tagId ) {
|
||||
try {
|
||||
$tags[] = $changeTagDefStore->getName( (int)$tagId );
|
||||
} catch ( NameTableAccessException $exception ) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$tags = implode( ',', $tags );
|
||||
$tagSummary = ChangeTags::formatSummaryRow( $tags, 'deleteddiff', $this->getContext() );
|
||||
|
||||
// FIXME This is reimplementing DifferenceEngine#getRevisionHeader
|
||||
|
|
|
|||
Loading…
Reference in a new issue