$this->flags = $flags;
}
- /**
- * Deprecated alias for getTitle(); do not use.
- *
- * @deprecated since 1.20; use getTitle() instead.
- * @return Title
- */
- public function getDisplayTitle() {
- wfDeprecated( __METHOD__, '1.20' );
- return $this->getTitle();
- }
-
/**
* Show options for the log list
*
'user',
'mw-log-user',
15,
- $user
+ $user,
+ array( 'class' => 'mw-autocomplete-user' )
);
return '<span style="white-space: nowrap">' . $label . '</span>';
// Don't show useless checkbox to people who cannot hide log entries
if ( $user->isAllowed( 'deletedhistory' ) ) {
$canHide = $user->isAllowed( 'deletelogentry' );
+ $canViewSuppressedOnly = $user->isAllowed( 'viewsuppressed' ) &&
+ !$user->isAllowed( 'suppressrevision' );
+ $entryIsSuppressed = self::isDeleted( $row, LogPage::DELETED_RESTRICTED );
+ $canViewThisSuppressedEntry = $canViewSuppressedOnly && $entryIsSuppressed;
if ( $row->log_deleted || $canHide ) {
// Show checkboxes instead of links.
- if ( $canHide && $this->flags & self::USE_REVDEL_CHECKBOXES ) {
+ if ( $canHide && $this->flags & self::USE_REVDEL_CHECKBOXES && !$canViewThisSuppressedEntry ) {
// If event was hidden from sysops
if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED, $user ) ) {
$del = Xml::check( 'deleterevisions', false, array( 'disabled' => 'disabled' ) );
);
$del = Linker::revDeleteLink(
$query,
- self::isDeleted( $row, LogPage::DELETED_RESTRICTED ),
- $canHide
+ $entryIsSuppressed,
+ $canHide && !$canViewThisSuppressedEntry
);
}
}
$pager->mLimit = $lim;
}
- $logBody = $pager->getBody();
+ $logBody = null;
+ // Check if we can avoid the DB query all together
+ if ( $page !== '' && !$param['useMaster'] ) {
+ $title = ( $page instanceof Title ) ? $page : Title::newFromText( $page );
+ if ( $title ) {
+ $member = $title->getNamespace() . ':' . $title->getDBkey();
+ if ( !BloomCache::get( 'main' )->check( wfWikiId(), 'TitleHasLogs', $member ) ) {
+ $logBody = '';
+ }
+ } else {
+ $logBody = '';
+ }
+ }
+
+ // Fetch the log rows and build the HTML if needed
+ $logBody = ( $logBody === null ) ? $pager->getBody() : $logBody;
+
$s = '';
if ( $logBody ) {