mirror of
https://github.com/YunoHost-Apps/kanboard_ynh.git
synced 2024-09-03 19:36:17 +02:00
40 lines
1.5 KiB
PHP
40 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Kanboard\Subscriber;
|
|
|
|
use Kanboard\Event\TaskEvent;
|
|
use Kanboard\Model\Task;
|
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
|
|
|
class RecurringTaskSubscriber extends BaseSubscriber implements EventSubscriberInterface
|
|
{
|
|
public static function getSubscribedEvents()
|
|
{
|
|
return array(
|
|
Task::EVENT_MOVE_COLUMN => 'onMove',
|
|
Task::EVENT_CLOSE => 'onClose',
|
|
);
|
|
}
|
|
|
|
public function onMove(TaskEvent $event)
|
|
{
|
|
$this->logger->debug('Subscriber executed: '.__METHOD__);
|
|
|
|
if ($event['recurrence_status'] == Task::RECURRING_STATUS_PENDING) {
|
|
if ($event['recurrence_trigger'] == Task::RECURRING_TRIGGER_FIRST_COLUMN && $this->column->getFirstColumnId($event['project_id']) == $event['src_column_id']) {
|
|
$this->taskDuplication->duplicateRecurringTask($event['task_id']);
|
|
} elseif ($event['recurrence_trigger'] == Task::RECURRING_TRIGGER_LAST_COLUMN && $this->column->getLastColumnId($event['project_id']) == $event['dst_column_id']) {
|
|
$this->taskDuplication->duplicateRecurringTask($event['task_id']);
|
|
}
|
|
}
|
|
}
|
|
|
|
public function onClose(TaskEvent $event)
|
|
{
|
|
$this->logger->debug('Subscriber executed: '.__METHOD__);
|
|
|
|
if ($event['recurrence_status'] == Task::RECURRING_STATUS_PENDING && $event['recurrence_trigger'] == Task::RECURRING_TRIGGER_CLOSE) {
|
|
$this->taskDuplication->duplicateRecurringTask($event['task_id']);
|
|
}
|
|
}
|
|
}
|