diff --git a/dashboard/app/templates/main.html b/dashboard/app/templates/main.html index 285070ba8515..470f4432b78d 100644 --- a/dashboard/app/templates/main.html +++ b/dashboard/app/templates/main.html @@ -7,19 +7,41 @@ + {{template "head" .Header}} syzbot + {{template "header" .Header}} - {{if $.Decommissioned}}

This kernel is DECOMMISSIONED

{{end}} - {{if or (not $.BugFilter.Filter.Any) ($.BugFilter.Filter.ManagerName)}} - {{template "manager_list" $.Managers}} - {{end}} - {{template "bug_filter" $.BugFilter}} - {{range $group := $.Groups}} - {{template "bug_list" $group}} - {{end}} +
+ {{if $.Decommissioned}}

This kernel is DECOMMISSIONED

{{end}} + {{if or (not $.BugFilter.Filter.Any) ($.BugFilter.Filter.ManagerName)}} +
+
+
+ {{template "manager_list" $.Managers}} +
+
+
+ {{end}} +
+
+
+ {{template "bug_filter" $.BugFilter}} +
+
+
+ {{range $group := $.Groups}} +
+
+
+ {{template "bug_list" $group}} +
+
+
+ {{end}} +
- + \ No newline at end of file diff --git a/dashboard/app/templates/templates.html b/dashboard/app/templates/templates.html index f675a0251cd7..e7a6dbcf31b9 100644 --- a/dashboard/app/templates/templates.html +++ b/dashboard/app/templates/templates.html @@ -10,667 +10,743 @@ {{/* Common page head part, invoked with *uiHeader */}} {{define "head"}} - - - {{if .AnalyticsTrackingID}} - - - {{end}} + + + + + +{{if .AnalyticsTrackingID}} + + +{{end}} {{end}} {{/* Common page header, invoked with *uiHeader */}} {{define "header"}} -
- - - - - - -
-

syzbot

