Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2020-06-26 17:01:52 +0300
committerJulius Härtl <jus@bitgrid.net>2020-07-15 10:28:11 +0300
commit31a14945296047cbdd17a90c223527f4e1ad951b (patch)
tree6706b4de9b4d5422dd27991ded50a60a74400f65 /lib/private/Dashboard
parent879b7569952b8ee4a18e90310f94866bda6fce42 (diff)
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.php13
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 = [];
}