diff options
author | Julius Härtl <jus@bitgrid.net> | 2020-06-26 16:01:52 +0200 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2020-07-15 09:28:11 +0200 |
commit | 31a14945296047cbdd17a90c223527f4e1ad951b (patch) | |
tree | 6706b4de9b4d5422dd27991ded50a60a74400f65 /lib/private/Dashboard | |
parent | 879b7569952b8ee4a18e90310f94866bda6fce42 (diff) | |
download | nextcloud-server-31a14945296047cbdd17a90c223527f4e1ad951b.tar.gz nextcloud-server-31a14945296047cbdd17a90c223527f4e1ad951b.zip |
Add load method for apps to bootstrap their panels
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'lib/private/Dashboard')
-rw-r--r-- | lib/private/Dashboard/Manager.php | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/private/Dashboard/Manager.php b/lib/private/Dashboard/Manager.php index f9c857f831f..c9185e0b832 100644 --- a/lib/private/Dashboard/Manager.php +++ b/lib/private/Dashboard/Manager.php @@ -23,11 +23,13 @@ namespace OC\Dashboard; +use InvalidArgumentException; use OCP\AppFramework\QueryException; use OCP\Dashboard\IManager; use OCP\Dashboard\IPanel; use OCP\ILogger; use OCP\IServerContainer; +use Throwable; class Manager implements IManager { @@ -46,7 +48,7 @@ class Manager implements IManager { private function registerPanel(IPanel $panel): void { if (array_key_exists($panel->getId(), $this->panels)) { - throw new \InvalidArgumentException('Dashboard panel with this id has already been registered'); + throw new InvalidArgumentException('Dashboard panel with this id has already been registered'); } $this->panels[$panel->getId()] = $panel; @@ -88,6 +90,15 @@ class Manager implements IManager { 'level' => ILogger::FATAL, ]); } + + try { + $panel->load(); + } catch (Throwable $e) { + \OC::$server->getLogger()->logException($e, [ + 'message' => 'Error during dashboard panel loading: ' . $e->getMessage(), + 'level' => ILogger::FATAL, + ]); + } } $this->lazyPanels = []; } |