(data *reportData, w io.Writer)
| 111 | } |
| 112 | |
| 113 | func outputReportHTML(data *reportData, w io.Writer) error { |
| 114 | tmpl, err := template.New("report").Funcs(template.FuncMap{ |
| 115 | "statusClass": func(s string) string { |
| 116 | switch model.Status(s) { |
| 117 | case model.StatusCompleted: |
| 118 | return "completed" |
| 119 | case model.StatusInProgress: |
| 120 | return "in-progress" |
| 121 | case model.StatusBlocked: |
| 122 | return "blocked" |
| 123 | case model.StatusPending: |
| 124 | return "pending" |
| 125 | case model.StatusCancelled: |
| 126 | return "cancelled" |
| 127 | default: |
| 128 | return "" |
| 129 | } |
| 130 | }, |
| 131 | }).Parse(reportHTMLTemplate) |
| 132 | if err != nil { |
| 133 | return err |
| 134 | } |
| 135 | |
| 136 | return tmpl.Execute(w, toHTMLData(data)) |
| 137 | } |
| 138 | |
| 139 | const reportHTMLTemplate = `<!DOCTYPE html> |
| 140 | <html lang="en"> |
no test coverage detected