Flow/Closing discussions

An essential part of any discussion system is the ability to deliberately close discussions - whether that be by fixing their form or removing them completely. For the context of this document, "closing" refers to two classes of action:


 * 1) The deliberate removal of a conversational thread, through any means, due to misbehaviour on the part of the author(s);
 * 2) The deliberate fixing of a conversational thread's form - be that due to consensus being reached, conversations stalling, or minor misbehaviour that does not justify removing the discussion entirely from view.

Talkpages are, essentially, a sandbox: there is no structure. Because of that there are a vast number of different implementations of the above actions. The task with this document is to identify the common components of each, and the common information presented, with the idea of being able to make informed design decisions about what data is needed in Flow's discussion-closing mechanisms.

Rollback/undo
Rollback and undo are two ways of removing an edit from Wikipedia, while keeping the edit in the revision history, allowing it to be accessed and viewed by any user if they want to see it. These mechanisms, in the talk namespace, are mostly used to handle comments that are problematic but not problematic enough to justify revision-deletion/suppression. An analogue in Flow would be flagging/hiding a comment; it removes it from immediate view, but leaves it visible if a user really wants to read it.

Rollback and undo are both roughly analogous (the difference is speed and simplicity) so we'll treat them as the same thing for the purposes of this document. The actions can be triggered in one of two ways.

From the history page, both rollback and undo functionality is available via a link next to each entry;(1) rollback only appears for the newest edit.

From a diff, both appear via links - rollback next to the user link,(1) and undo next to "edit".(2)

Clicking "rollback" in either place removes all successive edits made by the same user to that page - this is probably not functionality we need to replicate. A confirmation message is then displayed, along with a diff of the change you made.(1)

Clicking "undo" presents you with a diff of what change you will make, and requires you to enter an edit summary. You then click "save changes", undoing the edit you selected.

In both cases the edit remains viewable in the history of the page, and the removal of the edit itself registers as an edit/log entry, allowing for users to see who took the action and what their rationale was.

Revision deletion and suppression
Revision deletion and suppression are two different mechanisms for removing content. In both cases, they make the content invisible to most users - unlike rollback. The primary difference is that "revision delete" is only accessible to admins (and the deleted content can only be seen by admins), while suppression is only available to oversighters, and hides content from all but oversighters. Revision deletion and oversight are used for removing different classes of the most inappropriate content - copyright violations, defamation, child pornography, privacy violations, so on and so forth.

Both processes are identical in UI terms, with the exception of a single checkbox, and can be triggered in one of two ways. Both begin by removing the content from the latest revision to the page. After that:

From the "history" tab of a page, an administrator or oversighter is presented with a checkbox next to every revision (1) that allows them to select multiple edits. When they have selected the edits they want to remove, they press the "del/undel selected revision" button (2).

From the "diff" view, an administrator or oversighter is presented merely with a "show/hide" button (1). This only allows for the selection of that particular edit.

Whichever view (history or diff) is chosen, the admin/oversighter will end up at the deletion screen. This contains several important elements. Users are first presented with a confirmation of which revisions they have selected;(1) this allows for double-checking before hitting the big red button. In Flow, this is probably unnecessary - the fact that everything happens through interstitials rather than in a totally different interface means the user can see the revision they're trying to select. They are then shown extensive guidelines and warnings,(2) the intention of which is to warn against making mistakes: poor judgment with such powerful tools is usually responded to very strongly. This can probably be simplified to a link to the relevant policy, and a caution about using the tool, which is what's found in tools such as AFT5.

Below these warnings is the actual interface for suppressing or revision-deleting edits.(3) This permits various permutations of suppression and revision-deletion, with options to eliminate any permutation of username, edit summary and actual edit contents. The rationale here is that different types of user misbehaviour have different minimal responses: sometimes it will only be the edit summary that is inappropriate. Sometimes it will be a user accidentally editing logged-out, revealing their IP address. And sometimes everything will be a problem. These sets of options are all available for both revision-deletion and suppression - the only interaction difference being that suppression requires the users to check the "suppress data from administrators as well as others" button.

The interface also features the logs of previous revision-deletion/suppression actions on (that/those) edit(s),(4) allowing for the user to see if there is anything contentious about the content, and identify the deletion circumstances if they are using the interface to undelete content.

When the administrator/oversighter has filled out the options they want, they provide a rationale for the removal of material - selecting from a set of pre-set options in a dropdown box, and/or filling out their own explanation. They then click "apply to selected revision", which applies revision-deleted/suppressed status to the edit(s). This reloads the screen and confirms that the action was successful.

A user who tries to view a diff of the deleted revision will be presented with a notification that it is unavailable,(1) and - if they are the right class of user - a notification that they can still access a diff of the revision if they want.(2)