summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/Core/Event.php27
-rw-r--r--app/Model/Task.php10
2 files changed, 25 insertions, 12 deletions
diff --git a/app/Core/Event.php b/app/Core/Event.php
index 2c029b49..ac81bf87 100644
--- a/app/Core/Event.php
+++ b/app/Core/Event.php
@@ -67,13 +67,16 @@ class Event
*/
public function trigger($eventName, array $data)
{
- $this->lastEvent = $eventName;
- $this->events[] = $eventName;
+ if (! $this->isEventTriggered($eventName)) {
- if (isset($this->listeners[$eventName])) {
- foreach ($this->listeners[$eventName] as $listener) {
- if ($listener->execute($data)) {
- $this->lastListener = get_class($listener);
+ $this->lastEvent = $eventName;
+ $this->events[] = $eventName;
+
+ if (isset($this->listeners[$eventName])) {
+ foreach ($this->listeners[$eventName] as $listener) {
+ if ($listener->execute($data)) {
+ $this->lastListener = get_class($listener);
+ }
}
}
}
@@ -113,6 +116,18 @@ class Event
}
/**
+ * Check if an event have been triggered
+ *
+ * @access public
+ * @param string $eventName Event name
+ * @return bool
+ */
+ public function isEventTriggered($eventName)
+ {
+ return in_array($eventName, $this->events);
+ }
+
+ /**
* Check if a listener bind to an event
*
* @access public
diff --git a/app/Model/Task.php b/app/Model/Task.php
index 45c68aec..04500272 100644
--- a/app/Model/Task.php
+++ b/app/Model/Task.php
@@ -359,12 +359,10 @@ class Task extends Base
// Trigger events
if ($result) {
- $events = array();
-
- if (! in_array($this->event->getLastTriggeredEvent(), array(self::EVENT_CREATE_UPDATE))) {
- $events[] = self::EVENT_CREATE_UPDATE;
- $events[] = self::EVENT_UPDATE;
- }
+ $events = array(
+ self::EVENT_CREATE_UPDATE,
+ self::EVENT_UPDATE,
+ );
if (isset($values['column_id']) && $original_task['column_id'] != $values['column_id']) {
$events[] = self::EVENT_MOVE_COLUMN;