jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/395778 )

Change subject: RCLFilters: UI tweaks
......................................................................


RCLFilters: UI tweaks

Follow-up to I96af7ba583d03e6ff9833ac3b5f4b80cfd0ee626

* Reword 'Recentchangeslinked-summary'
* Bold ToOrFrom selector label
* Bold 'FROM' in 'rcfilters-filter-showlinkedfrom-option-label'
* Bold 'TO' in 'rcfilters-filter-showlinkedto-option-label'
* Reword target page selector placeholder
* Prevent title suggestions from showing duplicate entries
* Show a specific message when there is no results
  because no target page is specified.

Bug: T172161
Change-Id: I1b1ee793b3eff4183039acc27fe6cca042ee57d0
---
M includes/specials/SpecialRecentchangeslinked.php
M languages/i18n/en.json
M languages/i18n/qqq.json
M resources/Resources.php
M resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
M resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
M resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less
M 
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.RclToOrFromWidget.less
M 
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
M resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclTargetPageWidget.js
M resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclToOrFromWidget.js
11 files changed, 62 insertions(+), 25 deletions(-)

Approvals:
  Catrope: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/specials/SpecialRecentchangeslinked.php 
b/includes/specials/SpecialRecentchangeslinked.php
index 2eeeb0b..9e0daf5 100644
--- a/includes/specials/SpecialRecentchangeslinked.php
+++ b/includes/specials/SpecialRecentchangeslinked.php
@@ -310,4 +310,16 @@
 
                return parent::getPageTitle( $subpage );
        }
+
+       protected function outputNoResults() {
+               if ( $this->getTargetTitle() === false ) {
+                       $this->getOutput()->addHTML(
+                               '<div class="mw-changeslist-notargetpage">' .
+                               $this->msg( 'recentchanges-notargetpage' 
)->parse() .
+                               '</div>'
+                       );
+               } else {
+                       parent::outputNoResults();
+               }
+       }
 }
diff --git a/languages/i18n/en.json b/languages/i18n/en.json
index 7254b92..4b65fbc 100644
--- a/languages/i18n/en.json
+++ b/languages/i18n/en.json
@@ -1343,6 +1343,7 @@
        "recentchanges-noresult": "No changes during the given period match 
these criteria.",
        "recentchanges-timeout": "This search has timed out. You may wish to 
try different search parameters.",
        "recentchanges-network": "Due to a technical error, no results could be 
loaded. Please try refreshing the page.",
+       "recentchanges-notargetpage": "Enter a page name above to see changes 
related to that page.",
        "recentchanges-feed-description": "Track the most recent changes to the 
wiki in this feed.",
        "recentchanges-label-newpage": "This edit created a new page",
        "recentchanges-label-minor": "This is a minor edit",
@@ -1480,11 +1481,11 @@
        "rcfilters-watchlist-showupdated": "Changes to pages you haven't 
visited since the changes occurred are in <strong>bold</strong>, with solid 
markers.",
        "rcfilters-preference-label": "Hide the improved version of Recent 
Changes",
        "rcfilters-preference-help": "Rolls back the 2017 interface redesign 
and all tools added then and since.",
-       "rcfilters-filter-showlinkedfrom-label": "Show changes on pages linked 
from:",
-       "rcfilters-filter-showlinkedfrom-option-label": "Show changes on pages 
linked FROM a page",
-       "rcfilters-filter-showlinkedto-label": "Show changes on pages linked 
to:",
-       "rcfilters-filter-showlinkedto-option-label": "Show changes on pages 
linked TO a page",
-       "rcfilters-target-page-placeholder": "Select a page",
+       "rcfilters-filter-showlinkedfrom-label": "Show changes on pages linked 
from",
+       "rcfilters-filter-showlinkedfrom-option-label": "Show changes on pages 
linked <strong>FROM</strong> a page",
+       "rcfilters-filter-showlinkedto-label": "Show changes on pages linked 
to",
+       "rcfilters-filter-showlinkedto-option-label": "Show changes on pages 
linked <strong>TO</strong> a page",
+       "rcfilters-target-page-placeholder": "Enter a page name",
        "rcnotefrom": "Below {{PLURAL:$5|is the change|are the changes}} since 
<strong>$3, $4</strong> (up to <strong>$1</strong> shown).",
        "rclistfromreset": "Reset date selection",
        "rclistfrom": "Show new changes starting from $2, $3",
@@ -1532,7 +1533,7 @@
        "recentchangeslinked-feed": "Related changes",
        "recentchangeslinked-toolbox": "Related changes",
        "recentchangeslinked-title": "Changes related to \"$1\"",
-       "recentchangeslinked-summary": "This is a list of changes made recently 
to pages linked from a specified page (or to members of a specified 
category).\nPages on [[Special:Watchlist|your watchlist]] are 
<strong>bold</strong>.",
+       "recentchangeslinked-summary": "Enter a page name to see changes on 
pages linked to or from that page. (To see members of a category, enter 
Category:Name of category). Changes to pages on [[Special:Watchlist|your 
Watchlist]] are in <strong>bold</strong>.",
        "recentchangeslinked-page": "Page name:",
        "recentchangeslinked-to": "Show changes to pages linked to the given 
page instead",
        "recentchanges-page-added-to-category": "[[:$1]] added to category",
diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json
index 0497396..072a93c 100644
--- a/languages/i18n/qqq.json
+++ b/languages/i18n/qqq.json
@@ -1538,6 +1538,7 @@
        "recentchanges-noresult": "Used in [[Special:RecentChanges]], 
[[Special:RecentChangesLinked]], and [[Special:Watchlist]] when there are no 
changes to be shown.",
        "recentchanges-timeout": "Used in [[Special:RecentChanges]], 
[[Special:RecentChangesLinked]], and [[Special:Watchlist]] when a query times 
out.",
        "recentchanges-network": "Used in [[Special:RecentChanges]], 
[[Special:RecentChangesLinked]] and [[Special:Watchlist]] when network error 
occurs.",
+       "recentchanges-notargetpage": "Used in [[Special:RecentChangesLinked]] 
to explain why no results are shown when no target page is specified.",
        "recentchanges-feed-description": "Used in feed of RecentChanges. See 
example [{{canonicalurl:Special:RecentChanges|feed=atom}} feed].",
        "recentchanges-label-newpage": "# Used as tooltip for 
{{msg-mw|Newpageletter}}.\n# Also used as legend. Preceded by 
{{msg-mw|Newpageletter}} and followed by 
{{msg-mw|Recentchanges-legend-newpage}}.",
        "recentchanges-label-minor": "# Used as tooltip for 
{{msg-mw|Minoreditletter}}\n# Also used as legend. Preceded by 
{{msg-mw|Minoreditletter}}",
diff --git a/resources/Resources.php b/resources/Resources.php
index 7beb775..fbc4dbb 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1923,6 +1923,7 @@
                        'recentchanges-noresult',
                        'recentchanges-timeout',
                        'recentchanges-network',
+                       'recentchanges-notargetpage',
                        'quotation-marks',
                ],
                'dependencies' => [
diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js 
b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
index c1ffde2..8d5b815 100644
--- a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
+++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
@@ -319,7 +319,7 @@
         * @return {jQuery} return.fieldset Fieldset
         */
        mw.rcfilters.Controller.prototype._extractChangesListInfo = function ( 
$root ) {
-               var info, isTimeout,
+               var info,
                        $changesListContents = $root.find( '.mw-changeslist' 
).first().contents(),
                        areResults = !!$changesListContents.length;
 
@@ -329,8 +329,13 @@
                };
 
                if ( !areResults ) {
-                       isTimeout = !!$root.find( '.mw-changeslist-timeout' 
).length;
-                       info.noResultsDetails = isTimeout ? 
'NO_RESULTS_TIMEOUT' : 'NO_RESULTS_NORMAL';
+                       if ( $root.find( '.mw-changeslist-timeout' ).length ) {
+                               info.noResultsDetails = 'NO_RESULTS_TIMEOUT';
+                       } else if ( $root.find( '.mw-changeslist-notargetpage' 
).length ) {
+                               info.noResultsDetails = 
'NO_RESULTS_NO_TARGET_PAGE';
+                       } else {
+                               info.noResultsDetails = 'NO_RESULTS_NORMAL';
+                       }
                }
 
                return info;
diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js 
b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
index 6ec1200..2744b8b 100644
--- a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
+++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
@@ -34,7 +34,12 @@
                                        controller, savedQueriesModel, { 
$overlay: $overlay }
                                ),
                                specialPage = mw.config.get( 
'wgCanonicalSpecialPageName' ),
-                               $changesListRoot = $( '.mw-changeslist, 
.mw-changeslist-empty, .mw-changeslist-timeout' );
+                               $changesListRoot = $( [
+                                       '.mw-changeslist',
+                                       '.mw-changeslist-empty',
+                                       '.mw-changeslist-timeout',
+                                       '.mw-changeslist-notargetpage'
+                               ].join( ', ' ) );
 
                        // TODO: The changesListWrapperWidget should be able to 
initialize
                        // after the model is ready.
diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less 
b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less
index 74b81fa..fea0c0a 100644
--- a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less
+++ b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less
@@ -78,10 +78,10 @@
                }
        }
 
-       // Temporarily hide any 'empty' or 'timeout' message while we
-       // load rcfilters.
+       // Temporarily hide any specific 'no result' message while we load 
rcfilters.
        .mw-changeslist-empty,
-       .mw-changeslist-timeout {
+       .mw-changeslist-timeout,
+       .mw-changeslist-notargetpage {
                display: none;
        }
 
diff --git 
a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.RclToOrFromWidget.less
 
b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.RclToOrFromWidget.less
index 577c254..af01f68 100644
--- 
a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.RclToOrFromWidget.less
+++ 
b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.RclToOrFromWidget.less
@@ -6,6 +6,7 @@
                .oo-ui-dropdownWidget-handle {
                        border: 0;
                        background-color: transparent;
+                       font-weight: bold;
                }
        }
 }
