feat: cron job run history panel and job model display (#319)

- Jobs page: cron run history panel with job selection and filtering
- Jobs page: model shown as read-only on job cards
- Job form modal: properly typed payloads
- i18n: added runHistory, model keys to all 8 locales
This commit is contained in:
Desmond Zhang
2026-04-30 10:17:25 +10:00
committed by GitHub
parent 6e5f15fd66
commit 2e87cb910c
19 changed files with 510 additions and 39 deletions
+10 -2
View File
@@ -167,6 +167,7 @@ export default {
origin: 'Herkunft',
local: 'Lokal',
repeatCount: 'Wiederholungsanzahl (optional)',
modelPlaceholder: 'Standardmodell',
repeatPlaceholder: 'Leer lassen fur unendlich',
jobCreated: 'Aufgabe erstellt',
jobUpdated: 'Aufgabe aktualisiert',
@@ -175,7 +176,8 @@ export default {
loadFailed: 'Laden der Aufgabe fehlgeschlagen',
jobPaused: 'Aufgabe pausiert',
jobResumed: 'Aufgabe fortgesetzt',
jobTriggered: 'Aufgabe ausgelost',
jobTriggered: 'Job ausgelost',
modelUpdated: 'Modell aktualisiert',
jobDeleted: 'Aufgabe geloscht',
status: {
running: 'Lauft',
@@ -184,6 +186,7 @@ export default {
scheduled: 'Geplant',
},
info: {
model: 'Modell',
schedule: 'Zeitplan',
lastRun: 'Letzte Ausfuhrung',
nextRun: 'Nachste Ausfuhrung',
@@ -196,7 +199,12 @@ export default {
resume: 'Fortsetzen',
resumeJob: 'Aufgabe fortsetzen',
runNow: 'Jetzt ausfuhren',
triggerImmediately: 'Sofort auslosen',
triggerImmediately: 'Sofort auslösen',
},
runHistory: {
title: 'Verlauf',
runs: 'Läufe',
noRuns: 'Kein Verlauf gefunden.',
},
},
+8
View File
@@ -190,6 +190,7 @@ export default {
origin: 'Origin',
local: 'Local',
repeatCount: 'Repeat Count (optional)',
modelPlaceholder: 'Default model',
repeatPlaceholder: 'Leave empty for infinite',
jobCreated: 'Job created',
jobUpdated: 'Job updated',
@@ -199,6 +200,7 @@ export default {
jobPaused: 'Job paused',
jobResumed: 'Job resumed',
jobTriggered: 'Job triggered',
modelUpdated: 'Model updated',
jobDeleted: 'Job deleted',
status: {
running: 'Running',
@@ -207,6 +209,7 @@ export default {
scheduled: 'Scheduled',
},
info: {
model: 'Model',
schedule: 'Schedule',
lastRun: 'Last Run',
nextRun: 'Next Run',
@@ -221,6 +224,11 @@ export default {
runNow: 'Run Now',
triggerImmediately: 'Trigger immediately',
},
runHistory: {
title: 'Run History',
runs: 'runs',
noRuns: 'No run history found.',
},
},
// Skills
+9 -1
View File
@@ -167,6 +167,7 @@ export default {
origin: 'Origen',
local: 'Local',
repeatCount: 'Repeticiones (opcional)',
modelPlaceholder: 'Modelo por defecto',
repeatPlaceholder: 'Dejar vacio para infinito',
jobCreated: 'Tarea creada',
jobUpdated: 'Tarea actualizada',
@@ -175,7 +176,8 @@ export default {
loadFailed: 'Error al cargar la tarea',
jobPaused: 'Tarea en pausa',
jobResumed: 'Tarea reanudada',
jobTriggered: 'Tarea ejecutada',
jobTriggered: 'Job ejecutado',
modelUpdated: 'Modelo actualizado',
jobDeleted: 'Tarea eliminada',
status: {
running: 'En ejecucion',
@@ -184,6 +186,7 @@ export default {
scheduled: 'Programada',
},
info: {
model: 'Modelo',
schedule: 'Programacion',
lastRun: 'Ultima ejecucion',
nextRun: 'Proxima ejecucion',
@@ -198,6 +201,11 @@ export default {
runNow: 'Ejecutar ahora',
triggerImmediately: 'Ejecutar inmediatamente',
},
runHistory: {
title: 'Historial',
runs: 'ejecuciones',
noRuns: 'No se encontró historial.',
},
},
// Skills
+10 -2
View File
@@ -167,6 +167,7 @@ export default {
origin: 'Origine',
local: 'Local',
repeatCount: 'Nombre de repetitions (facultatif)',
modelPlaceholder: 'Modele par defaut',
repeatPlaceholder: 'Laisser vide pour infini',
jobCreated: 'Tache creee',
jobUpdated: 'Tache mise a jour',
@@ -175,7 +176,8 @@ export default {
loadFailed: 'Echec du chargement de la tache',
jobPaused: 'Tache en pause',
jobResumed: 'Tache reprise',
jobTriggered: 'Tache declenchee',
jobTriggered: 'Job declenche',
modelUpdated: 'Modele mis a jour',
jobDeleted: 'Tache supprimee',
status: {
running: 'En cours',
@@ -184,6 +186,7 @@ export default {
scheduled: 'Planifiee',
},
info: {
model: 'Modele',
schedule: 'Planification',
lastRun: 'Derniere execution',
nextRun: 'Prochaine execution',
@@ -196,7 +199,12 @@ export default {
resume: 'Reprendre',
resumeJob: 'Reprendre la tache',
runNow: 'Executer maintenant',
triggerImmediately: 'Declencher immediatement',
triggerImmediately: 'Déclencher immédiatement',
},
runHistory: {
title: 'Historique',
runs: 'exécutions',
noRuns: 'Aucun historique trouvé.',
},
},
+9 -1
View File
@@ -167,6 +167,7 @@ export default {
origin: '配信元',
local: 'ローカル',
repeatCount: '繰り返し回数(任意)',
modelPlaceholder: 'Default model',
repeatPlaceholder: '空白の場合は無制限',
jobCreated: 'ジョブを作成しました',
jobUpdated: 'ジョブを更新しました',
@@ -176,6 +177,7 @@ export default {
jobPaused: 'ジョブを一時停止しました',
jobResumed: 'ジョブを再開しました',
jobTriggered: 'ジョブをトリガーしました',
modelUpdated: 'Model updated',
jobDeleted: 'ジョブを削除しました',
status: {
running: '実行中',
@@ -184,7 +186,8 @@ export default {
scheduled: 'スケジュール済み',
},
info: {
schedule: 'スケジュール',
model: 'Model',
schedule: 'Schedule',
lastRun: '前回実行',
nextRun: '次回実行',
deliver: '配信',
@@ -198,6 +201,11 @@ export default {
runNow: '今すぐ実行',
triggerImmediately: 'すぐにトリガー',
},
runHistory: {
title: '実行履歴',
runs: '件',
noRuns: '実行履歴がありません。',
},
},
// スキル
+9 -1
View File
@@ -167,6 +167,7 @@ export default {
origin: '출처',
local: '로컬',
repeatCount: '반복 횟수 (선택)',
modelPlaceholder: 'Default model',
repeatPlaceholder: '비워두면 무한 반복',
jobCreated: '작업이 생성되었습니다',
jobUpdated: '작업이 업데이트되었습니다',
@@ -176,6 +177,7 @@ export default {
jobPaused: '작업이 일시 정지되었습니다',
jobResumed: '작업이 재개되었습니다',
jobTriggered: '작업이 실행되었습니다',
modelUpdated: 'Model updated',
jobDeleted: '작업이 삭제되었습니다',
status: {
running: '실행 중',
@@ -184,7 +186,8 @@ export default {
scheduled: '예약됨',
},
info: {
schedule: '스케줄',
model: 'Model',
schedule: 'Schedule',
lastRun: '마지막 실행',
nextRun: '다음 실행',
deliver: '전송',
@@ -198,6 +201,11 @@ export default {
runNow: '즉시 실행',
triggerImmediately: '즉시 실행',
},
runHistory: {
title: '실행 기록',
runs: '회 실행',
noRuns: '실행 기록이 없습니다.',
},
},
// 스킬
+9 -1
View File
@@ -167,6 +167,7 @@ export default {
origin: 'Origem',
local: 'Local',
repeatCount: 'Contagem de repeticoes (opcional)',
modelPlaceholder: 'Modelo padrao',
repeatPlaceholder: 'Deixar vazio para infinito',
jobCreated: 'Tarefa criada',
jobUpdated: 'Tarefa atualizada',
@@ -175,7 +176,8 @@ export default {
loadFailed: 'Falha ao carregar a tarefa',
jobPaused: 'Tarefa pausada',
jobResumed: 'Tarefa retomada',
jobTriggered: 'Tarefa acionada',
jobTriggered: 'Job acionado',
modelUpdated: 'Modelo atualizado',
jobDeleted: 'Tarefa excluida',
status: {
running: 'Em execucao',
@@ -184,6 +186,7 @@ export default {
scheduled: 'Agendada',
},
info: {
model: 'Modelo',
schedule: 'Agendamento',
lastRun: 'Ultima execucao',
nextRun: 'Proxima execucao',
@@ -198,6 +201,11 @@ export default {
runNow: 'Executar agora',
triggerImmediately: 'Acionar imediatamente',
},
runHistory: {
title: 'Histórico',
runs: 'execuções',
noRuns: 'Nenhum histórico encontrado.',
},
},
// Skills
+9 -1
View File
@@ -190,6 +190,7 @@ export default {
origin: '来源',
local: '本地',
repeatCount: '重复次数(可选)',
modelPlaceholder: 'Default model',
repeatPlaceholder: '留空表示无限重复',
jobCreated: '任务已创建',
jobUpdated: '任务已更新',
@@ -199,6 +200,7 @@ export default {
jobPaused: '任务已暂停',
jobResumed: '任务已恢复',
jobTriggered: '任务已触发',
modelUpdated: 'Model updated',
jobDeleted: '任务已删除',
status: {
running: '运行中',
@@ -207,7 +209,8 @@ export default {
scheduled: '已调度',
},
info: {
schedule: '调度',
model: 'Model',
schedule: 'Schedule',
lastRun: '上次运行',
nextRun: '下次运行',
deliver: '投递',
@@ -221,6 +224,11 @@ export default {
runNow: '立即运行',
triggerImmediately: '立即触发',
},
runHistory: {
title: '运行历史',
runs: '次运行',
noRuns: '暂无运行历史。',
},
},
// 技能