From d3e12637d6a8c06663e19634170dc3380f52a6b0 Mon Sep 17 00:00:00 2001 From: Glaisher Date: Mon, 28 Sep 2015 21:01:10 +0500 Subject: [PATCH] Add mw-changeslist-(log|ns)-* class to OldChangesList as well Bug: T111666 Change-Id: I880c86f318710f179e60ed42c65081514757c6a0 --- includes/changes/ChangesList.php | 28 ++++++++++++++++++++++++ includes/changes/EnhancedChangesList.php | 6 ++--- includes/changes/OldChangesList.php | 7 +----- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/includes/changes/ChangesList.php b/includes/changes/ChangesList.php index 485d523bfe..15432da2b7 100644 --- a/includes/changes/ChangesList.php +++ b/includes/changes/ChangesList.php @@ -139,6 +139,34 @@ class ChangesList extends ContextSource { return $f; } + /** + * Get an array of default HTML class attributes for the change. + * + * @param RecentChange|RCCacheEntry $rc + * @param string|bool $watched Optionally timestamp for adding watched class + * + * @return array of classes + */ + protected function getHTMLClasses( $rc, $watched ) { + $classes = []; + $logType = $rc->mAttribs['rc_log_type']; + + if ( $logType ) { + $classes[] = Sanitizer::escapeClass( 'mw-changeslist-log-' . $logType ); + } else { + $classes[] = Sanitizer::escapeClass( 'mw-changeslist-ns' . + $rc->mAttribs['rc_namespace'] . '-' . $rc->mAttribs['rc_title'] ); + } + + // Indicate watched status on the line to allow for more + // comprehensive styling. + $classes[] = $watched && $rc->mAttribs['rc_timestamp'] >= $watched + ? 'mw-changeslist-line-watched' + : 'mw-changeslist-line-not-watched'; + + return $classes; + } + /** * Provide the "" element appropriate to a given abbreviated flag, * namely the flag indicating a new page, a minor edit, a bot edit, or an diff --git a/includes/changes/EnhancedChangesList.php b/includes/changes/EnhancedChangesList.php index 1aa76c9414..d6876140dc 100644 --- a/includes/changes/EnhancedChangesList.php +++ b/includes/changes/EnhancedChangesList.php @@ -569,7 +569,9 @@ class EnhancedChangesList extends ChangesList { $type = $rcObj->mAttribs['rc_type']; $logType = $rcObj->mAttribs['rc_log_type']; - $classes = [ 'mw-enhanced-rc' ]; + $classes = $this->getHTMLClasses( $rcObj, $rcObj->watched ); + $classes[] = 'mw-enhanced-rc'; + if ( $logType ) { # Log entry $classes[] = Sanitizer::escapeClass( 'mw-changeslist-log-' . $logType ); @@ -577,8 +579,6 @@ class EnhancedChangesList extends ChangesList { $classes[] = Sanitizer::escapeClass( 'mw-changeslist-ns' . $rcObj->mAttribs['rc_namespace'] . '-' . $rcObj->mAttribs['rc_title'] ); } - $classes[] = $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched - ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched'; # Flag and Timestamp $data['recentChangesFlags'] = [ diff --git a/includes/changes/OldChangesList.php b/includes/changes/OldChangesList.php index ff311f275e..576718af2b 100644 --- a/includes/changes/OldChangesList.php +++ b/includes/changes/OldChangesList.php @@ -33,7 +33,7 @@ class OldChangesList extends ChangesList { */ public function recentChangesLine( &$rc, $watched = false, $linenumber = null ) { - $classes = []; + $classes = $this->getHTMLClasses( $rc, $watched ); // use mw-line-even/mw-line-odd class only if linenumber is given (feature from bug 14468) if ( $linenumber ) { if ( $linenumber & 1 ) { @@ -43,11 +43,6 @@ class OldChangesList extends ChangesList { } } - // Indicate watched status on the line to allow for more - // comprehensive styling. - $classes[] = $watched && $rc->mAttribs['rc_timestamp'] >= $watched - ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched'; - $html = $this->formatChangeLine( $rc, $classes, $watched ); if ( $this->watchlist ) { -- 2.20.1