Page MenuHomePhabricator

Partially modularize AlmanacService transactions
ClosedPublic

Authored by epriestley on Apr 9 2018, 9:10 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, May 7, 9:29 AM
Unknown Object (File)
Fri, May 3, 9:16 AM
Unknown Object (File)
Fri, Apr 26, 2:02 AM
Unknown Object (File)
Thu, Apr 25, 2:54 AM
Unknown Object (File)
Fri, Apr 19, 2:51 AM
Unknown Object (File)
Thu, Apr 11, 10:23 AM
Unknown Object (File)
Apr 1 2024, 4:01 PM
Unknown Object (File)
Mar 10 2024, 5:03 PM
Subscribers
None

Details

Summary

Ref T13120. Ref T12414. See PHI145. See PHI473. This partially modernizes AlmanacService transactions by moving them to ModularTransactions.

This isn't complete because the "update property" and "remove property" transactions aren't modularized. They still work, since the parent Editor implements them, but they no longer render properly on the timeline since the Transaction object no longer has rendering logic for them.

Tentatively, I'm going to try to convert the rest of the Almanac objects and then modularize those transactions. (Currently, all of Binding, Device, Namespace and Service support properties, although they can only actually be edited on Service, Device and Binding.)

If that turns out to be really tricky for some reason I can just copy/paste the timeline rendering for now, but I think it won't be too hard.

Test Plan
  • Created and edited Services.
  • Tried to create a service with: a bad name, no name, a name which put it in a namespace I can't edit (got errors in all cases).
  • Edited and removed properties. The edits worked, the timeline just renders a generic story now ('X edited this object (transaction type "almanac:property:update").').

Diff Detail

Repository
rP Phabricator
Branch
almanac3
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 20046
Build 27185: Run Core Tests
Build 27184: arc lint + arc unit