{# Individual task item for composite jobs with streaming support #} {% if task.status == TaskStatusEnum.COMPLETED %} {% set task_status_class = "bg-green-100 text-green-800" %} {% set task_status_icon = "✓" %} {% elif task.status == TaskStatusEnum.FAILED %} {% set task_status_class = "bg-red-100 text-red-800" %} {% set task_status_icon = "✗" %} {% elif task.status == TaskStatusEnum.RUNNING %} {% set task_status_class = "bg-blue-100 text-blue-800" %} {% set task_status_icon = "⟳" %} {% elif task.status == TaskStatusEnum.SKIPPED %} {% set task_status_class = "bg-yellow-100 text-yellow-800" %} {% set task_status_icon = "⏸" %} {% else %} {% set task_status_class = "bg-gray-100 text-gray-800" %} {% set task_status_icon = "◦" %} {% endif %} {% set task_started = task.started_at | format_datetime_browser("%H:%M:%S", browser_tz_offset) if task.started_at else "N/A" %} {% set task_finished = task.completed_at | format_datetime_browser("%H:%M:%S", browser_tz_offset) if task.completed_at else "N/A" %} {% set task_duration = "" %} {% if task.started_at and task.completed_at %} {% set duration = task.completed_at - task.started_at %} {% set task_duration = "({:.1f}s)".format(duration.total_seconds()) %} {% endif %}