Signed-off-by: Joas Schilling <coding@schilljs.com>tags/v11.0RC2
@@ -31,4 +31,11 @@ | |||
<command>OCA\DAV\Command\SyncBirthdayCalendar</command> | |||
<command>OCA\DAV\Command\SyncSystemAddressBook</command> | |||
</commands> | |||
<activity> | |||
<filters> | |||
<filter>OCA\DAV\CalDAV\Activity\Filter\Calendar</filter> | |||
<filter>OCA\DAV\CalDAV\Activity\Filter\Todo</filter> | |||
</filters> | |||
</activity> | |||
</info> |
@@ -314,24 +314,7 @@ class Extension implements IExtension { | |||
* @return array|false | |||
*/ | |||
public function getNavigation() { | |||
$l = $this->getL10N(); | |||
return [ | |||
'apps' => [ | |||
self::CALENDAR => [ | |||
'id' => self::CALENDAR, | |||
'icon' => 'icon-calendar-dark', | |||
'name' => (string) $l->t('Calendar'), | |||
'url' => $this->URLGenerator->linkToRoute('activity.Activities.showList', ['filter' => self::CALENDAR]), | |||
], | |||
self::CALENDAR_TODO => [ | |||
'id' => self::CALENDAR_TODO, | |||
'icon' => 'icon-checkmark', | |||
'name' => (string) $l->t('Todos'), | |||
'url' => $this->URLGenerator->linkToRoute('activity.Activities.showList', ['filter' => self::CALENDAR_TODO]), | |||
], | |||
], | |||
'top' => [], | |||
]; | |||
return false; | |||
} | |||
/** | |||
@@ -341,7 +324,7 @@ class Extension implements IExtension { | |||
* @return boolean | |||
*/ | |||
public function isFilterValid($filterValue) { | |||
return in_array($filterValue, [self::CALENDAR, self::CALENDAR_TODO]); | |||
return false; | |||
} | |||
/** | |||
@@ -353,12 +336,6 @@ class Extension implements IExtension { | |||
* @return array|false | |||
*/ | |||
public function filterNotificationTypes($types, $filter) { | |||
switch ($filter) { | |||
case self::CALENDAR: | |||
return array_intersect([self::CALENDAR, self::CALENDAR_EVENT], $types); | |||
case self::CALENDAR_TODO: | |||
return array_intersect([self::CALENDAR_TODO], $types); | |||
} | |||
return false; | |||
} | |||
@@ -0,0 +1,92 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> | |||
* | |||
* @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\DAV\CalDAV\Activity\Filter; | |||
use OCP\Activity\IFilter; | |||
use OCP\IL10N; | |||
use OCP\IURLGenerator; | |||
class Calendar implements IFilter { | |||
/** @var IL10N */ | |||
protected $l; | |||
/** @var IURLGenerator */ | |||
protected $url; | |||
public function __construct(IL10N $l, IURLGenerator $url) { | |||
$this->l = $l; | |||
$this->url = $url; | |||
} | |||
/** | |||
* @return string Lowercase a-z and underscore only identifier | |||
* @since 11.0.0 | |||
*/ | |||
public function getIdentifier() { | |||
return 'calendar'; | |||
} | |||
/** | |||
* @return string A translated string | |||
* @since 11.0.0 | |||
*/ | |||
public function getName() { | |||
return $this->l->t('Calendar'); | |||
} | |||
/** | |||
* @return int whether the filter should be rather on the top or bottom of | |||
* the admin section. The filters are arranged in ascending order of the | |||
* priority values. It is required to return a value between 0 and 100. | |||
* @since 11.0.0 | |||
*/ | |||
public function getPriority() { | |||
return 40; | |||
} | |||
/** | |||
* @return string Full URL to an icon, empty string when none is given | |||
* @since 11.0.0 | |||
*/ | |||
public function getIcon() { | |||
return $this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.svg')); | |||
} | |||
/** | |||
* @param string[] $types | |||
* @return string[] An array of allowed apps from which activities should be displayed | |||
* @since 11.0.0 | |||
*/ | |||
public function filterTypes(array $types) { | |||
return array_intersect(['calendar', 'calendar_event'], $types); | |||
} | |||
/** | |||
* @return string[] An array of allowed apps from which activities should be displayed | |||
* @since 11.0.0 | |||
*/ | |||
public function allowedApps() { | |||
return []; | |||
} | |||
} |
@@ -0,0 +1,92 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> | |||
* | |||
* @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\DAV\CalDAV\Activity\Filter; | |||
use OCP\Activity\IFilter; | |||
use OCP\IL10N; | |||
use OCP\IURLGenerator; | |||
class Todo implements IFilter { | |||
/** @var IL10N */ | |||
protected $l; | |||
/** @var IURLGenerator */ | |||
protected $url; | |||
public function __construct(IL10N $l, IURLGenerator $url) { | |||
$this->l = $l; | |||
$this->url = $url; | |||
} | |||
/** | |||
* @return string Lowercase a-z and underscore only identifier | |||
* @since 11.0.0 | |||
*/ | |||
public function getIdentifier() { | |||
return 'calendar_todo'; | |||
} | |||
/** | |||
* @return string A translated string | |||
* @since 11.0.0 | |||
*/ | |||
public function getName() { | |||
return $this->l->t('Todos'); | |||
} | |||
/** | |||
* @return int whether the filter should be rather on the top or bottom of | |||
* the admin section. The filters are arranged in ascending order of the | |||
* priority values. It is required to return a value between 0 and 100. | |||
* @since 11.0.0 | |||
*/ | |||
public function getPriority() { | |||
return 40; | |||
} | |||
/** | |||
* @return string Full URL to an icon, empty string when none is given | |||
* @since 11.0.0 | |||
*/ | |||
public function getIcon() { | |||
return $this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/checkmark.svg')); | |||
} | |||
/** | |||
* @param string[] $types | |||
* @return string[] An array of allowed apps from which activities should be displayed | |||
* @since 11.0.0 | |||
*/ | |||
public function filterTypes(array $types) { | |||
return array_intersect(['calendar_todo'], $types); | |||
} | |||
/** | |||
* @return string[] An array of allowed apps from which activities should be displayed | |||
* @since 11.0.0 | |||
*/ | |||
public function allowedApps() { | |||
return []; | |||
} | |||
} |