Avoid automatic actions that change the color to fire subsequent events
This commit is contained in:
parent
1259e911e4
commit
e94c4cab7f
|
|
@ -24,6 +24,7 @@ Bug fixes:
|
|||
* Automatic action listeners were using the same instance
|
||||
* Fix wrong link for category in task footer
|
||||
* Unable to set currency rate with Postgres database
|
||||
* Avoid automatic actions that change the color to fire subsequent events
|
||||
|
||||
Version 1.0.23
|
||||
--------------
|
||||
|
|
|
|||
|
|
@ -119,7 +119,13 @@ abstract class Base extends \Kanboard\Core\Base
|
|||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->getName();
|
||||
$params = array();
|
||||
|
||||
foreach ($this->params as $key => $value) {
|
||||
$params[] = $key.'='.var_export($value, true);
|
||||
}
|
||||
|
||||
return $this->getName().'('.implode('|', $params).'])';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -246,16 +252,17 @@ abstract class Base extends \Kanboard\Core\Base
|
|||
}
|
||||
|
||||
$data = $event->getAll();
|
||||
$result = false;
|
||||
$executable = $this->isExecutable($data, $eventName);
|
||||
$executed = false;
|
||||
|
||||
if ($this->isExecutable($data, $eventName)) {
|
||||
if ($executable) {
|
||||
$this->called = true;
|
||||
$result = $this->doAction($data);
|
||||
$executed = $this->doAction($data);
|
||||
}
|
||||
|
||||
$this->logger->debug('AutomaticAction '.$this->getName().' => '.($result ? 'true' : 'false'));
|
||||
$this->logger->debug($this.' ['.$eventName.'] => executable='.var_export($executable, true).' exec_success='.var_export($executed, true));
|
||||
|
||||
return $result;
|
||||
return $executed;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ class TaskAssignColorCategory extends Base
|
|||
'color_id' => $this->getParam('color_id'),
|
||||
);
|
||||
|
||||
return $this->taskModification->update($values);
|
||||
return $this->taskModification->update($values, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ class TaskAssignColorColumn extends Base
|
|||
'color_id' => $this->getParam('color_id'),
|
||||
);
|
||||
|
||||
return $this->taskModification->update($values);
|
||||
return $this->taskModification->update($values, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ class TaskAssignColorLink extends Base
|
|||
'color_id' => $this->getParam('color_id'),
|
||||
);
|
||||
|
||||
return $this->taskModification->update($values);
|
||||
return $this->taskModification->update($values, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ class TaskAssignColorUser extends Base
|
|||
'color_id' => $this->getParam('color_id'),
|
||||
);
|
||||
|
||||
return $this->taskModification->update($values);
|
||||
return $this->taskModification->update($values, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -88,6 +88,9 @@ class TaskCreation extends Base
|
|||
{
|
||||
$event = new TaskEvent(array('task_id' => $task_id) + $values);
|
||||
|
||||
$this->logger->debug('Event fired: '.Task::EVENT_CREATE_UPDATE);
|
||||
$this->logger->debug('Event fired: '.Task::EVENT_CREATE);
|
||||
|
||||
$this->dispatcher->dispatch(Task::EVENT_CREATE_UPDATE, $event);
|
||||
$this->dispatcher->dispatch(Task::EVENT_CREATE, $event);
|
||||
|
||||
|
|
|
|||
|
|
@ -17,16 +17,17 @@ class TaskModification extends Base
|
|||
*
|
||||
* @access public
|
||||
* @param array $values
|
||||
* @param boolean $fire_events
|
||||
* @return boolean
|
||||
*/
|
||||
public function update(array $values)
|
||||
public function update(array $values, $fire_events = true)
|
||||
{
|
||||
$original_task = $this->taskFinder->getById($values['id']);
|
||||
|
||||
$this->prepare($values);
|
||||
$result = $this->db->table(Task::TABLE)->eq('id', $original_task['id'])->update($values);
|
||||
|
||||
if ($result) {
|
||||
if ($fire_events && $result) {
|
||||
$this->fireEvents($original_task, $values);
|
||||
}
|
||||
|
||||
|
|
@ -57,7 +58,8 @@ class TaskModification extends Base
|
|||
}
|
||||
|
||||
foreach ($events as $event) {
|
||||
$this->container['dispatcher']->dispatch($event, new TaskEvent($event_data));
|
||||
$this->logger->debug('Event fired: '.$event);
|
||||
$this->dispatcher->dispatch($event, new TaskEvent($event_data));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -177,11 +177,14 @@ class TaskPosition extends Base
|
|||
);
|
||||
|
||||
if ($task['swimlane_id'] != $new_swimlane_id) {
|
||||
$this->container['dispatcher']->dispatch(Task::EVENT_MOVE_SWIMLANE, new TaskEvent($event_data));
|
||||
$this->logger->debug('Event fired: '.Task::EVENT_MOVE_SWIMLANE);
|
||||
$this->dispatcher->dispatch(Task::EVENT_MOVE_SWIMLANE, new TaskEvent($event_data));
|
||||
} elseif ($task['column_id'] != $new_column_id) {
|
||||
$this->container['dispatcher']->dispatch(Task::EVENT_MOVE_COLUMN, new TaskEvent($event_data));
|
||||
$this->logger->debug('Event fired: '.Task::EVENT_MOVE_COLUMN);
|
||||
$this->dispatcher->dispatch(Task::EVENT_MOVE_COLUMN, new TaskEvent($event_data));
|
||||
} elseif ($task['position'] != $new_position) {
|
||||
$this->container['dispatcher']->dispatch(Task::EVENT_MOVE_POSITION, new TaskEvent($event_data));
|
||||
$this->logger->debug('Event fired: '.Task::EVENT_MOVE_POSITION);
|
||||
$this->dispatcher->dispatch(Task::EVENT_MOVE_POSITION, new TaskEvent($event_data));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,10 +113,8 @@ class TaskStatus extends Base
|
|||
));
|
||||
|
||||
if ($result) {
|
||||
$this->container['dispatcher']->dispatch(
|
||||
$event,
|
||||
new TaskEvent(array('task_id' => $task_id) + $this->taskFinder->getById($task_id))
|
||||
);
|
||||
$this->logger->debug('Event fired: '.$event);
|
||||
$this->dispatcher->dispatch($event, new TaskEvent(array('task_id' => $task_id) + $this->taskFinder->getById($task_id)));
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
|
|
|||
Loading…
Reference in New Issue