feat(cron): monitor-mode jobs (monitor_script/monitor_url) + blocked_config status (issue #861) (#871)

- CronJob model gains optional monitor_script/monitor_url (additive-safe)
- Job editor: Monitor mode section (off/script/url) with XOR source clearing;
  disabled while no-agent is set (backend invariant); new jobs apply monitor
  via create -> follow-up PUT with rollback delete on failure (the REST create
  model drops the fields)
- Job list/details: blocked_config renders as a distinct error badge
  ('Blocked (config)'), no_change as informational; monitor source shown in
  run details

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57andM57 authored and GitHub committed 2026-08-10 15:35:05 +03:00
1 parent 4a034684bb
commit a9cb89a925
7 files changed
+448 -21

No files matched your search

+9
View File
@@ -795,6 +795,15 @@
<string name="cron_edit_field_script">Script</string>
<string name="cron_edit_field_workdir">Work Directory</string>
<string name="cron_edit_field_no_agent">No agent (script-only)</string>
<string name="cron_edit_monitor_mode">Monitor mode</string>
<string name="cron_edit_monitor_off">Off</string>
<string name="cron_edit_monitor_script">Script</string>
<string name="cron_edit_monitor_url">URL</string>
<string name="cron_edit_monitor_script_field">Monitor script</string>
<string name="cron_edit_monitor_url_field">Monitor URL</string>
<string name="cron_edit_monitor_hint">Agent runs only when the source output changes</string>
<string name="cron_status_blocked_config">Blocked (config)</string>
<string name="cron_status_no_change">No change</string>
<string name="cron_edit_hint_schedule">e.g. 0 9 * * * or every 2h</string>
<string name="cron_edit_hint_deliver">e.g. origin, local, all, or telegram:chat_id</string>
<string name="cron_edit_hint_time">HH:MM</string>