HomePhabricator

Implement "Resign" action against ApplicationTransactions

Description

Implement "Resign" action against ApplicationTransactions

Summary:
Ref T2222. This introduces two small new concepts:

  • expandTransactions(): allows a transaction to expand into several transactions. For example, "resign" adds a "remove reviewers" transaction.
    • We have some other cases which could use this, but currently hard-code things outside of the Editor.
      • One example is that in Maniphest, closing a task implies claiming it if it is unowned.
  • setIgnoreOnNoEffect(): The whole Editor can be set to continue or stop if any transactions have no effect, but this allows the behavior to be refined at the individual transaction level. This is primarily to make the UX less confusing, so the user gets only a single relevant error instead of one for each expanded transaction.

Otherwise, this is pretty straightforward.

Test Plan:
Rigged comment form to use SavePro controller, enabled resign action, then tried to resign from a bunch of stuff.

{F117743}

Reviewers: btrahan

Reviewed By: btrahan

CC: chad, aran

Maniphest Tasks: T2222

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

Event Timeline