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;