From daa599ec9854601635d088a9c3b5e1e54a7c65c9 Mon Sep 17 00:00:00 2001 From: Moriel Schottlender Date: Thu, 21 Sep 2017 16:15:47 -0700 Subject: [PATCH] RCFilters: Start the toplinks collapsed/expanded by cookie value Prevent "jumping" of the content by initializing the top links already collapsed or expanded depending on the cookie value. Bug: T176380 Change-Id: I6c494b42ec6f029b60182607faa37feba062b597 --- includes/specials/SpecialRecentchanges.php | 14 +++++++++-- .../styles/mw.rcfilters.less | 23 +++++++++++++++---- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/includes/specials/SpecialRecentchanges.php b/includes/specials/SpecialRecentchanges.php index 40834cb5b9..34a7714de2 100644 --- a/includes/specials/SpecialRecentchanges.php +++ b/includes/specials/SpecialRecentchanges.php @@ -656,12 +656,22 @@ class SpecialRecentChanges extends ChangesListSpecialPage { $topLinksAttributes = [ 'class' => 'mw-recentchanges-toplinks' ]; if ( $this->isStructuredFilterUiEnabled() ) { + // Check whether the widget is already collapsed or expanded + $collapsedState = $this->getRequest()->getCookie( 'rcfilters-toplinks-collapsed-state' ); + $collapsedClass = $collapsedState === 'collapsed' ? 'mw-rcfilters-toplinks-collapsed' : ''; + $contentTitle = Html::rawElement( 'div', - [ 'class' => 'mw-recentchanges-toplinks-title' ], + [ 'class' => 'mw-recentchanges-toplinks-title ' . $collapsedClass ], $this->msg( 'rcfilters-other-review-tools' )->parse() ); $contentWrapper = Html::rawElement( 'div', - array_merge( [ 'class' => 'mw-collapsible-content' ], $langAttributes ), + array_merge( + [ + 'class' => 'mw-recentchanges-toplinks-content mw-collapsible-content ' . + $collapsedClass + ], + $langAttributes + ), $content ); $content = $contentTitle . $contentWrapper; diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less index 80aff74a4f..ba7a70ebc4 100644 --- a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less +++ b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less @@ -15,18 +15,31 @@ .rcfilters-head { min-height: @rcfilters-head-min-height; } + // On the watchlist, reserve a bit more .mw-special-Watchlist .rcfilters-head { min-height: @rcfilters-wl-head-min-height; } - body:not( .mw-rcfilters-ui-initialized ) .rcfilters-head { - opacity: 0.5; - pointer-events: none; - - .cloptions { + body:not( .mw-rcfilters-ui-initialized ) { + .mw-recentchanges-toplinks-content.mw-rcfilters-toplinks-collapsed { display: none; } + + .mw-recentchanges-toplinks-title.mw-rcfilters-toplinks-collapsed { + // Hide, but keep the placement so we don't jump + visibility: hidden; + } + + .rcfilters-head { + opacity: 0.5; + pointer-events: none; + + .cloptions { + display: none; + } + + } } .rcfilters-container { -- 2.20.1