Details
- Reviewers
- btrahan 
- Maniphest Tasks
- T4983: Implement Wnnn and {Wnnn} to link to and embed dashboard panels
 T4986: Implement new Dashboard panel types
- Commits
- Restricted Diffusion Commit
 rP63acd90cefaf: Allow dashboard panels to detect rendering cycles and arrest stack overflows
Faked some errors, got failed panel renders. Since panels can't really contain other panels yet, this doesn't really have an impact.
Diff Detail
- Repository
- rP Phabricator
- Lint
- Lint Skipped 
- Unit
- Tests Skipped 
Event Timeline
| src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php | ||
|---|---|---|
| 18 | I'd expect this to be some class that extends the Aphront Graph class with cycle detection. (To support panel A which contains panel B which contains panel C, etc.) You'd probably want to check the graph out during edits at the dashboard / panel level and otherwise not load it. | |
| 123 | hahaha, tip jar time | |
| src/applications/dashboard/engine/PhabricatorDashboardRenderingEngine.php | ||
| 29 | this will be an error i think | |
| src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php | ||
|---|---|---|
| 18 | I think we probably won't be able to guarantee this in general. For example, suppose you have a panel (W123) showing the 5 latest feed stories, and we update feed so it renders remarkup, then someone makes a comment with {W123} in it. We can't (and shouldn't) block the comment. We could do this in a more narrow way, but I suspect there will be so many cases like this that making any effort isn't worth the complexity, and just failing gracefully is good enough without trying to prevent things from getting into this state. | |
| src/applications/dashboard/engine/PhabricatorDashboardRenderingEngine.php | ||
| 29 | Haha, good catch. This was test code that I neglected to remove. | |