1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-06 20:08:29 +01:00
phorge-phorge/webroot/rsrc/js/application
epriestley 6c43d1d52c Remove "willRenderTimeline()" from ApplicationTransactionInterface
Summary:
Depends on D19914. Ref T11351. Some of the Phoilo rabbit holes go very deep.

`PhabricatorApplicationTransactionInterface` currently requires you to implement `willRenderTimeline()`. Almost every object just implements this as `return $timeline`; only Pholio, Diffusion, and Differential specialize it. In all cases, they are specializing it mostly to render inline comments.

The actual implementations are a bit of a weird mess and the way the data is threaded through the call stack is weird and not very modern.

Try to clean this up:

  - Stop requiring `willRenderTimeline()` to be implemented.
  - Stop requiring `getApplicationTransactionViewObject()` to be implemented (only the three above, plus Legalpad, implement this, and Legalpad's implementation is a no-op). These two methods are inherently pretty coupled for almost any reasonable thing you might want to do with the timeline.
  - Simplify the handling of "renderdata" and call it "View Data". This is additional information about the current view of the transaction timeline that is required to render it correctly. This is only used in Differential, to decide if we can link an inline comment to an anchor on the same page or should link it to another page. We could perhaps do this on the client instead, but having this data doesn't seem inherently bad to me.
  - If objects want to customize timeline rendering, they now implement `PhabricatorTimelineInterface` and provide a `TimelineEngine` which gets a nice formal stack.

This leaves a lot of empty `willRenderTimeline()` implementations hanging around. I'll remove these in the next change, it's just going to be deleting a couple dozen copies of an identical empty method implementation.

Test Plan:
  - Viewed audits, revisions, and mocks with inline comments.
  - Used "Show Older" to page a revision back in history (this is relevant for "View Data").
  - Grepped for symbols: willRenderTimeline, getApplicationTransactionViewObject, Legalpad classes.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T11351

Differential Revision: https://secure.phabricator.com/D19918
2018-12-20 14:55:07 -08:00
..
aphlict Correct the behavior of "Desktop Only" in Notifications preferences 2018-03-16 15:17:49 -07:00
calendar Remove obsolete Calendar event date storage fields 2016-11-02 09:49:08 -07:00
config Fix custom field selector control in cases where the user doesn't edit anything 2015-05-25 05:34:23 -07:00
conpherence Fix spelling 2017-10-09 10:48:04 -07:00
countdown Define JavaScript functions before they are used 2014-12-30 02:53:32 -08:00
daemon Execute Maniphest batch edits in the background with a web UI progress bar 2015-06-23 13:36:16 -07:00
dashboard Restrict movable panels to non-tab panels 2017-02-14 14:15:59 -08:00
diff Don't allow the middle mouse button to start an inline comment 2018-11-26 10:14:48 -08:00
differential In Differential standalone views, disable some keyboard shortcuts which don't work 2018-08-13 08:59:05 -07:00
diffusion Remove obsoleted "diffusion-browse-file" behavior for coverage 2018-04-17 14:51:12 -07:00
doorkeeper Allow Doorkeeper references to have multiple display variations (full, short, etc.) 2018-03-13 11:29:52 -07:00
drydock Show a more reasonable status element for pull requests 2015-10-21 11:28:26 -07:00
files Add a view option to disable blame in Diffusion and fix some view transition bugs 2018-04-30 15:32:23 -07:00
harbormaster Fix an issue in the new Harbormaster build log view where clicking the "^" icon doesn't work right 2018-04-27 11:51:59 -07:00
herald Remove 750ms timeout on owners path validation 2018-08-13 13:52:26 -07:00
maniphest Define bulk edits in terms of EditEngine, not hard-coded ad-hoc definitions 2018-01-19 12:43:47 -08:00
owners Use a tokenizer, not a gigantic poorly-ordered "<select />", to choose repositories in Owners 2018-03-07 20:57:24 -08:00
passphrase Rename Passphrase credential control JS 2015-03-02 13:01:00 -08:00
pholio Fix spelling 2017-10-09 10:48:04 -07:00
phortune Don't try to access the Stripe object until the user submits the credit card form 2017-02-10 08:40:14 -08:00
policy De-garbage the horrible garbage project section of the policy selection control 2016-02-05 09:50:06 -08:00
projects Clean up some colors missing from PHUITagView type shade 2017-05-22 10:52:10 -07:00
releeph Make scrolling happen relative to the main content frame 2015-01-25 08:42:40 -08:00
repository Make repository symbol references work with DocumentEngine 2018-04-09 04:47:28 -07:00
search Allow profile menu items to be reordered 2016-01-13 11:45:57 -08:00
transactions Remove "willRenderTimeline()" from ApplicationTransactionInterface 2018-12-20 14:55:07 -08:00
typeahead Implement viewer() and members(project) typeahead functions 2015-04-17 11:06:58 -07:00
uiexample Remove some old UIExamples 2017-05-30 18:00:28 -07:00