parent
b327b4fbe6
commit
673d70dfc5
@ -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; |
||||
} |
||||
} |
||||
@ -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); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue