Add a context parameter to Liker::generateRollback() and Linker::buildRollbackLink() and updated callers.
This allows both methods to not always rely on global object, but also to use the local context when possible. Change-Id: Id10f55ed9b18c889afd8d9937d9f35acb376cce4
This commit is contained in:
parent
e773eb0af5
commit
026e8534c6
4 changed files with 21 additions and 11 deletions
|
|
@ -1646,11 +1646,17 @@ class Linker {
|
|||
* other users.
|
||||
*
|
||||
* @param $rev Revision object
|
||||
* @param $context IContextSource context to use or null for the main context.
|
||||
* @return string
|
||||
*/
|
||||
public static function generateRollback( $rev ) {
|
||||
public static function generateRollback( $rev, IContextSource $context = null ) {
|
||||
if ( $context === null ) {
|
||||
$context = RequestContext::getMain();
|
||||
}
|
||||
|
||||
return '<span class="mw-rollback-link">'
|
||||
. wfMessage( 'brackets' )->rawParams( self::buildRollbackLink( $rev ) )->plain()
|
||||
. $context->msg( 'brackets' )->rawParams(
|
||||
self::buildRollbackLink( $rev, $context ) )->plain()
|
||||
. '</span>';
|
||||
}
|
||||
|
||||
|
|
@ -1658,24 +1664,28 @@ class Linker {
|
|||
* Build a raw rollback link, useful for collections of "tool" links
|
||||
*
|
||||
* @param $rev Revision object
|
||||
* @param $context IContextSource context to use or null for the main context.
|
||||
* @return String: HTML fragment
|
||||
*/
|
||||
public static function buildRollbackLink( $rev ) {
|
||||
global $wgRequest, $wgUser;
|
||||
public static function buildRollbackLink( $rev, IContextSource $context = null ) {
|
||||
if ( $context === null ) {
|
||||
$context = RequestContext::getMain();
|
||||
}
|
||||
|
||||
$title = $rev->getTitle();
|
||||
$query = array(
|
||||
'action' => 'rollback',
|
||||
'from' => $rev->getUserText(),
|
||||
'token' => $wgUser->getEditToken( array( $title->getPrefixedText(), $rev->getUserText() ) ),
|
||||
'token' => $context->getUser()->getEditToken( array( $title->getPrefixedText(), $rev->getUserText() ) ),
|
||||
);
|
||||
if ( $wgRequest->getBool( 'bot' ) ) {
|
||||
if ( $context->getRequest()->getBool( 'bot' ) ) {
|
||||
$query['bot'] = '1';
|
||||
$query['hidediff'] = '1'; // bug 15999
|
||||
}
|
||||
return self::link(
|
||||
$title,
|
||||
wfMsgHtml( 'rollbacklink' ),
|
||||
array( 'title' => wfMsg( 'tooltip-rollback' ) ),
|
||||
$context->msg( 'rollbacklink' )->escaped(),
|
||||
array( 'title' => $context->msg( 'tooltip-rollback' )->text() ),
|
||||
$query,
|
||||
array( 'known', 'noclasses' )
|
||||
);
|
||||
|
|
|
|||
|
|
@ -647,7 +647,7 @@ class HistoryPager extends ReverseChronologicalPager {
|
|||
if ( $latest && !count( $this->getTitle()->getUserPermissionsErrors( 'rollback', $this->getUser() ) ) ) {
|
||||
$this->preventClickjacking();
|
||||
$tools[] = '<span class="mw-rollback-link">' .
|
||||
Linker::buildRollbackLink( $rev ) . '</span>';
|
||||
Linker::buildRollbackLink( $rev, $this->getContext() ) . '</span>';
|
||||
}
|
||||
|
||||
if ( !$rev->isDeleted( Revision::DELETED_TEXT )
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@ class DifferenceEngine extends ContextSource {
|
|||
if ( $samePage && $this->mNewPage->quickUserCan( 'edit', $user ) ) {
|
||||
if ( $this->mNewRev->isCurrent() && $this->mNewPage->userCan( 'rollback', $user ) ) {
|
||||
$out->preventClickjacking();
|
||||
$rollback = '   ' . Linker::generateRollback( $this->mNewRev );
|
||||
$rollback = '   ' . Linker::generateRollback( $this->mNewRev, $this->getContext() );
|
||||
}
|
||||
if ( !$this->mOldRev->isDeleted( Revision::DELETED_TEXT ) && !$this->mNewRev->isDeleted( Revision::DELETED_TEXT ) ) {
|
||||
$undoLink = ' ' . $this->msg( 'parentheses' )->rawParams(
|
||||
|
|
|
|||
|
|
@ -850,7 +850,7 @@ class ContribsPager extends ReverseChronologicalPager {
|
|||
&& $page->quickUserCan( 'edit', $user ) )
|
||||
{
|
||||
$this->preventClickjacking();
|
||||
$topmarktext .= ' ' . Linker::generateRollback( $rev );
|
||||
$topmarktext .= ' ' . Linker::generateRollback( $rev, $this->getContext() );
|
||||
}
|
||||
}
|
||||
# Is there a visible previous revision?
|
||||
|
|
|
|||
Loading…
Reference in a new issue