return;
}
+ $unhide = $wgRequest->getInt('unhide') == 1 &&
+ $wgUser->matchEditToken( $wgRequest->getVal('token'), $oldid );
# Cascade unhide param in links for easy deletion browsing
$extraParams = array();
if( $wgRequest->getVal('unhide') ) {
array( 'known', 'noclasses' )
);
- $cdel='';
- // Don't show useless link to people who cannot hide revisions
- if( $wgUser->isAllowed('deleterevision') || ($revision->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
+ $cdel = '';
+ // User can delete revisions or view deleted revisions...
+ $canHide = $wgUser->isAllowed('deleterevision');
+ if( $canHide || ($revision->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
+ // Is this hidden from Sysops?
if( !$revision->userCan( Revision::DELETED_RESTRICTED ) ) {
- // If revision was hidden from sysops
- $cdel = wfMsgHtml( 'rev-delundel' );
+ $cdel = $sk->revDeleteLinkDisabled( $canHide );
} else {
$query = array(
'type' => 'revision',
'target' => urlencode( $this->mTitle->getPrefixedDbkey() ),
'ids' => urlencode( $oldid )
);
- $cdel = $sk->revDeleteLink( $query, $revision->isDeleted(File::DELETED_RESTRICTED) );
+ $cdel = $sk->revDeleteLink( $query, $revision->isDeleted(File::DELETED_RESTRICTED), $canHide );
}
$cdel .= ' ';
}
- $unhide = $wgRequest->getInt('unhide') == 1 && $wgUser->matchEditToken( $wgRequest->getVal('token'), $oldid );
+
# Show user links if allowed to see them. If hidden, then show them only if requested...
$userlinks = $sk->revUserTools( $revision, !$unhide );
function preCacheMessages() {
// Precache various messages
if( !isset( $this->message ) ) {
- $msgs = array( 'cur', 'last', 'rev-delundel', 'pipe-separator' );
+ $msgs = array( 'cur', 'last', 'pipe-separator' );
foreach( $msgs as $msg ) {
$this->message[$msg] = wfMsgExt( $msg, array( 'escapenoentities') );
}
$classes = array();
$del = '';
+ // User can delete revisions...
if( $wgUser->isAllowed( 'deleterevision' ) ) {
// If revision was hidden from sysops, disable the checkbox
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
} else if( $rev->getVisibility() && $wgUser->isAllowed( 'deletedhistory' ) ) {
// If revision was hidden from sysops, disable the link
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
- $del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
- '(' . $this->historyPage->message['rev-delundel'] . ')' );
+ $cdel = $this->getSkin()->revDeleteLinkDisabled( false );
// Otherwise, show the link...
} else {
$query = array( 'type' => 'revision',
'target' => $this->title->getPrefixedDbkey(), 'ids' => $rev->getId() );
- $del .= $this->getSkin()->revDeleteLink( $query, $rev->isDeleted( Revision::DELETED_RESTRICTED ) );
+ $del .= $this->getSkin()->revDeleteLink( $query,
+ $rev->isDeleted( Revision::DELETED_RESTRICTED ), false );
}
}
if( $del ) $s .= " $del ";
);
}
# Link to hide content. Don't show useless link to people who cannot hide revisions.
- if( $wgUser->isAllowed('deleterevision') || ($wgUser->isAllowed('deletedhistory') && $file->getVisibility()) ) {
+ $canHide = $wgUser->isAllowed( 'deleterevision' );
+ if( $canHide || ($wgUser->isAllowed('deletedhistory') && $file->getVisibility()) ) {
if( $wgUser->isAllowed('delete') ) {
$row .= '<br/>';
}
// If file is top revision or locked from this user, don't link
if( $iscur || !$file->userCan(File::DELETED_RESTRICTED) ) {
- $del = wfMsgHtml( 'rev-delundel' );
+ $del = $this->skin->revDeleteLinkDisabled( $canHide );
} else {
list( $ts, $name ) = explode( '!', $img, 2 );
$query = array(
- 'type' => 'oldimage',
+ 'type' => 'oldimage',
'target' => $wgTitle->getPrefixedText(),
- 'ids' => $ts,
+ 'ids' => $ts,
);
- $del = $this->skin->revDeleteLink( $query, $file->isDeleted(File::DELETED_RESTRICTED) );
+ $del = $this->skin->revDeleteLink( $query,
+ $file->isDeleted(File::DELETED_RESTRICTED), $canHide );
}
$row .= $del;
}
*
* @param array $query Query parameters to be passed to link()
* @param bool $restricted Set to true to use a <strong> instead of a <span>
+ * @param bool $delete Set to true to use (show/hide) rather than (show)
*
* @return string HTML <a> link to Special:Revisiondelete, wrapped in a
* span to allow for customization of appearance with CSS
*/
- public function revDeleteLink( $query = array(), $restricted = false ) {
+ public function revDeleteLink( $query = array(), $restricted = false, $delete = true ) {
$sp = SpecialPage::getTitleFor( 'Revisiondelete' );
- $text = wfMsgHtml( 'rev-delundel' );
+ $text = $delete ? wfMsgHtml( 'rev-delundel' ) : wfMsgHtml( 'rev-showdeleted' );
$tag = $restricted ? 'strong' : 'span';
$link = $this->link( $sp, $text, array(), $query, array( 'known', 'noclasses' ) );
return Xml::tags( $tag, array( 'class' => 'mw-revdelundel-link' ), "($link)" );
}
+
+ /**
+ * Creates a dead (show/hide) link for deleting revisions/log entries
+ *
+ * @param bool $delete Set to true to use (show/hide) rather than (show)
+ *
+ * @return string HTML text wrapped in a span to allow for customization
+ * of appearance with CSS
+ */
+ public function revDeleteLinkDisabled( $delete = true ) {
+ $text = $delete ? wfMsgHtml( 'rev-delundel' ) : wfMsgHtml( 'rev-showdeleted' );
+ return Xml::tags( 'span', array( 'class' => 'mw-revdelundel-link' ), "($text)" );
+ }
/* Deprecated methods */
// Precache various messages
if( !isset( $this->message ) ) {
$messages = array( 'revertmerge', 'protect_change', 'unblocklink', 'change-blocklink',
- 'revertmove', 'undeletelink', 'undeleteviewlink', 'revdel-restore', 'rev-delundel', 'hist', 'diff',
+ 'revertmove', 'undeletelink', 'undeleteviewlink', 'revdel-restore', 'hist', 'diff',
'pipe-separator' );
foreach( $messages as $msg ) {
$this->message[$msg] = wfMsgExt( $msg, array( 'escapenoentities' ) );
* @return string
*/
private function getShowHideLinks( $row ) {
+ global $wgUser;
+ if( $row->log_type == 'suppress' ) {
+ return ''; // No one can hide items from the oversight log
+ }
+ $canHide = $wgUser->isAllowed( 'deleterevision' );
// If event was hidden from sysops
if( !self::userCan( $row, LogPage::DELETED_RESTRICTED ) ) {
- $del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
- '(' . $this->message['rev-delundel'] . ')' );
- } else if( $row->log_type == 'suppress' ) {
- $del = ''; // No one should be hiding from the oversight log
+ $del = $this->skin->revDeleteLinkDisabled( $canHide );
} else {
$target = SpecialPage::getTitleFor( 'Log', $row->log_type );
$page = Title::makeTitle( $row->log_namespace, $row->log_title );
$query = array(
'target' => $target->getPrefixedDBkey(),
- 'type' => 'logging',
- 'ids' => $row->log_id,
+ 'type' => 'logging',
+ 'ids' => $row->log_id,
);
$del = $this->skin->revDeleteLink( $query,
- self::isDeleted( $row, LogPage::DELETED_RESTRICTED ) );
+ self::isDeleted( $row, LogPage::DELETED_RESTRICTED ), $canHide );
}
return $del;
}
$rdel = ''; $ldel = '';
# Handle RevisionDelete links...
if( $wgUser->isAllowed( 'deletedhistory' ) ) {
+ $canHide = $wgUser->isAllowed( 'deleterevision' );
// Don't show useless link to people who cannot hide revisions
- if( $this->mOldRev->getVisibility() || $wgUser->isAllowed( 'deleterevision' ) ) {
+ if( $canHide || $this->mOldRev->getVisibility() ) {
if( !$this->mOldRev->userCan( Revision::DELETED_RESTRICTED ) ) {
- // If revision was hidden from sysops
- $ldel = Xml::tags( 'span', array( 'class' => 'mw-revdelundel-link' ),
- '(' . wfMsgHtml( 'rev-delundel' ) . ')' );
+ $ldel = $sk->revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
} else {
$query = array(
'type' => 'revision',
'target' => $this->mOldRev->mTitle->getPrefixedDbkey(),
'ids' => $this->mOldRev->getId()
);
- $ldel = $sk->revDeleteLink( $query, $this->mOldRev->isDeleted( Revision::DELETED_RESTRICTED ) );
+ $ldel = $sk->revDeleteLink( $query,
+ $this->mOldRev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
}
$ldel = " $ldel ";
}
// Don't show useless link to people who cannot hide revisions
if( $this->mNewRev->getVisibility() || $wgUser->isAllowed( 'deleterevision' ) ) {
if( !$this->mNewRev->userCan( Revision::DELETED_RESTRICTED ) ) {
- // If revision was hidden from sysops
- $rdel = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ), '('.wfMsgHtml( 'rev-delundel' ).')' );
+ $rdel = $sk->revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
} else {
$query = array(
'type' => 'revision',
'target' => $this->mNewRev->mTitle->getPrefixedDbkey(),
'ids' => $this->mNewRev->getId()
);
- $rdel = $sk->revDeleteLink( $query, $this->mNewRev->isDeleted( Revision::DELETED_RESTRICTED ) );
+ $rdel = $sk->revDeleteLink( $query,
+ $this->mNewRev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
}
$rdel = " $rdel ";
}
}
// Don't show useless link to people who cannot hide revisions
- if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
- // If revision was hidden from sysops
+ $canHide = $wgUser->isAllowed( 'deleterevision' );
+ if( $canHide || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
- $del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
- wfMsg( 'parentheses', $this->messages['rev-delundel'] ) ) . ' ';
- // Otherwise, show the link...
+ $del = $this->mSkin->revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
} else {
$query = array(
- 'type' => 'revision',
+ 'type' => 'revision',
'target' => $page->getPrefixedDbkey(),
- 'ids' => $rev->getId() );
+ 'ids' => $rev->getId()
+ );
$del = $this->mSkin->revDeleteLink( $query,
- $rev->isDeleted( Revision::DELETED_RESTRICTED ) ) . ' ';
+ $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
}
+ $del .= ' ';
} else {
$del = '';
}
$mflag = '';
}
- // Don't show useless link to people who cannot hide revisions
- if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
- // If revision was hidden from sysops
+ // Revision delete link
+ $canHide = $wgUser->isAllowed( 'deleterevision' );
+ if( $canHide || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
- $del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
- '(' . $this->message['rev-delundel'] . ')' ) . ' ';
- // Otherwise, show the link...
+ $del = $this->mSkin->revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
} else {
$query = array(
'type' => 'archive',
'target' => $page->getPrefixedDbkey(),
'ids' => $rev->getTimestamp() );
$del = $this->mSkin->revDeleteLink( $query,
- $rev->isDeleted( Revision::DELETED_RESTRICTED ) ) . ' ';
+ $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide ) . ' ';
}
} else {
$del = '';
} else {
$openDiv = '<div id="mw-undelete-revision">';
}
-
- $revdlink = '';
- // Diffs already have revision delete links
- if( !$this->mDiff && $wgUser->isAllowed( 'deletedhistory' ) ) {
- // Don't show useless link to people who cannot hide revisions
- if( !$rev->getVisibility() && !$wgUser->isAllowed( 'deleterevision' ) ) {
- $revdlink = '';
- // If revision was hidden from sysops
- } else if( !$rev->userCan(Revision::DELETED_RESTRICTED ) ) {
- $revdlink = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
- '('.wfMsgHtml('rev-delundel').')' );
+
+ // Revision delete links
+ $canHide = $wgUser->isAllowed( 'deleterevision' );
+ if( $this->mDiff ) {
+ $revdlink = ''; // diffs already have revision delete links
+ } else if( $canHide || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
+ if( !$rev->userCan(Revision::DELETED_RESTRICTED ) ) {
+ $revdlink = $skin->revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
} else {
$query = array(
'type' => 'archive',
'target' => $this->mTargetObj->getPrefixedDBkey(),
'ids' => $rev->getTimestamp()
);
- $revdlink = $skin->revDeleteLink( $query, $rev->isDeleted( File::DELETED_RESTRICTED ) );
+ $revdlink = $skin->revDeleteLink( $query,
+ $rev->isDeleted( File::DELETED_RESTRICTED ), $canHide );
}
+ } else {
+ $revdlink = '';
}
$wgOut->addHTML( $openDiv . $revdlink . wfMsgWikiHtml( 'undelete-revision', $link, $time, $user, $d, $t ) . '</div>' );
$targetPage = $rev->getTitle();
$targetQuery = array( 'oldid' => $rev->getId() );
}
- // Add show/hide link if available. Don't show useless link to people who cannot hide revisions.
- if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
- // If revision was hidden from sysops
+ // Add show/hide deletion links if available
+ $canHide = $wgUser->isAllowed( 'deleterevision' );
+ if( $canHide || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
+ $del = ' ';
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
- $del = ' ' . Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
- '(' . wfMsgHtml('rev-delundel') . ')' );
- // Otherwise, show the link...
+ $del .= $sk->revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
} else {
$query = array(
- 'type' => 'archive',
+ 'type' => 'archive',
'target' => $this->mTargetObj->getPrefixedDbkey(),
- 'ids' => $rev->getTimestamp() );
- $del = ' ' . $sk->revDeleteLink( $query,
- $rev->isDeleted( Revision::DELETED_RESTRICTED ) );
+ 'ids' => $rev->getTimestamp()
+ );
+ $del .= $sk->revDeleteLink( $query,
+ $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
}
} else {
$del = '';
}
// Edit summary
$comment = $sk->revComment( $rev );
- // Show/hide link. // Don't show useless link to people who cannot hide revisions.
- if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
+ // Revision delete links
+ $canHide = $wgUser->isAllowed( 'deleterevision' );
+ if( $canHide || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
- // If revision was hidden from sysops
- $revdlink = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
- '('.wfMsgHtml('rev-delundel').')' );
+ $revdlink = $sk->revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
} else {
$query = array(
- 'type' => 'archive',
+ 'type' => 'archive',
'target' => $this->mTargetObj->getPrefixedDBkey(),
- 'ids' => $ts
+ 'ids' => $ts
);
- $revdlink = $sk->revDeleteLink( $query, $rev->isDeleted( Revision::DELETED_RESTRICTED ) );
+ $revdlink = $sk->revDeleteLink( $query,
+ $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
}
} else {
$revdlink = '';
')';
$data = htmlspecialchars( $data );
$comment = $this->getFileComment( $file, $sk );
- $revdlink = '';
- // Add show/hide link if available. Don't show useless link to people who cannot hide revisions.
- if( $wgUser->isAllowed('deleterevision') || ($file->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
+ // Add show/hide deletion links if available
+ $canHide = $wgUser->isAllowed( 'deleterevision' );
+ if( $canHide || ($file->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
if( !$file->userCan(File::DELETED_RESTRICTED ) ) {
- // If revision was hidden from sysops
- $revdlink = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ), '('.wfMsgHtml('rev-delundel').')' );
+ $revdlink = $sk->revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
} else {
$query = array(
'type' => 'filearchive',
'target' => $this->mTargetObj->getPrefixedDBkey(),
'ids' => $row->fa_id
);
- $revdlink = $sk->revDeleteLink( $query, $file->isDeleted( File::DELETED_RESTRICTED ) );
+ $revdlink = $sk->revDeleteLink( $query,
+ $file->isDeleted( File::DELETED_RESTRICTED ), $canHide );
}
+ } else {
+ $revdlink = '';
}
return "<li>$checkBox $revdlink $pageLink . . $userLink $data $comment</li>\n";
}
'rev-suppressed-diff-view' => "One of the revisions of this diff has been '''suppressed'''.
As an administrator you can view this diff; there may be details in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].",
'rev-delundel' => 'show/hide',
+'rev-showdeleted' => 'show',
'revisiondelete' => 'Delete/undelete revisions',
'revdelete-nooldid-title' => 'Invalid target revision',
'revdelete-nooldid-text' => 'You have either not specified a target revision(s) to perform this
'rev-deleted-diff-view',
'rev-suppressed-diff-view',
'rev-delundel',
+ 'rev-showdeleted',
'revisiondelete',
'revdelete-nooldid-title',
'revdelete-nooldid-text',