Page MenuHomePhabricator

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

Authored by epriestley on Dec 17 2015, 6:18 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Mar 27, 3:22 PM
Unknown Object (File)
Sun, Mar 17, 12:19 AM
Unknown Object (File)
Tue, Mar 5, 3:25 AM
Unknown Object (File)
Feb 16 2024, 9:30 PM
Unknown Object (File)
Feb 14 2024, 5:03 AM
Unknown Object (File)
Feb 9 2024, 10:18 AM
Unknown Object (File)
Feb 3 2024, 7:53 AM
Unknown Object (File)
Jan 28 2024, 9:56 AM
Subscribers
None

Details

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).

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable