Steps to reproduce:
- As an admin, go to /config/edit/maniphest.statuses/ and make sure that the a closed task status (e.g. "resolved") includes the line "claim": true
- Have a simple Task, Open, without owner
- Add Action > Change Status > Resolved
- NOTE: An automatic Transaction is added to Claim=yourself
- Add Action > Assign / Claim > unset yourself
- Save
What happens:
What should happen:
No warning should be raised.
This is a corner case since, the warning it's useful when a field is empty. But, in this case, there is a default in action: it is really setting yourself as Assignee. And you are unsetting it, and not leaving it as just blank.
What probably happens
This is an attempt to describe what kind of interaction happens under the hood. Every line is a new time phase.
Starting from a simple Task, Open, without owner:
Phase | What you Do | What Phorge does | Notes |
---|---|---|---|
1 | Add Action > Change Status > Resolved | ||
2 | The ManiphestTransactionEditor (:356-368) expandes the transaction to set yourself as claimer | (This is nice) | |
3 | Add Action > Assign / Claim > unset yourself | behavior-comment-actions.js removeAction() | |
The Preview does not show anymore yourself as claimer. | |||
4 | Save (what is it actually sent?) | ← On Save, maybe "Expanded transactions that were unset" should be skipped | |
5 | The PhabricatorApplicationTransactionEditor (:2821-2826) thinks Claim=null was unuseful | ||
6 | throw new PhabricatorApplicationTransactionNoEffectException | ||
7 | The mentioned error is shown | ||
Things that could be inspirational:
- PhabricatorApplicationTransaction::setIgnoreOnNoEffect()
- https://secure.phabricator.com/D8328 (that implemented that ↑)
It seems the comment actions are generated from these files: