jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/380784 )
Change subject: New RCFilters group for "Flagged Revisions"
......................................................................
New RCFilters group for "Flagged Revisions"
Create new RC Filters group for "Flagged Revisions",
based on the old 'Hide reviewed edits' function.
Bug: T159791
Change-Id: I67e15ce76f740603a41b57b019b7d8619db2e7e5
---
M frontend/FlaggedRevsUI.hooks.php
M i18n/flaggedrevs/en.json
M i18n/flaggedrevs/qqq.json
3 files changed, 139 insertions(+), 1 deletion(-)
Approvals:
Sbisson: Looks good to me, approved
jenkins-bot: Verified
Jforrester: Looks good to me, approved
diff --git a/frontend/FlaggedRevsUI.hooks.php b/frontend/FlaggedRevsUI.hooks.php
index 6393061..bc533ee 100644
--- a/frontend/FlaggedRevsUI.hooks.php
+++ b/frontend/FlaggedRevsUI.hooks.php
@@ -318,7 +318,8 @@
if ( FlaggedRevs::useSimpleConfig() ) {
return true;
}
- // TODO: Use the new structured UI: T162902
+
+ // Old filter, replaced in structured UI
$flaggedRevsUnstructuredGroup = new
ChangesListBooleanFilterGroup(
[
'name' => 'flaggedRevsUnstructured',
@@ -327,6 +328,7 @@
[
'name' => 'hideReviewed',
'showHide' =>
'flaggedrevs-hidereviewed',
+ 'isReplacedInStructuredUi' =>
true,
'default' => false,
'queryCallable' => function (
$specialClassName, $ctx, $dbr, &$tables,
&$fields, &$conds,
&$query_options, &$join_conds
@@ -341,6 +343,130 @@
);
$specialPage->registerFilterGroup(
$flaggedRevsUnstructuredGroup );
+
+ $flaggedRevsGroup = new ChangesListStringOptionsFilterGroup(
+ [
+ 'name' => 'flaggedrevs',
+ 'title' => 'flaggedrevs',
+ 'priority' => -9,
+ 'default' =>
ChangesListStringOptionsFilterGroup::NONE,
+ 'isFullCoverage' => true,
+ 'filters' => [
+ [
+ 'name' => 'needreview',
+ 'label' =>
'flaggedrevs-rcfilters-need-review-label',
+ 'description' =>
'flaggedrevs-rcfilters-need-review-desc',
+ 'cssClassSuffix' =>
'need-review',
+ 'isRowApplicableCallable' =>
function ( $ctx, $rc ) {
+ $namespaces =
FlaggedRevs::getReviewNamespaces();
+ return ( in_array(
$rc->getAttribute( 'rc_namespace' ), $namespaces ) &&
+
$rc->getAttribute( 'rc_type' ) !== RC_EXTERNAL ) &&
+ (
+
!$rc->getAttribute( 'fp_stable' ) ||
+ (
+
// The rc_timestamp >= fp_pending_since condition implies that fp_pending_since
is
+
// not null, because all comparisons with null values are false in MySQL. It
doesn't
+
// work that way in PHP, so we have to explicitly check that fp_pending_since
is not null
+
$rc->getAttribute( 'fp_pending_since' ) &&
+
$rc->getAttribute( 'rc_timestamp' ) >= $rc->getAttribute( 'fp_pending_since' )
+ )
+ );
+ }
+ ],
+ [
+ 'name' => 'reviewed',
+ 'label' =>
'flaggedrevs-rcfilters-reviewed-label',
+ 'description' =>
'flaggedrevs-rcfilters-reviewed-desc',
+ 'cssClassSuffix' => 'reviewed',
+ 'isRowApplicableCallable' =>
function ( $ctx, $rc ) {
+ $namespaces =
FlaggedRevs::getReviewNamespaces();
+ return ( in_array(
$rc->getAttribute( 'rc_namespace' ), $namespaces ) &&
+
$rc->getAttribute( 'rc_type' ) !== RC_EXTERNAL ) &&
+
$rc->getAttribute( 'fp_stable' ) &&
+ (
+
!$rc->getAttribute( 'fp_pending_since' ) ||
+
$rc->getAttribute( 'rc_timestamp' ) < $rc->getAttribute( 'fp_pending_since' )
+ );
+ }
+ ],
+ [
+ 'name' => 'notreviewable',
+ 'label' =>
'flaggedrevs-rcfilters-not-reviewable-label',
+ 'description' =>
'flaggedrevs-rcfilters-not-reviewable-desc',
+ 'cssClassSuffix' =>
'not-reviewable',
+ 'isRowApplicableCallable' =>
function ( $ctx, $rc ) {
+ $namespaces =
FlaggedRevs::getReviewNamespaces();
+ return !in_array(
$rc->getAttribute( 'rc_namespace' ), $namespaces );
+ }
+ ],
+ ],
+ 'queryCallable' => function (
$specialClassName, $ctx, $dbr, &$tables,
+ &$fields, &$conds, &$query_options,
&$join_conds, $selectedValues
+ ) {
+ $fields[] = 'fp_stable';
+ $fields[] = 'fp_pending_since';
+ $fields[] = 'rc_namespace';
+
+ $namespaces =
FlaggedRevs::getReviewNamespaces();
+ $needReviewCond = 'rc_timestamp >=
fp_pending_since OR fp_stable IS NULL';
+ $reviewedCond = '(fp_pending_since IS
NULL OR rc_timestamp < fp_pending_since) '.
+ 'AND fp_stable IS NOT NULL';
+ $notReviewableCond = 'rc_namespace NOT
IN (' . $dbr->makeList( $namespaces ) .
+ ') OR rc_type = ' .
$dbr->addQuotes( RC_EXTERNAL );
+ $reviewableCond = 'rc_namespace IN (' .
$dbr->makeList( $namespaces ) .
+ ') AND rc_type != ' .
$dbr->addQuotes( RC_EXTERNAL );
+
+ if ( $selectedValues === [
'needreview', 'notreviewable', 'reviewed' ] ) {
+ // no filters
+ return;
+ }
+
+ if ( $selectedValues === [
'needreview', 'reviewed' ] ) {
+ $conds[] = $reviewableCond;
+ return;
+ }
+
+ if ( $selectedValues === [
'needreview', 'notreviewable' ] ) {
+ $conds[] = $dbr->makeList( [
+ $notReviewableCond,
+ $needReviewCond
+ ], LIST_OR );
+ return;
+ }
+
+ if ( $selectedValues === [
'notreviewable', 'reviewed' ] ) {
+ $conds[] = $dbr->makeList( [
+ $notReviewableCond,
+ $reviewedCond
+ ], LIST_OR );
+ return;
+ }
+
+ if ( $selectedValues === [ 'needreview'
] ) {
+ $conds[] = $dbr->makeList( [
+ $reviewableCond,
+ $needReviewCond
+ ], LIST_AND );
+ return;
+ }
+
+ if ( $selectedValues === [
'notreviewable' ] ) {
+ $conds[] = $notReviewableCond;
+ return;
+ }
+
+ if ( $selectedValues === [ 'reviewed' ]
) {
+ $conds[] = $dbr->makeList( [
+ $reviewableCond,
+ $reviewedCond
+ ], LIST_AND );
+ return;
+ }
+ }
+ ]
+ );
+
+ $specialPage->registerFilterGroup( $flaggedRevsGroup );
return true;
}
diff --git a/i18n/flaggedrevs/en.json b/i18n/flaggedrevs/en.json
index 3bab82f..f8e0b56 100644
--- a/i18n/flaggedrevs/en.json
+++ b/i18n/flaggedrevs/en.json
@@ -26,6 +26,12 @@
"flaggedrevs-hidereviewed": "$1 reviewed edits",
"flaggedrevs-hidereviewed-hide": "Hide",
"flaggedrevs-hidereviewed-show": "Show",
+ "flaggedrevs-rcfilters-need-review-label": "Need review",
+ "flaggedrevs-rcfilters-need-review-desc": "Edits requiring review.",
+ "flaggedrevs-rcfilters-reviewed-label": "Reviewed",
+ "flaggedrevs-rcfilters-reviewed-desc": "Edits that have been reviewed.",
+ "flaggedrevs-rcfilters-not-reviewable-label": "Not subject to review",
+ "flaggedrevs-rcfilters-not-reviewable-desc": "Changes of all types that
don't require review.",
"flaggedrevs-diffonly": "",
"group-editor": "Editors",
"group-editor-member": "{{GENDER:$1|editor}}",
diff --git a/i18n/flaggedrevs/qqq.json b/i18n/flaggedrevs/qqq.json
index d87b91e..350a438 100644
--- a/i18n/flaggedrevs/qqq.json
+++ b/i18n/flaggedrevs/qqq.json
@@ -56,6 +56,12 @@
"flaggedrevs-hidereviewed": "{{Flagged Revs}}\nShown within parenthesis
on [[Special:Recentchanges]], [[Special:NewPages]] and
[[Special:Watchlist]].\n\nThis refers to a toggle to hide or show edits
(revisions) that have been reviewed.\n\nIf set to \"hide\", it also hides edits
to pages that are not reviewable (like Talk pages).\n\nParameters:\n* $1 - a
link with the text {{msg-mw|flaggedrevs-hidereviewed-show}} or
{{msg-mw|flaggedrevs-hidereviewed-hide}}",
"flaggedrevs-hidereviewed-hide": "{{doc-actionlink}}\nOption text in
[[Special:RecentChanges]] in conjunction with
{{msg-mw|flaggedrevs-hidereviewed}}.\n\nSee also:\n*
{{msg-mw|flaggedrevs-hidereviewed-show}}\n{{Identical|Hide}}",
"flaggedrevs-hidereviewed-show": "{{doc-actionlink}}\nOption text in
[[Special:RecentChanges]] in conjunction with
{{msg-mw|flaggedrevs-hidereviewed}}.\n\nSee also:\n*
{{msg-mw|flaggedrevs-hidereviewed-hide}}\n{{Identical|Show}}",
+ "flaggedrevs-rcfilters-need-review-label": "Label for the filter for
showing edits that require review.",
+ "flaggedrevs-rcfilters-need-review-desc": "Description for the filter
for showing edits that require review.",
+ "flaggedrevs-rcfilters-reviewed-label": "Label for the filter for
showing edits that have been reviewed.",
+ "flaggedrevs-rcfilters-reviewed-desc": "Description for the filter for
showing edits that have been reviewed.",
+ "flaggedrevs-rcfilters-not-reviewable-label": "Label for the filter for
showing edits of all types that don't require review.",
+ "flaggedrevs-rcfilters-not-reviewable-desc": "Description for the
filter for showing edits of all types that don't require review.",
"flaggedrevs-diffonly": "{{Flagged Revs}}\n{{notranslate}}",
"group-editor": "{{Flagged
Revs}}\n{{doc-group|editor}}\n{{Identical|Editor}}",
"group-editor-member": "{{Flagged
Revs}}\n{{doc-group|editor|member}}\n{{Identical|Editor}}",
--
To view, visit https://gerrit.wikimedia.org/r/380784
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I67e15ce76f740603a41b57b019b7d8619db2e7e5
Gerrit-PatchSet: 11
Gerrit-Project: mediawiki/extensions/FlaggedRevs
Gerrit-Branch: master
Gerrit-Owner: Petar.petkovic <[email protected]>
Gerrit-Reviewer: Aaron Schulz <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Cenarium <[email protected]>
Gerrit-Reviewer: Jackmcbarn <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Petar.petkovic <[email protected]>
Gerrit-Reviewer: Sbisson <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits