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
|
* Automatic action listeners were using the same instance
|
||||||
* Fix wrong link for category in task footer
|
* Fix wrong link for category in task footer
|
||||||
* Unable to set currency rate with Postgres database
|
* Unable to set currency rate with Postgres database
|
||||||
|
* Avoid automatic actions that change the color to fire subsequent events
|
||||||
|
|
||||||
Version 1.0.23
|
Version 1.0.23
|
||||||
--------------
|
--------------
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,13 @@ abstract class Base extends \Kanboard\Core\Base
|
||||||
*/
|
*/
|
||||||
public function __toString()
|
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();
|
$data = $event->getAll();
|
||||||
$result = false;
|
$executable = $this->isExecutable($data, $eventName);
|
||||||
|
$executed = false;
|
||||||
|
|
||||||
if ($this->isExecutable($data, $eventName)) {
|
if ($executable) {
|
||||||
$this->called = true;
|
$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'),
|
'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'),
|
'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'),
|
'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'),
|
'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);
|
$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_UPDATE, $event);
|
||||||
$this->dispatcher->dispatch(Task::EVENT_CREATE, $event);
|
$this->dispatcher->dispatch(Task::EVENT_CREATE, $event);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,16 +17,17 @@ class TaskModification extends Base
|
||||||
*
|
*
|
||||||
* @access public
|
* @access public
|
||||||
* @param array $values
|
* @param array $values
|
||||||
|
* @param boolean $fire_events
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function update(array $values)
|
public function update(array $values, $fire_events = true)
|
||||||
{
|
{
|
||||||
$original_task = $this->taskFinder->getById($values['id']);
|
$original_task = $this->taskFinder->getById($values['id']);
|
||||||
|
|
||||||
$this->prepare($values);
|
$this->prepare($values);
|
||||||
$result = $this->db->table(Task::TABLE)->eq('id', $original_task['id'])->update($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);
|
$this->fireEvents($original_task, $values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -57,7 +58,8 @@ class TaskModification extends Base
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($events as $event) {
|
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) {
|
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) {
|
} 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) {
|
} 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) {
|
if ($result) {
|
||||||
$this->container['dispatcher']->dispatch(
|
$this->logger->debug('Event fired: '.$event);
|
||||||
$event,
|
$this->dispatcher->dispatch($event, new TaskEvent(array('task_id' => $task_id) + $this->taskFinder->getById($task_id)));
|
||||||
new TaskEvent(array('task_id' => $task_id) + $this->taskFinder->getById($task_id))
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue