* @ingroup SpecialPage
*/
abstract class ChangesListSpecialPage extends SpecialPage {
+ /**
+ * Maximum length of a tag description in UTF-8 characters.
+ * Longer descriptions will be truncated.
+ */
+ const TAG_DESC_CHARACTER_LIMIT = 120;
+
/**
* Preference name for saved queries. Subclasses that use saved queries should override this.
* @var string
isset( $explicitlyDefinedTags[ $tagName ] ) ||
isset( $softwareActivatedTags[ $tagName ] )
) {
- // Parse description
- $desc = ChangeTags::tagLongDescriptionMessage( $tagName, $context );
-
$result[] = [
'name' => $tagName,
'label' => Sanitizer::stripAllTags(
ChangeTags::tagDescription( $tagName, $context )
),
- 'description' => $desc ? Sanitizer::stripAllTags( $desc->parse() ) : '',
+ 'description' =>
+ ChangeTags::truncateTagDescription(
+ $tagName, self::TAG_DESC_CHARACTER_LIMIT, $context
+ ),
'cssClass' => Sanitizer::escapeClass( 'mw-tag-' . $tagName ),
'hits' => $hits,
];
*/
protected function outputTimeout() {
$this->getOutput()->addHTML(
- '<div class="mw-changeslist-timeout">' .
+ '<div class="mw-changeslist-empty mw-changeslist-timeout">' .
$this->msg( 'recentchanges-timeout' )->parse() .
'</div>'
);
# Collapsible
$collapsedState = $this->getRequest()->getCookie( 'changeslist-state' );
$collapsedClass = $collapsedState === 'collapsed' ? ' mw-collapsed' : '';
- # Enhanced mode
- $enhancedMode = $this->getRequest()->getBool( 'enhanced', $user->getOption( 'usenewrc' ) );
- $enhancedClass = $enhancedMode ? ' mw-enhanced' : '';
- $legendClasses = $collapsedClass . $enhancedClass;
$legend =
- '<div class="mw-changeslist-legend mw-collapsible' . $legendClasses . '">' .
+ '<div class="mw-changeslist-legend mw-collapsible' . $collapsedClass . '">' .
$legendHeading .
'<div class="mw-collapsible-content">' . $legend . '</div>' .
'</div>';
*
* @since 1.31
* @param Config $config
- * @param User $user User object
+ * @param User $user
* @return bool
*/
public static function checkStructuredFilterUiEnabled( Config $config, User $user ) {