HomePhabricator

Show fewer useless transactions when creating objects, especially with…

Description

Show fewer useless transactions when creating objects, especially with EditEngine forms

Summary:
Fixes T7661. Ref T9527.

When you create a task, especially with an EditEngine form, you currently get more noise than is useful. For example:

alice created this task.
alice changed the edit policy from "All Users" to "Community (Project)".
alice added projects: Feature Request, Differential.
alice added a subscriber: alice.

Transaction (1) is a little useful, since it saves us from a weird empty state and shows the object creation time.

Transaction (2) is totally useless (and even misleading) because that's the default policy for the form.

Transaction (3) isn't completely useless but isn't very interesting, and probably not worth the real-estate.

Transaction (4) is totally useless.

(These transactions are uniquely useless when creating objects -- when editing them later, they're fine.)

This adds two new rules to hide transactions:

  • Hide transactions from object creation if the old value is empty (e.g., set title, set projects, set subscribers).
  • Hide transactions from object creation if the old value is the same as the form default value (e.g., set policy to default, set priorities to default, set status to default).
NOTE: These rules also hide the "created this object" transaction, since it's really one of those transaction types in all cases. I want to keep that around in the long term, but just have it be a separate TYPE_CREATE action -- currently, it is this weird, inconsistent action where we pick some required field (like title) and special-case the rendering if the old value is null. So fixing that is a bit more involved. For now, I'm just dropping these transactions completely, but intend to restore them later.

Test Plan:

  • Created objects.
  • Usually saw no extra create transactions.
  • Saw extra create transactions when making an important change away from form defaults (e.g., overriding form policy).

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T7661, T9527

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