Make sure that some event subscribers are not executed multiple times

This commit is contained in:
Frederic Guillot
2016-01-16 21:06:36 -05:00
parent 6a0895ef76
commit 6a7b8ec60f
10 changed files with 95 additions and 39 deletions

View File

@@ -6,18 +6,20 @@ use Kanboard\Event\TaskEvent;
use Kanboard\Model\Task;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class RecurringTaskSubscriber extends \Kanboard\Core\Base implements EventSubscriberInterface
class RecurringTaskSubscriber extends BaseSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return array(
Task::EVENT_MOVE_COLUMN => array('onMove', 0),
Task::EVENT_CLOSE => array('onClose', 0),
Task::EVENT_MOVE_COLUMN => 'onMove',
Task::EVENT_CLOSE => 'onClose',
);
}
public function onMove(TaskEvent $event)
{
$this->logger->debug('Subscriber executed: '.__CLASS__.'::'.__METHOD__);
if ($event['recurrence_status'] == Task::RECURRING_STATUS_PENDING) {
if ($event['recurrence_trigger'] == Task::RECURRING_TRIGGER_FIRST_COLUMN && $this->board->getFirstColumn($event['project_id']) == $event['src_column_id']) {
$this->taskDuplication->duplicateRecurringTask($event['task_id']);
@@ -29,6 +31,8 @@ class RecurringTaskSubscriber extends \Kanboard\Core\Base implements EventSubscr
public function onClose(TaskEvent $event)
{
$this->logger->debug('Subscriber executed: '.__CLASS__.'::'.__METHOD__);
if ($event['recurrence_status'] == Task::RECURRING_STATUS_PENDING && $event['recurrence_trigger'] == Task::RECURRING_TRIGGER_CLOSE) {
$this->taskDuplication->duplicateRecurringTask($event['task_id']);
}