64 # Do a link batch query
65 $this->mResult->seek( 0 );
66 $batch = $this->linkBatchFactory->newLinkBatch()->setCaller( __METHOD__ );
67 # Give some pointers to make (last) links
70 foreach ( $this->mResult as $row ) {
71 $batch->addUser(
new UserIdentityValue( (
int)$row->rev_user, $row->rev_user_text ) );
73 if ( $rev_id !==
null ) {
74 if ( $rev_id > $row->rev_id ) {
75 $this->prevId[$rev_id] = $row->rev_id;
76 } elseif ( $rev_id < $row->rev_id ) {
77 $this->prevId[$row->rev_id] = $rev_id;
81 $rev_id = $row->rev_id;
85 $this->mResult->seek( 0 );
104 $revRecord = $this->revisionStore->newRevisionFromRow( $row );
109 $last = $this->
msg(
'last' )->escaped();
112 $tsWithId = $ts .
"|" . $row->rev_id;
113 $oldCheckBox = Html::radio(
115 $this->mergePointTimestampOld === $tsWithId,
116 [
'value' => $tsWithId ]
118 $newCheckBox = Html::radio(
120 $this->mergePointTimestamp === $ts || $this->mergePointTimestamp === $tsWithId,
121 [
'value' => $tsWithId ]
123 $cbs = $oldCheckBox . $newCheckBox;
127 $pageLink = $linkRenderer->makeKnownLink(
128 $revRecord->getPageAsLinkTarget(),
129 $this->getLanguage()->userTimeAndDate( $ts, $user ),
131 [
'oldid' => $revRecord->getId() ]
133 if ( $revRecord->isDeleted( RevisionRecord::DELETED_TEXT ) ) {
134 $class = Linker::getRevisionDeletedClass( $revRecord );
135 $pageLink =
'<span class=" ' . $class .
'">' . $pageLink .
'</span>';
139 if ( !$revRecord->userCan( RevisionRecord::DELETED_TEXT, $this->getAuthority() ) ) {
140 $last = $this->
msg(
'last' )->escaped();
141 } elseif ( isset( $this->prevId[$row->rev_id] ) ) {
142 $last = $linkRenderer->makeKnownLink(
143 $revRecord->getPageAsLinkTarget(),
144 $this->msg(
'last' )->text(),
147 'diff' => $row->rev_id,
148 'oldid' => $this->prevId[$row->rev_id]
153 $userLink = Linker::revUserTools( $revRecord );
155 $size = $row->rev_len;
156 if ( $size !==
null ) {
157 $stxt = Linker::formatRevisionSize( $size );
159 $comment = $this->commentFormatter->formatRevision( $revRecord, $user );
162 [ $tagSummary, $classes ] = ChangeTags::formatSummaryRow(
168 return Html::rawElement(
'li', $classes,
169 $this->
msg(
'mergehistory-revisionrow' )
170 ->rawParams( $cbs, $last, $pageLink, $userLink, $stxt, $comment, $tagSummary )->escaped() );