Smart.JobPanel shows what the station does on its own, in front of the people it does it to.

A job is something that happens because of the clock rather than because of a person — a night setback at ten, a pump exercised every Sunday, a report on the hour. An operator who does not know one exists will spend a shift wondering who moved the setpoint. Each row answers three questions: what it does, when it runs, and how it went last time.

A station’s jobs

A job that failed says so where it is read, not only in a log. A switched-off job keeps its place and fades rather than disappearing: an absent job and a disabled one are different things, and the difference matters at three in the morning.

The panel raises jobRun and jobToggle; this page does the work.

It never runs anything itself

Run now raises jobRun and the switch raises jobToggle; the host does the work through the station, which records who asked. When a job next runs is the station’s to say — it fires on the schedule, so it is the only thing entitled to read one — and a host passes those words down as when.text. The Shift report row shows one.

What each person may do

Running a job and changing what the station does on its own are different rights. An operator may run the night setback early; only an engineer may switch it off. allowToggle set to false keeps Run now and removes the switch.

readOnly removes every control rather than disabling it. Somebody with view rights still sees every job and how it last went.