Add mw-changeslist-(log|ns)-* class to OldChangesList as well
authorGlaisher <glaisher.wiki@gmail.com>
Mon, 28 Sep 2015 16:01:10 +0000 (21:01 +0500)
committerGlaisher <glaisher.wiki@gmail.com>
Thu, 18 Feb 2016 17:33:53 +0000 (22:33 +0500)
Bug: T111666
Change-Id: I880c86f318710f179e60ed42c65081514757c6a0

includes/changes/ChangesList.php
includes/changes/EnhancedChangesList.php
includes/changes/OldChangesList.php

index 485d523..15432da 100644 (file)
@@ -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 "<abbr>" element appropriate to a given abbreviated flag,
         * namely the flag indicating a new page, a minor edit, a bot edit, or an
index 1aa76c9..d687614 100644 (file)
@@ -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'] = [
index ff311f2..576718a 100644 (file)
@@ -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 ) {