65 # Do a link batch query
66 $this->mResult->seek( 0 );
67 $batch = $this->linkBatchFactory->newLinkBatch()->setCaller( __METHOD__ );
68 # Give some pointers to make (last) links
71 foreach ( $this->mResult as $row ) {
72 $batch->addUser(
new UserIdentityValue( (
int)$row->rev_user, $row->rev_user_text ) );
74 if ( $rev_id !==
null ) {
75 if ( $rev_id > $row->rev_id ) {
76 $this->prevId[$rev_id] = $row->rev_id;
77 } elseif ( $rev_id < $row->rev_id ) {
78 $this->prevId[$row->rev_id] = $rev_id;
82 $rev_id = $row->rev_id;
86 $this->mResult->seek( 0 );
105 $revRecord = $this->revisionStore->newRevisionFromRow( $row );
110 $last = $this->
msg(
'last' )->escaped();
113 $tsWithId = $ts .
"|" . $row->rev_id;
114 $oldCheckBox = Html::radio(
116 $this->mergePointTimestampOld === $tsWithId,
117 [
'value' => $tsWithId ]
119 $newCheckBox = Html::radio(
121 $this->mergePointTimestamp === $ts || $this->mergePointTimestamp === $tsWithId,
122 [
'value' => $tsWithId ]
124 $cbs = $oldCheckBox . $newCheckBox;
128 $pageLink = $linkRenderer->makeKnownLink(
129 $revRecord->getPageAsLinkTarget(),
130 $this->getLanguage()->userTimeAndDate( $ts, $user ),
132 [
'oldid' => $revRecord->getId() ]
134 if ( $revRecord->isDeleted( RevisionRecord::DELETED_TEXT ) ) {
135 $class = Linker::getRevisionDeletedClass( $revRecord );
136 $pageLink =
'<span class=" ' . $class .
'">' . $pageLink .
'</span>';
140 if ( !$revRecord->userCan( RevisionRecord::DELETED_TEXT, $this->getAuthority() ) ) {
141 $last = $this->
msg(
'last' )->escaped();
142 } elseif ( isset( $this->prevId[$row->rev_id] ) ) {
143 $last = $linkRenderer->makeKnownLink(
144 $revRecord->getPageAsLinkTarget(),
145 $this->msg(
'last' )->text(),
148 'diff' => $row->rev_id,
149 'oldid' => $this->prevId[$row->rev_id]
154 $userLink = Linker::revUserTools( $revRecord );
156 $size = $row->rev_len;
157 if ( $size !==
null ) {
158 $stxt = Linker::formatRevisionSize( $size );
160 $comment = $this->commentFormatter->formatRevision( $revRecord, $user );
163 [ $tagSummary, $classes ] = $this->changeTagsFormatter->formatTagsAsSummaryList(
166 $this->getAuthority()
169 return Html::rawElement(
'li', $classes,
170 $this->
msg(
'mergehistory-revisionrow' )
171 ->rawParams( $cbs, $last, $pageLink, $userLink, $stxt, $comment, $tagSummary )->escaped() );