diff --git a/module/common/view/kanban.html.php b/module/common/view/kanban.html.php
index ff0f8d4fc1..02e883aa1f 100644
--- a/module/common/view/kanban.html.php
+++ b/module/common/view/kanban.html.php
@@ -21,7 +21,7 @@
#kanbanList .kanban-item.link-block {padding: 0;}
#kanbanList .kanban-item.link-block a {padding: 10px; display: block;}
#kanbanList .kanban-card {display: flex;}
-#kanbanList .kanban-card > .title {white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
+#kanbanList .kanban-card > .title {white-space: nowrap; overflow: hidden;}
#kanbanList .kanban-card.has-progress {padding-right: 40px; position: relative;}
#kanbanList .kanban-card.has-progress > .progress-pie,
#kanbanList .kanban-card.has-progress > .ring {position: absolute; right: 7px; top: 7px; width: 24px; height: 24px;}
@@ -48,7 +48,7 @@
#kanbanList .kanban-col[data-type="unclosedProduct"] .kanban-card > .title {white-space: nowrap; line-height: 1;}
#kanbanList .kanban-col[data-type="normalRelease"] .kanban-card > .title {display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center;}
-#kanbanList .kanban-col[data-type="normalRelease"] .kanban-card > .title > .text {display: block; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;}
+#kanbanList .kanban-col[data-type="normalRelease"] .kanban-card > .title > .text {display: block; white-space: nowrap; overflow: hidden;}
#kanbanList .kanban-col[data-type="normalRelease"] .kanban-card > .title.has-icon > .text {margin-right: 5px; max-width: calc(100% - 20px);}
#kanbanList .no-flex .kanban-col[data-type="normalRelease"] .kanban-card > .title {display: block; height: 38px;}
#kanbanList .no-flex .kanban-col[data-type="normalRelease"] .kanban-card > .title > .text {display: inline-block;}
diff --git a/module/product/model.php b/module/product/model.php
index 77955a72af..cad0c55a83 100644
--- a/module/product/model.php
+++ b/module/product/model.php
@@ -2062,8 +2062,19 @@ class productModel extends model
$projectLatestExecutions = array();
$latestExecutionList = array();
+ $today = helper::today();
foreach($executionList as $projectID => $executions)
{
+ foreach($executions as $executionID => &$execution)
+ {
+ /* Judge whether the execution is delayed. */
+ if($execution->status != 'done' and $execution->status != 'closed' and $execution->status != 'suspended')
+ {
+ $delay = helper::diffDate($today, $execution->end);
+ if($delay > 0) $execution->delay = $delay;
+ }
+ }
+
/* Used to computer execution progress. */
$latestExecutionList[key($executions)] = current($executions);