X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fchanges%2FChangesList.php;h=c0822c3438c232dd09b7e1fa78d8c07db7eb59d2;hp=703acd68453166efc6f6cd1a3ff47385a48df87d;hb=55aab97bb4b507911e24995ae870b78f86c17557;hpb=5856fd2f6f2119af9dc104ae250d238364adee19 diff --git a/includes/changes/ChangesList.php b/includes/changes/ChangesList.php index 703acd6845..c0822c3438 100644 --- a/includes/changes/ChangesList.php +++ b/includes/changes/ChangesList.php @@ -107,7 +107,7 @@ class ChangesList extends ContextSource { * * @param RecentChange &$rc Passed by reference * @param bool $watched (default false) - * @param int $linenumber (default null) + * @param int|null $linenumber (default null) * * @return string|bool */ @@ -115,6 +115,31 @@ class ChangesList extends ContextSource { throw new RuntimeException( 'recentChangesLine should be implemented' ); } + /** + * Get the container for highlights that are used in the new StructuredFilters + * system + * + * @return string HTML structure of the highlight container div + */ + protected function getHighlightsContainerDiv() { + $highlightColorDivs = ''; + foreach ( [ 'none', 'c1', 'c2', 'c3', 'c4', 'c5' ] as $color ) { + $highlightColorDivs .= Html::rawElement( + 'div', + [ + 'class' => 'mw-rcfilters-ui-highlights-color-' . $color, + 'data-color' => $color + ] + ); + } + + return Html::rawElement( + 'div', + [ 'class' => 'mw-rcfilters-ui-highlights' ], + $highlightColorDivs + ); + } + /** * Sets the list to use a "
  • " tag * @param bool $value @@ -183,8 +208,6 @@ class ChangesList extends ContextSource { $classes[] = Sanitizer::escapeClass( self::CSS_CLASS_PREFIX . 'ns' . $rc->mAttribs['rc_namespace'] . '-' . $rc->mAttribs['rc_title'] ); } - $classes[] = Sanitizer::escapeClass( self::CSS_CLASS_PREFIX . 'ns-' . - $rc->mAttribs['rc_namespace'] ); // Indicate watched status on the line to allow for more // comprehensive styling. @@ -198,7 +221,8 @@ class ChangesList extends ContextSource { } /** - * Get an array of CSS classes attributed to filters for this row + * Get an array of CSS classes attributed to filters for this row. Used for highlighting + * in the front-end. * * @param RecentChange $rc * @return array Array of CSS classes @@ -206,6 +230,9 @@ class ChangesList extends ContextSource { protected function getHTMLClassesForFilters( $rc ) { $classes = []; + $classes[] = Sanitizer::escapeClass( self::CSS_CLASS_PREFIX . 'ns-' . + $rc->mAttribs['rc_namespace'] ); + if ( $this->filterGroups !== null ) { foreach ( $this->filterGroups as $filterGroup ) { foreach ( $filterGroup->getFilters() as $filter ) { @@ -222,7 +249,7 @@ class ChangesList extends ContextSource { * bot edit, or unpatrolled edit. In English it typically contains "N", "m", "b", or "!". * * @param string $flag One key of $wgRecentChangesFlags - * @param IContextSource $context + * @param IContextSource|null $context * @return string HTML */ public static function flag( $flag, IContextSource $context = null ) { @@ -283,7 +310,7 @@ class ChangesList extends ContextSource { * * @param int $old Number of bytes * @param int $new Number of bytes - * @param IContextSource $context + * @param IContextSource|null $context * @return string */ public static function showCharacterDifference( $old, $new, IContextSource $context = null ) { @@ -336,7 +363,7 @@ class ChangesList extends ContextSource { * Format the character difference of one or several changes. * * @param RecentChange $old - * @param RecentChange $new Last change to use, if not provided, $old will be used + * @param RecentChange|null $new Last change to use, if not provided, $old will be used * @return string HTML fragment */ public function formatCharacterDifference( RecentChange $old, RecentChange $new = null ) { @@ -601,7 +628,7 @@ class ChangesList extends ContextSource { * field of this revision, if it's marked as deleted. * @param RCCacheEntry|RecentChange $rc * @param int $field - * @param User $user User object to check, or null to use $wgUser + * @param User|null $user User object to check, or null to use $wgUser * @return bool */ public static function userCan( $rc, $field, User $user = null ) { @@ -625,7 +652,8 @@ class ChangesList extends ContextSource { } } - /** Inserts a rollback link + /** + * Insert a rollback link * * @param string &$s * @param RecentChange &$rc @@ -634,15 +662,14 @@ class ChangesList extends ContextSource { if ( $rc->mAttribs['rc_type'] == RC_EDIT && $rc->mAttribs['rc_this_oldid'] && $rc->mAttribs['rc_cur_id'] + && $rc->getAttribute( 'page_latest' ) == $rc->mAttribs['rc_this_oldid'] ) { - $page = $rc->getTitle(); - /** Check for rollback and edit permissions, disallow special pages, and only + $title = $rc->getTitle(); + /** Check for rollback permissions, disallow special pages, and only * show a link on the top-most revision */ - if ( $this->getUser()->isAllowed( 'rollback' ) - && $rc->mAttribs['page_latest'] == $rc->mAttribs['rc_this_oldid'] - ) { + if ( $title->quickUserCan( 'rollback', $this->getUser() ) ) { $rev = new Revision( [ - 'title' => $page, + 'title' => $title, 'id' => $rc->mAttribs['rc_this_oldid'], 'user' => $rc->mAttribs['rc_user'], 'user_text' => $rc->mAttribs['rc_user_text'],