Page MenuHomePhabricator

Allow "Change Subtype" to be selected from the comment action stack
ClosedPublic

Authored by epriestley on Nov 27 2018, 12:27 AM.
Tags
None
Referenced Files
F14397468: D19842.diff
Sun, Dec 22, 10:36 AM
F14397194: D19842.diff
Sun, Dec 22, 9:50 AM
F14387861: D19842.id47378.diff
Sat, Dec 21, 3:20 PM
Unknown Object (File)
Tue, Dec 17, 8:52 AM
Unknown Object (File)
Mon, Dec 16, 5:45 AM
Unknown Object (File)
Mon, Dec 16, 5:44 AM
Unknown Object (File)
Mon, Dec 16, 5:44 AM
Unknown Object (File)
Mon, Dec 16, 5:44 AM
Subscribers
Restricted Owners Package

Details

Summary

Ref T13222. See PHI683. Currently, you can "Change subtype..." via Conduit and the bulk editor, but not via the comment action stack or edit forms.

In PHI683 an install is doing this often enough that they'd like it to become a first-class action. I've generally been cautious about pushing this action to become a first-class action (there are some inevitable rough edges and I don't want to add too much complexity if there isn't a use case for it) but since we have evidence that users would find it useful and nothing has exploded yet, I'm comfortable taking another step forward.

Currently, EditEngine has this sort of weird setIsConduitOnly() method. This actually means more like "this doesn't show up on forms". Make it better align with that. In particular, a "conduit only" field can already show up in the bulk editor, which is goofy. Change this to setIsFormField() and convert/simplify existing callsites.

Test Plan

There are a lot of ways to reach EditEngine so this probably isn't entirely exhaustive, but I think I got pretty much anything which is likely to break:

  • Searched for setIsConduitOnly() and getIsConduitOnly(), converted all callsites to setIsFormField().
  • Searched for setIsLockable(), setIsReorderable() and setIsDefaultable() and aligned these calls to intent where applicable.
  • Created an Almanac binding.
  • Edited an Almanac binding.
  • Created an Almanac service.
  • Edited an Almanac service.
  • Edited a binding property.
  • Deleted a binding property.
  • Created and edited a badge.
  • Awarded and revoked a badge.
  • Created and edited an event.
  • Made an event recurring.
  • Created and edited a Conpherence thread.
  • Edited and updated the diff for a revision.
  • Created and edited a repository.
  • Created and disabled repository URIs.
  • Created and edited a blueprint.
  • Created and edited tasks.
  • Created a paste, edited/archived a paste.
  • Created/edited/archived a package.
  • Created/edited a project.
  • Made comments.
  • Moved tasks on workboards via comment action stack.
  • Changed task subtype via comment action stack.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Owners added a subscriber: Restricted Owners Package.Nov 27 2018, 12:27 AM

Needs more thorough testing.

epriestley edited the test plan for this revision. (Show Details)
  • Actually tested, with one behavioral fix for "Initial Members" in Projects.
This revision is now accepted and ready to land.Nov 28 2018, 6:56 PM
This revision was automatically updated to reflect the committed changes.
epriestley added inline comments.
src/applications/transactions/editfield/PhabricatorEditField.php
888

This is the change which exposed the bug identified and fixed in D19845.

I believe the old behavior was not sufficiently strict (it should have checked both this AND "conduit only").

D19870 fixes one workflow I missed: creating a task directly into a column from the workboard UI.