jenkins-bot has submitted this change and it was merged.

Change subject: Convert PageTriage to extension registration
......................................................................


Convert PageTriage to extension registration

Bug: T87875
Change-Id: I63346f46164a32e6750d8b97681ae369b25ff066
---
M PageTriage.php
A extension.json
2 files changed, 863 insertions(+), 664 deletions(-)

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



diff --git a/PageTriage.php b/PageTriage.php
index a9acaf1..ea42b43 100644
--- a/PageTriage.php
+++ b/PageTriage.php
@@ -1,666 +1,14 @@
 <?php
-/**
- * MediaWiki PageTriage extension
- * http://www.mediawiki.org/wiki/Extension:PageTriage
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to 
deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * This program is distributed WITHOUT ANY WARRANTY.
- */
-
-/**
- * This file loads everything needed for the PageTriage extension to function.
- *
- * @file
- * @ingroup Extensions
- * @author Ryan Kaldari
- * @license MIT License
- */
-
-// Alert the user that this is not a valid entry point to MediaWiki if they 
try to access the
-// special pages file directly.
-if ( !defined( 'MEDIAWIKI' ) ) {
-       echo <<<EOT
-To install this extension, put the following line in LocalSettings.php:
-require_once "\$IP/extensions/PageTriage/PageTriage.php";
-EOT;
-       exit( 1 );
+if ( function_exists( 'wfLoadExtension' ) ) {
+       wfLoadExtension( 'PageTriage' );
+       // Keep i18n globals so mergeMessageFileList.php doesn't break
+       $wgMessagesDirs['PageTriage'] = __DIR__ . '/i18n';
+       $wgExtensionMessagesFiles['PageTriageAliases'] = __DIR__ . 
'/PageTriage.alias.php';
+       /*wfWarn(
+               'Deprecated PHP entry point used for PageTriage extension. 
Please use wfLoadExtension instead, ' .
+               'see https://www.mediawiki.org/wiki/Extension_registration for 
more details.'
+       );*/
+       return;
+} else {
+       die( 'This version of the PageTriage extension requires MediaWiki 
1.28+' );
 }
-
-// Extension credits that will show up on Special:Version
-$wgExtensionCredits['specialpage'][] = [
-       'path' => __FILE__,
-       'name' => 'PageTriage',
-       'version' => '0.2.1',
-       'url' => 'https://www.mediawiki.org/wiki/Extension:PageTriage',
-       'author' => [
-               'Ryan Kaldari',
-               'Benny Situ',
-               'Ian Baker',
-               'Andrew Garrett',
-       ],
-       'descriptionmsg' => 'pagetriage-desc',
-       'license-name' => 'MIT',
-];
-
-// Begin configuration variables
-// Maximum number of articles for the API to retrieve at once
-$wgPageTriagePagesPerRequest = 20;
-// Whether or not to use infinite scrolling in the page list
-$wgPageTriageInfiniteScrolling = true;
-// Whether or not the top nav bar should float
-$wgPageTriageStickyControlNav = true;
-// Whether or not the bottom nav bar should float
-$wgPageTriageStickyStatsNav = true;
-// 1 day - How long after visiting Special:NewPagesFeed do we show review 
links on articles
-$wgPageTriageMarkPatrolledLinkExpiry = 3600 * 24;
-// Array of template names (without prefixes) that will trigger noindexing of
-// pages that include them, for example, speedy deletion templates. Note that
-// it isn't necessary to list redirects or subtemplates.
-$wgPageTriageNoIndexTemplates = [];
-// Set this to true if new, unreviewed articles should be set to noindex. In 
other
-// words, if they should not be indexed by search engines until they are 
reviewed.
-$wgPageTriageNoIndexUnreviewedNewArticles = false;
-$wgPageTriageLearnMoreUrl = 
'//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help';
-$wgPageTriageProjectLink = 'Wikipedia:Page Curation';
-$wgPageTriageFeedbackUrl = 
'//en.wikipedia.org/wiki/Wikipedia_talk:Page_Curation';
-// enable the curation toolbar?
-$wgPageTriageEnableCurationToolbar = true;
-$wgPageTriageCurationModules = [
-       'articleInfo' => [
-               'helplink' => 
'//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#PageInfo',
-               'namespace' => [ NS_MAIN, NS_USER ],
-       ],
-       'mark' => [
-               'helplink' => 
'//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#MarkReviewed',
-               'namespace' => [ NS_MAIN, NS_USER ],
-               'note' => [ NS_MAIN ],
-       ],
-       'tags' => [
-               'helplink' => 
'//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#AddTags',
-               'namespace' => [ NS_MAIN ],
-       ],
-       'delete' => [
-               'helplink' => 
'//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#MarkDeletion',
-               'namespace' => [ NS_MAIN, NS_USER ],
-       ],
-];
-// version number to be added to cache key so that cache can be refreshed 
easily
-$wgPageTriageCacheVersion = '1.4';
-// only include these namespaces for pagetriage
-$wgPageTriageNamespaces = [ NS_MAIN, NS_USER ];
-$wgTalkPageNoteTemplate = [
-       'Mark' => 'Reviewednote-NPF',
-       'UnMark' => [ 'note' => 'Unreviewednote-NPF', 'nonote' => 
'Unreviewednonote-NPF' ],
-       'Tags' => 'Taggednote-NPF'
-];
-// Set which PageTriage Echo events (defined in 
PageTriageHooks::onBeforeCreateEchoEvent)
-// will be enabled as notifications
-$wgPageTriageEnabledEchoEvents = [
-       'pagetriage-mark-as-reviewed',
-       'pagetriage-add-maintenance-tag',
-       'pagetriage-add-deletion-tag'
-];
-// Set default user options
-$wgDefaultUserOptions['echo-subscriptions-web-page-review'] = true;
-// This is overriden for new users in PageTriageHooks::onLocalUserCreated
-$wgDefaultUserOptions['echo-subscriptions-email-page-review'] = false;
-// End configuration variables
-
-
-$dir = __DIR__ . '/';
-
-$wgMessagesDirs['PageTriage'] = $dir . 'i18n';
-$wgExtensionMessagesFiles['PageTriage'] = $dir . 'PageTriage.i18n.php';
-$wgExtensionMessagesFiles['PageTriageAlias'] = $dir . 'PageTriage.alias.php';
-
-$wgAutoloadClasses['SpecialNewPagesFeed'] = $dir . 'SpecialNewPagesFeed.php';
-$wgSpecialPages['NewPagesFeed'] = 'SpecialNewPagesFeed';
-$wgAutoloadClasses['ArticleMetadata'] = $dir . 'includes/ArticleMetadata.php';
-$wgAutoloadClasses['PageTriage'] = $dir . 'includes/PageTriage.php';
-$wgAutoloadClasses['PageTriageUtil'] = $dir . 'includes/PageTriageUtil.php';
-$wgAutoloadClasses['PageTriageHooks'] = $dir . 'PageTriage.hooks.php';
-$wgAutoloadClasses['ArticleCompileProcessor'] = $dir . 
'includes/ArticleMetadata.php';
-$wgAutoloadClasses['ArticleCompileInterface'] = $dir . 
'includes/ArticleMetadata.php';
-$wgAutoloadClasses['ArticleCompileBasicData'] = $dir . 
'includes/ArticleMetadata.php';
-$wgAutoloadClasses['ArticleCompileLinkCount'] = $dir . 
'includes/ArticleMetadata.php';
-$wgAutoloadClasses['ArticleCompileCategoryCount'] = $dir . 
'includes/ArticleMetadata.php';
-$wgAutoloadClasses['ArticleCompileSnippet'] = $dir . 
'includes/ArticleMetadata.php';
-$wgAutoloadClasses['ArticleCompileUserData'] = $dir . 
'includes/ArticleMetadata.php';
-$wgAutoloadClasses['ArticleCompileDeletionTag'] = $dir . 
'includes/ArticleMetadata.php';
-$wgAutoloadClasses['PageTriageExternalTagsOptions'] = $dir
-       . 'includes/PageTriageExternalTagsOptions.php';
-$wgAutoloadClasses['PageTriageExternalDeletionTagsOptions'] = $dir
-       . 'includes/PageTriageExternalDeletionTagsOptions.php';
-$wgAutoloadClasses['PageTriageLogFormatter'] = $dir
-       . 'includes/PageTriageLogFormatter.php';
-$wgAutoloadClasses['PageTriagePresentationModel'] = $dir
-       . 'includes/Notifications/PageTriagePresentationModel.php';
-$wgAutoloadClasses['PageTriageMarkAsReviewedPresentationModel'] = $dir
-       . 
'includes/Notifications/PageTriageMarkAsReviewedPresentationModel.php';
-$wgAutoloadClasses['PageTriageAddMaintenanceTagPresentationModel'] = $dir
-       . 
'includes/Notifications/PageTriageAddMaintenanceTagPresentationModel.php';
-$wgAutoloadClasses['PageTriageAddDeletionTagPresentationModel'] = $dir
-       . 
'includes/Notifications/PageTriageAddDeletionTagPresentationModel.php';
-
-$wgAutoloadClasses['ApiPageTriageList'] = $dir . 'api/ApiPageTriageList.php';
-$wgAutoloadClasses['ApiPageTriageStats'] = $dir . 'api/ApiPageTriageStats.php';
-$wgAutoloadClasses['ApiPageTriageAction'] = $dir . 
'api/ApiPageTriageAction.php';
-$wgAutoloadClasses['ApiPageTriageTemplate'] = $dir . 
'api/ApiPageTriageTemplate.php';
-$wgAutoloadClasses['ApiPageTriageTagging'] = $dir . 
'api/ApiPageTriageTagging.php';
-
-// custom exceptions
-$wgAutoloadClasses['MWPageTriageUtilInvalidNumberException'] = $dir . 
'includes/PageTriageUtil.php';
-$wgAutoloadClasses['MWPageTriageMissingRevisionException'] = $dir . 
'includes/PageTriage.php';
-
-// api modules
-$wgAPIModules['pagetriagelist'] = 'ApiPageTriageList';
-$wgAPIModules['pagetriagestats'] = 'ApiPageTriageStats';
-$wgAPIModules['pagetriageaction'] = 'ApiPageTriageAction';
-$wgAPIModules['pagetriagetemplate'] = 'ApiPageTriageTemplate';
-$wgAPIModules['pagetriagetagging'] = 'ApiPageTriageTagging';
-
-// hooks
-$wgHooks['LoadExtensionSchemaUpdates'][] = 
'PageTriageHooks::onLoadExtensionSchemaUpdates';
-$wgHooks['SpecialMovepageAfterMove'][] = 
'PageTriageHooks::onSpecialMovepageAfterMove';
-$wgHooks['NewRevisionFromEditComplete'][] = 
'PageTriageHooks::onNewRevisionFromEditComplete';
-$wgHooks['PageContentInsertComplete'][] = 
'PageTriageHooks::onPageContentInsertComplete';
-$wgHooks['PageContentSaveComplete'][] = 
'PageTriageHooks::onPageContentSaveComplete';
-$wgHooks['UnitTestsList'][] = 'efPageTriageUnitTests'; // unit tests
-$wgHooks['GetPreferences'][] = 'PageTriageHooks::onGetPreferences';
-$wgHooks['ArticleViewFooter'][] = 'PageTriageHooks::onArticleViewFooter';
-$wgHooks['ArticleDeleteComplete'][] = 
'PageTriageHooks::onArticleDeleteComplete';
-$wgHooks['MarkPatrolledComplete'][] = 
'PageTriageHooks::onMarkPatrolledComplete';
-$wgHooks['BlockIpComplete'][] = 'PageTriageHooks::onBlockIpComplete';
-$wgHooks['ResourceLoaderGetConfigVars'][] = 
'PageTriageHooks::onResourceLoaderGetConfigVars';
-$wgHooks['BeforeCreateEchoEvent'][] = 
'PageTriageHooks::onBeforeCreateEchoEvent';
-$wgHooks['EchoGetDefaultNotifiedUsers'][] = 
'PageTriageHooks::onEchoGetDefaultNotifiedUsers';
-$wgHooks['LocalUserCreated'][] = 'PageTriageHooks::onLocalUserCreated';
-$wgHooks['UserMergeAccountFields'][] = 
'PageTriageHooks::onUserMergeAccountFields';
-$wgHooks['ResourceLoaderRegisterModules'][] 
='PageTriageHooks::onResourceLoaderRegisterModules';
-
-// logging
-$wgLogTypes[] = 'pagetriage-curation';
-$wgLogTypes[] = 'pagetriage-deletion';
-$wgLogActionsHandlers['pagetriage-curation/reviewed'] = 'LogFormatter';
-$wgLogActionsHandlers['pagetriage-curation/unreviewed'] = 'LogFormatter';
-$wgLogActionsHandlers['pagetriage-curation/tag'] = 'PageTriageLogFormatter';
-$wgLogActionsHandlers['pagetriage-curation/delete'] = 'PageTriageLogFormatter';
-$wgLogActionsHandlers['pagetriage-deletion/delete'] = 'PageTriageLogFormatter';
-
-/**
- * UnitTestsList hook handler - adds unit test files to the unit tester
- * @param $files array
- * @return bool
- */
-function efPageTriageUnitTests( &$files ) {
-       $base = __DIR__ . '/tests';
-       $files[] = $base . '/phpunit/SpecialNewPagesFeedTest.php';
-       $files[] = $base . '/phpunit/ArticleMetadataTest.php';
-       $files[] = $base . '/phpunit/ApiPageTriageActionTest.php';
-       return true;
-}
-
-// Register ResourceLoader modules
-$ptResourceTemplate = [
-       'localBasePath' => __DIR__. '/modules',
-       'remoteExtPath' => 'PageTriage/modules'
-];
-
-// where can the template API find the templates?
-$wgPtTemplatePath = $ptResourceTemplate['localBasePath'];
-
-// Tags options message
-$wgPageTriageTagsOptionsMessages = [
-       'pagetriage-tags-title',
-       'pagetriage-tags-cat-common-label',
-       'pagetriage-tags-cat-metadata-label',
-       'pagetriage-tags-cat-cleanup-label',
-       'pagetriage-tags-cat-neutrality-label',
-       'pagetriage-tags-cat-sources-label',
-       'pagetriage-tags-cat-structure-label',
-       'pagetriage-tags-cat-unwantedcontent-label',
-       'pagetriage-tags-cat-verifiability-label',
-       'pagetriage-tags-cat-writingstyle-label',
-       'pagetriage-tags-cat-moretags-label',
-       'pagetriage-tags-cat-all-label',
-       'pagetriage-tags-linkrot-label',
-       'pagetriage-tags-linkrot-desc',
-       'pagetriage-tags-copyedit-label',
-       'pagetriage-tags-copyedit-desc',
-       'pagetriage-tags-morefootnotes-label',
-       'pagetriage-tags-morefootnotes-desc',
-       'pagetriage-tags-refimprove-label',
-       'pagetriage-tags-refimprove-desc',
-       'pagetriage-tags-uncategorised-label',
-       'pagetriage-tags-uncategorised-desc',
-       'pagetriage-tags-unreferenced-label',
-       'pagetriage-tags-unreferenced-desc',
-       'pagetriage-tags-deadend-label',
-       'pagetriage-tags-deadend-desc',
-       'pagetriage-tags-externallinks-label',
-       'pagetriage-tags-externallinks-desc',
-       'pagetriage-tags-catimprove-label',
-       'pagetriage-tags-catimprove-desc',
-       'pagetriage-tags-orphan-label',
-       'pagetriage-tags-orphan-desc',
-       'pagetriage-tags-overlinked-label',
-       'pagetriage-tags-overlinked-desc',
-       'pagetriage-tags-cleanup-label',
-       'pagetriage-tags-cleanup-desc',
-       'pagetriage-tags-expertsubject-label',
-       'pagetriage-tags-expertsubject-desc',
-       'pagetriage-tags-prose-label',
-       'pagetriage-tags-prose-desc',
-       'pagetriage-tags-roughtranslation-label',
-       'pagetriage-tags-roughtranslation-desc',
-       'pagetriage-tags-advert-label',
-       'pagetriage-tags-advert-desc',
-       'pagetriage-tags-autobiography-label',
-       'pagetriage-tags-autobiography-desc',
-       'pagetriage-tags-coi-label',
-       'pagetriage-tags-coi-desc',
-       'pagetriage-tags-peacock-label',
-       'pagetriage-tags-peacock-desc',
-       'pagetriage-tags-pov-label',
-       'pagetriage-tags-pov-desc',
-       'pagetriage-tags-weasel-label',
-       'pagetriage-tags-weasel-desc',
-       'pagetriage-tags-blpsources-label',
-       'pagetriage-tags-blpsources-desc',
-       'pagetriage-tags-originalresearch-label',
-       'pagetriage-tags-originalresearch-desc',
-       'pagetriage-tags-primarysources-label',
-       'pagetriage-tags-primarysources-desc',
-       'pagetriage-tags-onesource-label',
-       'pagetriage-tags-onesource-desc',
-       'pagetriage-tags-condense-label',
-       'pagetriage-tags-condense-desc',
-       'pagetriage-tags-leadmissing-label',
-       'pagetriage-tags-leadmissing-desc',
-       'pagetriage-tags-leadrewrite-label',
-       'pagetriage-tags-leadrewrite-desc',
-       'pagetriage-tags-leadtoolong-label',
-       'pagetriage-tags-leadtoolong-desc',
-       'pagetriage-tags-leadtooshort-label',
-       'pagetriage-tags-leadtooshort-desc',
-       'pagetriage-tags-cleanupreorganise-label',
-       'pagetriage-tags-cleanupreorganise-desc',
-       'pagetriage-tags-sections-label',
-       'pagetriage-tags-sections-desc',
-       'pagetriage-tags-stub-label',
-       'pagetriage-tags-stub-desc',
-       'pagetriage-tags-verylong-label',
-       'pagetriage-tags-verylong-desc',
-       'pagetriage-tags-closeparaphrasing-label',
-       'pagetriage-tags-closeparaphrasing-desc',
-       'pagetriage-tags-copypaste-label',
-       'pagetriage-tags-copypaste-desc',
-       'pagetriage-tags-nonfree-label',
-       'pagetriage-tags-nonfree-desc',
-       'pagetriage-tags-notability-label',
-       'pagetriage-tags-notability-desc',
-       'pagetriage-tags-disputed-label',
-       'pagetriage-tags-disputed-desc',
-       'pagetriage-tags-citationstyle-label',
-       'pagetriage-tags-citationstyle-desc',
-       'pagetriage-tags-hoax-label',
-       'pagetriage-tags-hoax-desc',
-       'pagetriage-tags-nofootnotes-label',
-       'pagetriage-tags-nofootnotes-desc',
-       'pagetriage-tags-confusing-label',
-       'pagetriage-tags-confusing-desc',
-       'pagetriage-tags-essaylike-label',
-       'pagetriage-tags-essaylike-desc',
-       'pagetriage-tags-fansite-label',
-       'pagetriage-tags-fansite-desc',
-       'pagetriage-tags-notenglish-label',
-       'pagetriage-tags-notenglish-desc',
-       'pagetriage-tags-technical-label',
-       'pagetriage-tags-technical-desc',
-       'pagetriage-tags-tense-label',
-       'pagetriage-tags-tense-desc',
-       'pagetriage-tags-tone-label',
-       'pagetriage-tags-tone-desc',
-       'pagetriage-tags-allplot-label',
-       'pagetriage-tags-allplot-desc',
-       'pagetriage-tags-fiction-label',
-       'pagetriage-tags-fiction-desc',
-       'pagetriage-tags-inuniverse-label',
-       'pagetriage-tags-inuniverse-desc',
-       'pagetriage-tags-outofdate-label',
-       'pagetriage-tags-outofdate-desc',
-       'pagetriage-tags-overlydetailed-label',
-       'pagetriage-tags-overlydetailed-desc',
-       'pagetriage-tags-plot-label',
-       'pagetriage-tags-plot-desc',
-       'pagetriage-tags-recentism-label',
-       'pagetriage-tags-recentism-desc',
-       'pagetriage-tags-toofewopinions-label',
-       'pagetriage-tags-toofewopinions-desc',
-       'pagetriage-tags-unbalanced-label',
-       'pagetriage-tags-unbalanced-desc',
-       'pagetriage-tags-update-label',
-       'pagetriage-tags-update-desc',
-       'pagetriage-tags-param-date-label',
-       'pagetriage-tags-param-issues-label',
-       'pagetriage-tags-param-blp-label',
-       'pagetriage-tags-param-source-label',
-       'pagetriage-tags-param-free-label',
-       'pagetriage-tags-param-url-label',
-       'pagetriage-tag-count-total',
-       'pagetriage-button-add-tag',
-       'pagetriage-button-add-tag-number',
-       'pagetriage-button-add-parameters',
-       'pagetriage-button-add-details',
-       'pagetriage-button-edit-details',
-       'pagetriage-button-mark-for-deletion',
-       'cancel',
-       'pagetriage-tags-param-free-yes-label',
-       'pagetriage-tags-param-free-no-label',
-       'pagetriage-tags-param-missing-required',
-       'pagetriage-tags-param-date-format',
-       'pagetriage-tags-param-for-label',
-       'pagetriage-tags-tooltip',
-];
-
-// Deletion Tags options message
-$wgPageTriageDeletionTagsOptionsMessages = [
-       'pagetriage-del-tags-cat-csd-label',
-       'pagetriage-del-tags-cat-csd-desc',
-       'pagetriage-del-tags-cat-prod-label',
-       'pagetriage-del-tags-cat-prod-desc',
-       'pagetriage-del-tags-cat-discussion-desc',
-       'pagetriage-del-tags-dbg3-label',
-       'pagetriage-del-tags-dbg3-desc',
-       'pagetriage-del-tags-dbg10-label',
-       'pagetriage-del-tags-dbg10-desc',
-       'pagetriage-del-tags-dbg11-label',
-       'pagetriage-del-tags-dbg11-desc',
-       'pagetriage-del-tags-dbg12-label',
-       'pagetriage-del-tags-dbg12-desc',
-       'pagetriage-del-tags-dba1-label',
-       'pagetriage-del-tags-dba1-desc',
-       'pagetriage-del-tags-dba7-label',
-       'pagetriage-del-tags-dba7-desc',
-       'pagetriage-del-tags-dbg1-label',
-       'pagetriage-del-tags-dbg1-desc',
-       'pagetriage-del-tags-dba3-label',
-       'pagetriage-del-tags-dba3-desc',
-       'pagetriage-del-tags-dbg2-label',
-       'pagetriage-del-tags-dbg2-desc',
-       'pagetriage-del-tags-dbg4-label',
-       'pagetriage-del-tags-dbg4-desc',
-       'pagetriage-del-tags-dbg5-label',
-       'pagetriage-del-tags-dbg5-desc',
-       'pagetriage-del-tags-dbg7-label',
-       'pagetriage-del-tags-dbg7-desc',
-       'pagetriage-del-tags-dba10-label',
-       'pagetriage-del-tags-dba10-desc',
-       'pagetriage-del-tags-dba2-label',
-       'pagetriage-del-tags-dba2-desc',
-       'pagetriage-del-tags-dbu2-label',
-       'pagetriage-del-tags-dbu2-desc',
-       'pagetriage-del-tags-dbu3-label',
-       'pagetriage-del-tags-dbu3-desc',
-       'pagetriage-del-tags-dba9-label',
-       'pagetriage-del-tags-dba9-desc',
-       'pagetriage-del-tags-blpprod-label',
-       'pagetriage-del-tags-blpprod-desc',
-       'pagetriage-del-tags-prod-label',
-       'pagetriage-del-tags-prod-desc',
-       'pagetriage-del-tags-articlefordeletion-label',
-       'pagetriage-del-tags-redirectsfordiscussion-label',
-       'pagetriage-del-tags-miscellanyfordeletion-label',
-       'pagetriage-tags-param-article-label',
-       'pagetriage-tags-param-url-label',
-       'pagetriage-tags-param-source-label',
-       'pagetriage-del-tags-param-discussion-label',
-       'pagetriage-del-title',
-       'pagetriage-del-tooltip',
-       'pagetriage-tags-param-url-label',
-       'pagetriage-tags-param-article-label',
-       'pagetriage-tags-param-source-label',
-];
-
-$wgResourceModules['ext.pageTriage.external'] = $ptResourceTemplate + [
-       'scripts' => [
-               'external/underscore.js',
-               'external/backbone.js', // required for underscore
-               'external/date.js',
-               'external/datejs-mw.js',
-               'external/jquery.waypoints.js'
-       ],
-       'messages' => [
-               'sunday',
-               'monday',
-               'tuesday',
-               'wednesday',
-               'thursday',
-               'friday',
-               'saturday',
-               'sun',
-               'mon',
-               'tue',
-               'wed',
-               'thu',
-               'fri',
-               'sat',
-               'january',
-               'february',
-               'march',
-               'april',
-               'may_long',
-               'june',
-               'july',
-               'august',
-               'september',
-               'october',
-               'november',
-               'december',
-               'jan',
-               'feb',
-               'mar',
-               'apr',
-               'may',
-               'jun',
-               'jul',
-               'aug',
-               'sep',
-               'oct',
-               'nov',
-               'dec'
-       ]
-];
-
-$wgResourceModules['ext.pageTriage.util'] = $ptResourceTemplate + [
-       'scripts' => [
-               'ext.pageTriage.util/ext.pageTriage.viewUtil.js' // convenience 
functions for all views
-       ],
-       'messages' => [
-               'pagetriage-api-error'
-       ]
-];
-
-$wgResourceModules['ext.pageTriage.models'] = $ptResourceTemplate + [
-       'dependencies' => [
-               'mediawiki.Title',
-               'mediawiki.user',
-               'ext.pageTriage.external'
-       ],
-       'scripts' => [
-               'ext.pageTriage.models/ext.pageTriage.article.js',
-               'ext.pageTriage.models/ext.pageTriage.revision.js',
-               'ext.pageTriage.models/ext.pageTriage.stats.js'
-       ],
-       'messages' => [
-               'pipe-separator',
-               'pagetriage-info-timestamp-date-format',
-               'pagetriage-page-status-unreviewed',
-               'pagetriage-page-status-autoreviewed',
-               'pagetriage-page-status-reviewed',
-               'pagetriage-page-status-delete',
-               'pagetriage-page-status-reviewed-anonymous'
-       ]
-];
-
-$wgResourceModules['jquery.tipoff'] = $ptResourceTemplate + [
-       'styles' => 'jquery.tipoff/jquery.tipoff.css',
-       'scripts' => 'jquery.tipoff/jquery.tipoff.js'
-];
-
-$wgResourceModules['ext.pageTriage.views.list'] = $ptResourceTemplate + [
-       'dependencies' => [
-               'mediawiki.jqueryMsg',
-               'ext.pageTriage.models',
-               'ext.pageTriage.util',
-               'jquery.tipoff',
-               'jquery.ui.button',
-               'jquery.spinner',
-               'jquery.client'
-       ],
-       'scripts' => [
-               'ext.pageTriage.views.list/ext.pageTriage.listItem.js',
-               'ext.pageTriage.views.list/ext.pageTriage.listControlNav.js',
-               'ext.pageTriage.views.list/ext.pageTriage.listStatsNav.js',
-               'ext.pageTriage.views.list/ext.pageTriage.listView.js'
-       ],
-       'styles' => [
-               'ext.pageTriage.css', // stuff that's shared across all views
-               'ext.pageTriage.views.list/ext.pageTriage.listItem.css',
-               'ext.pageTriage.views.list/ext.pageTriage.listControlNav.css',
-               'ext.pageTriage.views.list/ext.pageTriage.listStatsNav.css',
-               'ext.pageTriage.views.list/ext.pageTriage.listView.css'
-       ],
-       'messages' => [
-               'comma-separator',
-               'days',
-               'pagetriage-hist',
-               'pagetriage-bytes',
-               'pagetriage-edits',
-               'pagetriage-categories',
-               'pagetriage-no-categories',
-               'pagetriage-orphan',
-               'pagetriage-no-author',
-               'pagetriage-byline',
-               'pagetriage-byline-new-editor',
-               'pipe-separator',
-               'pagetriage-editcount',
-               'pagetriage-author-not-autoconfirmed',
-               'pagetriage-no-patrol-right',
-               'pagetriage-author-blocked',
-               'pagetriage-author-bot',
-               'pagetriage-creation-dateformat',
-               'pagetriage-user-creation-dateformat',
-               'pagetriage-special-contributions',
-               'pagetriage-showing',
-               'pagetriage-filter-list-prompt',
-               'pagetriage-unreviewed-article-count',
-               'pagetriage-reviewed-article-count-past-week',
-               'pagetriage-sort-by',
-               'pagetriage-newest',
-               'pagetriage-oldest',
-               'pagetriage-triage',
-               'pagetriage-filter-show-heading',
-               'pagetriage-filter-reviewed-edits',
-               'pagetriage-filter-unreviewed-edits',
-               'pagetriage-filter-nominated-for-deletion',
-               'pagetriage-filter-bot-edits',
-               'pagetriage-filter-redirects',
-               'pagetriage-filter-namespace-heading',
-               'pagetriage-filter-article',
-               'pagetriage-filter-user-heading',
-               'pagetriage-filter-username',
-               'pagetriage-filter-tag-heading',
-               'pagetriage-filter-second-show-heading',
-               'pagetriage-filter-no-categories',
-               'pagetriage-filter-orphan',
-               'pagetriage-filter-non-autoconfirmed',
-               'pagetriage-filter-blocked',
-               'pagetriage-filter-set-button',
-               'pagetriage-stats-less-than-a-day',
-               'blanknamespace',
-               'pagetriage-filter-ns-all',
-               'pagetriage-more',
-               'pagetriage-filter-stat-reviewed',
-               'pagetriage-filter-stat-unreviewed',
-               'pagetriage-filter-stat-bots',
-               'pagetriage-filter-stat-redirects',
-               'pagetriage-filter-stat-nominated-for-deletion',
-               'pagetriage-filter-stat-all',
-               'pagetriage-filter-stat-no-categories',
-               'pagetriage-filter-stat-orphan',
-               'pagetriage-filter-stat-non-autoconfirmed',
-               'pagetriage-filter-stat-blocked',
-               'pagetriage-filter-stat-username',
-               'pagetriage-filter-all',
-               'pagetriage-no-pages',
-               'pagetriage-warning-browser',
-               'pagetriage-note-reviewed',
-               'pagetriage-note-not-reviewed',
-               'pagetriage-note-deletion',
-               'pagetriage-refresh-list',
-               'sp-contributions-talk',
-               'contribslink',
-               'comma-separator',
-               'pagetriage-info-timestamp-date-format',
-               'pagetriage-no-reference',
-               'pagetriage-stats-filter-page-count'
-       ]
-];
-
-$wgResourceModules['ext.pageTriage.defaultTagsOptions'] = $ptResourceTemplate 
+ [
-       'scripts' => 
'ext.pageTriage.defaultTagsOptions/ext.pageTriage.defaultTagsOptions.js',
-       'messages' => $wgPageTriageTagsOptionsMessages,
-];
-
-$wgResourceModules['ext.pageTriage.externalTagsOptions'] = $ptResourceTemplate 
+ [
-       'class' => 'PageTriageExternalTagsOptions',
-];
-
-$wgResourceModules['ext.pageTriage.defaultDeletionTagsOptions'] = 
$ptResourceTemplate + [
-       'scripts' => 'ext.pageTriage.defaultDeletionTagsOptions/'
-               . 'ext.pageTriage.defaultDeletionTagsOptions.js',
-       'messages' => $wgPageTriageDeletionTagsOptionsMessages,
-       'dependencies' => [
-               'mediawiki.Title'
-       ]
-];
-
-$wgResourceModules['ext.pageTriage.externalDeletionTagsOptions'] = 
$ptResourceTemplate + [
-       'class' => 'PageTriageExternalDeletionTagsOptions',
-];
-
-$wgResourceModules['ext.pageTriage.toolbarStartup'] = $ptResourceTemplate + [
-       'scripts' => 
'ext.pageTriage.toolbarStartup/ext.pageTriage.toolbarStartup.js',
-];
-
-$wgResourceModules['ext.pageTriage.article'] = $ptResourceTemplate + [
-       'styles' => 'ext.pageTriage.article/ext.pageTriage.article.css',
-       'scripts' => 'ext.pageTriage.article/ext.pageTriage.article.js',
-       'messages' => [
-                       'pagetriage-reviewed',
-                       'pagetriage-mark-as-reviewed-error',
-       ],
-];
-
-/** Rate limit setting for PageTriage **/
-$wgRateLimits += [
-       'pagetriage-mark-action' => [
-                       'anon' => [ 1, 3 ],
-                       'user' => [ 1, 3 ]
-       ],
-
-       'pagetriage-tagging-action' => [
-                       'anon' => [ 1, 10 ],
-                       'user' => [ 1, 10 ]
-       ]
-];
diff --git a/extension.json b/extension.json
new file mode 100644
index 0000000..4cca45e
--- /dev/null
+++ b/extension.json
@@ -0,0 +1,851 @@
+{
+       "name": "PageTriage",
+       "version": "0.2.2",
+       "author": [
+               "Ryan Kaldari",
+               "Benny Situ",
+               "Ian Baker",
+               "Andrew Garrett"
+       ],
+       "url": "https://www.mediawiki.org/wiki/Extension:PageTriage";,
+       "descriptionmsg": "pagetriage-desc",
+       "license-name": "MIT",
+       "type": "specialpage",
+       "DefaultUserOptions": {
+               "echo-subscriptions-web-page-review": true,
+               "echo-subscriptions-email-page-review": false
+       },
+       "RateLimits": {
+               "pagetriage-mark-action": {
+                       "anon": [
+                               1,
+                               3
+                       ],
+                       "user": [
+                               1,
+                               3
+                       ]
+               },
+               "pagetriage-tagging-action": {
+                       "anon": [
+                               1,
+                               10
+                       ],
+                       "user": [
+                               1,
+                               10
+                       ]
+               }
+       },
+       "SpecialPages": {
+               "NewPagesFeed": "SpecialNewPagesFeed"
+       },
+       "LogTypes": [
+               "pagetriage-curation",
+               "pagetriage-deletion"
+       ],
+       "LogActionsHandlers": {
+               "pagetriage-curation/reviewed": "LogFormatter",
+               "pagetriage-curation/unreviewed": "LogFormatter",
+               "pagetriage-curation/tag": "PageTriageLogFormatter",
+               "pagetriage-curation/delete": "PageTriageLogFormatter",
+               "pagetriage-deletion/delete": "PageTriageLogFormatter"
+       },
+       "APIModules": {
+               "pagetriagelist": "ApiPageTriageList",
+               "pagetriagestats": "ApiPageTriageStats",
+               "pagetriageaction": "ApiPageTriageAction",
+               "pagetriagetemplate": "ApiPageTriageTemplate",
+               "pagetriagetagging": "ApiPageTriageTagging"
+       },
+       "MessagesDirs": {
+               "PageTriage": [
+                       "i18n"
+               ]
+       },
+       "ExtensionMessagesFiles": {
+               "PageTriageAlias": "PageTriage.alias.php"
+       },
+       "AutoloadClasses": {
+               "SpecialNewPagesFeed": "SpecialNewPagesFeed.php",
+               "ArticleMetadata": "includes/ArticleMetadata.php",
+               "PageTriage": "includes/PageTriage.php",
+               "PageTriageUtil": "includes/PageTriageUtil.php",
+               "PageTriageHooks": "PageTriage.hooks.php",
+               "ArticleCompileProcessor": "includes/ArticleMetadata.php",
+               "ArticleCompileInterface": "includes/ArticleMetadata.php",
+               "ArticleCompileBasicData": "includes/ArticleMetadata.php",
+               "ArticleCompileLinkCount": "includes/ArticleMetadata.php",
+               "ArticleCompileCategoryCount": "includes/ArticleMetadata.php",
+               "ArticleCompileSnippet": "includes/ArticleMetadata.php",
+               "ArticleCompileUserData": "includes/ArticleMetadata.php",
+               "ArticleCompileDeletionTag": "includes/ArticleMetadata.php",
+               "PageTriageExternalTagsOptions": 
"includes/PageTriageExternalTagsOptions.php",
+               "PageTriageExternalDeletionTagsOptions": 
"includes/PageTriageExternalDeletionTagsOptions.php",
+               "PageTriageLogFormatter": "includes/PageTriageLogFormatter.php",
+               "PageTriagePresentationModel": 
"includes/Notifications/PageTriagePresentationModel.php",
+               "PageTriageMarkAsReviewedPresentationModel": 
"includes/Notifications/PageTriageMarkAsReviewedPresentationModel.php",
+               "PageTriageAddMaintenanceTagPresentationModel": 
"includes/Notifications/PageTriageAddMaintenanceTagPresentationModel.php",
+               "PageTriageAddDeletionTagPresentationModel": 
"includes/Notifications/PageTriageAddDeletionTagPresentationModel.php",
+               "ApiPageTriageList": "api/ApiPageTriageList.php",
+               "ApiPageTriageStats": "api/ApiPageTriageStats.php",
+               "ApiPageTriageAction": "api/ApiPageTriageAction.php",
+               "ApiPageTriageTemplate": "api/ApiPageTriageTemplate.php",
+               "ApiPageTriageTagging": "api/ApiPageTriageTagging.php",
+               "MWPageTriageUtilInvalidNumberException": 
"includes/PageTriageUtil.php",
+               "MWPageTriageMissingRevisionException": 
"includes/PageTriage.php"
+       },
+       "ResourceModules": {
+               "ext.pageTriage.external": {
+                       "scripts": [
+                               "external/underscore.js",
+                               "external/backbone.js",
+                               "external/date.js",
+                               "external/datejs-mw.js",
+                               "external/jquery.waypoints.js"
+                       ],
+                       "messages": [
+                               "sunday",
+                               "monday",
+                               "tuesday",
+                               "wednesday",
+                               "thursday",
+                               "friday",
+                               "saturday",
+                               "sun",
+                               "mon",
+                               "tue",
+                               "wed",
+                               "thu",
+                               "fri",
+                               "sat",
+                               "january",
+                               "february",
+                               "march",
+                               "april",
+                               "may_long",
+                               "june",
+                               "july",
+                               "august",
+                               "september",
+                               "october",
+                               "november",
+                               "december",
+                               "jan",
+                               "feb",
+                               "mar",
+                               "apr",
+                               "may",
+                               "jun",
+                               "jul",
+                               "aug",
+                               "sep",
+                               "oct",
+                               "nov",
+                               "dec"
+                       ]
+               },
+               "ext.pageTriage.util": {
+                       "scripts": [
+                               "ext.pageTriage.util/ext.pageTriage.viewUtil.js"
+                       ],
+                       "messages": [
+                               "pagetriage-api-error"
+                       ]
+               },
+               "ext.pageTriage.models": {
+                       "dependencies": [
+                               "mediawiki.Title",
+                               "mediawiki.user",
+                               "ext.pageTriage.external"
+                       ],
+                       "scripts": [
+                               
"ext.pageTriage.models/ext.pageTriage.article.js",
+                               
"ext.pageTriage.models/ext.pageTriage.revision.js",
+                               "ext.pageTriage.models/ext.pageTriage.stats.js"
+                       ],
+                       "messages": [
+                               "pipe-separator",
+                               "pagetriage-info-timestamp-date-format",
+                               "pagetriage-page-status-unreviewed",
+                               "pagetriage-page-status-autoreviewed",
+                               "pagetriage-page-status-reviewed",
+                               "pagetriage-page-status-delete",
+                               "pagetriage-page-status-reviewed-anonymous"
+                       ]
+               },
+               "jquery.tipoff": {
+                       "styles": "jquery.tipoff/jquery.tipoff.css",
+                       "scripts": "jquery.tipoff/jquery.tipoff.js"
+               },
+               "ext.pageTriage.views.list": {
+                       "dependencies": [
+                               "mediawiki.jqueryMsg",
+                               "ext.pageTriage.models",
+                               "ext.pageTriage.util",
+                               "jquery.tipoff",
+                               "jquery.ui.button",
+                               "jquery.spinner",
+                               "jquery.client"
+                       ],
+                       "scripts": [
+                               
"ext.pageTriage.views.list/ext.pageTriage.listItem.js",
+                               
"ext.pageTriage.views.list/ext.pageTriage.listControlNav.js",
+                               
"ext.pageTriage.views.list/ext.pageTriage.listStatsNav.js",
+                               
"ext.pageTriage.views.list/ext.pageTriage.listView.js"
+                       ],
+                       "styles": [
+                               "ext.pageTriage.css",
+                               
"ext.pageTriage.views.list/ext.pageTriage.listItem.css",
+                               
"ext.pageTriage.views.list/ext.pageTriage.listControlNav.css",
+                               
"ext.pageTriage.views.list/ext.pageTriage.listStatsNav.css",
+                               
"ext.pageTriage.views.list/ext.pageTriage.listView.css"
+                       ],
+                       "messages": [
+                               "comma-separator",
+                               "days",
+                               "pagetriage-hist",
+                               "pagetriage-bytes",
+                               "pagetriage-edits",
+                               "pagetriage-categories",
+                               "pagetriage-no-categories",
+                               "pagetriage-orphan",
+                               "pagetriage-no-author",
+                               "pagetriage-byline",
+                               "pagetriage-byline-new-editor",
+                               "pipe-separator",
+                               "pagetriage-editcount",
+                               "pagetriage-author-not-autoconfirmed",
+                               "pagetriage-no-patrol-right",
+                               "pagetriage-author-blocked",
+                               "pagetriage-author-bot",
+                               "pagetriage-creation-dateformat",
+                               "pagetriage-user-creation-dateformat",
+                               "pagetriage-special-contributions",
+                               "pagetriage-showing",
+                               "pagetriage-filter-list-prompt",
+                               "pagetriage-unreviewed-article-count",
+                               "pagetriage-reviewed-article-count-past-week",
+                               "pagetriage-sort-by",
+                               "pagetriage-newest",
+                               "pagetriage-oldest",
+                               "pagetriage-triage",
+                               "pagetriage-filter-show-heading",
+                               "pagetriage-filter-reviewed-edits",
+                               "pagetriage-filter-unreviewed-edits",
+                               "pagetriage-filter-nominated-for-deletion",
+                               "pagetriage-filter-bot-edits",
+                               "pagetriage-filter-redirects",
+                               "pagetriage-filter-namespace-heading",
+                               "pagetriage-filter-article",
+                               "pagetriage-filter-user-heading",
+                               "pagetriage-filter-username",
+                               "pagetriage-filter-tag-heading",
+                               "pagetriage-filter-second-show-heading",
+                               "pagetriage-filter-no-categories",
+                               "pagetriage-filter-orphan",
+                               "pagetriage-filter-non-autoconfirmed",
+                               "pagetriage-filter-blocked",
+                               "pagetriage-filter-set-button",
+                               "pagetriage-stats-less-than-a-day",
+                               "blanknamespace",
+                               "pagetriage-filter-ns-all",
+                               "pagetriage-more",
+                               "pagetriage-filter-stat-reviewed",
+                               "pagetriage-filter-stat-unreviewed",
+                               "pagetriage-filter-stat-bots",
+                               "pagetriage-filter-stat-redirects",
+                               "pagetriage-filter-stat-nominated-for-deletion",
+                               "pagetriage-filter-stat-all",
+                               "pagetriage-filter-stat-no-categories",
+                               "pagetriage-filter-stat-orphan",
+                               "pagetriage-filter-stat-non-autoconfirmed",
+                               "pagetriage-filter-stat-blocked",
+                               "pagetriage-filter-stat-username",
+                               "pagetriage-filter-all",
+                               "pagetriage-no-pages",
+                               "pagetriage-warning-browser",
+                               "pagetriage-note-reviewed",
+                               "pagetriage-note-not-reviewed",
+                               "pagetriage-note-deletion",
+                               "pagetriage-refresh-list",
+                               "sp-contributions-talk",
+                               "contribslink",
+                               "comma-separator",
+                               "pagetriage-info-timestamp-date-format",
+                               "pagetriage-no-reference",
+                               "pagetriage-stats-filter-page-count"
+                       ]
+               },
+               "ext.pageTriage.defaultTagsOptions": {
+                       "scripts": 
"ext.pageTriage.defaultTagsOptions/ext.pageTriage.defaultTagsOptions.js",
+                       "messages": [
+                               "pagetriage-tags-title",
+                               "pagetriage-tags-cat-common-label",
+                               "pagetriage-tags-cat-metadata-label",
+                               "pagetriage-tags-cat-cleanup-label",
+                               "pagetriage-tags-cat-neutrality-label",
+                               "pagetriage-tags-cat-sources-label",
+                               "pagetriage-tags-cat-structure-label",
+                               "pagetriage-tags-cat-unwantedcontent-label",
+                               "pagetriage-tags-cat-verifiability-label",
+                               "pagetriage-tags-cat-writingstyle-label",
+                               "pagetriage-tags-cat-moretags-label",
+                               "pagetriage-tags-cat-all-label",
+                               "pagetriage-tags-linkrot-label",
+                               "pagetriage-tags-linkrot-desc",
+                               "pagetriage-tags-copyedit-label",
+                               "pagetriage-tags-copyedit-desc",
+                               "pagetriage-tags-morefootnotes-label",
+                               "pagetriage-tags-morefootnotes-desc",
+                               "pagetriage-tags-refimprove-label",
+                               "pagetriage-tags-refimprove-desc",
+                               "pagetriage-tags-uncategorised-label",
+                               "pagetriage-tags-uncategorised-desc",
+                               "pagetriage-tags-unreferenced-label",
+                               "pagetriage-tags-unreferenced-desc",
+                               "pagetriage-tags-deadend-label",
+                               "pagetriage-tags-deadend-desc",
+                               "pagetriage-tags-externallinks-label",
+                               "pagetriage-tags-externallinks-desc",
+                               "pagetriage-tags-catimprove-label",
+                               "pagetriage-tags-catimprove-desc",
+                               "pagetriage-tags-orphan-label",
+                               "pagetriage-tags-orphan-desc",
+                               "pagetriage-tags-overlinked-label",
+                               "pagetriage-tags-overlinked-desc",
+                               "pagetriage-tags-cleanup-label",
+                               "pagetriage-tags-cleanup-desc",
+                               "pagetriage-tags-expertsubject-label",
+                               "pagetriage-tags-expertsubject-desc",
+                               "pagetriage-tags-prose-label",
+                               "pagetriage-tags-prose-desc",
+                               "pagetriage-tags-roughtranslation-label",
+                               "pagetriage-tags-roughtranslation-desc",
+                               "pagetriage-tags-advert-label",
+                               "pagetriage-tags-advert-desc",
+                               "pagetriage-tags-autobiography-label",
+                               "pagetriage-tags-autobiography-desc",
+                               "pagetriage-tags-coi-label",
+                               "pagetriage-tags-coi-desc",
+                               "pagetriage-tags-peacock-label",
+                               "pagetriage-tags-peacock-desc",
+                               "pagetriage-tags-pov-label",
+                               "pagetriage-tags-pov-desc",
+                               "pagetriage-tags-weasel-label",
+                               "pagetriage-tags-weasel-desc",
+                               "pagetriage-tags-blpsources-label",
+                               "pagetriage-tags-blpsources-desc",
+                               "pagetriage-tags-originalresearch-label",
+                               "pagetriage-tags-originalresearch-desc",
+                               "pagetriage-tags-primarysources-label",
+                               "pagetriage-tags-primarysources-desc",
+                               "pagetriage-tags-onesource-label",
+                               "pagetriage-tags-onesource-desc",
+                               "pagetriage-tags-condense-label",
+                               "pagetriage-tags-condense-desc",
+                               "pagetriage-tags-leadmissing-label",
+                               "pagetriage-tags-leadmissing-desc",
+                               "pagetriage-tags-leadrewrite-label",
+                               "pagetriage-tags-leadrewrite-desc",
+                               "pagetriage-tags-leadtoolong-label",
+                               "pagetriage-tags-leadtoolong-desc",
+                               "pagetriage-tags-leadtooshort-label",
+                               "pagetriage-tags-leadtooshort-desc",
+                               "pagetriage-tags-cleanupreorganise-label",
+                               "pagetriage-tags-cleanupreorganise-desc",
+                               "pagetriage-tags-sections-label",
+                               "pagetriage-tags-sections-desc",
+                               "pagetriage-tags-stub-label",
+                               "pagetriage-tags-stub-desc",
+                               "pagetriage-tags-verylong-label",
+                               "pagetriage-tags-verylong-desc",
+                               "pagetriage-tags-closeparaphrasing-label",
+                               "pagetriage-tags-closeparaphrasing-desc",
+                               "pagetriage-tags-copypaste-label",
+                               "pagetriage-tags-copypaste-desc",
+                               "pagetriage-tags-nonfree-label",
+                               "pagetriage-tags-nonfree-desc",
+                               "pagetriage-tags-notability-label",
+                               "pagetriage-tags-notability-desc",
+                               "pagetriage-tags-disputed-label",
+                               "pagetriage-tags-disputed-desc",
+                               "pagetriage-tags-citationstyle-label",
+                               "pagetriage-tags-citationstyle-desc",
+                               "pagetriage-tags-hoax-label",
+                               "pagetriage-tags-hoax-desc",
+                               "pagetriage-tags-nofootnotes-label",
+                               "pagetriage-tags-nofootnotes-desc",
+                               "pagetriage-tags-confusing-label",
+                               "pagetriage-tags-confusing-desc",
+                               "pagetriage-tags-essaylike-label",
+                               "pagetriage-tags-essaylike-desc",
+                               "pagetriage-tags-fansite-label",
+                               "pagetriage-tags-fansite-desc",
+                               "pagetriage-tags-notenglish-label",
+                               "pagetriage-tags-notenglish-desc",
+                               "pagetriage-tags-technical-label",
+                               "pagetriage-tags-technical-desc",
+                               "pagetriage-tags-tense-label",
+                               "pagetriage-tags-tense-desc",
+                               "pagetriage-tags-tone-label",
+                               "pagetriage-tags-tone-desc",
+                               "pagetriage-tags-allplot-label",
+                               "pagetriage-tags-allplot-desc",
+                               "pagetriage-tags-fiction-label",
+                               "pagetriage-tags-fiction-desc",
+                               "pagetriage-tags-inuniverse-label",
+                               "pagetriage-tags-inuniverse-desc",
+                               "pagetriage-tags-outofdate-label",
+                               "pagetriage-tags-outofdate-desc",
+                               "pagetriage-tags-overlydetailed-label",
+                               "pagetriage-tags-overlydetailed-desc",
+                               "pagetriage-tags-plot-label",
+                               "pagetriage-tags-plot-desc",
+                               "pagetriage-tags-recentism-label",
+                               "pagetriage-tags-recentism-desc",
+                               "pagetriage-tags-toofewopinions-label",
+                               "pagetriage-tags-toofewopinions-desc",
+                               "pagetriage-tags-unbalanced-label",
+                               "pagetriage-tags-unbalanced-desc",
+                               "pagetriage-tags-update-label",
+                               "pagetriage-tags-update-desc",
+                               "pagetriage-tags-param-date-label",
+                               "pagetriage-tags-param-issues-label",
+                               "pagetriage-tags-param-blp-label",
+                               "pagetriage-tags-param-source-label",
+                               "pagetriage-tags-param-free-label",
+                               "pagetriage-tags-param-url-label",
+                               "pagetriage-tag-count-total",
+                               "pagetriage-button-add-tag",
+                               "pagetriage-button-add-tag-number",
+                               "pagetriage-button-add-parameters",
+                               "pagetriage-button-add-details",
+                               "pagetriage-button-edit-details",
+                               "pagetriage-button-mark-for-deletion",
+                               "cancel",
+                               "pagetriage-tags-param-free-yes-label",
+                               "pagetriage-tags-param-free-no-label",
+                               "pagetriage-tags-param-missing-required",
+                               "pagetriage-tags-param-date-format",
+                               "pagetriage-tags-param-for-label",
+                               "pagetriage-tags-tooltip"
+                       ]
+               },
+               "ext.pageTriage.externalTagsOptions": {
+                       "class": "PageTriageExternalTagsOptions"
+               },
+               "ext.pageTriage.defaultDeletionTagsOptions": {
+                       "scripts": 
"ext.pageTriage.defaultDeletionTagsOptions/ext.pageTriage.defaultDeletionTagsOptions.js",
+                       "messages": [
+                               "pagetriage-del-tags-cat-csd-label",
+                               "pagetriage-del-tags-cat-csd-desc",
+                               "pagetriage-del-tags-cat-prod-label",
+                               "pagetriage-del-tags-cat-prod-desc",
+                               "pagetriage-del-tags-cat-discussion-desc",
+                               "pagetriage-del-tags-dbg3-label",
+                               "pagetriage-del-tags-dbg3-desc",
+                               "pagetriage-del-tags-dbg10-label",
+                               "pagetriage-del-tags-dbg10-desc",
+                               "pagetriage-del-tags-dbg11-label",
+                               "pagetriage-del-tags-dbg11-desc",
+                               "pagetriage-del-tags-dbg12-label",
+                               "pagetriage-del-tags-dbg12-desc",
+                               "pagetriage-del-tags-dba1-label",
+                               "pagetriage-del-tags-dba1-desc",
+                               "pagetriage-del-tags-dba7-label",
+                               "pagetriage-del-tags-dba7-desc",
+                               "pagetriage-del-tags-dbg1-label",
+                               "pagetriage-del-tags-dbg1-desc",
+                               "pagetriage-del-tags-dba3-label",
+                               "pagetriage-del-tags-dba3-desc",
+                               "pagetriage-del-tags-dbg2-label",
+                               "pagetriage-del-tags-dbg2-desc",
+                               "pagetriage-del-tags-dbg4-label",
+                               "pagetriage-del-tags-dbg4-desc",
+                               "pagetriage-del-tags-dbg5-label",
+                               "pagetriage-del-tags-dbg5-desc",
+                               "pagetriage-del-tags-dbg7-label",
+                               "pagetriage-del-tags-dbg7-desc",
+                               "pagetriage-del-tags-dba10-label",
+                               "pagetriage-del-tags-dba10-desc",
+                               "pagetriage-del-tags-dba2-label",
+                               "pagetriage-del-tags-dba2-desc",
+                               "pagetriage-del-tags-dbu2-label",
+                               "pagetriage-del-tags-dbu2-desc",
+                               "pagetriage-del-tags-dbu3-label",
+                               "pagetriage-del-tags-dbu3-desc",
+                               "pagetriage-del-tags-dba9-label",
+                               "pagetriage-del-tags-dba9-desc",
+                               "pagetriage-del-tags-blpprod-label",
+                               "pagetriage-del-tags-blpprod-desc",
+                               "pagetriage-del-tags-prod-label",
+                               "pagetriage-del-tags-prod-desc",
+                               "pagetriage-del-tags-articlefordeletion-label",
+                               
"pagetriage-del-tags-redirectsfordiscussion-label",
+                               
"pagetriage-del-tags-miscellanyfordeletion-label",
+                               "pagetriage-tags-param-article-label",
+                               "pagetriage-tags-param-url-label",
+                               "pagetriage-tags-param-source-label",
+                               "pagetriage-del-tags-param-discussion-label",
+                               "pagetriage-del-title",
+                               "pagetriage-del-tooltip",
+                               "pagetriage-tags-param-url-label",
+                               "pagetriage-tags-param-article-label",
+                               "pagetriage-tags-param-source-label"
+                       ],
+                       "dependencies": [
+                               "mediawiki.Title"
+                       ]
+               },
+               "ext.pageTriage.externalDeletionTagsOptions": {
+                       "class": "PageTriageExternalDeletionTagsOptions"
+               },
+               "ext.pageTriage.toolbarStartup": {
+                       "scripts": 
"ext.pageTriage.toolbarStartup/ext.pageTriage.toolbarStartup.js"
+               },
+               "ext.pageTriage.article": {
+                       "styles": 
"ext.pageTriage.article/ext.pageTriage.article.css",
+                       "scripts": 
"ext.pageTriage.article/ext.pageTriage.article.js",
+                       "messages": [
+                               "pagetriage-reviewed",
+                               "pagetriage-mark-as-reviewed-error"
+                       ]
+               }
+       },
+       "ResourceFileModulePaths": {
+               "localBasePath": "modules",
+               "remoteExtPath": "PageTriage/modules"
+       },
+       "Hooks": {
+               "LoadExtensionSchemaUpdates": 
"PageTriageHooks::onLoadExtensionSchemaUpdates",
+               "SpecialMovepageAfterMove": 
"PageTriageHooks::onSpecialMovepageAfterMove",
+               "NewRevisionFromEditComplete": 
"PageTriageHooks::onNewRevisionFromEditComplete",
+               "PageContentInsertComplete": 
"PageTriageHooks::onPageContentInsertComplete",
+               "PageContentSaveComplete": 
"PageTriageHooks::onPageContentSaveComplete",
+               "GetPreferences": "PageTriageHooks::onGetPreferences",
+               "ArticleViewFooter": "PageTriageHooks::onArticleViewFooter",
+               "ArticleDeleteComplete": 
"PageTriageHooks::onArticleDeleteComplete",
+               "MarkPatrolledComplete": 
"PageTriageHooks::onMarkPatrolledComplete",
+               "BlockIpComplete": "PageTriageHooks::onBlockIpComplete",
+               "ResourceLoaderGetConfigVars": 
"PageTriageHooks::onResourceLoaderGetConfigVars",
+               "BeforeCreateEchoEvent": 
"PageTriageHooks::onBeforeCreateEchoEvent",
+               "EchoGetDefaultNotifiedUsers": 
"PageTriageHooks::onEchoGetDefaultNotifiedUsers",
+               "LocalUserCreated": "PageTriageHooks::onLocalUserCreated",
+               "UserMergeAccountFields": 
"PageTriageHooks::onUserMergeAccountFields",
+               "ResourceLoaderRegisterModules": 
"PageTriageHooks::onResourceLoaderRegisterModules"
+       },
+       "config": {
+               "PageTriagePagesPerRequest": {
+                       "value": 20
+               },
+               "PageTriageInfiniteScrolling": {
+                       "value": true
+               },
+               "PageTriageStickyControlNav": {
+                       "value": true
+               },
+               "PageTriageStickyStatsNav": {
+                       "value": true
+               },
+               "PageTriageMarkPatrolledLinkExpiry": {
+                       "value": 86400
+               },
+               "PageTriageNoIndexTemplates": {
+                       "value": "Noindex templates"
+               },
+               "PageTriageNoIndexUnreviewedNewArticles": {
+                       "value": false
+               },
+               "PageTriageLearnMoreUrl": {
+                       "value": 
"//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help"
+               },
+               "PageTriageProjectLink": {
+                       "value": "Wikipedia:Page Curation"
+               },
+               "PageTriageFeedbackUrl": {
+                       "value": 
"//en.wikipedia.org/wiki/Wikipedia_talk:Page_Curation"
+               },
+               "PageTriageEnableCurationToolbar": {
+                       "value": true
+               },
+               "PageTriageCurationModules": {
+                       "value": {
+                               "articleInfo": {
+                                       "helplink": 
"//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#PageInfo",
+                                       "namespace": [
+                                               0,
+                                               2
+                                       ]
+                               },
+                               "mark": {
+                                       "helplink": 
"//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#MarkReviewed",
+                                       "namespace": [
+                                               0,
+                                               2
+                                       ],
+                                       "note": [
+                                               0
+                                       ]
+                               },
+                               "tags": {
+                                       "helplink": 
"//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#AddTags",
+                                       "namespace": [
+                                               0
+                                       ]
+                               },
+                               "delete": {
+                                       "helplink": 
"//en.wikipedia.org/wiki/Wikipedia:Page_Curation/Help#MarkDeletion",
+                                       "namespace": [
+                                               0,
+                                               2
+                                       ]
+                               }
+                       }
+               },
+               "PageTriageCacheVersion": {
+                       "value": "1.4"
+               },
+               "PageTriageNamespaces": {
+                       "value": [
+                               0,
+                               2
+                       ]
+               },
+               "TalkPageNoteTemplate": {
+                       "value": {
+                               "Mark": "Reviewednote-NPF",
+                               "UnMark": {
+                                       "note": "Unreviewednote-NPF",
+                                       "nonote": "Unreviewednonote-NPF"
+                               },
+                               "Tags": "Taggednote-NPF"
+                       }
+               },
+               "PageTriageEnabledEchoEvents": {
+                       "value": [
+                               "pagetriage-mark-as-reviewed",
+                               "pagetriage-add-maintenance-tag",
+                               "pagetriage-add-deletion-tag"
+                       ]
+               },
+               "PtTemplatePath": {
+                       "value": "modules",
+                       "path": true
+               },
+               "PageTriageTagsOptionsMessages": {
+                       "value": [
+                               "pagetriage-tags-title",
+                               "pagetriage-tags-cat-common-label",
+                               "pagetriage-tags-cat-metadata-label",
+                               "pagetriage-tags-cat-cleanup-label",
+                               "pagetriage-tags-cat-neutrality-label",
+                               "pagetriage-tags-cat-sources-label",
+                               "pagetriage-tags-cat-structure-label",
+                               "pagetriage-tags-cat-unwantedcontent-label",
+                               "pagetriage-tags-cat-verifiability-label",
+                               "pagetriage-tags-cat-writingstyle-label",
+                               "pagetriage-tags-cat-moretags-label",
+                               "pagetriage-tags-cat-all-label",
+                               "pagetriage-tags-linkrot-label",
+                               "pagetriage-tags-linkrot-desc",
+                               "pagetriage-tags-copyedit-label",
+                               "pagetriage-tags-copyedit-desc",
+                               "pagetriage-tags-morefootnotes-label",
+                               "pagetriage-tags-morefootnotes-desc",
+                               "pagetriage-tags-refimprove-label",
+                               "pagetriage-tags-refimprove-desc",
+                               "pagetriage-tags-uncategorised-label",
+                               "pagetriage-tags-uncategorised-desc",
+                               "pagetriage-tags-unreferenced-label",
+                               "pagetriage-tags-unreferenced-desc",
+                               "pagetriage-tags-deadend-label",
+                               "pagetriage-tags-deadend-desc",
+                               "pagetriage-tags-externallinks-label",
+                               "pagetriage-tags-externallinks-desc",
+                               "pagetriage-tags-catimprove-label",
+                               "pagetriage-tags-catimprove-desc",
+                               "pagetriage-tags-orphan-label",
+                               "pagetriage-tags-orphan-desc",
+                               "pagetriage-tags-overlinked-label",
+                               "pagetriage-tags-overlinked-desc",
+                               "pagetriage-tags-cleanup-label",
+                               "pagetriage-tags-cleanup-desc",
+                               "pagetriage-tags-expertsubject-label",
+                               "pagetriage-tags-expertsubject-desc",
+                               "pagetriage-tags-prose-label",
+                               "pagetriage-tags-prose-desc",
+                               "pagetriage-tags-roughtranslation-label",
+                               "pagetriage-tags-roughtranslation-desc",
+                               "pagetriage-tags-advert-label",
+                               "pagetriage-tags-advert-desc",
+                               "pagetriage-tags-autobiography-label",
+                               "pagetriage-tags-autobiography-desc",
+                               "pagetriage-tags-coi-label",
+                               "pagetriage-tags-coi-desc",
+                               "pagetriage-tags-peacock-label",
+                               "pagetriage-tags-peacock-desc",
+                               "pagetriage-tags-pov-label",
+                               "pagetriage-tags-pov-desc",
+                               "pagetriage-tags-weasel-label",
+                               "pagetriage-tags-weasel-desc",
+                               "pagetriage-tags-blpsources-label",
+                               "pagetriage-tags-blpsources-desc",
+                               "pagetriage-tags-originalresearch-label",
+                               "pagetriage-tags-originalresearch-desc",
+                               "pagetriage-tags-primarysources-label",
+                               "pagetriage-tags-primarysources-desc",
+                               "pagetriage-tags-onesource-label",
+                               "pagetriage-tags-onesource-desc",
+                               "pagetriage-tags-condense-label",
+                               "pagetriage-tags-condense-desc",
+                               "pagetriage-tags-leadmissing-label",
+                               "pagetriage-tags-leadmissing-desc",
+                               "pagetriage-tags-leadrewrite-label",
+                               "pagetriage-tags-leadrewrite-desc",
+                               "pagetriage-tags-leadtoolong-label",
+                               "pagetriage-tags-leadtoolong-desc",
+                               "pagetriage-tags-leadtooshort-label",
+                               "pagetriage-tags-leadtooshort-desc",
+                               "pagetriage-tags-cleanupreorganise-label",
+                               "pagetriage-tags-cleanupreorganise-desc",
+                               "pagetriage-tags-sections-label",
+                               "pagetriage-tags-sections-desc",
+                               "pagetriage-tags-stub-label",
+                               "pagetriage-tags-stub-desc",
+                               "pagetriage-tags-verylong-label",
+                               "pagetriage-tags-verylong-desc",
+                               "pagetriage-tags-closeparaphrasing-label",
+                               "pagetriage-tags-closeparaphrasing-desc",
+                               "pagetriage-tags-copypaste-label",
+                               "pagetriage-tags-copypaste-desc",
+                               "pagetriage-tags-nonfree-label",
+                               "pagetriage-tags-nonfree-desc",
+                               "pagetriage-tags-notability-label",
+                               "pagetriage-tags-notability-desc",
+                               "pagetriage-tags-disputed-label",
+                               "pagetriage-tags-disputed-desc",
+                               "pagetriage-tags-citationstyle-label",
+                               "pagetriage-tags-citationstyle-desc",
+                               "pagetriage-tags-hoax-label",
+                               "pagetriage-tags-hoax-desc",
+                               "pagetriage-tags-nofootnotes-label",
+                               "pagetriage-tags-nofootnotes-desc",
+                               "pagetriage-tags-confusing-label",
+                               "pagetriage-tags-confusing-desc",
+                               "pagetriage-tags-essaylike-label",
+                               "pagetriage-tags-essaylike-desc",
+                               "pagetriage-tags-fansite-label",
+                               "pagetriage-tags-fansite-desc",
+                               "pagetriage-tags-notenglish-label",
+                               "pagetriage-tags-notenglish-desc",
+                               "pagetriage-tags-technical-label",
+                               "pagetriage-tags-technical-desc",
+                               "pagetriage-tags-tense-label",
+                               "pagetriage-tags-tense-desc",
+                               "pagetriage-tags-tone-label",
+                               "pagetriage-tags-tone-desc",
+                               "pagetriage-tags-allplot-label",
+                               "pagetriage-tags-allplot-desc",
+                               "pagetriage-tags-fiction-label",
+                               "pagetriage-tags-fiction-desc",
+                               "pagetriage-tags-inuniverse-label",
+                               "pagetriage-tags-inuniverse-desc",
+                               "pagetriage-tags-outofdate-label",
+                               "pagetriage-tags-outofdate-desc",
+                               "pagetriage-tags-overlydetailed-label",
+                               "pagetriage-tags-overlydetailed-desc",
+                               "pagetriage-tags-plot-label",
+                               "pagetriage-tags-plot-desc",
+                               "pagetriage-tags-recentism-label",
+                               "pagetriage-tags-recentism-desc",
+                               "pagetriage-tags-toofewopinions-label",
+                               "pagetriage-tags-toofewopinions-desc",
+                               "pagetriage-tags-unbalanced-label",
+                               "pagetriage-tags-unbalanced-desc",
+                               "pagetriage-tags-update-label",
+                               "pagetriage-tags-update-desc",
+                               "pagetriage-tags-param-date-label",
+                               "pagetriage-tags-param-issues-label",
+                               "pagetriage-tags-param-blp-label",
+                               "pagetriage-tags-param-source-label",
+                               "pagetriage-tags-param-free-label",
+                               "pagetriage-tags-param-url-label",
+                               "pagetriage-tag-count-total",
+                               "pagetriage-button-add-tag",
+                               "pagetriage-button-add-tag-number",
+                               "pagetriage-button-add-parameters",
+                               "pagetriage-button-add-details",
+                               "pagetriage-button-edit-details",
+                               "pagetriage-button-mark-for-deletion",
+                               "cancel",
+                               "pagetriage-tags-param-free-yes-label",
+                               "pagetriage-tags-param-free-no-label",
+                               "pagetriage-tags-param-missing-required",
+                               "pagetriage-tags-param-date-format",
+                               "pagetriage-tags-param-for-label",
+                               "pagetriage-tags-tooltip"
+                       ]
+               },
+               "PageTriageDeletionTagsOptionsMessages": {
+                       "value": [
+                               "pagetriage-del-tags-cat-csd-label",
+                               "pagetriage-del-tags-cat-csd-desc",
+                               "pagetriage-del-tags-cat-prod-label",
+                               "pagetriage-del-tags-cat-prod-desc",
+                               "pagetriage-del-tags-cat-discussion-desc",
+                               "pagetriage-del-tags-dbg3-label",
+                               "pagetriage-del-tags-dbg3-desc",
+                               "pagetriage-del-tags-dbg10-label",
+                               "pagetriage-del-tags-dbg10-desc",
+                               "pagetriage-del-tags-dbg11-label",
+                               "pagetriage-del-tags-dbg11-desc",
+                               "pagetriage-del-tags-dbg12-label",
+                               "pagetriage-del-tags-dbg12-desc",
+                               "pagetriage-del-tags-dba1-label",
+                               "pagetriage-del-tags-dba1-desc",
+                               "pagetriage-del-tags-dba7-label",
+                               "pagetriage-del-tags-dba7-desc",
+                               "pagetriage-del-tags-dbg1-label",
+                               "pagetriage-del-tags-dbg1-desc",
+                               "pagetriage-del-tags-dba3-label",
+                               "pagetriage-del-tags-dba3-desc",
+                               "pagetriage-del-tags-dbg2-label",
+                               "pagetriage-del-tags-dbg2-desc",
+                               "pagetriage-del-tags-dbg4-label",
+                               "pagetriage-del-tags-dbg4-desc",
+                               "pagetriage-del-tags-dbg5-label",
+                               "pagetriage-del-tags-dbg5-desc",
+                               "pagetriage-del-tags-dbg7-label",
+                               "pagetriage-del-tags-dbg7-desc",
+                               "pagetriage-del-tags-dba10-label",
+                               "pagetriage-del-tags-dba10-desc",
+                               "pagetriage-del-tags-dba2-label",
+                               "pagetriage-del-tags-dba2-desc",
+                               "pagetriage-del-tags-dbu2-label",
+                               "pagetriage-del-tags-dbu2-desc",
+                               "pagetriage-del-tags-dbu3-label",
+                               "pagetriage-del-tags-dbu3-desc",
+                               "pagetriage-del-tags-dba9-label",
+                               "pagetriage-del-tags-dba9-desc",
+                               "pagetriage-del-tags-blpprod-label",
+                               "pagetriage-del-tags-blpprod-desc",
+                               "pagetriage-del-tags-prod-label",
+                               "pagetriage-del-tags-prod-desc",
+                               "pagetriage-del-tags-articlefordeletion-label",
+                               
"pagetriage-del-tags-redirectsfordiscussion-label",
+                               
"pagetriage-del-tags-miscellanyfordeletion-label",
+                               "pagetriage-tags-param-article-label",
+                               "pagetriage-tags-param-url-label",
+                               "pagetriage-tags-param-source-label",
+                               "pagetriage-del-tags-param-discussion-label",
+                               "pagetriage-del-title",
+                               "pagetriage-del-tooltip",
+                               "pagetriage-tags-param-url-label",
+                               "pagetriage-tags-param-article-label",
+                               "pagetriage-tags-param-source-label"
+                       ]
+               }
+       },
+       "manifest_version": 2
+}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I63346f46164a32e6750d8b97681ae369b25ff066
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/PageTriage
Gerrit-Branch: master
Gerrit-Owner: Reedy <re...@wikimedia.org>
Gerrit-Reviewer: Alex Monk <a...@wikimedia.org>
Gerrit-Reviewer: Mattflaschen <mflasc...@wikimedia.org>
Gerrit-Reviewer: Paladox <thomasmulhall...@yahoo.com>
Gerrit-Reviewer: Reedy <re...@wikimedia.org>
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