From e3da2e231974e724d3b9ad34cc04977f9d49c43c Mon Sep 17 00:00:00 2001 From: Roan Kattouw Date: Fri, 6 Jan 2017 15:51:22 -0800 Subject: [PATCH] mediawiki.rcfilters: Add the remaining MW core filters Add JSON definitions and i18n messages. Bug: T149452 Change-Id: I287e9e5db9ff625bde026056efc81ce4b2401607 --- languages/i18n/en.json | 32 +++++- languages/i18n/qqq.json | 24 ++++ resources/Resources.php | 24 ++++ .../mediawiki.rcfilters/mw.rcfilters.init.js | 106 +++++++++++++++--- 4 files changed, 166 insertions(+), 20 deletions(-) diff --git a/languages/i18n/en.json b/languages/i18n/en.json index 68abd7c48e..265368991b 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -1364,18 +1364,42 @@ "rcfilters-invalid-filter": "Invalid filter", "rcfilters-filterlist-title": "Filters", "rcfilters-filterlist-noresults": "No filters found", + "rcfilters-filtergroup-registration": "User registration", + "rcfilters-filter-registered-label": "Registered", + "rcfilters-filter-registered-description": "Logged-in editors.", + "rcfilters-filter-unregistered-label": "Unregistered", + "rcfilters-filter-unregistered-description": " Editors who aren’t logged in.", "rcfilters-filtergroup-authorship": "Edit authorship", "rcfilters-filter-editsbyself-label": "Your own edits", "rcfilters-filter-editsbyself-description": "Edits by you.", "rcfilters-filter-editsbyother-label": "Edits by others", - "rcfilters-filter-editsbyother-description": "Edits created by other users (not you.)", - "rcfilters-filtergroup-userExpLevel": "User experience level", + "rcfilters-filter-editsbyother-description": "Edits created by other users (not you).", + "rcfilters-filtergroup-userExpLevel": "Experience level (for registered users only)", "rcfilters-filter-userExpLevel-newcomer-label": "Newcomers", - "rcfilters-filter-userExpLevel-newcomer-description": "Very new editors: fewer than 10 edits and 4 days of activity.", + "rcfilters-filter-userExpLevel-newcomer-description": "Fewer than 10 edits and 4 days of activity.", "rcfilters-filter-userExpLevel-learner-label": "Learners", - "rcfilters-filter-userExpLevel-learner-description": "More days of activity and edits than 'Newcomers' but fewer than 'Experienced users.'", + "rcfilters-filter-userExpLevel-learner-description": "More days of activity and edits than \"Newcomers\" but fewer than \"Experienced users\".", "rcfilters-filter-userExpLevel-experienced-label": "Experienced users", "rcfilters-filter-userExpLevel-experienced-description": "More than 30 days of activity and 500 edits.", + "rcfilters-filtergroup-automated": "Automated contributions", + "rcfilters-filter-bots-label": "Bot", + "rcfilters-filter-bots-description": "Edits made by automated tools.", + "rcfilters-filter-humans-label": "Human (not bot)", + "rcfilters-filter-humans-description": "Edits made by human editors.", + "rcfilters-filtergroup-significance": "Significance", + "rcfilters-filter-minor-label": "Minor edits", + "rcfilters-filter-minor-description": "Edits the author labeled as minor.", + "rcfilters-filter-major-label": "Non-minor edits", + "rcfilters-filter-major-description": "Edits not labeled as minor.", + "rcfilters-filtergroup-changetype": "Type of change", + "rcfilters-filter-pageedits-label": "Page edits", + "rcfilters-filter-pageedits-description": "Edits to wiki content, discussions, category descriptions....", + "rcfilters-filter-newpages-label": "Page creations", + "rcfilters-filter-newpages-description": "Edits that make new pages.", + "rcfilters-filter-categorization-label": "Category changes", + "rcfilters-filter-categorization-description": "Records of pages being added or removed from categories.", + "rcfilters-filter-logactions-label": "Logged actions", + "rcfilters-filter-logactions-description": "Administrative actions, account creations, page deletions, uploads....", "rcnotefrom": "Below {{PLURAL:$5|is the change|are the changes}} since $3, $4 (up to $1 shown).", "rclistfrom": "Show new changes starting from $2, $3", "rcshowhideminor": "$1 minor edits", diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index a6d6228794..7219eb6a52 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -1550,6 +1550,11 @@ "rcfilters-invalid-filter": "A label for an invalid filter.", "rcfilters-filterlist-title": "Title for the filters list.\n{{Identical|Filter}}", "rcfilters-filterlist-noresults": "Message showing no results found for searching a filter.", + "rcfilters-filtergroup-registration": "Title for the filter group for editor registration type.", + "rcfilters-filter-registered-label": "Label for the filter for showing edits made by logged-in users.", + "rcfilters-filter-registered-description": "Description for the filter for showing edits made by logged-in users.", + "rcfilters-filter-unregistered-label": "Label for the filter for showing edits made by logged-out users.", + "rcfilters-filter-unregistered-description": " Description for the filter for showing edits made by logged-out users.", "rcfilters-filtergroup-authorship": "Title for the filter group for edit authorship. This filter group allows the user to choose between \"Your own edits\" and \"Edits by others\". More info: https://phabricator.wikimedia.org/T149859\n\n{{doc-important|This is another typical example of ambiguity in the English language. Only the documentation will reveal that this message means \"(filter by) authorship of these edits\", not \"edit the authorship\". That is, \"edit\" is a modifying noun, not a verb.}}", "rcfilters-filter-editsbyself-label": "Label for the filter for showing edits made by the current user.", "rcfilters-filter-editsbyself-description": "Description for the filter for showing edits made by the current user.", @@ -1562,6 +1567,25 @@ "rcfilters-filter-userExpLevel-learner-description": "Description for the filter for showing edits made by learning editors.", "rcfilters-filter-userExpLevel-experienced-label": "Label for the filter for showing edits made by experienced editors.", "rcfilters-filter-userExpLevel-experienced-description": "Description for the filter for showing edits made by experienced editors.", + "rcfilters-filtergroup-automated": "Title for the filter group for editor automation type.", + "rcfilters-filter-bots-label": "Label for the filter for showing edits made by automated tools.", + "rcfilters-filter-bots-description": "Description for the filter for showing edits made by automated tools.", + "rcfilters-filter-humans-label": "Label for the filter for showing edits made by human editors.", + "rcfilters-filter-humans-description": " Description for the filter for showing edits made by human editors.", + "rcfilters-filtergroup-significance": "Title for the filter group for edit significance.", + "rcfilters-filter-minor-label": "Label for the filter for showing edits marked as minor.", + "rcfilters-filter-minor-description": "Description for the filter for showing edits marked as minor.", + "rcfilters-filter-major-label": "Label for the filter for showing edits not marked as minor.", + "rcfilters-filter-major-description": " Description for the filter for showing edits not marked as minor.", + "rcfilters-filtergroup-changetype": "Title for the filter group for edit type.", + "rcfilters-filter-pageedits-label": "Label for the filter for showing edits to existing pages.", + "rcfilters-filter-pageedits-description": "Description for the filter for showing edits to existing pages.", + "rcfilters-filter-newpages-label": "Label for the filter for showing edits that create a page.", + "rcfilters-filter-newpages-description": "Description for the filter for showing edits that create a page.", + "rcfilters-filter-categorization-label": "Label for the filter for showing edits adding or removing pages to categories.", + "rcfilters-filter-categorization-description": "Description for the filter for showing edits adding or removing pages to categories.", + "rcfilters-filter-logactions-label": "Label for the filter for showing logged actions.", + "rcfilters-filter-logactions-description": "Description for the filter for showing logged actions.", "rcnotefrom": "This message is displayed at [[Special:RecentChanges]] when viewing recentchanges from some specific time.\n\nThe corresponding message is {{msg-mw|Rclistfrom}}.\n\nParameters:\n* $1 - the maximum number of changes that are displayed\n* $2 - (Optional) a date and time\n* $3 - a date\n* $4 - a time\n* $5 - Number of changes are displayed, for use with PLURAL", "rclistfrom": "Used on [[Special:RecentChanges]]. Parameters:\n* $1 - (Currently not use) date and time. The date and the time adds to the rclistfrom description.\n* $2 - time. The time adds to the rclistfrom link description (with split of date and time).\n* $3 - date. The date adds to the rclistfrom link description (with split of date and time).\n\nThe corresponding message is {{msg-mw|Rcnotefrom}}.", "rcshowhideminor": "Option text in [[Special:RecentChanges]]. Parameters:\n* $1 - the \"show/hide\" command, with the text taken from either {{msg-mw|rcshowhideminor-show}} or {{msg-mw|rcshowhideminor-hide}}\n{{Identical|Minor edit}}", diff --git a/resources/Resources.php b/resources/Resources.php index 7c00feb052..d01b07e0eb 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -1808,6 +1808,11 @@ return [ 'rcfilters-invalid-filter', 'rcfilters-filterlist-title', 'rcfilters-filterlist-noresults', + 'rcfilters-filtergroup-registration', + 'rcfilters-filter-registered-label', + 'rcfilters-filter-registered-description', + 'rcfilters-filter-unregistered-label', + 'rcfilters-filter-unregistered-description', 'rcfilters-filtergroup-authorship', 'rcfilters-filter-editsbyself-label', 'rcfilters-filter-editsbyself-description', @@ -1820,6 +1825,25 @@ return [ 'rcfilters-filter-userExpLevel-learner-description', 'rcfilters-filter-userExpLevel-experienced-label', 'rcfilters-filter-userExpLevel-experienced-description', + 'rcfilters-filtergroup-automated', + 'rcfilters-filter-bots-label', + 'rcfilters-filter-bots-description', + 'rcfilters-filter-humans-label', + 'rcfilters-filter-humans-description', + 'rcfilters-filtergroup-significance', + 'rcfilters-filter-minor-label', + 'rcfilters-filter-minor-description', + 'rcfilters-filter-major-label', + 'rcfilters-filter-major-description', + 'rcfilters-filtergroup-changetype', + 'rcfilters-filter-pageedits-label', + 'rcfilters-filter-pageedits-description', + 'rcfilters-filter-newpages-label', + 'rcfilters-filter-newpages-description', + 'rcfilters-filter-categorization-label', + 'rcfilters-filter-categorization-description', + 'rcfilters-filter-logactions-label', + 'rcfilters-filter-logactions-description', ], 'dependencies' => [ 'oojs-ui', diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js index 679215bc71..34df2f5a5b 100644 --- a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js +++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js @@ -14,27 +14,19 @@ widget = new mw.rcfilters.ui.FilterWrapperWidget( controller, model ); model.initializeFilters( { - authorship: { - title: mw.msg( 'rcfilters-filtergroup-authorship' ), - // Type 'send_unselected_if_any' means that the controller will go over - // all unselected filters in the group and use their parameters - // as truthy in the query string. - // This is to handle the "negative" filters. We are showing users - // a positive message ("Show xxx") but the filters themselves are - // based on "hide YYY". The purpose of this is to correctly map - // the functionality to the UI, whether we are dealing with 2 - // parameters in the group or more. + registration: { + title: mw.msg( 'rcfilters-filtergroup-registration' ), type: 'send_unselected_if_any', filters: [ { - name: 'hidemyself', - label: mw.msg( 'rcfilters-filter-editsbyself-label' ), - description: mw.msg( 'rcfilters-filter-editsbyself-description' ) + name: 'hideliu', + label: mw.msg( 'rcfilters-filter-registered-label' ), + description: mw.msg( 'rcfilters-filter-registered-description' ) }, { - name: 'hidebyothers', - label: mw.msg( 'rcfilters-filter-editsbyother-label' ), - description: mw.msg( 'rcfilters-filter-editsbyother-description' ) + name: 'hideanon', + label: mw.msg( 'rcfilters-filter-unregistered-label' ), + description: mw.msg( 'rcfilters-filter-unregistered-description' ) } ] }, @@ -64,6 +56,88 @@ description: mw.msg( 'rcfilters-filter-userExpLevel-experienced-description' ) } ] + }, + authorship: { + title: mw.msg( 'rcfilters-filtergroup-authorship' ), + // Type 'send_unselected_if_any' means that the controller will go over + // all unselected filters in the group and use their parameters + // as truthy in the query string. + // This is to handle the "negative" filters. We are showing users + // a positive message ("Show xxx") but the filters themselves are + // based on "hide YYY". The purpose of this is to correctly map + // the functionality to the UI, whether we are dealing with 2 + // parameters in the group or more. + type: 'send_unselected_if_any', + filters: [ + { + name: 'hidemyself', + label: mw.msg( 'rcfilters-filter-editsbyself-label' ), + description: mw.msg( 'rcfilters-filter-editsbyself-description' ) + }, + { + name: 'hidebyothers', + label: mw.msg( 'rcfilters-filter-editsbyother-label' ), + description: mw.msg( 'rcfilters-filter-editsbyother-description' ) + } + ] + }, + automated: { + title: mw.msg( 'rcfilters-filtergroup-automated' ), + type: 'send_unselected_if_any', + filters: [ + { + name: 'hidebots', + label: mw.msg( 'rcfilters-filter-bots-label' ), + description: mw.msg( 'rcfilters-filter-bots-description' ) + }, + { + name: 'hidehumans', + label: mw.msg( 'rcfilters-filter-humans-label' ), + description: mw.msg( 'rcfilters-filter-humans-description' ) + } + ] + }, + significance: { + title: mw.msg( 'rcfilters-filtergroup-significance' ), + type: 'send_unselected_if_any', + filters: [ + { + name: 'hideminor', + label: mw.msg( 'rcfilters-filter-minor-label' ), + description: mw.msg( 'rcfilters-filter-minor-description' ) + }, + { + name: 'hidemajor', + label: mw.msg( 'rcfilters-filter-major-label' ), + description: mw.msg( 'rcfilters-filter-major-description' ) + } + ] + }, + changetype: { + title: mw.msg( 'rcfilters-filtergroup-changetype' ), + type: 'send_unselected_if_any', + filters: [ + { + name: 'hidepageedits', + label: mw.msg( 'rcfilters-filter-pageedits-label' ), + description: mw.msg( 'rcfilters-filter-pageedits-description' ) + }, + { + name: 'hidenewpages', + label: mw.msg( 'rcfilters-filter-newpages-label' ), + description: mw.msg( 'rcfilters-filter-newpages-description' ) + }, + { + name: 'hidecategorization', + label: mw.msg( 'rcfilters-filter-categorization-label' ), + description: mw.msg( 'rcfilters-filter-categorization-description' ) + }, + { + name: 'hidelog', + label: mw.msg( 'rcfilters-filter-logactions-label' ), + description: mw.msg( 'rcfilters-filter-logactions-description' ) + } + ] } } ); -- 2.20.1