diff --git 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
index 98a7d8c..cd0b8ae 100644
--- 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
+++ 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
@@ -123,7 +123,7 @@
        mw.rcfilters.ui.ChangesListWrapperWidget.prototype.onModelUpdate = 
function (
                $changesListContent, $fieldset, noResultsDetails, isInitialDOM, 
from
        ) {
-               var conflictItem, noResultsKey,
+               var conflictItem,
                        $message = $( '<div>' )
                                .addClass( 
'mw-rcfilters-ui-changesListWrapperWidget-results' ),
                        isEmpty = $changesListContent === 'NO_RESULTS',
@@ -151,21 +151,15 @@
                                                        .text( mw.message( 
conflictItem.getCurrentConflictResultMessage() ).text() )
                                        );
                        } else {
-                               noResultsKey =
-                                       ( noResultsDetails === 
'NO_RESULTS_TIMEOUT' ) ?
-                                               'recentchanges-timeout' :
-                                               ( noResultsDetails === 
'NO_RESULTS_NETWORK_ERROR' ) ?
-                                                       'recentchanges-network' 
:
-                                                       
'recentchanges-noresult';
-
                                $message
                                        .append(
                                                $( '<div>' )
                                                        .addClass( 
'mw-rcfilters-ui-changesListWrapperWidget-results-noresult' )
-                                                       .text( mw.message( 
noResultsKey ).text() )
+                                                       .text( mw.msg( 
this.getMsgKeyForNoResults( noResultsDetails ) ) )
                                        );
 
                                this.$element.removeClass( 
'mw-changeslist-timeout' );
+                               this.$element.removeClass( 
'mw-changeslist-notargetpage' );
                        }
 
                        this.$element.append( $message );
@@ -197,6 +191,22 @@
        };
 
        /**
+        * Map a reason for having no results to its message key
+        *
+        * @param {string} reason One of the NO_RESULTS_* "constant" that 
represent
+        *      a reason for having no results
+        * @return {string} Key for the message that explains why there is no 
results in this case
+        */
+       
mw.rcfilters.ui.ChangesListWrapperWidget.prototype.getMsgKeyForNoResults = 
function ( reason ) {
+               var reasonMsgKeyMap = {
+                       NO_RESULTS_NORMAL: 'recentchanges-noresult',
+                       NO_RESULTS_TIMEOUT: 'recentchanges-timeout',
+                       NO_RESULTS_NETWORK_ERROR: 'recentchanges-network',
+                       NO_RESULTS_NO_TARGET_PAGE: 'recentchanges-notargetpage'
+               };
+               return reasonMsgKeyMap[ reason ];
+       };
+       /**
         * Emphasize the elements (or groups) newer than the 'from' parameter
         * @param {string} from Anything newer than this is considered 'new'
         */
diff --git 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclTargetPageWidget.js 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclTargetPageWidget.js
index 31be3ad..6673c08 100644
--- 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclTargetPageWidget.js
+++ 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclTargetPageWidget.js
@@ -24,7 +24,8 @@
                        validate: false,
                        placeholder: mw.msg( 
'rcfilters-target-page-placeholder' ),
                        showImages: true,
-                       showDescriptions: true
+                       showDescriptions: true,
+                       addQueryInput: false
                } );
 
                // Events
diff --git 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclToOrFromWidget.js 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclToOrFromWidget.js
index e91fe9b..4fce08c 100644
--- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclToOrFromWidget.js
+++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclToOrFromWidget.js
@@ -17,11 +17,11 @@
 
                this.showLinkedFrom = new OO.ui.MenuOptionWidget( {
                        data: 'from', // default (showlinkedto=0)
-                       label: mw.msg( 
'rcfilters-filter-showlinkedfrom-option-label' )
+                       label: new OO.ui.HtmlSnippet( mw.msg( 
'rcfilters-filter-showlinkedfrom-option-label' ) )
                } );
                this.showLinkedTo = new OO.ui.MenuOptionWidget( {
                        data: 'to', // showlinkedto=1
-                       label: mw.msg( 
'rcfilters-filter-showlinkedto-option-label' )
+                       label: new OO.ui.HtmlSnippet( mw.msg( 
'rcfilters-filter-showlinkedto-option-label' ) )
                } );
 
                // Parent

-- 
To view, visit https://gerrit.wikimedia.org/r/395778
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1b1ee793b3eff4183039acc27fe6cca042ee57d0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Sbisson <sbis...@wikimedia.org>
Gerrit-Reviewer: Catrope <r...@wikimedia.org>
Gerrit-Reviewer: Florianschmidtwelzow <florian.schmidt.stargatewis...@gmail.com>
Gerrit-Reviewer: Siebrand <siebr...@kitano.nl>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to