HomePhabricator

Improve Phriction page move dialog

Description

Improve Phriction page move dialog

Summary:
Fixes T5492. I figured this would be easier to just fix than write a guide for; it actually took me an hour, but I spent like 75% of that futzing with my editor.

  • The Move controller currently accepts either a slug or an ID. I can't find any callsites which pass a slug, and this doesn't make sense. Pretty sure this was copy/pasted from Edit or something. Only accept IDs.
  • Slightly modernize the Move controller (newDialog(), handleRequest(), $viewer).
  • When the user enters a bad slug, warn them that we're going to fix it for them and let them accept or reject the changes.
  • Don't prefill the edit note (this feels inconsistent/unusual).
  • On the form, label the input "Path" instead of "URI".
  • Show the old path, to help remind the user what the input should look like.
  • When a user tries to do a no-op move, show a more tailored message.
  • When the user tries to do an overwriting move, explain how they can fix it.
  • When normalizing a slug like /question/???/mark/, make it normalize to /question/_/mark.

Test Plan:

  • Tried to move a document to itself.
  • Tried to overwrite a document.
  • Did a bad-path move, accepted corrected path.
  • Did a good-path move.
  • Did a path move with a weird component like /???/.
  • Added and executed unit tests.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T5492

Differential Revision: https://secure.phabricator.com/D10838

Details

Provenance
epriestleyAuthored on
epriestleyPushed on Nov 12 2014, 3:04 PM
Reviewer
btrahan
Differential Revision
D10838: Improve Phriction page move dialog
Parents
rP99bcf06c62e8: Fix minor issues with PhrictionDocumentQuery
Branches
Unknown
Tags
Unknown
Tasks
T5492: Make wiki move dialog more intuitive and validate input