-
- -
- {{if not (eq .URLPath "/admin")}} - - {{end}} -
-
+ + {{end}} -{{/* List of enabled filters, invoked with *uiBugFilter */}} -{{define "bug_filter"}} -{{if .Filter.Any}} + + {{/* List of enabled filters, invoked with *uiBugFilter */}} + {{define "bug_filter"}} + {{if .Filter.Any}} Applied filters: {{if .Filter.Manager}} - Manager={{.Filter.Manager}} ({{link (call .DropURL "manager" "") "drop"}}) + Manager={{.Filter.Manager}} ({{link (call .DropURL "manager" "") "drop"}}) {{end}} {{if .Filter.OnlyManager}} - Only Manager={{.Filter.OnlyManager}} ({{link (call .DropURL "only_manager" "") "drop"}}) + Only Manager={{.Filter.OnlyManager}} ({{link (call .DropURL "only_manager" "") "drop"}}) {{end}} {{if .Filter.NoSubsystem}} - NoSubsystem={{.Filter.NoSubsystem}} ({{link (call .DropURL "no_subsystem" "") "drop"}}) + NoSubsystem={{.Filter.NoSubsystem}} ({{link (call .DropURL "no_subsystem" "") "drop"}}) {{end}} {{$drop := .DropURL}} {{range .Filter.Labels}} - Label={{.}} ({{link (call $drop "label" .) "drop"}}) + Label={{.}} ({{link (call $drop "label" .) "drop"}}) {{end}} -
-{{end}} -{{end}} -{{/* List of bugs, invoked with *uiBugGroup */}} -{{define "bug_list"}} -{{if .}} -{{if .Bugs}} - - {{if $.Caption}} - {{if $.Fragment}} - {{end}} - - - {{if $.ShowNamespace}} - - {{end}} - - - - - - - - - {{if $.DispLastAct}} - - {{end}} - {{if $.DispDiscuss}} - - {{end}} - {{if $.ShowPatched}} - - {{end}} - {{if $.ShowStatus}} - - {{end}} - {{if $.ShowPatch}} - - - {{end}} - - - - {{range $b := .Bugs}} - - {{if $.ShowNamespace}}{{end}} - - - - - - - - - {{if $.DispLastAct}} - - {{end}} - {{if $.DispDiscuss}} - {{$d := $b.Discussions}} - - {{end}} - {{if $.ShowPatched}} - - {{end}} - {{if $.ShowStatus}} - - {{end}} - {{if $.ShowPatch}} - - - {{end}} - {{end}} - -
- {{else}} - - {{end}} - {{$.Caption}} ({{len $.Bugs}}): - {{if $.Fragment}}{{end}} -
KernelTitle - Rank - {{template "info_link" "https://github.com/google/syzkaller/blob/master/pkg/report/README.md"}} - ReproCause bisectFix bisectCountLastReportedLast activityDiscussionsPatchedStatusClosedPatch
{{$b.Namespace}} - {{$b.Title}} - {{- range $b.Labels}} - {{link .Link .Name}} - {{- end}} - {{$b.ImpactScore}}{{formatReproLevel $b.ReproLevel}}{{print $b.BisectCause}}{{print $b.BisectFix}}{{$b.NumCrashes}}{{formatLateness $.Now $b.LastTime}} - {{if $b.ExternalLink}} - {{formatLateness $.Now $b.ReportedTime}} - {{else}} - {{formatLateness $.Now $b.ReportedTime}} - {{end}} - {{formatLateness $.Now $b.LastActivity}} - {{- if not $d.LastPatchMessage.IsZero -}} - PATCH [{{formatLateness $.Now $d.LastPatchMessage}}] - {{- else if $d.ExternalMessages -}} - 💬 {{$d.ExternalMessages}} [{{formatLateness $.Now $d.LastMessage}}] - {{- end -}} - {{len $b.PatchedOn}}/{{$b.NumManagers}} - {{if $b.ExternalLink}} - {{$b.Status}} - {{else}} - {{$b.Status}} - {{end}} - {{formatLateness $.Now $b.ClosedTime}}{{template "fix_commits" $b.Commits}}
-{{end}} -{{end}} -{{end}} -{{/* List of managers, invoked with []*uiManager */}} -{{define "manager_list"}} -{{if .}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{range $mgr := .List}} - - - - - - - - {{if $mgr.TotalExecsBad}} - - {{else}} - + + + + + {{/* List of fixing commits, invoked with []*uiCommit */}} + {{define "fix_commits"}} + {{range $com := .}} + + {{if $com.Hash}} + {{formatTagHash $com.Hash}} + {{end}} + {{link $com.Link $com.Title}} + {{end}} - {{with $build := $mgr.CurrentBuild}} - - - - - - - - {{else}} - - - - - - - {{end}} - - - - {{end}} - -
Instances [{{link .RepoLink "tested repos"}}]:
NameLast activeUptimeCorpusCoverage {{template "info_link" "https://github.com/google/syzkaller/blob/master/docs/coverage.md"}}CrashesExecsKernel buildsyzkaller buildBugs
CommitConfigFreshnessStatusCommitFreshnessStatusAllOnly
{{link $mgr.PageLink $mgr.Name}}{{formatLateness $mgr.Now $mgr.LastActive}}{{formatDuration $mgr.CurrentUpTime}}{{formatStat $mgr.MaxCorpus}} - {{if $mgr.CoverLink}} - + {{/* List of bugs, invoked with *uiBugGroup */}} + {{define "bug_list"}} + {{if .}} + {{if .Bugs}} + + + {{if $.Caption}} + {{if $.Fragment}} + + {{end}} + + + {{if $.ShowNamespace}} + + {{end}} + + + + + + + + + {{if $.DispLastAct}} + + {{end}} + {{if $.DispDiscuss}} + + {{end}} + {{if $.ShowPatched}} + + {{end}} + {{if $.ShowStatus}} + + {{end}} + {{if $.ShowPatch}} + + + {{end}} + + + + {{range $b := .Bugs}} + + {{if $.ShowNamespace}}{{end}} + + + + + + + + + {{if $.DispLastAct}} + + {{end}} + {{if $.DispDiscuss}} + {{$d := $b.Discussions}} + + {{end}} + {{if $.ShowPatched}} + + {{end}} + {{if $.ShowStatus}} + + {{end}} + {{if $.ShowPatch}} + + + {{end}} + + {{end}} + +
+ + {{else}} + + {{end}} + {{$.Caption}} ({{len $.Bugs}}): + {{if $.Fragment}} + + {{end}} +
Kernel + Title + + Rank + {{template "info_link" + "https://github.com/google/syzkaller/blob/master/pkg/report/README.md"}} + Repro + Cause + bisectFix + bisectCount + LastReportedLast activityDiscussions + PatchedStatus + Closed + Patch +
{{$b.Namespace}} + {{$b.Title}} + {{- range $b.Labels}} + {{link .Link .Name}} + {{- end}} + {{$b.ImpactScore}}{{formatReproLevel $b.ReproLevel}}{{print $b.BisectCause}}{{print $b.BisectFix}}{{$b.NumCrashes}} + {{formatLateness $.Now $b.LastTime}} + {{if $b.ExternalLink}} + {{formatLateness $.Now $b.ReportedTime}} + {{else}} + {{formatLateness $.Now $b.ReportedTime}} + {{end}} + {{formatLateness $.Now $b.LastActivity}} + + {{- if not $d.LastPatchMessage.IsZero -}} + PATCH [{{formatLateness $.Now $d.LastPatchMessage}}] + {{- else if $d.ExternalMessages -}} + 💬 {{$d.ExternalMessages}} [{{formatLateness $.Now + $d.LastMessage}}] + {{- end -}} + + {{len $b.PatchedOn}}/{{$b.NumManagers}} + {{if $b.ExternalLink}} + {{$b.Status}} + {{else}} + {{$b.Status}} + {{end}} + {{formatLateness $.Now $b.ClosedTime}}{{template "fix_commits" $b.Commits}}
+ {{end}} + {{end}} + {{end}} + + + {{/* List of managers, invoked with []*uiManager */}} + {{define "manager_list"}} + {{if .}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{range $mgr := .List}} + + + + + + + + {{if $mgr.TotalExecsBad}} + + {{else}} + + {{end}} + {{with $build := $mgr.CurrentBuild}} + + + + + + + + {{else}} + + + + + + + + {{end}} + + + + {{end}} + +
+ Instances + + tested repos + +
NameActiveUptimeCorpusCoverage {{template "info_link" "https://github.com/google/syzkaller/blob/master/docs/coverage.md"}}CrashesExecsKernel buildsyzkaller buildBugs +
CommitConfigFreshnessStatusCommitFreshnessStatusAllOnly
{{link $mgr.PageLink $mgr.Name}}{{formatLateness $mgr.Now $mgr.LastActive}}{{formatDuration $mgr.CurrentUpTime}}{{formatStat $mgr.MaxCorpus}} + {{if $mgr.CoverLink}} + + {{end}} + {{formatStat $mgr.MaxCover}} + {{if $mgr.CoverLink}} + + {{end}} + {{formatStat $mgr.TotalCrashes}}broken{{formatStat $mgr.TotalExecs}}{{link + $build.KernelCommitLink (formatTagHash $build.KernelCommit)}}{{link $build.KernelConfigLink ".config"}}{{formatLateness $mgr.Now + $build.KernelCommitDate}}{{if $mgr.FailedBuildBugLink}}failing{{end}}{{link $build.SyzkallerCommitLink (formatShortHash + $build.SyzkallerCommit)}}{{formatLateness $mgr.Now + $build.SyzkallerCommitDate}}{{if $mgr.FailedSyzBuildBugLink}}failing{{end}}allonly
{{end}} - {{formatStat $mgr.MaxCover}} - {{if $mgr.CoverLink}} -
{{end}} -
{{formatStat $mgr.TotalCrashes}}broken{{formatStat $mgr.TotalExecs}}{{link $build.KernelCommitLink (formatTagHash $build.KernelCommit)}}{{link $build.KernelConfigLink ".config"}}{{formatLateness $mgr.Now $build.KernelCommitDate}}{{if $mgr.FailedBuildBugLink}}failing{{end}}{{link $build.SyzkallerCommitLink (formatShortHash $build.SyzkallerCommit)}}{{formatLateness $mgr.Now $build.SyzkallerCommitDate}}{{if $mgr.FailedSyzBuildBugLink}}failing{{end}}allonly
-{{end}} -{{end}} -{{/* List of fixing commits, invoked with []*uiCommit */}} -{{define "fix_commits"}} -{{range $com := .}} - - {{if $com.Hash}} - {{formatTagHash $com.Hash}} - {{end}} - {{link $com.Link $com.Title}} - -{{end}} -{{end}} - -{{/* Bisection result, invoked with *uiJob */}} -{{/* Show bisection results */}} -{{define "bisect_results"}} -{{if .}} - {{$causeJob := 1}} - {{$fixJob := 2}} - {{if .ErrorLink}} - {{if eq .Type $causeJob}} + {{/* Bisection result, invoked with *uiJob */}} + {{/* Show bisection results */}} + {{define "bisect_results"}} + {{if .}} + {{$causeJob := 1}} + {{$fixJob := 2}} + {{if .ErrorLink}} + {{if eq .Type $causeJob}} Cause bisection: failed - {{else if eq .Type $fixJob}} + {{else if eq .Type $fixJob}} {{if .FixCandidate}} - Fix candidate bisection: failed + Fix candidate bisection: failed {{else}} - Fix bisection: failed + Fix bisection: failed + {{end}} {{end}} - {{end}} - ({{link .ErrorLink "error log"}}{{if .LogLink}}, {{link .LogLink "bisect log"}}{{end}})
- {{else if .Commit}} - {{if eq .Type $causeJob}} + ({{link .ErrorLink "error log"}}{{if .LogLink}}, {{link .LogLink "bisect log"}}{{end}})
+ {{else if .Commit}} + {{if eq .Type $causeJob}} Cause bisection: introduced by - {{else if eq .Type $fixJob}} + {{else if eq .Type $fixJob}} {{if .FixCandidate}} - Fix commit to backport + Fix commit to backport {{else}} - Fix bisection: fixed by + Fix bisection: fixed by + {{end}} {{end}} - {{end}} - ({{link .LogLink "bisect log"}}) {{print .Flags}}:
- - {{if .FixCandidate}}tree: {{link .KernelLink .KernelAlias}}
{{end}} - commit {{.Commit.Hash}}
- Author: {{.Commit.Author}}
- Date: {{formatKernelTime .Commit.Date}}
-
-   {{link .Commit.Link .Commit.Title}}
-

