Absolutely position "legend" on grouped results
authorpetarpetkovic <ppetkovic@wikimedia.org>
Wed, 29 Nov 2017 15:28:36 +0000 (16:28 +0100)
committerpetarpetkovic <ppetkovic@wikimedia.org>
Mon, 4 Dec 2017 12:57:34 +0000 (13:57 +0100)
- When results are grouped by page, on pages where new RC filters
are enabled, apply position: absolute to legend, to avoid top
result entries being pushed too much.

Bug: T174728
Change-Id: Ifecaaff5727905b3c4e860555ba094f71aac6f80

includes/specialpage/ChangesListSpecialPage.php
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ChangesListWrapperWidget.less
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
resources/src/mediawiki.special/mediawiki.special.changeslist.css

index 5194983..0e99c3c 100644 (file)
@@ -1596,8 +1596,13 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                # 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' . $collapsedClass . '">' .
+                       '<div class="mw-changeslist-legend mw-collapsible' . $legendClasses . '">' .
                                $legendHeading .
                                '<div class="mw-collapsible-content">' . $legend . '</div>' .
                        '</div>';
index b923efb..ec311df 100644 (file)
                }
        }
 
+       &-enhancedView {
+               .mw-changeslist-legend {
+                       z-index: 1;
+
+                       &:not( .mw-collapsed ) {
+                               .box-shadow( 0 1px 1px rgba( 0, 0, 0, 0.15 ) );
+                       }
+               }
+       }
+
        .mw-changeslist-legend {
                background-color: @background-color-base;
+               border: 1px solid @colorGray12;
        }
 
        // Correction for Enhanced RC
index 8716c68..98a7d8c 100644 (file)
                        // Regular RC
                        $content.find( 'ul.special li' )
                                .prepend( $highlights.clone() );
+
+                       $content.removeClass( 'mw-rcfilters-ui-changesListWrapperWidget-enhancedView' );
                }
        };
 
index 532ca86..734666f 100644 (file)
 .mw-changeslist-legend.mw-collapsed .mw-collapsible-content {
        display: none;
 }
+
+/* Prevent pushing down of content if legend is initially collapsed */
+.mw-changeslist-legend.mw-collapsed ~ ul.special > li:first-child {
+       clear: right;
+}
+
+/* Absolute positioning to avoid table overlap with floating elements */
+.mw-changeslist-legend.mw-enhanced {
+       background-color: #fff;
+       position: absolute;
+       right: 0;
+       margin-top: -0.5em;
+}