{# Recurring task fragments shared by the page and its turbo-stream refresh (recurring-jobs.html / recurring-jobs-schedule.html), so pause state changed from anywhere — API, another browser — redraws the badge and the Pause/Resume button on the next refresh instead of only "Next Run". Usage: {% import "_recurring.html" as recurring %} {{ recurring::badge(paused_at=task.paused_at) }} {{ recurring::actions(base_path=base_path, id=task.id, paused_at=task.paused_at, pausable=recurring_pause, compact=false) }} `compact=true` renders icon-only buttons for the mobile cards. #} {% macro badge(paused_at) %} {%- if paused_at -%} Paused {%- endif -%} {% endmacro badge %} {% macro actions(base_path, id, paused_at, pausable, compact=false) %} {%- set outline = "inline-flex items-center justify-center whitespace-nowrap rounded-md text-xs font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-gray-200 bg-white hover:bg-gray-100 hover:text-gray-900 h-8 px-3 py-1" -%} {%- set danger = "inline-flex items-center justify-center whitespace-nowrap rounded-md text-xs font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-red-600 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-red-300 bg-white text-red-700 hover:bg-red-50 h-8 px-3 py-1" -%} {%- if pausable -%} {%- if paused_at -%}
{%- else -%} {%- endif -%} {%- endif -%} {% endmacro actions %}