diff options
-rw-r--r-- | app/Model/Task.php | 7 | ||||
-rw-r--r-- | app/Templates/board_show.php | 2 | ||||
-rw-r--r-- | app/common.php | 3 | ||||
-rw-r--r-- | assets/css/app.css | 4 | ||||
-rw-r--r-- | assets/js/app.js | 3 | ||||
-rw-r--r-- | config.default.php | 3 |
6 files changed, 18 insertions, 4 deletions
diff --git a/app/Model/Task.php b/app/Model/Task.php index 0753c57d..09c77573 100644 --- a/app/Model/Task.php +++ b/app/Model/Task.php @@ -387,6 +387,7 @@ class Task extends Base // Prepare data $this->prepare($values); $values['date_creation'] = time(); + $values['date_modification'] = $values['date_creation']; $values['position'] = $this->countByColumnId($values['project_id'], $values['column_id']); // Save task @@ -426,9 +427,13 @@ class Task extends Base // Prepare data $this->prepare($values); $updated_task = $values; - $updated_task['date_modification'] = time(); unset($updated_task['id']); + // We update the modification date only for the selected task to highlight recent moves + if ($trigger_events) { + $updated_task['date_modification'] = time(); + } + $result = $this->db->table(self::TABLE)->eq('id', $values['id'])->update($updated_task); // Trigger events diff --git a/app/Templates/board_show.php b/app/Templates/board_show.php index 2d857497..e91ab4cf 100644 --- a/app/Templates/board_show.php +++ b/app/Templates/board_show.php @@ -32,7 +32,7 @@ data-task-limit="<?= $column['task_limit'] ?>" > <?php foreach ($column['tasks'] as $task): ?> - <div class="task-board draggable-item task-<?= $task['color_id'] ?>" + <div class="task-board draggable-item task-<?= $task['color_id'] ?> <?= $task['date_modification'] > time() - RECENT_TASK_PERIOD ? 'task-board-recent' : '' ?>" data-task-id="<?= $task['id'] ?>" data-owner-id="<?= $task['owner_id'] ?>" data-category-id="<?= $task['category_id'] ?>" diff --git a/app/common.php b/app/common.php index f66a3fa9..9d48442b 100644 --- a/app/common.php +++ b/app/common.php @@ -33,6 +33,9 @@ defined('BOARD_PUBLIC_CHECK_INTERVAL') or define('BOARD_PUBLIC_CHECK_INTERVAL', // Board refresh frequency in seconds (the value 0 disable this feature) defined('BOARD_CHECK_INTERVAL') or define('BOARD_CHECK_INTERVAL', 10); +// Period (in second) to consider a task was modified recently +defined('RECENT_TASK_PERIOD') or define('RECENT_TASK_PERIOD', 48*60*60); + // Custom session save path defined('SESSION_SAVE_PATH') or define('SESSION_SAVE_PATH', ''); diff --git a/assets/css/app.css b/assets/css/app.css index fae922ab..2866151d 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -584,6 +584,10 @@ a.filter-on { font-size: 95%; } +.task-board-recent { + box-shadow: 0px 0px 10px rgba(82, 158, 236, 1); +} + .task-table a, .task-board a { color: #000; diff --git a/assets/js/app.js b/assets/js/app.js index 78354dde..20af61eb 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -77,8 +77,7 @@ Kanboard.Board = (function() { connectWith: ".column", placeholder: "draggable-placeholder", stop: function(event, ui) { - var task_id = parseInt(ui.item[0].getAttribute("data-task-id")); - board_save(task_id); + board_save(ui.item.attr('data-task-id')); } }); diff --git a/config.default.php b/config.default.php index b79bad94..9e597488 100644 --- a/config.default.php +++ b/config.default.php @@ -21,6 +21,9 @@ define('BOARD_PUBLIC_CHECK_INTERVAL', 60); // Board refresh frequency in seconds (the value 0 disable this feature, 10 seconds by default) define('BOARD_CHECK_INTERVAL', 10); +// Period (in second) to consider a task was modified recently (0 to disable, 2 days by default) +define('RECENT_TASK_PERIOD', 48*60*60); + // Database driver: sqlite or mysql (sqlite by default) define('DB_DRIVER', 'sqlite'); |