Signed-off-by: Julius Härtl <jus@bitgrid.net>tags/v20.0.0beta1
@@ -166,6 +166,9 @@ return array( | |||
'OCP\\Dashboard\\Exceptions\\DashboardAppNotAvailableException' => $baseDir . '/lib/public/Dashboard/Exceptions/DashboardAppNotAvailableException.php', | |||
'OCP\\Dashboard\\IDashboardManager' => $baseDir . '/lib/public/Dashboard/IDashboardManager.php', | |||
'OCP\\Dashboard\\IDashboardWidget' => $baseDir . '/lib/public/Dashboard/IDashboardWidget.php', | |||
'OCP\\Dashboard\\IManager' => $baseDir . '/lib/public/Dashboard/IManager.php', | |||
'OCP\\Dashboard\\IPanel' => $baseDir . '/lib/public/Dashboard/IPanel.php', | |||
'OCP\\Dashboard\\IRegisterPanelEvent' => $baseDir . '/lib/public/Dashboard/IRegisterPanelEvent.php', | |||
'OCP\\Dashboard\\Model\\IWidgetConfig' => $baseDir . '/lib/public/Dashboard/Model/IWidgetConfig.php', | |||
'OCP\\Dashboard\\Model\\IWidgetRequest' => $baseDir . '/lib/public/Dashboard/Model/IWidgetRequest.php', | |||
'OCP\\Dashboard\\Model\\WidgetSetting' => $baseDir . '/lib/public/Dashboard/Model/WidgetSetting.php', |
@@ -195,6 +195,9 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c | |||
'OCP\\Dashboard\\Exceptions\\DashboardAppNotAvailableException' => __DIR__ . '/../../..' . '/lib/public/Dashboard/Exceptions/DashboardAppNotAvailableException.php', | |||
'OCP\\Dashboard\\IDashboardManager' => __DIR__ . '/../../..' . '/lib/public/Dashboard/IDashboardManager.php', | |||
'OCP\\Dashboard\\IDashboardWidget' => __DIR__ . '/../../..' . '/lib/public/Dashboard/IDashboardWidget.php', | |||
'OCP\\Dashboard\\IManager' => __DIR__ . '/../../..' . '/lib/public/Dashboard/IManager.php', | |||
'OCP\\Dashboard\\IPanel' => __DIR__ . '/../../..' . '/lib/public/Dashboard/IPanel.php', | |||
'OCP\\Dashboard\\IRegisterPanelEvent' => __DIR__ . '/../../..' . '/lib/public/Dashboard/IRegisterPanelEvent.php', | |||
'OCP\\Dashboard\\Model\\IWidgetConfig' => __DIR__ . '/../../..' . '/lib/public/Dashboard/Model/IWidgetConfig.php', | |||
'OCP\\Dashboard\\Model\\IWidgetRequest' => __DIR__ . '/../../..' . '/lib/public/Dashboard/Model/IWidgetRequest.php', | |||
'OCP\\Dashboard\\Model\\WidgetSetting' => __DIR__ . '/../../..' . '/lib/public/Dashboard/Model/WidgetSetting.php', |
@@ -0,0 +1,46 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net> | |||
* | |||
* @author Julius Härtl <jus@bitgrid.net> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
namespace OC\Dashboard; | |||
use OCP\Dashboard\IManager; | |||
use OCP\Dashboard\IPanel; | |||
class Manager implements IManager { | |||
private $panels = []; | |||
/** | |||
* @inheritDoc | |||
*/ | |||
public 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'); | |||
} | |||
$this->panels[$panel->getId()] = $panel; | |||
} | |||
public function getPanels(): array { | |||
return $this->panels; | |||
} | |||
} |
@@ -1357,6 +1357,7 @@ class Server extends ServerContainer implements IServerContainer { | |||
}); | |||
$this->registerAlias(IDashboardManager::class, DashboardManager::class); | |||
$this->registerAlias(\OCP\Dashboard\IManager::class, \OC\Dashboard\Manager::class); | |||
$this->registerAlias(IFullTextSearchManager::class, FullTextSearchManager::class); | |||
$this->registerAlias(ISubAdmin::class, SubAdmin::class); |
@@ -0,0 +1,46 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net> | |||
* | |||
* @author Julius Härtl <jus@bitgrid.net> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
namespace OCP\Dashboard; | |||
/** | |||
* Interface IManager | |||
* | |||
* @package OCP\Dashboard | |||
* @since 20.0.0 | |||
*/ | |||
interface IManager { | |||
/** | |||
* @param IPanel $panel | |||
* @since 20.0.0 | |||
*/ | |||
public function registerPanel(IPanel $panel): void; | |||
/** | |||
* @since 20.0.0 | |||
* | |||
* @return IPanel[] | |||
*/ | |||
public function getPanels(): array; | |||
} |
@@ -0,0 +1,69 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net> | |||
* | |||
* @author Julius Härtl <jus@bitgrid.net> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
namespace OCP\Dashboard; | |||
/** | |||
* Interface IPanel | |||
* | |||
* @package OCP\Dashboard | |||
* @since 20.0.0 | |||
*/ | |||
interface IPanel { | |||
/** | |||
* @return string | |||
* @since 20.0.0 | |||
*/ | |||
public function getId(): string; | |||
/** | |||
* @return string | |||
* @since 20.0.0 | |||
*/ | |||
public function getTitle(): string; | |||
/** | |||
* @return int | |||
* @since 20.0.0 | |||
*/ | |||
public function getOrder(): int; | |||
/** | |||
* @return string | |||
* @since 20.0.0 | |||
*/ | |||
public function getIconClass(): string; | |||
/** | |||
* @return string The absolute path to an icon in SVG | |||
* @since 20.0.0 | |||
*/ | |||
public function getIconUrl(): string; | |||
/** | |||
* @return string The absolute url to the apps own view | |||
* @since 20.0.0 | |||
*/ | |||
public function getUrl(): string; | |||
} |
@@ -0,0 +1,50 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net> | |||
* | |||
* @author Julius Härtl <jus@bitgrid.net> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
namespace OCP\Dashboard; | |||
use OCP\EventDispatcher\Event; | |||
/** | |||
* Class IRegisterPanelEvent | |||
* | |||
* @package OCP\Dashboard | |||
* @since 20.0.0 | |||
*/ | |||
class IRegisterPanelEvent extends Event { | |||
private $manager; | |||
public function __construct(IManager $manager) { | |||
parent::__construct(); | |||
$this->manager = $manager; | |||
} | |||
/** | |||
* @param IPanel $panel | |||
* @since 20.0.0 | |||
*/ | |||
public function registerPanel(IPanel $panel) { | |||
$this->manager->registerPanel($panel); | |||
} | |||
} |