1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| {% import ( "{{{ .Package }}}/app" "{{{ .Package }}}/app/controller/cutil" "{{{ .Package }}}/app/lib/schedule" "{{{ .Package }}}/app/util" "{{{ .Package }}}/views/components" "{{{ .Package }}}/views/layout" ) %}
{% code type ScheduleDetail struct { layout.Basic Job *schedule.Job Result *schedule.Result ExecCount int } %}
{% func (p *ScheduleDetail) Body(as *app.State, ps *cutil.PageState) %} <div class="card"> <div class="right">{%s util.StringPlural(p.ExecCount, "runs") %}</div> <h3>Scheduled Job [{%s p.Job.String() %}]</h3> <div class="mt overflow full-width"> <table class="min-200 expanded"> <tbody> <tr> <th class="shrink">ID</th> <td>{%s p.Job.ID.String() %}</td> </tr> <tr> <th class="shrink">Name</th> <td>{%s p.Job.Name %}</td> </tr> <tr> <th class="shrink">Tags</th> <td>{%s util.StringJoin(p.Job.Tags, ", ") %}</td> </tr> <tr> <th class="shrink">Last Run</th> <td>{%s util.TimeToFullMS(p.Job.Last) %}</td> </tr> <tr> <th class="shrink">Next Run</th> <td>{%s util.TimeToFullMS(p.Job.Next) %}</td> </tr> <tr> <th class="shrink">Runs</th> <td>{%d p.ExecCount %}</td> </tr> </tbody> </table> </div> </div> {%- if p.Result != nil -%} <div class="card"> <div class="right">{%s util.MicrosToMillis(p.Result.DurationMicro) %}</div> <h3>Most Recent Result</h3> <em>{%s util.TimeToFull(&p.Result.Occurred) %}</em> <div class="mt">{%= components.JSON(p.Result.Returned) %}</div> </div> {%- endif -%} {% endfunc %}
|