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
F14395216: D14810.diff
Sun, Dec 22, 3:38 AM
Unknown Object (File)
Thu, Dec 19, 5:25 PM
Unknown Object (File)
Thu, Dec 19, 5:11 PM
Unknown Object (File)
Thu, Dec 19, 6:39 AM
Unknown Object (File)
Wed, Dec 18, 10:55 AM
Unknown Object (File)
Sat, Dec 14, 3:10 PM
Unknown Object (File)
Fri, Dec 13, 10:57 AM
Unknown Object (File)
Fri, Dec 13, 7:49 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
Branch
ae6
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 9620
Build 11515: Run Core Tests
Build 11514: arc lint + arc unit