- {{else if .Commits}} - {{if eq .Type $causeJob}} + ({{link .LogLink "bisect log"}}) {{print .Flags}}:
+ + {{if .FixCandidate}}tree: {{link .KernelLink .KernelAlias}}
{{end}} + commit {{.Commit.Hash}}
+ Author: {{.Commit.Author}}
+ Date: {{formatKernelTime .Commit.Date}}
+
+   {{link .Commit.Link .Commit.Title}}
+

+ {{else if .Commits}} + {{if eq .Type $causeJob}} Cause bisection: the cause commit could be any of - {{else if eq .Type $fixJob}} + {{else if eq .Type $fixJob}} {{if .FixCandidate}}Fix candidate detection{{else}}Fix bisection{{end}} - the fix commit could be any of + the fix commit could be any of {{end}} - ({{link .LogLink "bisect log"}}):
- - {{range $com := .Commits}} -   {{formatTagHash $com.Hash}} {{link $com.Link $com.Title}}
- {{end}} -
- {{else}} - {{if eq .Type $causeJob}} + ({{link .LogLink "bisect log"}}):
+ + {{range $com := .Commits}} +   {{formatTagHash $com.Hash}} {{link $com.Link $com.Title}}
+ {{end}} +
+ {{else}} + {{if eq .Type $causeJob}} Cause bisection: the issue happens on the oldest tested release - {{else if eq .Type $fixJob}} + {{else if eq .Type $fixJob}} {{if .FixCandidate}}Fix candidate detection:{{else}}Fix bisection:{{end}} - the issue occurs on the latest tested release - {{end}} - ({{link .LogLink "bisect log"}})
- {{end}} - {{if .CrashLogLink}} - Crash: {{link .CrashReportLink .CrashTitle}} ({{link .CrashLogLink "log"}})
- Repro: {{optlink .Crash.ReproCLink "C"}} - {{optlink .Crash.ReproSyzLink "syz"}} - {{optlink .Crash.KernelConfigLink ".config"}}
- {{end}} - - {{if not .Reported}}[report pending]
{{end}} - {{optlink .RestartJobLink "🔄 retry this bisection"}}   - {{optlink .InvalidateJobLink "❌ mark as invalid"}} -{{end}} -{{end}} - -{{/* List of fixing commits, invoked with *uiCrashTable */}} -{{/* Show crashes */}} -{{define "crash_list"}} -{{if .}} - - {{if .Caption}}{{end}} - - - - - - - - - - - - - - - - - - - {{range $b := .Crashes}} - - - - - - - - - - - - - - - - {{end}} - -
{{.Caption}}:
TimeKernelCommitSyzkallerConfigLogReportSyz reproC reproVM infoAssets (help?)ManagerTitle
{{formatTime $b.Time}}{{$b.KernelAlias}}{{link $b.KernelCommitLink (formatTagHash $b.KernelCommit)}}{{link $b.SyzkallerCommitLink (formatShortHash $b.SyzkallerCommit)}}{{if $b.KernelConfigLink}}.config{{end}}{{if $b.LogLink}}{{if $b.LogHasStrace}}strace{{else}}console{{end}} log{{end}}{{if $b.ReportLink}}report{{end}}{{if $b.ReproSyzLink}}syz{{end}}{{if $b.ReproLogLink}} / log{{end}}{{if $b.ReproCLink}}C{{end}}{{if $b.MachineInfoLink}}info{{end}}{{range $i, $asset := .Assets}} - [{{$asset.Title}}{{if $asset.FsckLogURL}} ({{if $asset.FsIsClean}}clean{{else}}corrupt{{end}} fs){{end}}] - {{end}}{{$b.Manager}}{{$b.Title}}
-* Struck through repros no longer work on HEAD. -{{end}} -{{end}} - + the issue occurs on the latest tested release + {{end}} + ({{link .LogLink "bisect log"}})
+ {{end}} + {{if .CrashLogLink}} + Crash: {{link .CrashReportLink .CrashTitle}} ({{link .CrashLogLink "log"}})
+ Repro: {{optlink .Crash.ReproCLink "C"}} + {{optlink .Crash.ReproSyzLink "syz"}} + {{optlink .Crash.KernelConfigLink ".config"}}
+ {{end}} + {{if not .Reported}}[report pending]
{{end}} + {{optlink .RestartJobLink "🔄 retry this bisection"}}   + {{optlink .InvalidateJobLink "❌ mark as invalid"}} + {{end}} + {{end}} -{{/* List of jobs, invoked with *uiJobList */}} -{{define "job_list"}} -{{if and $ $.Jobs}} - - - - - {{if not $.PerBug}}{{end}} - - - - - - {{if not $.PerBug}}{{end}} - - - - - {{range $job := $.Jobs}} - - {{if not $.PerBug}}{{end}} - - - +
{{$.Title}}
BugCreatedDurationUserPatchRepoManagerResult
{{$job.BugTitle}}{{link $job.ExternalLink (formatTime $job.Created)}} - {{formatDuration $job.Duration}}{{if gt $job.Attempts 1}} ({{$job.Attempts}}){{end}} - - {{if eq $job.Type 0}} - {{if $job.User}}{{$job.User}} - {{- else if $job.TreeOrigin}}tree origin - {{- else}}retest repro{{end}} - {{else if eq $job.Type 1}} - bisect - {{else if eq $job.Type 2}} - {{if $job.FixCandidate}}fix candidate{{else}}bisect fix{{end}} + {{/* List of fixing commits, invoked with *uiCrashTable */}} + {{/* Show crashes */}} + {{define "crash_list"}} + {{if .}} + + {{if .Caption}}{{end}} + + + + + + + + + + + + + + + + + + + {{range $b := .Crashes}} + + + + + + + + + + + + + + + {{end}} - - - - {{if not $.PerBug}}{{end}} - +
{{.Caption}}:
TimeKernelCommitSyzkallerConfigLogReportSyz reproC reproVM infoAssets (help?) + ManagerTitle
{{formatTime $b.Time}}{{$b.KernelAlias}}{{link + $b.KernelCommitLink (formatTagHash $b.KernelCommit)}}{{link $b.SyzkallerCommitLink (formatShortHash $b.SyzkallerCommit)}}{{if $b.KernelConfigLink}}.config{{end}}{{if $b.LogLink}}{{if + $b.LogHasStrace}}strace{{else}}console{{end}} log{{end}}{{if $b.ReportLink}}report{{end}}{{if $b.ReproSyzLink}}syz{{end}}{{if $b.ReproLogLink}} / log{{end}}{{if $b.ReproCLink}}C{{end}}{{if $b.MachineInfoLink}}info{{end}}{{range $i, $asset := .Assets}} + [{{$asset.Title}}{{if + $asset.FsckLogURL}} ({{if + $asset.FsIsClean}}clean{{else}}corrupt{{end}} fs){{end}}] + {{end}} + {{$b.Manager}}{{$b.Title}}
{{optlink $job.PatchLink "patch"}}{{link $job.KernelCommitLink $job.KernelAlias}}{{$job.Manager}} - {{if $job.ErrorLink}} - {{link $job.ErrorLink "error"}} - {{else if and $job.CrashTitle (eq $job.Type 0)}} - {{optlink $job.CrashReportLink "report"}} - {{else if formatTime $job.Finished}} - OK - {{if ne $job.Type 0}} - ({{if $job.Commit}}1{{else}}{{len $job.Commits}}{{end}}) +
+ * Struck through repros no longer work on HEAD. + {{end}} + {{end}} + + + {{/* List of jobs, invoked with *uiJobList */}} + {{define "job_list"}} + {{if and $ $.Jobs}} + + + + + {{if not $.PerBug}}{{end}} + + + + + + {{if not $.PerBug}}{{end}} + + + + + {{range $job := $.Jobs}} + + {{if not $.PerBug}} {{end}} - {{else if formatTime $job.Started}} - running - {{else}} - pending - {{end}} - {{if $job.LogLink}} - {{link $job.LogLink "job log"}} - {{end}} - {{if $job.CrashLogLink}} - {{optlink $job.CrashLogLink "log"}} - {{end}} - {{ if $job.InvalidatedBy }} -
marked invalid by {{$job.InvalidatedBy}} + + + + + + {{if not $.PerBug}} + {{end}} + + {{end}} - {{if and $.PerBug (or .InvalidateJobLink .RestartJobLink)}}
{{optlink .RestartJobLink "🔄 retry this bisection"}}  {{optlink .InvalidateJobLink "❌ mark as invalid"}}{{end}} - - - {{end}} - -
{{$.Title}}
BugCreatedDurationUserPatchRepoManagerResult
{{$job.BugTitle}}{{link $job.ExternalLink (formatTime $job.Created)}} + {{formatDuration $job.Duration}}{{if gt $job.Attempts 1}} ({{$job.Attempts}}){{end}} + + {{if eq $job.Type 0}} + {{if $job.User}}{{$job.User}} + {{- else if $job.TreeOrigin}}tree origin + {{- else}}retest repro{{end}} + {{else if eq $job.Type 1}} + bisect + {{else if eq $job.Type 2}} + {{if $job.FixCandidate}}fix candidate{{else}}bisect fix{{end}} + {{end}} + {{optlink $job.PatchLink "patch"}}{{link $job.KernelCommitLink $job.KernelAlias}} + {{$job.Manager}} + {{if $job.ErrorLink}} + {{link $job.ErrorLink "error"}} + {{else if and $job.CrashTitle (eq $job.Type 0)}} + {{optlink $job.CrashReportLink "report"}} + {{else if formatTime $job.Finished}} + OK + {{if ne $job.Type 0}} + ({{if $job.Commit}}1{{else}}{{len $job.Commits}}{{end}}) + {{end}} + {{else if formatTime $job.Started}} + running + {{else}} + pending + {{end}} + {{if $job.LogLink}} + {{link $job.LogLink "job log"}} + {{end}} + {{if $job.CrashLogLink}} + {{optlink $job.CrashLogLink "log"}} + {{end}} + {{ if $job.InvalidatedBy }} +
marked invalid by {{$job.InvalidatedBy}} + {{end}} + {{if and $.PerBug (or .InvalidateJobLink .RestartJobLink)}}
{{optlink .RestartJobLink "🔄 retry this bisection"}}  {{optlink .InvalidateJobLink "❌ mark as invalid"}}{{end}} +
-{{end}} -{{end}} +
+ {{end}} + {{end}} -{{/* Checkbox input, invoked with *uiCheckbox */}} -{{define "input-checkbox"}} -
-

{{$.Caption}}

- {{range .Values}} - {{if .Caption}}{{.Caption}}{{else}}{{.ID}}{{end}}
- {{end}} -
-{{end}} + + {{/* Checkbox input, invoked with *uiCheckbox */}} + {{define "input-checkbox"}} +
+

{{$.Caption}}

+ {{range .Values}} + {{if + .Caption}}{{.Caption}}{{else}}{{.ID}}{{end}}
+ {{end}} +
+ {{end}} -{{/* Range slider input, invoked with *uiSlider */}} -{{define "input-slider"}} -
- - - {{.Val}} -
-{{end}} + {{/* Range slider input, invoked with *uiSlider */}} + {{define "input-slider"}} +
+ + + {{.Val}} +
+ {{end}} -{{/* Multiple text fields */}} -{{define "input-multi-text"}} -
-

{{.Caption}}:

-
- {{$input := .}} - {{range .Vals}} - - - - {{else}} - - - + {{/* Multiple text fields */}} + {{define "input-multi-text"}} +
+

{{.Caption}}:

+
+ {{$input := .}} + {{range .Vals}} + + + + {{else}} + + + + {{end}} + +
+
{{end}} - -
-
-{{end}} -{{/* List of discussions, invoked with []*uiBugDiscussion */}} -{{define "discussion_list"}} -{{if .}} - - - - - - - - - - {{range $item := .}} - - - - - - {{end}} - -
TitleReplies (including bot)Last reply
{{link $item.Link $item.Subject}}{{$item.External}} ({{$item.Total}}){{formatTime $item.Last}}
-{{end}} -{{end}} -{{/* List of test results, invoked with []*dashapi.JobInfo */}} -{{define "test_results"}} -{{if .}} - - - - - - - - - - - - {{range $item := .}} - - - - - - {{if ne $item.CrashTitle ""}} - - {{else if ne $item.ErrorLink ""}} - - {{else}} - + + {{/* List of discussions, invoked with []*uiBugDiscussion */}} + {{define "discussion_list"}} + {{if .}} +
DateNameCommitReproResult
{{formatDate $item.Finished}}{{$item.KernelAlias}} {{if $item.OnMergeBase}}(merge base){{else}}(ToT){{end}}{{link $item.KernelCommitLink (formatTagHash $item.KernelCommit)}} - {{if $item.ReproCLink}}C - {{else if $item.ReproSyzLink}}C{{end}} - - {{link $item.CrashReportLink "[report]"}} {{$item.CrashTitle}} - - Failed due to {{link $item.ErrorLink "an error"}}; will retry later - Didn't crash
+ + + + + + + + + {{range $item := .}} + + + + + + {{end}} + +
TitleReplies (including bot)Last reply
{{link $item.Link $item.Subject}}{{$item.External}} ({{$item.Total}}){{formatTime $item.Last}}
+ {{end}} + {{end}} + + {{/* List of test results, invoked with []*dashapi.JobInfo */}} + {{define "test_results"}} + {{if .}} + + + + + + + + + + + + {{range $item := .}} + + + + + + {{if ne $item.CrashTitle ""}} + + {{else if ne $item.ErrorLink ""}} + + {{else}} + + {{end}} + + {{end}} + +
DateNameCommitReproResult
{{formatDate $item.Finished}}{{$item.KernelAlias}} {{if $item.OnMergeBase}}(merge base){{else}}(ToT){{end}}{{link $item.KernelCommitLink (formatTagHash $item.KernelCommit)}} + {{if $item.ReproCLink}}C + {{else if $item.ReproSyzLink}}C{{end}} + + {{link $item.CrashReportLink "[report]"}} {{$item.CrashTitle}} + + Failed due to {{link $item.ErrorLink "an error"}}; will retry later + Didn't crash
+ {{end}} {{end}} - - {{end}} - - -{{end}} -{{end}} -{{/* List of failed repro attempts, invoked with []*uiReproAttempt */}} -{{define "repro_attempts"}} -{{if .}} - - - - - - - - - - {{range $item := .}} - - - - - - {{end}} - -
TimeManagerLog
{{formatTime $item.Time}}{{$item.Manager}}{{link $item.LogLink "repro log"}}
-{{end}} -{{end}} + + {{/* List of failed repro attempts, invoked with []*uiReproAttempt */}} + {{define "repro_attempts"}} + {{if .}} + + + + + + + + + + {{range $item := .}} + + + + + + {{end}} + +
TimeManagerLog
{{formatTime $item.Time}}{{$item.Manager}}{{link $item.LogLink "repro log"}}
+ {{end}} + {{end}} \ No newline at end of file