From efc11c183740cad42f64900ae6e479f248c71273 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Tue, 30 Jun 2026 23:03:54 -0400 Subject: [PATCH] feat(ansible): structured playbook-variable fields on the schedule form The Ansible Schedules form only offered a free-form extra-vars textarea, unlike the browse/host run forms which auto-populate a field per declared playbook variable (vars:/vars_prompt:) plus the playbook description. Wire the schedule form to the same shared `_playbook_vars.html` partial: - Playbook + Confirm: this playbook is marked as making significant or destructive changes. Tick to enable running it. @@ -33,13 +38,22 @@ ({{ v.name }}{% if v.required %}, required{% endif %}{% if v.secret %}, secret{% endif %}) + {% if v.secret and _schedule %} + {# Scheduled runs can't prompt, so secret vars are dropped downstream — show + the field disabled rather than inviting silent data loss. #} + + {% else %} {% if v.secret %}{% endif %} + {% endif %} {% endfor %} {% else %} diff --git a/steward/templates/ansible/schedules.html b/steward/templates/ansible/schedules.html index d54fd86..bc21fe7 100644 --- a/steward/templates/ansible/schedules.html +++ b/steward/templates/ansible/schedules.html @@ -75,6 +75,8 @@ {# ── Create / edit form ───────────────────────────────────────────────────── #} {% set p = (editing.params or {}) if editing else {} %} +{% set saved_vars = p.get('extra_vars_map') or {} %} +{% set declared_names = (edit_variables or []) | map(attribute='name') | list %}

{{ "Edit schedule" if editing else "New schedule" }}

@@ -96,7 +98,9 @@
- {% for pb in all_playbooks %} @@ -132,11 +136,29 @@
-
- - + + {# Declared playbook variables (vars:/vars_prompt:) — loaded via HTMX on + playbook change; pre-rendered here in edit mode so saved values show. #} +
+ {% if editing %} + {% set variables = edit_variables %} + {% set description = edit_description %} + {% set category = edit_category %} + {% set confirm = edit_confirm %} + {% set values = saved_vars %} + {% set schedule = true %} + {% include "ansible/_playbook_vars.html" %} + {% endif %}
+ +
+ Extra vars +
+ + +
+