mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-12-25 22:23:44 +00:00
b983ce7581
This is a copy-paste mistake from the message directly below. Happened in Ibe0092a not long ago. Also add some comments to make it easier to find the places where seemingly unused messages end being used. Bug: T368249 Change-Id: I709c0f14978daad8c98f1f8edf52ef28029c6d40
98 lines
2.8 KiB
PHP
98 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Extension\Notifications\Formatters;
|
|
|
|
use MediaWiki\Language\RawMessage;
|
|
use MediaWiki\MediaWikiServices;
|
|
use MediaWiki\Message\Message;
|
|
use MediaWiki\Parser\Sanitizer;
|
|
use MediaWiki\Revision\RevisionRecord;
|
|
|
|
class EchoEditUserPagePresentationModel extends EchoEventPresentationModel {
|
|
|
|
public function canRender() {
|
|
return (bool)$this->event->getTitle();
|
|
}
|
|
|
|
public function getIconType() {
|
|
return 'edit-user-page';
|
|
}
|
|
|
|
public function getPrimaryLink() {
|
|
return [
|
|
'url' => $this->getDiffLinkUrl(),
|
|
'label' => $this->msg( 'notification-link-text-view-edit' )->text()
|
|
];
|
|
}
|
|
|
|
public function getSecondaryLinks() {
|
|
if ( $this->isBundled() ) {
|
|
return [];
|
|
} else {
|
|
return [ $this->getAgentLink() ];
|
|
}
|
|
}
|
|
|
|
public function getHeaderMessage() {
|
|
if ( $this->isBundled() ) {
|
|
$msg = $this->msg( 'notification-bundle-header-edit-user-page' );
|
|
$count = $this->getNotificationCountForOutput();
|
|
|
|
$msg->numParams( $count );
|
|
$msg->params( $this->getViewingUserForGender() );
|
|
return $msg;
|
|
} else {
|
|
// Messages: notification-header-edit-user-page
|
|
$msg = parent::getHeaderMessage();
|
|
$msg->params( $this->getViewingUserForGender() );
|
|
return $msg;
|
|
}
|
|
}
|
|
|
|
public function getCompactHeaderMessage() {
|
|
$msg = $this->getMessageWithAgent( 'notification-compact-header-edit-user-page' );
|
|
$msg->params( $this->getViewingUserForGender() );
|
|
return $msg;
|
|
}
|
|
|
|
public function getBodyMessage() {
|
|
$revision = $this->event->getRevision();
|
|
if ( $revision && $revision->getComment() && $this->userCan( RevisionRecord::DELETED_COMMENT ) ) {
|
|
$summary = $revision->getComment()->text;
|
|
$summary = MediaWikiServices::getInstance()->getCommentFormatter()->format( $summary );
|
|
$summary = Sanitizer::stripAllTags( $summary );
|
|
} else {
|
|
$summary = false;
|
|
}
|
|
if ( !$this->isBundled() ) {
|
|
return new RawMessage( '$1', [ Message::plaintextParam( $summary ) ] );
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private function getDiffLinkUrl() {
|
|
$revId = $this->event->getExtraParam( 'revid' );
|
|
$oldId = $this->isBundled() ? $this->getRevBeforeFirstNotification() : 'prev';
|
|
$query = [
|
|
'oldid' => $oldId,
|
|
'diff' => $revId,
|
|
];
|
|
return $this->event->getTitle()->getFullURL( $query );
|
|
}
|
|
|
|
private function getRevBeforeFirstNotification() {
|
|
$events = $this->getBundledEvents();
|
|
$firstNotificationRevId = end( $events )->getExtraParam( 'revid' );
|
|
$revisionLookup = MediaWikiServices::getInstance()->getRevisionLookup();
|
|
$revisionRecord = $revisionLookup->getRevisionById( $firstNotificationRevId );
|
|
$previousRevision = $revisionRecord ? $revisionLookup->getPreviousRevision( $revisionRecord ) : null;
|
|
$oldRevisionID = $previousRevision ? $previousRevision->getId() : 0;
|
|
|
|
return $oldRevisionID;
|
|
}
|
|
|
|
protected function getSubjectMessageKey() {
|
|
return 'notification-edit-user-page-email-subject';
|
|
}
|
|
}
|