User:MPGuy2824/MoveToDraft

MoveToDraft (source) – A script that is used to WP:DRAFTIFY articles (move to draft space), including cleanup and author notification.

Steps performed by the script:
 * 1) Move the current page to draftspace and, if the user isn't an admin or page mover, then tag the redirect left behind for R2 speedy deletion.
 * 2) Check if any files used are non-free.
 * 3) Edit page to comment out non-free files, put categories in Draft categories, and add the AFC draft template.
 * 4) Add a notification message on the author's/significant contributors' talk page/s.
 * 5) Update talk page banners.
 * 6) Log the move to the /Draftify log subpage of the user's space, if it exists.

Automatic

 * Step 1: Check the checkbox at and click Save.
 * Step 2: Click the big blue "Install" button in the infobox on the right of this page.

Manual
{{subst:iusc|User:MPGuy2824/MoveToDraft.js}}
 * Add the following to Special:MyPage/common.js (or your skin-specific js, if you prefer):

Usage

 * 1) On articles, there will be an additional "Move to draft" menu option next to the regular "Move" option. In Vector skin, this is within the "More" dropdown menu.
 * 2) Move To Draft - ChooseContributors screen.png Selecting "Move to draft" will bring up a list of contributors to whom notifications can be sent. This step is skipped if there is only one contributor to the page.
 * 3) Next, a dialogue box is shown where the new draft title, the username of the author to notify, and a set of checkboxes to indicate the problem/s with the current version of the article can be chosen.
 * 4) Move To Draft - InProgress screen.png When the "Continue" button is clicked, the script will undertake the steps listed above. If there are any errors encountered with a step, you generally have the option to retry or skip it.
 * Note: for those without the page mover user-right, the redirect left behind from moving the article to draftspace will be tagged for CSD R2 deletion automatically.

Warnings
The script warns the user in certain conditions:
 * Previous draftification of the article
 * Old article (created more than 90 days ago)
 * New article (significant edit/s less than 1 hour ago)

Draftify log
This script adds a pseudo-special page for viewing logs of draftifications – all draftifications, not just from this tool.

Once installed, you can navigate to Special:Draftify log and view logs from all users, or a particular user.

For convenience, a "Draftify log" link is placed on user pages (near the "Move to draft" menu option), linking to that user's log.

A wikitext version of the log is generated in a textbox at the bottom of the page, for easy copy-pasting if desired.

Todos

 * Switch UI to Vue.js

Changes after forking
This script was forked from User:Evad37/MoveToDraft, in November 2022. After forking, the following enhancements have been done:
 * A selectable, short list of reasons for draftifying, which are added in the message to the draft creator's talk page.
 * Warning when the article is very old (>90 days) OR very new (edited less than an hour back).
 * Warning when an article has been previously draftified.
 * Allow notifying multiple authors (when applicable).
 * Fixed bug where, on occassion, the article XYZ would be moved to Draft:Draft:XYZ.
 * Workaround for T321192.
 * Draftification log entries and edits are tagged with "moveToDraft".

Customisation

 * Watching pages: If you want to watchlist the pages that you move, then check the checkbox at and click Save.
 * Subscribing to user talk page discussions: If you want to auto-subscribe to user talk page discussion, then check the checkbox at and click Save.
 * "Move to draft" link placement: Add the line  to your common.js, replacing  with one of the portlet id values from Help:Customizing toolbars (the script's default location is  )
 * Move log rationale: Add the line  to your common.js, replacing  with custom text. The default rationale is Not ready for mainspace, incubate in draftspace
 * Edit summary for preparing article for draftspace: Add the line  to your common.js, replacing  with custom text. The default rationale is AFC draft
 * Disable logging within your userspace: Add the line  to your common.js to disable logging moves (in /Draftify log within your userspace). Logging is enabled if this is omitted or set to false.
 * Contributor notification message
 * Add the line  to your common.js
 * Important: within your message:
 * You need to use  instead of the page title
 * You need to prevent wikitext transformations on the common.js page itself (i.e.  instead of ,   instead of   for any template substitution)
 * You need to escape any quotation marks ( characters) as   to avoid syntax errors.
 * Any actual backslashes ( characters) need to be escaped as.
 * Location of your log file: You can change the location of the  file by creating a redirect from   to whatever location you prefer (as long as it is within your userspace).
 * Location of your log file: You can change the location of the  file by creating a redirect from   to whatever location you prefer (as long as it is within your userspace).

Note to interface admins
I, MPGuy2824, the owner of this script and userspace, give interface-admins permission to edit this script with any changes based on consensus, including redirecting the script to a new location, via inline code that loads a different user script location, in the following cases:
 * It is an emergency OR
 * I have been incommunicado for 2 months. -MPGuy2824 (talk)