| 1 | {@ include(common/header) @} |
| 2 | {@ include(admin/nav) @} |
| 3 | <h1 class="paragraph">Cron</h1> |
| 4 | {@ if (!$enabled) @} |
| 5 | <p class="paragraph">CRON_ENABLEDが無効です。config.phpでtrueにして、システムのcrontabにcron.phpを追加して下さい(READMEを参照)。</p> |
| 6 | {@ else @} |
| 7 | {@ if ($stale) @} |
| 8 | <p class="admin-warn">Cron(cron.php)が{{ $tick === null ? 'まだ実行されていません' : '最近実行されていません(前回:'.$tick.')' }}。システムのcrontabに追加して下さい:<code>* * * * * php {{ ROOT }}/cron.php</code></p> |
| 9 | {@ else @} |
| 10 | <p class="paragraph">前回の実行:{{ $tick }}</p> |
| 11 | {@ endif @} |
| 12 | {@ if (empty($jobs)) @} |
| 13 | <p class="paragraph">ジョブは有りません。</p> |
| 14 | {@ else @} |
| 15 | <div class="admin-scroll"> |
| 16 | <table class="admin-table"> |
| 17 | <thead><tr><th>ID</th><th>予定・タスク</th><th>次回</th><th>前回</th><th>エラー</th><th></th></tr></thead> |
| 18 | <tbody> |
| 19 | {@ foreach ($jobs as $j) @} |
| 20 | <tr{{{ $j['active'] ? '' : ' class="admin-off"' }}}> |
| 21 | <td>{{ $j['id'] }}</td> |
| 22 | <td> |
| 23 | <form method="post" action="/admin/cron" class="admin-row"> |
| 24 | <input type="hidden" name="csrf_token" value="{{ $csrf }}" /> |
| 25 | <input type="hidden" name="id" value="{{ $j['id'] }}" /> |
| 26 | <input type="text" name="schedule" value="{{ $j['schedule'] }}" size="14" /> |
| 27 | <input type="text" name="task" value="{{ $j['task'] }}" size="12" list="admin-tasks" /> |
| 28 | <button name="do" value="edit">変更</button> |
| 29 | </form> |
| 30 | {@ if (!$j['registered']) @} |
| 31 | <small class="admin-warn">未登録のタスク</small> |
| 32 | {@ endif @} |
| 33 | </td> |
| 34 | <td>{{ $j['next'] }}</td> |
| 35 | <td>{{ $j['last'] }}</td> |
| 36 | <td>{{ $j['error'] }}</td> |
| 37 | <td> |
| 38 | <form method="post" action="/admin/cron" class="admin-row"> |
| 39 | <input type="hidden" name="csrf_token" value="{{ $csrf }}" /> |
| 40 | <input type="hidden" name="id" value="{{ $j['id'] }}" /> |
| 41 | <button name="do" value="toggle">{{ $j['active'] ? '無効にする' : '有効にする' }}</button> |
| 42 | <button name="do" value="run">今すぐ実行</button> |
| 43 | <button name="do" value="delete" class="danger">削除</button> |
| 44 | </form> |
| 45 | </td> |
| 46 | </tr> |
| 47 | {@ endforeach @} |
| 48 | </tbody> |
| 49 | </table> |
| 50 | </div> |
| 51 | {@ endif @} |
| 52 | <h2 class="paragraph">ジョブを追加</h2> |
| 53 | <form method="post" action="/admin/cron" class="admin-row"> |
| 54 | <input type="hidden" name="csrf_token" value="{{ $csrf }}" /> |
| 55 | <input type="text" name="schedule" placeholder="*/10 * * * *" required="required" size="14" /> |
| 56 | <input type="text" name="task" placeholder="タスク" required="required" size="12" list="admin-tasks" /> |
| 57 | <button name="do" value="add">追加</button> |
| 58 | </form> |
| 59 | <p class="paragraph"><small>予定は「分 時 日 月 曜日」又は@yearly・@monthly・@weekly・@daily・@hourly。登録されたタスク:{{ empty($tasks) ? '無し' : implode('、', $tasks) }}</small></p> |
| 60 | <datalist id="admin-tasks"> |
| 61 | {@ foreach ($tasks as $t) @} |
| 62 | <option value="{{ $t }}"></option> |
| 63 | {@ endforeach @} |
| 64 | </datalist> |
| 65 | {@ endif @} |
| 66 | {@ include(common/footer) @} |