List of changes between releases of Extension:Moderation. == master branch (1.5.x versions) == Features: * API: Support sectiontitle= parameter of api.php?action=edit. Bugfixes: * Move/upload via API won't unnecessarily Unwatch affected pages. * Fixed rare error during ApproveAll when some of the timestamp changes need to be ignored, while others don't need to be ignored. * Fixed post-approval adjustments to rev_timestamp (restoring time when the author did the change) not being applied: * to post-Move redirects, * when ApproveAll simultaneously approves Edit and Move on same page, * when approving a Move that overwrites an existing redirect. * PostgreSQL: fixed incorrect value returned by NewChange::queue(). * PostgreSQL: order of edits during ApproveAll is now the same as with MySQL. * PostgreSQL: Special:Moderation no longer shows day/month in today's timestamps. * Fixed error when returning false from ModerationIntercept hook. Refactoring, performance optimizations: * Reduced the number of SQL queries during RejectAll. * Major refactoring of everything (Consequence classes). * Major refactoring of everything (replacing static methods with Services). * Better performance of move/upload via API. * Reduced the number of SQL queries when upload is intercepted. * Refactoring of ModerationApproveHook class. * Removed static variables like NewChange::$LastInsertId. * Removed unneeded configuration variables like $wgModerationForceAjaxHook. Troubleshooting tools: * Added debug log to ModerationApproveHook. == Moderation 1.4.20 == Note: this version requires MediaWiki 1.31+. MediaWiki 1.27 is no longer supported. Features: * Support MediaWiki 1.34. * Support MobileFrontend editor in MW 1.33-1.34. * Support anonymous uploads (if allowed in $wgGroupPermissions). * Support PostgreSQL. Bugfixes: * Default value of mod_stash_key is now NULL, not empty string. * mod_minor field is now 0 or 1 (not EDIT_MINOR, which is 4). Warnings fixed: * Replaced deprecated ApiBase::dieUsage() * Replaced deprecated EditPage::$mTitle * Replaced deprecated Linker::link() * Replaced deprecated StreamFile::send404Message() * Replaced deprecated Title::GAID_FOR_UPDATE * Replaced deprecated UploadBase::stashFile() * Replaced deprecated $wgContLang, $wgUser, $wgRequest * Replaced deprecated wfMemcKey() Refactoring, performance optimizations: * Removed legacy code for MediaWiki 1.27-1.30. == Moderation 1.4.0 == Features: * Support MediaWiki 1.32. * Support MediaWiki 1.33 (except MobileFrontend editor). * Support installation without update.php via web updater of MediaWiki. * When moderator manually resolves an edit conflict, resulting edit is now tagged as "merged edit of another user". * API: implement api.php?modaction=show * API: implement api.php?action=query&list=querypage&qppage=Moderation * Extension:Echo won't suppress "New changes are pending" notification. * (disabled by default) Allow moderator to modify text before approval. Bugfixes: * modaction=show now correctly shows non-image uploads (e.g. OGG file). * Two clicks on "Mark as spammer" link no longer create 2 log entries. * Log entry of "moderation/approve" now records "revid" for uploads. * Module "jquery.cookie" is now loaded before "ext.moderation.notify". * Default value of mod_page2_namespace is now 0, not empty string. * modaction=approveall now works for User:0 (where "0" is username). * VisualEditor: fixed bug that prevented preloading of long wikitext. * AbuseFilter: fixed AbuseFilter not being called for moves in MW 1.33. UI changes: * Notifications are no longer sent for edits in Spam folder. * Diffs on Special:Moderation are now properly colored in MW 1.31+. * If editor is anonymous, Whois link is now shown to non-checkusers. * Removed "external link" icon after Whois links on Special:Moderation. * CSS style of Special:Moderation is no longer lazy-loaded. * Log messages now use {{gender:}} syntax for non-English translations. * modaction=merge now warns if the change has already been merged. * Result of (un)blocking an already (un)blocked user is now "success". Warnings fixed: * Replaced deprecated ParserOptions::setEditSection() * Replaced deprecated FileRepo::streamFile() * Replaced deprecated OutputPage::addWikiText() Refactoring, performance optimizations: * Replaced wfMessage() with $context->msg() whenever possible. * Made some static methods non-static in NotifyModerator class. == Moderation 1.3.0 == Note: please run update.php (there are changes to DB schema). Features: * Support MediaWiki 1.31. * Page moves are now intercepted by Moderation. * Special:Log/moderation can now be filtered by subtype. * Made "Watch this file" checkbox work even if upload was intercepted. Bugfixes: * Special:Moderation will no longer have duplicated rows. * Approve won't restore the timestamp of approved edit if the page already has newer revisions (to avoid incorrect order of History). * Post-queue notification email is now sent in the language of the wiki. * Links in notification email now use canonical URLs. * Redlinks are now correctly displayed on Special:Log/moderation. * mod_new_len is no longer calculated before PreSaveTransform. UI changes: * Special:Upload now shows user-friendly "Success! Uploaded!" message (not styled as an error) when the upload is queued for moderation. * Special:Moderation now highlights large changes (>500 bytes). * modaction=show no longer shows Approve link for null edits. Warnings fixed: * Replaced deprecated SpecialPage::getTitle() * JavaScript: replaced deprecated postWithToken('edit', ...) Refactoring, performance optimizations: * Reduced the number of SQL queries during ApproveAll. * Faster rendering of Merged folder of Special:Moderation. * Faster rendering of Special:Log/moderation: used LinkBatch. * Major refactoring of code that queues new edits (ModerationNewChange class). * Major refactoring of "approve change" logic (subclasses of ModerationEntry). * Refactoring of SpecialModeration::formatResult (ModerationEntryFormatter). * Refactoring of diff generation logic (ModerationViewableEntry). * Removed unneeded checks around doWatchOrUnwatch(). * Removed more legacy code for MediaWiki 1.23-1.26. * Notification emails are now delayed via DeferredUpdates. Configuration: * Added skip-move-moderation right (allows to bypass moderation of page moves). * Default: sysops and bots can bypass moderation. * Default: sysops can use Special:Moderation. * Default: sysops can add/remove "automoderated" group. == Moderation 1.2.0 == Note: this version requires MediaWiki 1.27+. MediaWiki 1.23 is no longer supported. Note: please run update.php (there are changes to DB schema). Features: * Support MediaWiki 1.30. * Support uploads via API and MultiUpload-like extensions in MediaWiki 1.28+. * In-wiki notification "New changes await moderation" is now shown to moderators. * Allowed to disable/enable Moderation on per-namespace basis via $wgModerationIgnoredInNamespaces and $wgModerationOnlyInNamespaces. * Support third-party Extension:PageForms (editing via Special:FormEdit). * AbuseFilter: tags set by AbuseFilter are now preserved by Moderation. UI changes: * Moderation is now listed under Antispam section of Special:SpecialPages. Security updates: * Restricted filerevert API (revert image to older version) to automoderated users, because this action can't be intercepted by Moderation. * Fixed improper escaping of user-provided mod_comment on Special:Moderation. Bugfixes: * Fixed situation when JobQueueError (caused by another extension) resulted in duplicate rows on Special:Moderation. * Fixed "404 Not Found" not being sent for missing stash images (MW 1.28+). * In $wgModerationUseAjax mode, Preview is no longer treated as one-click action. * Field mod_title now uses underscores (as other MediaWiki tables), not spaces. Documentation: * Explained each configuration variable in extension.json. Refactoring, performance optimizations: * Removed legacy code for MediaWiki 1.23-1.26. * Replaced PHP syntax array() with shorter [] == Moderation 1.1.0.3 == Security release for legacy MediaWiki 1.23 (obsolete LTS). Unlike Moderation 1.2.0, this release has no changes except those needed for security. If you are at MediaWiki 1.27+, please use Moderation 1.2.0. Security updates: * Restricted filerevert API (revert image to older version) to automoderated users, because this action can't be intercepted by Moderation. * Fixed improper escaping of user-provided mod_comment on Special:Moderation. == Moderation 1.1.0 == Features: * Support MediaWiki 1.28-1.29. * VisualEditor: Support Internet Explorer 11. * API: Support for prependtext/appendtext parameters (action=edit). * API: Provide moderation API (action=moderation). * Made "Watch this page" checkbox work even if edit was intercepted by Moderation. * Support situation when user got deleted (e.g. via [removeUnusedAccounts.php]). * Made sure that successfully queued edit won't be lost if DB rollback happens. * (disabled by default) Experimental Ajax handling of links on Special:Moderation. UI changes: * Added "pending review" icon to postedit notification. * Added link to Special:Log/moderation on Special:Moderation. * Now showing date on Special:Moderation. Bugfixes: * Fixed incorrect preloading of section #0. * Fixed incorrect calculation of mod_new_len when editing section. * Fixed bug that caused user-agent (for CheckUser extension) not to be preserved during ApproveAll. * Fixed issue of user sometimes becoming logged out after registration. * MobileFrontend: Fixed bug that caused pending edit not to preload when creating a new article. * VisualEditor: fixed error "String.split is not a function" in Chrome. Warnings fixed: * Fixed warning when MediaWiki uses alternate editor. * Fixed PHP 7.0 warnings (missing static). * Fixed warning "explicit commit of implicit transaction". * Removed obsolete hook AuthPluginAutoCreate for MediaWiki 1.27+. Refactoring, performance optimizations: * Faster rendering of Special:Moderation: used LinkBatch. * Simplified error handling of "file not found in stash". * Refactoring of ModerationPreload class. * Major refactoring of ajaxhook JavaScript. Configuration: * Added skip-moderation to $wgGrantPermissions['basic'] (MediaWiki 1.28+ only). == Moderation 1.0.0 == First stable release.