@extends('layouts.dashboard') @section('content') @php /** * Advanced -> Scheduled tasks. * * Every job ships disabled, so this screen is where the operator opts in one at a time. * It deliberately shows the LAST RUN beside each switch: an enabled job with no visible * result is indistinguishable from a broken one, and that uncertainty is the main reason * scheduled work goes unnoticed when it stops. * * @var array $jobs registry from Cron::jobs() * @var array $lastRuns most recent run per job * @var array $enabled job key => bool * @var string $token shared secret for the web-cron URL */ $statusPill = [ 'ok' => 'qm-pill-green', 'failed' => 'qm-pill-red', 'skipped' => 'qm-pill-grey', 'running' => 'qm-pill-amber', ]; $onCount = count(array_filter($enabled)); // On the LOCKED public preview the token is bullets like every other secret (demo_hidden): the // URL is a password, and the server path would name the account. Both read in full anywhere else. $webUrl = rtrim(route('cron.run'), '/') . '?token=' . demo_hidden($token); @endphp

{{ t_raw('admin.cron.content_heading') }}

{{ t_raw('admin.cron.n_enabled', [':n' => $onCount, ':total' => count($jobs)]) }}
@foreach ($jobs as $key => $job) @php $last = $lastRuns[$key] ?? null; $isOn = !empty($enabled[$key]); @endphp @endforeach
{{ t_raw('admin.cron.caption') }}
{{ t_raw('admin.cron.col_task') }} {{ t_raw('admin.cron.col_frequency') }} {{ t_raw('admin.cron.col_last_run') }} {{ t_raw('common.actions') }}
{{ $job['label'] }} {{ $job['desc'] }}
{{ $job['every'] }} @if ($last) {{ t_raw('admin.cron.status_' . $last['status']) }} {!! fmt_datetime($last['started_at']) !!} · {{ t_raw('admin.cron.affected_n', [':n' => (int) $last['affected']]) }}@if (!empty($last['message'])) · {{ (string) $last['message'] }}@endif @else {{ t_raw('admin.cron.never_run') }} @endif
@php // Run now uses the identical path the scheduler does, so what the // operator sees here is exactly what cron will do. @endphp
@csrf
@csrf

{{ t_raw('admin.cron.setup_heading') }}

{{ t_raw('admin.cron.setup_cli_help') }}
{{ t_raw('admin.cron.setup_web_help') }}
@endsection