Flow/Hide spec

Sept 12, 2014: Here's a new spec for a revamp of the "Hide topic" function on Flow. Come talk with us about the pros & cons here: Hide - updated version spec. The related "Hide post" function spec coming soon.

Note: Wireframes are not mockups -- they express a rough approximation of the layout, so that it can be easily understood and discussed on a spec. That is not the actual font that we will use. :)

Use cases and rationale
The core use case for Hide is:


 * A bad-faith user posts a topic on a Flow board that's inappropriate, and shouldn't be on the board -- because it's spam, vandalism, abuse, off-topic, breaking the written or unwritten guidelines of the page.
 * Another user sees the bad topic, and removes it from the board, so that other readers and contributors don't see the offensive/inappropriate conversation when they visit the page.
 * The hidden topic needs to still be accessible through history and contributions, so that a user who's stopping vandalism can investigate what else the vandal has done on the wiki.
 * The person who started the conversation should be notified that their topic was hidden, so they can learn from their mistakes, or follow up if they don't understand why it was hidden.

We also have to consider the flip side of this situation, where the bad faith action is Hiding a good topic.


 * A bad-faith user decides to mess up a Flow board by Hiding worthwhile topics.
 * Another user needs a way to access the hidden topics, and restore them to the page.

How to Hide a topic
There are three ways to hide a topic:
 * Board page -- Dropdown menu
 * Topic page -- Dropdown menu
 * Board history -- Hide appears next to "created new topic" items, Restore next to hidden items
 * Contributions -- Hide appears next to "created new topic" items, Restore next to hidden items

Board page

 * Dropdown menu -- choose Hide topic. Modal comes up, as current.
 * Type your reason in the modal, click Hide
 * Change is reflected in board history, contributions, recent changes, watchlist, notifications, as per below.

Confirmation and undo
For the Hider: Topic is replaced on the page with a box that says: "This topic has been removed. (Undo)". This only appears for the hider, and it will disappear on the next page refresh.

If the Hider clicks Undo in the box, the topic restores immediately, without the need for a modal dialog or typing a reason. The restored topic returns to the board page. Both actions (Hide and Restore) are reflected in the board history.



Hidden topic is off the page
When the topic is hidden: on the next page refresh, the hidden topic does not appear on the board page, for anyone. There is no trace of it.



Topic page

 * Dropdown menu -- choose Hide topic. Modal comes up, as current.
 * Type your reason in the modal, click Hide
 * Topic no longer appears on the board page.
 * Change is reflected in board history, contributions, recent changes, watchlist, notifications, as per below.
 * Unhide in dropdown menu opens the modal -- type a reason -- the Topic page goes back to normal.

Changes to the Topic page for a hidden topic
The hidden topic can still be viewed on the Topic page, which can be accessed through links in the board history, contributions and notifications.

The following elements are different on a Topic page for a hidden topic:


 * Two extra lines are added:
 * Flag icon - This topic was hidden by User name
 * Reason: Edit summary from modal


 * Reply links, Edit links and Entry field are removed


 * Topic is always uncollapsed, as usual on the Topic page.



Board and topic history
Hide option appears in the history for Create Topic items and Restored Topic items.


 * (cur|prev|topic) 12:00, 01 January 2099 . . Username (talk|contribs|block) created the topic "Topic title" . . (+99) (hide)


 * (cur|prev|topic) 12:00, 01 January 2099 . . Username (talk|contribs|block) restored the topic "Topic title" (Reason for restoring). . (0) (hide)

Restore option appears in the history for hidden Create Topic items and Hidden Topic items.


 * (cur|prev|topic) 12:00, 01 January 2099 . . Username (talk|contribs|block) created the topic "Topic title" . . (+99) (restore)


 * (cur|prev|topic) 12:00, 01 January 2099 . . Username (talk|contribs|block) hid the topic "Topic title" (Reason for hiding) . . (0) (restore)

Clicking on "hide" or "restore" from history opens the modal dialog for edit summary.

Completing the modal refreshes the history page. Reloaded page reflects the updated items.

Contributions
Hide option appears in contributions for Create Topic items and Restored Topic items.


 * 12:00, 01 January 2099 (diff|hist) . . (+99) . . Topic title on Talk:Board name (hide)


 * (cur|prev|topic) 12:00, 01 January 2099 . . Username (talk|contribs|block) restored the topic "Topic title" (Reason for restoring). . (0) (hide)

Restore option appears in the history for hidden Create Topic items and Hidden Topic items.


 * 12:00, 01 January 2099 (diff|hist) . . (+99) . . Topic title on Talk:Board name (restore)


 * 12:00, 01 January 2099 . . (0) . . Username (talk|contribs|block) hid the topic "Topic title" (Reason for hiding). . (0) (restore)

Clicking on "hide" or "restore" from history opens the modal dialog for edit summary.

Completing the modal refreshes the history page. Reloaded page reflects the updated items.

Other functions
I think these other functions are unchanged by the new Hide system. Please let me know if I've forgotten to take something into account.


 * Watchlist
 * Recent changes
 * Echo notifications
 * Email notifications