@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Improve recovery from panel action rendering exceptions, and mark "Changeset" queries as not suitable for panel generation

Summary:
Fixes T13443. When a panel raises an exception during edit action generation, it currently escapes to top level. Instead, catch it more narrowly.

Additionally, mark "ChangesetSearchEngine" as not being a suitable search engine for use in query panels. There's no list view or search URI so it can't generate a sensible panel.

Test Plan:
- Added a changeset panel to a dashboard.
- Before: entire dashboard fataled.
- After: panel fataled narrowly, menu fatals narrowly, dashboard no longer permits creation of another Changeset query panel.

Maniphest Tasks: T13443

Differential Revision: https://secure.phabricator.com/D20902

+14 -3
+10 -3
src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php
··· 329 329 $actions = array(); 330 330 331 331 if ($panel) { 332 - $panel_actions = $panel->newHeaderEditActions( 333 - $viewer, 334 - $context_phid); 332 + try { 333 + $panel_actions = $panel->newHeaderEditActions( 334 + $viewer, 335 + $context_phid); 336 + } catch (Exception $ex) { 337 + $error_action = id(new PhabricatorActionView()) 338 + ->setIcon('fa-exclamation-triangle red') 339 + ->setName(pht('<Rendering Exception>')); 340 + $panel_actions[] = $error_action; 341 + } 335 342 336 343 if ($panel_actions) { 337 344 foreach ($panel_actions as $panel_action) {
+4
src/applications/differential/query/DifferentialChangesetSearchEngine.php
··· 22 22 return 'PhabricatorDifferentialApplication'; 23 23 } 24 24 25 + public function canUseInPanelContext() { 26 + return false; 27 + } 28 + 25 29 public function newQuery() { 26 30 $query = id(new DifferentialChangesetQuery()); 27 31