diff --git a/airflow/www/static/js/task-instances.js b/airflow/www/static/js/task-instances.js
index 39b36badbe548f..a106c00d4912a8 100644
--- a/airflow/www/static/js/task-instances.js
+++ b/airflow/www/static/js/task-instances.js
@@ -20,12 +20,18 @@
/* global window, dagTZ, moment, convertSecsToHumanReadable */
// We don't re-import moment again, otherwise webpack will include it twice in the bundle!
-import { defaultFormat, formatDateTime } from './datetime-utils';
import { escapeHtml } from './base';
+import { defaultFormat, formatDateTime } from './datetime-utils';
function makeDateTimeHTML(start, end) {
+ // check task ended or not
+ if (end && end instanceof moment) {
+ return (
+ `Started: ${start.format(defaultFormat)}
Ended: ${end.format(defaultFormat)}
`
+ )
+ }
return (
- `Started: ${start.format(defaultFormat)}
Ended: ${end.format(defaultFormat)}
`
+ `Started: ${start.format(defaultFormat)}
Ended: Not ended yet
`
)
}
@@ -47,13 +53,15 @@ function generateTooltipDateTimes(startDate, endDate, dagTZ) {
// Generate User's Local Start and End Date
startDate.tz(localTZ);
tooltipHTML += `
Local: ${startDate.format(tzFormat)}
`;
- tooltipHTML += makeDateTimeHTML(startDate, endDate.tz(localTZ));
+ const localEndDate = endDate && endDate instanceof moment ? endDate.tz(localTZ) : endDate;
+ tooltipHTML += makeDateTimeHTML(startDate, localEndDate);
// Generate DAG's Start and End Date
if (dagTZ !== 'UTC' && dagTZ !== localTZ) {
startDate.tz(dagTZ);
tooltipHTML += `
DAG's TZ: ${startDate.format(tzFormat)}
`;
- tooltipHTML += makeDateTimeHTML(startDate, endDate.tz(dagTZ));
+ const dagTZEndDate = endDate && endDate instanceof moment ? endDate.tz(dagTZ) : endDate;
+ tooltipHTML += makeDateTimeHTML(startDate, dagTZEndDate);
}
return tooltipHTML;