- /ansible/playbooks lists every playbook across sources: what it says it does, its category and destructive flag, how it last ran; the whole row opens the playbook. A source with none is one quiet line. - /ansible/playbooks/<source>/<path>: the verdict (what it does, flagged destructive, last ran), the run form in place (dry run beside the button, options folded), the schedules that use it, its recent runs, the playbook itself folded. ?from=<run> fills the form from that run: Run again on a run's page. - /ansible/browse, its view page and the /run-form fragment are gone, not redirected (rule 122); every link points at the new pages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 lines
661 B
HTML
13 lines
661 B
HTML
{# ansible/_macros.html — small phrasings the Ansible pages share. #}
|
|
|
|
{# A schedule's interval in words: "daily", "hourly", "every 6h". #}
|
|
{% macro interval_words(secs) -%}
|
|
{%- set named = {300: "every 5 min", 3600: "hourly", 21600: "every 6h", 43200: "every 12h", 86400: "daily", 604800: "weekly"} -%}
|
|
{{ named.get(secs) or ("every " ~ (secs|duration)) }}
|
|
{%- endmacro %}
|
|
|
|
{# A run's or host's recap parts (ansible.recap) as one line. #}
|
|
{% macro recap_words(parts) -%}
|
|
{% for text, tone in parts %}{% if not loop.first %} · {% endif %}{% if tone %}<span class="tone-{{ tone }}">{{ text }}</span>{% else %}{{ text }}{% endif %}{% endfor %}
|
|
{%- endmacro %}
|