Skip to content

Commit

Permalink
Merge pull request #1641 from nextcloud/enh/dashboard
Browse files Browse the repository at this point in the history
Add Dashboard widget
  • Loading branch information
raimund-schluessler committed Jun 23, 2021
2 parents 1e938f3 + d7a24b0 commit 82c44bd
Show file tree
Hide file tree
Showing 10 changed files with 600 additions and 15 deletions.
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ clean:
rm -f ./js/tasks-main.js
rm -f ./js/tasks-main.js.map
rm -f ./js/tasks-main.js.LICENSE.txt
rm -f ./js/tasks-dashboard.js
rm -f ./js/tasks-dashboard.js.map
rm -f ./js/tasks-dashboard.js.LICENSE.txt
rm -rf $(build_directory)

# Same as clean but also removes dependencies installed by npm
Expand Down
4 changes: 4 additions & 0 deletions img/tasks-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 16 additions & 2 deletions lib/AppInfo/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,28 @@

namespace OCA\Tasks\AppInfo;

use OCA\Tasks\Dashboard\TasksWidget;
use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;

class Application extends App {
class Application extends App implements IBootstrap {

/** @var string */
public const APP_ID = 'tasks';

/**
* @param array $params
*/
public function __construct(array $params=[]) {
parent::__construct('tasks', $params);
parent::__construct(self::APP_ID, $params);
}

public function register(IRegistrationContext $context): void {
$context->registerDashboardWidget(TasksWidget::class);
}

public function boot(IBootContext $context): void {
}
}
88 changes: 88 additions & 0 deletions lib/Dashboard/TasksWidget.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?php

declare(strict_types=1);
/**
* @copyright Copyright (c) 2021 Jakob Röhrl <jakob.roehrl@web.de>
*
* @author Jakob Röhrl <jakob.roehrl@web.de>
*
* @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 OCA\Tasks\Dashboard;

use OCA\Tasks\AppInfo\Application;
use OCP\Dashboard\IWidget;
use OCP\IL10N;

class TasksWidget implements IWidget {

/**
* @var IL10N
*/
private $l10n;

/**
* TasksWidget constructor.
* @param IL10N $l10n
*/
public function __construct(IL10N $l10n) {
$this->l10n = $l10n;
}

/**
* @inheritDoc
*/
public function getId(): string {
return Application::APP_ID;
}

/**
* @inheritDoc
*/
public function getTitle(): string {
return $this->l10n->t('Upcoming tasks');
}

/**
* @inheritDoc
*/
public function getOrder(): int {
return 20;
}

/**
* @inheritDoc
*/
public function getIconClass(): string {
return 'icon-tasks';
}

/**
* @inheritDoc
*/
public function getUrl(): ?string {
return null;
}

/**
* @inheritDoc
*/
public function load(): void {
\OCP\Util::addScript('tasks', 'tasks-dashboard');
}
}
Loading

0 comments on commit 82c44bd

Please sign in to comment.