1// Code generated by templ - DO NOT EDIT.
2
3// templ: version: v0.3.1020
4package web
5
6//lint:file-ignore SA4006 This context is only used if a nested component is present.
7
8import "github.com/a-h/templ"
9import templruntime "github.com/a-h/templ/runtime"
10
11// The CI pages: the runs of a repository, a run with its jobs, a job with its
12// steps and its log (actions.go). A state is always a word as well as a
13// symbol and a colour.
14
15// CheckIcon is the symbol of a state: a mark in the colour of its kind, with
16// the state as its text for a screen reader.
17func CheckIcon(kind, state string) templ.Component {
18 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
19 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
20 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
21 return templ_7745c5c3_CtxErr
22 }
23 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
24 if !templ_7745c5c3_IsBuffer {
25 defer func() {
26 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
27 if templ_7745c5c3_Err == nil {
28 templ_7745c5c3_Err = templ_7745c5c3_BufErr
29 }
30 }()
31 }
32 ctx = templ.InitializeContext(ctx)
33 templ_7745c5c3_Var1 := templ.GetChildren(ctx)
34 if templ_7745c5c3_Var1 == nil {
35 templ_7745c5c3_Var1 = templ.NopComponent
36 }
37 ctx = templ.ClearChildren(ctx)
38 var templ_7745c5c3_Var2 = []any{"ck", "ck-" + kind}
39 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var2...)
40 if templ_7745c5c3_Err != nil {
41 return templ_7745c5c3_Err
42 }
43 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<span class=\"")
44 if templ_7745c5c3_Err != nil {
45 return templ_7745c5c3_Err
46 }
47 var templ_7745c5c3_Var3 string
48 templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var2).String())
49 if templ_7745c5c3_Err != nil {
50 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 1, Col: 0}
51 }
52 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var3)
53 if templ_7745c5c3_Err != nil {
54 return templ_7745c5c3_Err
55 }
56 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "\" role=\"img\" aria-label=\"")
57 if templ_7745c5c3_Err != nil {
58 return templ_7745c5c3_Err
59 }
60 var templ_7745c5c3_Var4 string
61 templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.ResolveAttributeValue(state)
62 if templ_7745c5c3_Err != nil {
63 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 10, Col: 65}
64 }
65 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var4)
66 if templ_7745c5c3_Err != nil {
67 return templ_7745c5c3_Err
68 }
69 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\" title=\"")
70 if templ_7745c5c3_Err != nil {
71 return templ_7745c5c3_Err
72 }
73 var templ_7745c5c3_Var5 string
74 templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.ResolveAttributeValue(state)
75 if templ_7745c5c3_Err != nil {
76 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 10, Col: 81}
77 }
78 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var5)
79 if templ_7745c5c3_Err != nil {
80 return templ_7745c5c3_Err
81 }
82 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "\"></span>")
83 if templ_7745c5c3_Err != nil {
84 return templ_7745c5c3_Err
85 }
86 return nil
87 })
88}
89
90func Actions(l Layout, p ActionsPage) templ.Component {
91 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
92 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
93 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
94 return templ_7745c5c3_CtxErr
95 }
96 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
97 if !templ_7745c5c3_IsBuffer {
98 defer func() {
99 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
100 if templ_7745c5c3_Err == nil {
101 templ_7745c5c3_Err = templ_7745c5c3_BufErr
102 }
103 }()
104 }
105 ctx = templ.InitializeContext(ctx)
106 templ_7745c5c3_Var6 := templ.GetChildren(ctx)
107 if templ_7745c5c3_Var6 == nil {
108 templ_7745c5c3_Var6 = templ.NopComponent
109 }
110 ctx = templ.ClearChildren(ctx)
111 templ_7745c5c3_Var7 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
112 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
113 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
114 if !templ_7745c5c3_IsBuffer {
115 defer func() {
116 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
117 if templ_7745c5c3_Err == nil {
118 templ_7745c5c3_Err = templ_7745c5c3_BufErr
119 }
120 }()
121 }
122 ctx = templ.InitializeContext(ctx)
123 if len(p.Runs) == 0 {
124 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<p class=\"dim\">no runs yet: a push that matches a workflow of .github/workflows starts one.</p>")
125 if templ_7745c5c3_Err != nil {
126 return templ_7745c5c3_Err
127 }
128 } else {
129 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<table class=\"list runs\" aria-label=\"Runs\"><thead><tr><th class=\"c-st\"></th><th class=\"c-name\">workflow</th><th class=\"c-sub\">commit</th><th class=\"c-ref\">ref</th><th class=\"c-who\">actor</th><th class=\"c-dur\">time</th><th class=\"c-when\">created</th></tr></thead> <tbody id=\"run-rows\" data-rows>")
130 if templ_7745c5c3_Err != nil {
131 return templ_7745c5c3_Err
132 }
133 for _, r := range p.Runs {
134 templ_7745c5c3_Err = RunListRow(r).Render(ctx, templ_7745c5c3_Buffer)
135 if templ_7745c5c3_Err != nil {
136 return templ_7745c5c3_Err
137 }
138 }
139 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "</tbody></table>")
140 if templ_7745c5c3_Err != nil {
141 return templ_7745c5c3_Err
142 }
143 }
144 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, " ")
145 if templ_7745c5c3_Err != nil {
146 return templ_7745c5c3_Err
147 }
148 if p.More != "" {
149 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "<p class=\"more\"><a href=\"")
150 if templ_7745c5c3_Err != nil {
151 return templ_7745c5c3_Err
152 }
153 var templ_7745c5c3_Var8 templ.SafeURL
154 templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.More))
155 if templ_7745c5c3_Err != nil {
156 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 30, Col: 50}
157 }
158 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
159 if templ_7745c5c3_Err != nil {
160 return templ_7745c5c3_Err
161 }
162 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "\" rel=\"next\">older runs</a></p>")
163 if templ_7745c5c3_Err != nil {
164 return templ_7745c5c3_Err
165 }
166 }
167 return nil
168 })
169 templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var7), templ_7745c5c3_Buffer)
170 if templ_7745c5c3_Err != nil {
171 return templ_7745c5c3_Err
172 }
173 return nil
174 })
175}
176
177// RunListRow is a row of the list of runs; its id is the target of the live
178// updates.
179func RunListRow(r RunRow) templ.Component {
180 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
181 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
182 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
183 return templ_7745c5c3_CtxErr
184 }
185 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
186 if !templ_7745c5c3_IsBuffer {
187 defer func() {
188 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
189 if templ_7745c5c3_Err == nil {
190 templ_7745c5c3_Err = templ_7745c5c3_BufErr
191 }
192 }()
193 }
194 ctx = templ.InitializeContext(ctx)
195 templ_7745c5c3_Var9 := templ.GetChildren(ctx)
196 if templ_7745c5c3_Var9 == nil {
197 templ_7745c5c3_Var9 = templ.NopComponent
198 }
199 ctx = templ.ClearChildren(ctx)
200 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "<tr id=\"")
201 if templ_7745c5c3_Err != nil {
202 return templ_7745c5c3_Err
203 }
204 var templ_7745c5c3_Var10 string
205 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.ResolveAttributeValue("run-" + r.ID)
206 if templ_7745c5c3_Err != nil {
207 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 38, Col: 23}
208 }
209 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10)
210 if templ_7745c5c3_Err != nil {
211 return templ_7745c5c3_Err
212 }
213 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "\"><td class=\"c-st\">")
214 if templ_7745c5c3_Err != nil {
215 return templ_7745c5c3_Err
216 }
217 templ_7745c5c3_Err = CheckIcon(r.Kind, r.State).Render(ctx, templ_7745c5c3_Buffer)
218 if templ_7745c5c3_Err != nil {
219 return templ_7745c5c3_Err
220 }
221 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "</td><td class=\"c-name\"><a href=\"")
222 if templ_7745c5c3_Err != nil {
223 return templ_7745c5c3_Err
224 }
225 var templ_7745c5c3_Var11 templ.SafeURL
226 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
227 if templ_7745c5c3_Err != nil {
228 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 41, Col: 34}
229 }
230 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
231 if templ_7745c5c3_Err != nil {
232 return templ_7745c5c3_Err
233 }
234 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "\">")
235 if templ_7745c5c3_Err != nil {
236 return templ_7745c5c3_Err
237 }
238 var templ_7745c5c3_Var12 string
239 templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(r.Workflow)
240 if templ_7745c5c3_Err != nil {
241 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 41, Col: 49}
242 }
243 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
244 if templ_7745c5c3_Err != nil {
245 return templ_7745c5c3_Err
246 }
247 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</a> <span class=\"mute\">")
248 if templ_7745c5c3_Err != nil {
249 return templ_7745c5c3_Err
250 }
251 var templ_7745c5c3_Var13 string
252 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(r.Number)
253 if templ_7745c5c3_Err != nil {
254 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 42, Col: 32}
255 }
256 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
257 if templ_7745c5c3_Err != nil {
258 return templ_7745c5c3_Err
259 }
260 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "</span> ")
261 if templ_7745c5c3_Err != nil {
262 return templ_7745c5c3_Err
263 }
264 if r.Attempt > 1 {
265 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "<span class=\"pill\">attempt ")
266 if templ_7745c5c3_Err != nil {
267 return templ_7745c5c3_Err
268 }
269 var templ_7745c5c3_Var14 string
270 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(int(r.Attempt)))
271 if templ_7745c5c3_Err != nil {
272 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 44, Col: 53}
273 }
274 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
275 if templ_7745c5c3_Err != nil {
276 return templ_7745c5c3_Err
277 }
278 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "</span>")
279 if templ_7745c5c3_Err != nil {
280 return templ_7745c5c3_Err
281 }
282 }
283 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</td><td class=\"c-sub\"><a href=\"")
284 if templ_7745c5c3_Err != nil {
285 return templ_7745c5c3_Err
286 }
287 var templ_7745c5c3_Var15 templ.SafeURL
288 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref))
289 if templ_7745c5c3_Err != nil {
290 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 47, Col: 52}
291 }
292 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
293 if templ_7745c5c3_Err != nil {
294 return templ_7745c5c3_Err
295 }
296 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "\">")
297 if templ_7745c5c3_Err != nil {
298 return templ_7745c5c3_Err
299 }
300 var templ_7745c5c3_Var16 string
301 templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short)
302 if templ_7745c5c3_Err != nil {
303 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 47, Col: 64}
304 }
305 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
306 if templ_7745c5c3_Err != nil {
307 return templ_7745c5c3_Err
308 }
309 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</a> ")
310 if templ_7745c5c3_Err != nil {
311 return templ_7745c5c3_Err
312 }
313 var templ_7745c5c3_Var17 string
314 templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(r.Title)
315 if templ_7745c5c3_Err != nil {
316 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 47, Col: 80}
317 }
318 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
319 if templ_7745c5c3_Err != nil {
320 return templ_7745c5c3_Err
321 }
322 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "</td><td class=\"c-ref\"><a href=\"")
323 if templ_7745c5c3_Err != nil {
324 return templ_7745c5c3_Err
325 }
326 var templ_7745c5c3_Var18 templ.SafeURL
327 templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.RefHref))
328 if templ_7745c5c3_Err != nil {
329 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 48, Col: 54}
330 }
331 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
332 if templ_7745c5c3_Err != nil {
333 return templ_7745c5c3_Err
334 }
335 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "\">")
336 if templ_7745c5c3_Err != nil {
337 return templ_7745c5c3_Err
338 }
339 var templ_7745c5c3_Var19 string
340 templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(r.Ref)
341 if templ_7745c5c3_Err != nil {
342 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 48, Col: 64}
343 }
344 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
345 if templ_7745c5c3_Err != nil {
346 return templ_7745c5c3_Err
347 }
348 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "</a></td><td class=\"c-who dim\">")
349 if templ_7745c5c3_Err != nil {
350 return templ_7745c5c3_Err
351 }
352 var templ_7745c5c3_Var20 string
353 templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(r.Actor)
354 if templ_7745c5c3_Err != nil {
355 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 49, Col: 33}
356 }
357 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
358 if templ_7745c5c3_Err != nil {
359 return templ_7745c5c3_Err
360 }
361 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</td><td class=\"c-dur dim\">")
362 if templ_7745c5c3_Err != nil {
363 return templ_7745c5c3_Err
364 }
365 var templ_7745c5c3_Var21 string
366 templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(r.State)
367 if templ_7745c5c3_Err != nil {
368 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 50, Col: 33}
369 }
370 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
371 if templ_7745c5c3_Err != nil {
372 return templ_7745c5c3_Err
373 }
374 var templ_7745c5c3_Var22 string
375 templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
376 if templ_7745c5c3_Err != nil {
377 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 50, Col: 40}
378 }
379 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22))
380 if templ_7745c5c3_Err != nil {
381 return templ_7745c5c3_Err
382 }
383 var templ_7745c5c3_Var23 string
384 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(r.Duration)
385 if templ_7745c5c3_Err != nil {
386 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 50, Col: 54}
387 }
388 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))
389 if templ_7745c5c3_Err != nil {
390 return templ_7745c5c3_Err
391 }
392 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "</td><td class=\"c-when dim\">")
393 if templ_7745c5c3_Err != nil {
394 return templ_7745c5c3_Err
395 }
396 if r.WhenAt != "" {
397 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "<time datetime=\"")
398 if templ_7745c5c3_Err != nil {
399 return templ_7745c5c3_Err
400 }
401 var templ_7745c5c3_Var24 string
402 templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
403 if templ_7745c5c3_Err != nil {
404 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 53, Col: 29}
405 }
406 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var24)
407 if templ_7745c5c3_Err != nil {
408 return templ_7745c5c3_Err
409 }
410 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "\" title=\"")
411 if templ_7745c5c3_Err != nil {
412 return templ_7745c5c3_Err
413 }
414 var templ_7745c5c3_Var25 string
415 templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
416 if templ_7745c5c3_Err != nil {
417 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 53, Col: 48}
418 }
419 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var25)
420 if templ_7745c5c3_Err != nil {
421 return templ_7745c5c3_Err
422 }
423 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "\">")
424 if templ_7745c5c3_Err != nil {
425 return templ_7745c5c3_Err
426 }
427 var templ_7745c5c3_Var26 string
428 templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)
429 if templ_7745c5c3_Err != nil {
430 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 53, Col: 59}
431 }
432 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26))
433 if templ_7745c5c3_Err != nil {
434 return templ_7745c5c3_Err
435 }
436 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</time>")
437 if templ_7745c5c3_Err != nil {
438 return templ_7745c5c3_Err
439 }
440 }
441 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "</td></tr>")
442 if templ_7745c5c3_Err != nil {
443 return templ_7745c5c3_Err
444 }
445 return nil
446 })
447}
448
449// RecentActionsBlock is the "Recent actions" section of the summary rail; its
450// id is the target of the live updates. Without a run it is hidden.
451func RecentActionsBlock(a RecentActions) templ.Component {
452 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
453 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
454 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
455 return templ_7745c5c3_CtxErr
456 }
457 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
458 if !templ_7745c5c3_IsBuffer {
459 defer func() {
460 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
461 if templ_7745c5c3_Err == nil {
462 templ_7745c5c3_Err = templ_7745c5c3_BufErr
463 }
464 }()
465 }
466 ctx = templ.InitializeContext(ctx)
467 templ_7745c5c3_Var27 := templ.GetChildren(ctx)
468 if templ_7745c5c3_Var27 == nil {
469 templ_7745c5c3_Var27 = templ.NopComponent
470 }
471 ctx = templ.ClearChildren(ctx)
472 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "<section id=\"recent-actions\" aria-labelledby=\"r-actions\"")
473 if templ_7745c5c3_Err != nil {
474 return templ_7745c5c3_Err
475 }
476 if len(a.Runs) == 0 {
477 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, " hidden")
478 if templ_7745c5c3_Err != nil {
479 return templ_7745c5c3_Err
480 }
481 }
482 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "><h2 id=\"r-actions\">Recent actions <a href=\"")
483 if templ_7745c5c3_Err != nil {
484 return templ_7745c5c3_Err
485 }
486 var templ_7745c5c3_Var28 templ.SafeURL
487 templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(a.AllHref))
488 if templ_7745c5c3_Err != nil {
489 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 63, Col: 70}
490 }
491 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28))
492 if templ_7745c5c3_Err != nil {
493 return templ_7745c5c3_Err
494 }
495 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\">View all</a></h2><ul class=\"rruns\">")
496 if templ_7745c5c3_Err != nil {
497 return templ_7745c5c3_Err
498 }
499 for _, r := range a.Runs {
500 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "<li>")
501 if templ_7745c5c3_Err != nil {
502 return templ_7745c5c3_Err
503 }
504 templ_7745c5c3_Err = CheckIcon(r.Kind, r.State).Render(ctx, templ_7745c5c3_Buffer)
505 if templ_7745c5c3_Err != nil {
506 return templ_7745c5c3_Err
507 }
508 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "<a class=\"rr-name\" href=\"")
509 if templ_7745c5c3_Err != nil {
510 return templ_7745c5c3_Err
511 }
512 var templ_7745c5c3_Var29 templ.SafeURL
513 templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
514 if templ_7745c5c3_Err != nil {
515 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 68, Col: 52}
516 }
517 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
518 if templ_7745c5c3_Err != nil {
519 return templ_7745c5c3_Err
520 }
521 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "\" title=\"")
522 if templ_7745c5c3_Err != nil {
523 return templ_7745c5c3_Err
524 }
525 var templ_7745c5c3_Var30 string
526 templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.Workflow + " " + r.Number + " · " + r.State)
527 if templ_7745c5c3_Err != nil {
528 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 68, Col: 109}
529 }
530 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var30)
531 if templ_7745c5c3_Err != nil {
532 return templ_7745c5c3_Err
533 }
534 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "\">")
535 if templ_7745c5c3_Err != nil {
536 return templ_7745c5c3_Err
537 }
538 var templ_7745c5c3_Var31 string
539 templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Workflow)
540 if templ_7745c5c3_Err != nil {
541 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 68, Col: 124}
542 }
543 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
544 if templ_7745c5c3_Err != nil {
545 return templ_7745c5c3_Err
546 }
547 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "</a> <span class=\"mute\">")
548 if templ_7745c5c3_Err != nil {
549 return templ_7745c5c3_Err
550 }
551 var templ_7745c5c3_Var32 string
552 templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(r.Number)
553 if templ_7745c5c3_Err != nil {
554 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 69, Col: 34}
555 }
556 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
557 if templ_7745c5c3_Err != nil {
558 return templ_7745c5c3_Err
559 }
560 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</span> <a class=\"rr-ref\" href=\"")
561 if templ_7745c5c3_Err != nil {
562 return templ_7745c5c3_Err
563 }
564 var templ_7745c5c3_Var33 templ.SafeURL
565 templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.RefHref))
566 if templ_7745c5c3_Err != nil {
567 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 70, Col: 54}
568 }
569 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))
570 if templ_7745c5c3_Err != nil {
571 return templ_7745c5c3_Err
572 }
573 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "\">")
574 if templ_7745c5c3_Err != nil {
575 return templ_7745c5c3_Err
576 }
577 var templ_7745c5c3_Var34 string
578 templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(r.Ref)
579 if templ_7745c5c3_Err != nil {
580 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 70, Col: 64}
581 }
582 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34))
583 if templ_7745c5c3_Err != nil {
584 return templ_7745c5c3_Err
585 }
586 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</a> ")
587 if templ_7745c5c3_Err != nil {
588 return templ_7745c5c3_Err
589 }
590 if r.WhenAt != "" {
591 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "<time class=\"dim\" datetime=\"")
592 if templ_7745c5c3_Err != nil {
593 return templ_7745c5c3_Err
594 }
595 var templ_7745c5c3_Var35 string
596 templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
597 if templ_7745c5c3_Err != nil {
598 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 72, Col: 43}
599 }
600 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var35)
601 if templ_7745c5c3_Err != nil {
602 return templ_7745c5c3_Err
603 }
604 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "\" title=\"")
605 if templ_7745c5c3_Err != nil {
606 return templ_7745c5c3_Err
607 }
608 var templ_7745c5c3_Var36 string
609 templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
610 if templ_7745c5c3_Err != nil {
611 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 72, Col: 62}
612 }
613 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var36)
614 if templ_7745c5c3_Err != nil {
615 return templ_7745c5c3_Err
616 }
617 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "\">")
618 if templ_7745c5c3_Err != nil {
619 return templ_7745c5c3_Err
620 }
621 var templ_7745c5c3_Var37 string
622 templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)
623 if templ_7745c5c3_Err != nil {
624 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 72, Col: 73}
625 }
626 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var37))
627 if templ_7745c5c3_Err != nil {
628 return templ_7745c5c3_Err
629 }
630 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "</time>")
631 if templ_7745c5c3_Err != nil {
632 return templ_7745c5c3_Err
633 }
634 }
635 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</li>")
636 if templ_7745c5c3_Err != nil {
637 return templ_7745c5c3_Err
638 }
639 }
640 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "</ul></section>")
641 if templ_7745c5c3_Err != nil {
642 return templ_7745c5c3_Err
643 }
644 return nil
645 })
646}
647
648func RunDetail(l Layout, p RunPage) templ.Component {
649 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
650 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
651 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
652 return templ_7745c5c3_CtxErr
653 }
654 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
655 if !templ_7745c5c3_IsBuffer {
656 defer func() {
657 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
658 if templ_7745c5c3_Err == nil {
659 templ_7745c5c3_Err = templ_7745c5c3_BufErr
660 }
661 }()
662 }
663 ctx = templ.InitializeContext(ctx)
664 templ_7745c5c3_Var38 := templ.GetChildren(ctx)
665 if templ_7745c5c3_Var38 == nil {
666 templ_7745c5c3_Var38 = templ.NopComponent
667 }
668 ctx = templ.ClearChildren(ctx)
669 templ_7745c5c3_Var39 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
670 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
671 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
672 if !templ_7745c5c3_IsBuffer {
673 defer func() {
674 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
675 if templ_7745c5c3_Err == nil {
676 templ_7745c5c3_Err = templ_7745c5c3_BufErr
677 }
678 }()
679 }
680 ctx = templ.InitializeContext(ctx)
681 templ_7745c5c3_Err = LiveSlot("run-notice").Render(ctx, templ_7745c5c3_Buffer)
682 if templ_7745c5c3_Err != nil {
683 return templ_7745c5c3_Err
684 }
685 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, " <div id=\"run-body\">")
686 if templ_7745c5c3_Err != nil {
687 return templ_7745c5c3_Err
688 }
689 templ_7745c5c3_Err = RunBody(p).Render(ctx, templ_7745c5c3_Buffer)
690 if templ_7745c5c3_Err != nil {
691 return templ_7745c5c3_Err
692 }
693 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</div>")
694 if templ_7745c5c3_Err != nil {
695 return templ_7745c5c3_Err
696 }
697 templ_7745c5c3_Err = RunSummaries(p.Summaries, p.SummariesMore).Render(ctx, templ_7745c5c3_Buffer)
698 if templ_7745c5c3_Err != nil {
699 return templ_7745c5c3_Err
700 }
701 return nil
702 })
703 templ_7745c5c3_Err = Shell(l, runRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var39), templ_7745c5c3_Buffer)
704 if templ_7745c5c3_Err != nil {
705 return templ_7745c5c3_Err
706 }
707 return nil
708 })
709}
710
711// runBodyFragment is the body of the run page as a live fragment.
712func runBodyFragment(p RunPage) templ.Component {
713 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
714 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
715 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
716 return templ_7745c5c3_CtxErr
717 }
718 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
719 if !templ_7745c5c3_IsBuffer {
720 defer func() {
721 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
722 if templ_7745c5c3_Err == nil {
723 templ_7745c5c3_Err = templ_7745c5c3_BufErr
724 }
725 }()
726 }
727 ctx = templ.InitializeContext(ctx)
728 templ_7745c5c3_Var40 := templ.GetChildren(ctx)
729 if templ_7745c5c3_Var40 == nil {
730 templ_7745c5c3_Var40 = templ.NopComponent
731 }
732 ctx = templ.ClearChildren(ctx)
733 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "<div id=\"run-body\">")
734 if templ_7745c5c3_Err != nil {
735 return templ_7745c5c3_Err
736 }
737 templ_7745c5c3_Err = RunBody(p).Render(ctx, templ_7745c5c3_Buffer)
738 if templ_7745c5c3_Err != nil {
739 return templ_7745c5c3_Err
740 }
741 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "</div>")
742 if templ_7745c5c3_Err != nil {
743 return templ_7745c5c3_Err
744 }
745 return nil
746 })
747}
748
749// RunBody is the jobs of a run, replaced by the live updates.
750func RunBody(p RunPage) templ.Component {
751 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
752 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
753 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
754 return templ_7745c5c3_CtxErr
755 }
756 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
757 if !templ_7745c5c3_IsBuffer {
758 defer func() {
759 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
760 if templ_7745c5c3_Err == nil {
761 templ_7745c5c3_Err = templ_7745c5c3_BufErr
762 }
763 }()
764 }
765 ctx = templ.InitializeContext(ctx)
766 templ_7745c5c3_Var41 := templ.GetChildren(ctx)
767 if templ_7745c5c3_Var41 == nil {
768 templ_7745c5c3_Var41 = templ.NopComponent
769 }
770 ctx = templ.ClearChildren(ctx)
771 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "<h2 class=\"run-h\">")
772 if templ_7745c5c3_Err != nil {
773 return templ_7745c5c3_Err
774 }
775 templ_7745c5c3_Err = CheckIcon(p.Kind, p.State).Render(ctx, templ_7745c5c3_Buffer)
776 if templ_7745c5c3_Err != nil {
777 return templ_7745c5c3_Err
778 }
779 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "<span>")
780 if templ_7745c5c3_Err != nil {
781 return templ_7745c5c3_Err
782 }
783 var templ_7745c5c3_Var42 string
784 templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(p.Workflow)
785 if templ_7745c5c3_Err != nil {
786 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 99, Col: 64}
787 }
788 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42))
789 if templ_7745c5c3_Err != nil {
790 return templ_7745c5c3_Err
791 }
792 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</span> <span class=\"mute\">")
793 if templ_7745c5c3_Err != nil {
794 return templ_7745c5c3_Err
795 }
796 var templ_7745c5c3_Var43 string
797 templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(p.Number)
798 if templ_7745c5c3_Err != nil {
799 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 99, Col: 103}
800 }
801 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
802 if templ_7745c5c3_Err != nil {
803 return templ_7745c5c3_Err
804 }
805 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</span></h2>")
806 if templ_7745c5c3_Err != nil {
807 return templ_7745c5c3_Err
808 }
809 if p.Error != "" {
810 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "<pre class=\"run-err\">")
811 if templ_7745c5c3_Err != nil {
812 return templ_7745c5c3_Err
813 }
814 var templ_7745c5c3_Var44 string
815 templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinStringErrs(p.Error)
816 if templ_7745c5c3_Err != nil {
817 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 101, Col: 32}
818 }
819 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44))
820 if templ_7745c5c3_Err != nil {
821 return templ_7745c5c3_Err
822 }
823 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</pre>")
824 if templ_7745c5c3_Err != nil {
825 return templ_7745c5c3_Err
826 }
827 }
828 if len(p.Annotations) > 0 {
829 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "<section class=\"annots\" aria-labelledby=\"run-annots\"><h3 id=\"run-annots\">Annotations <span class=\"count\">")
830 if templ_7745c5c3_Err != nil {
831 return templ_7745c5c3_Err
832 }
833 var templ_7745c5c3_Var45 string
834 templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Annotations)))
835 if templ_7745c5c3_Err != nil {
836 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 105, Col: 81}
837 }
838 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45))
839 if templ_7745c5c3_Err != nil {
840 return templ_7745c5c3_Err
841 }
842 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "</span></h3>")
843 if templ_7745c5c3_Err != nil {
844 return templ_7745c5c3_Err
845 }
846 templ_7745c5c3_Err = AnnotationList(p.Annotations, p.AnnotationsMore, false).Render(ctx, templ_7745c5c3_Buffer)
847 if templ_7745c5c3_Err != nil {
848 return templ_7745c5c3_Err
849 }
850 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</section>")
851 if templ_7745c5c3_Err != nil {
852 return templ_7745c5c3_Err
853 }
854 }
855 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<ul class=\"jobs\">")
856 if templ_7745c5c3_Err != nil {
857 return templ_7745c5c3_Err
858 }
859 for _, j := range p.Jobs {
860 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "<li id=\"")
861 if templ_7745c5c3_Err != nil {
862 return templ_7745c5c3_Err
863 }
864 var templ_7745c5c3_Var46 string
865 templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.ResolveAttributeValue("job-" + j.ID)
866 if templ_7745c5c3_Err != nil {
867 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 111, Col: 25}
868 }
869 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var46)
870 if templ_7745c5c3_Err != nil {
871 return templ_7745c5c3_Err
872 }
873 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "\"><a class=\"job-h\" href=\"")
874 if templ_7745c5c3_Err != nil {
875 return templ_7745c5c3_Err
876 }
877 var templ_7745c5c3_Var47 templ.SafeURL
878 templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(j.Href))
879 if templ_7745c5c3_Err != nil {
880 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 112, Col: 49}
881 }
882 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47))
883 if templ_7745c5c3_Err != nil {
884 return templ_7745c5c3_Err
885 }
886 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "\">")
887 if templ_7745c5c3_Err != nil {
888 return templ_7745c5c3_Err
889 }
890 templ_7745c5c3_Err = CheckIcon(j.Kind, j.State).Render(ctx, templ_7745c5c3_Buffer)
891 if templ_7745c5c3_Err != nil {
892 return templ_7745c5c3_Err
893 }
894 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "<span class=\"j-name\">")
895 if templ_7745c5c3_Err != nil {
896 return templ_7745c5c3_Err
897 }
898 var templ_7745c5c3_Var48 string
899 templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(j.Name)
900 if templ_7745c5c3_Err != nil {
901 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 114, Col: 34}
902 }
903 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48))
904 if templ_7745c5c3_Err != nil {
905 return templ_7745c5c3_Err
906 }
907 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</span> <span class=\"dim\">")
908 if templ_7745c5c3_Err != nil {
909 return templ_7745c5c3_Err
910 }
911 var templ_7745c5c3_Var49 string
912 templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(j.State)
913 if templ_7745c5c3_Err != nil {
914 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 115, Col: 32}
915 }
916 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49))
917 if templ_7745c5c3_Err != nil {
918 return templ_7745c5c3_Err
919 }
920 var templ_7745c5c3_Var50 string
921 templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
922 if templ_7745c5c3_Err != nil {
923 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 115, Col: 39}
924 }
925 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50))
926 if templ_7745c5c3_Err != nil {
927 return templ_7745c5c3_Err
928 }
929 var templ_7745c5c3_Var51 string
930 templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.JoinStringErrs(j.Duration)
931 if templ_7745c5c3_Err != nil {
932 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 115, Col: 53}
933 }
934 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var51))
935 if templ_7745c5c3_Err != nil {
936 return templ_7745c5c3_Err
937 }
938 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</span></a> ")
939 if templ_7745c5c3_Err != nil {
940 return templ_7745c5c3_Err
941 }
942 if j.Runner != "" {
943 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<span class=\"mute\">on ")
944 if templ_7745c5c3_Err != nil {
945 return templ_7745c5c3_Err
946 }
947 var templ_7745c5c3_Var52 string
948 templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.JoinStringErrs(runnerText(j))
949 if templ_7745c5c3_Err != nil {
950 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 118, Col: 42}
951 }
952 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var52))
953 if templ_7745c5c3_Err != nil {
954 return templ_7745c5c3_Err
955 }
956 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</span> ")
957 if templ_7745c5c3_Err != nil {
958 return templ_7745c5c3_Err
959 }
960 }
961 if len(j.Needs) > 0 {
962 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<span class=\"mute\">needs ")
963 if templ_7745c5c3_Err != nil {
964 return templ_7745c5c3_Err
965 }
966 var templ_7745c5c3_Var53 string
967 templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.JoinStringErrs(joinWords(j.Needs))
968 if templ_7745c5c3_Err != nil {
969 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 121, Col: 50}
970 }
971 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var53))
972 if templ_7745c5c3_Err != nil {
973 return templ_7745c5c3_Err
974 }
975 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "</span> ")
976 if templ_7745c5c3_Err != nil {
977 return templ_7745c5c3_Err
978 }
979 }
980 if j.Error != "" {
981 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "<p class=\"job-err\">")
982 if templ_7745c5c3_Err != nil {
983 return templ_7745c5c3_Err
984 }
985 var templ_7745c5c3_Var54 string
986 templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(j.Error)
987 if templ_7745c5c3_Err != nil {
988 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 124, Col: 33}
989 }
990 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54))
991 if templ_7745c5c3_Err != nil {
992 return templ_7745c5c3_Err
993 }
994 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "</p>")
995 if templ_7745c5c3_Err != nil {
996 return templ_7745c5c3_Err
997 }
998 }
999 if len(j.Steps) > 0 {
1000 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "<ol class=\"steps\">")
1001 if templ_7745c5c3_Err != nil {
1002 return templ_7745c5c3_Err
1003 }
1004 for _, s := range j.Steps {
1005 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "<li>")
1006 if templ_7745c5c3_Err != nil {
1007 return templ_7745c5c3_Err
1008 }
1009 templ_7745c5c3_Err = CheckIcon(s.Kind, s.State).Render(ctx, templ_7745c5c3_Buffer)
1010 if templ_7745c5c3_Err != nil {
1011 return templ_7745c5c3_Err
1012 }
1013 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "<span>")
1014 if templ_7745c5c3_Err != nil {
1015 return templ_7745c5c3_Err
1016 }
1017 var templ_7745c5c3_Var55 string
1018 templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(s.Name)
1019 if templ_7745c5c3_Err != nil {
1020 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 129, Col: 53}
1021 }
1022 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55))
1023 if templ_7745c5c3_Err != nil {
1024 return templ_7745c5c3_Err
1025 }
1026 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "</span> <span class=\"dim\">")
1027 if templ_7745c5c3_Err != nil {
1028 return templ_7745c5c3_Err
1029 }
1030 var templ_7745c5c3_Var56 string
1031 templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.JoinStringErrs(s.Duration)
1032 if templ_7745c5c3_Err != nil {
1033 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 129, Col: 93}
1034 }
1035 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var56))
1036 if templ_7745c5c3_Err != nil {
1037 return templ_7745c5c3_Err
1038 }
1039 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "</span></li>")
1040 if templ_7745c5c3_Err != nil {
1041 return templ_7745c5c3_Err
1042 }
1043 }
1044 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "</ol>")
1045 if templ_7745c5c3_Err != nil {
1046 return templ_7745c5c3_Err
1047 }
1048 }
1049 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "</li>")
1050 if templ_7745c5c3_Err != nil {
1051 return templ_7745c5c3_Err
1052 }
1053 }
1054 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "</ul>")
1055 if templ_7745c5c3_Err != nil {
1056 return templ_7745c5c3_Err
1057 }
1058 return nil
1059 })
1060}
1061
1062// AnnotationList is a list of annotations: the level as a mark with its word,
1063// the job and the step, the title and the message, and file:line. Everything
1064// comes from the workflow and is text. Without grouped, each item names its job (the
1065// run page); grouped lists the annotations by step instead (the job page).
1066func AnnotationList(anns []AnnotationView, more bool, grouped bool) templ.Component {
1067 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1068 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1069 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1070 return templ_7745c5c3_CtxErr
1071 }
1072 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1073 if !templ_7745c5c3_IsBuffer {
1074 defer func() {
1075 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1076 if templ_7745c5c3_Err == nil {
1077 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1078 }
1079 }()
1080 }
1081 ctx = templ.InitializeContext(ctx)
1082 templ_7745c5c3_Var57 := templ.GetChildren(ctx)
1083 if templ_7745c5c3_Var57 == nil {
1084 templ_7745c5c3_Var57 = templ.NopComponent
1085 }
1086 ctx = templ.ClearChildren(ctx)
1087 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "<ul class=\"annot-list\">")
1088 if templ_7745c5c3_Err != nil {
1089 return templ_7745c5c3_Err
1090 }
1091 for _, a := range anns {
1092 var templ_7745c5c3_Var58 = []any{"annot", "annot-" + a.Kind}
1093 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var58...)
1094 if templ_7745c5c3_Err != nil {
1095 return templ_7745c5c3_Err
1096 }
1097 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "<li class=\"")
1098 if templ_7745c5c3_Err != nil {
1099 return templ_7745c5c3_Err
1100 }
1101 var templ_7745c5c3_Var59 string
1102 templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var58).String())
1103 if templ_7745c5c3_Err != nil {
1104 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 1, Col: 0}
1105 }
1106 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var59)
1107 if templ_7745c5c3_Err != nil {
1108 return templ_7745c5c3_Err
1109 }
1110 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "\">")
1111 if templ_7745c5c3_Err != nil {
1112 return templ_7745c5c3_Err
1113 }
1114 if grouped && a.StepHead {
1115 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "<p class=\"annot-step\">")
1116 if templ_7745c5c3_Err != nil {
1117 return templ_7745c5c3_Err
1118 }
1119 if a.StepHref != "" {
1120 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "<a href=\"")
1121 if templ_7745c5c3_Err != nil {
1122 return templ_7745c5c3_Err
1123 }
1124 var templ_7745c5c3_Var60 templ.SafeURL
1125 templ_7745c5c3_Var60, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(a.StepHref))
1126 if templ_7745c5c3_Err != nil {
1127 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 149, Col: 42}
1128 }
1129 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var60))
1130 if templ_7745c5c3_Err != nil {
1131 return templ_7745c5c3_Err
1132 }
1133 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "\">")
1134 if templ_7745c5c3_Err != nil {
1135 return templ_7745c5c3_Err
1136 }
1137 var templ_7745c5c3_Var61 string
1138 templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.JoinStringErrs(a.Step)
1139 if templ_7745c5c3_Err != nil {
1140 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 149, Col: 53}
1141 }
1142 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var61))
1143 if templ_7745c5c3_Err != nil {
1144 return templ_7745c5c3_Err
1145 }
1146 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "</a>")
1147 if templ_7745c5c3_Err != nil {
1148 return templ_7745c5c3_Err
1149 }
1150 } else {
1151 var templ_7745c5c3_Var62 string
1152 templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.JoinStringErrs(a.Step)
1153 if templ_7745c5c3_Err != nil {
1154 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 151, Col: 15}
1155 }
1156 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var62))
1157 if templ_7745c5c3_Err != nil {
1158 return templ_7745c5c3_Err
1159 }
1160 }
1161 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "</p>")
1162 if templ_7745c5c3_Err != nil {
1163 return templ_7745c5c3_Err
1164 }
1165 }
1166 var templ_7745c5c3_Var63 = []any{"an", "an-" + a.Kind}
1167 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var63...)
1168 if templ_7745c5c3_Err != nil {
1169 return templ_7745c5c3_Err
1170 }
1171 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "<span class=\"")
1172 if templ_7745c5c3_Err != nil {
1173 return templ_7745c5c3_Err
1174 }
1175 var templ_7745c5c3_Var64 string
1176 templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var63).String())
1177 if templ_7745c5c3_Err != nil {
1178 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 1, Col: 0}
1179 }
1180 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var64)
1181 if templ_7745c5c3_Err != nil {
1182 return templ_7745c5c3_Err
1183 }
1184 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "\" role=\"img\" aria-label=\"")
1185 if templ_7745c5c3_Err != nil {
1186 return templ_7745c5c3_Err
1187 }
1188 var templ_7745c5c3_Var65 string
1189 templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.ResolveAttributeValue(a.Level)
1190 if templ_7745c5c3_Err != nil {
1191 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 155, Col: 72}
1192 }
1193 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var65)
1194 if templ_7745c5c3_Err != nil {
1195 return templ_7745c5c3_Err
1196 }
1197 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "\" title=\"")
1198 if templ_7745c5c3_Err != nil {
1199 return templ_7745c5c3_Err
1200 }
1201 var templ_7745c5c3_Var66 string
1202 templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(a.Level)
1203 if templ_7745c5c3_Err != nil {
1204 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 155, Col: 90}
1205 }
1206 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66)
1207 if templ_7745c5c3_Err != nil {
1208 return templ_7745c5c3_Err
1209 }
1210 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, "\"></span><div class=\"annot-body\"><p class=\"annot-head\"><span class=\"annot-level\">")
1211 if templ_7745c5c3_Err != nil {
1212 return templ_7745c5c3_Err
1213 }
1214 var templ_7745c5c3_Var67 string
1215 templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.JoinStringErrs(a.Level)
1216 if templ_7745c5c3_Err != nil {
1217 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 158, Col: 41}
1218 }
1219 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var67))
1220 if templ_7745c5c3_Err != nil {
1221 return templ_7745c5c3_Err
1222 }
1223 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "</span> ")
1224 if templ_7745c5c3_Err != nil {
1225 return templ_7745c5c3_Err
1226 }
1227 if !grouped {
1228 if a.JobHref != "" {
1229 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "<a href=\"")
1230 if templ_7745c5c3_Err != nil {
1231 return templ_7745c5c3_Err
1232 }
1233 var templ_7745c5c3_Var68 templ.SafeURL
1234 templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(a.JobHref))
1235 if templ_7745c5c3_Err != nil {
1236 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 161, Col: 42}
1237 }
1238 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))
1239 if templ_7745c5c3_Err != nil {
1240 return templ_7745c5c3_Err
1241 }
1242 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "\">")
1243 if templ_7745c5c3_Err != nil {
1244 return templ_7745c5c3_Err
1245 }
1246 var templ_7745c5c3_Var69 string
1247 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(a.Job)
1248 if templ_7745c5c3_Err != nil {
1249 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 161, Col: 52}
1250 }
1251 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var69))
1252 if templ_7745c5c3_Err != nil {
1253 return templ_7745c5c3_Err
1254 }
1255 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "</a>")
1256 if templ_7745c5c3_Err != nil {
1257 return templ_7745c5c3_Err
1258 }
1259 } else {
1260 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "<span>")
1261 if templ_7745c5c3_Err != nil {
1262 return templ_7745c5c3_Err
1263 }
1264 var templ_7745c5c3_Var70 string
1265 templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(a.Job)
1266 if templ_7745c5c3_Err != nil {
1267 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 163, Col: 21}
1268 }
1269 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70))
1270 if templ_7745c5c3_Err != nil {
1271 return templ_7745c5c3_Err
1272 }
1273 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "</span>")
1274 if templ_7745c5c3_Err != nil {
1275 return templ_7745c5c3_Err
1276 }
1277 }
1278 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, " <span class=\"mute\">")
1279 if templ_7745c5c3_Err != nil {
1280 return templ_7745c5c3_Err
1281 }
1282 var templ_7745c5c3_Var71 string
1283 templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(a.Step)
1284 if templ_7745c5c3_Err != nil {
1285 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 165, Col: 34}
1286 }
1287 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71))
1288 if templ_7745c5c3_Err != nil {
1289 return templ_7745c5c3_Err
1290 }
1291 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "</span> ")
1292 if templ_7745c5c3_Err != nil {
1293 return templ_7745c5c3_Err
1294 }
1295 }
1296 if a.Title != "" {
1297 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "<strong>")
1298 if templ_7745c5c3_Err != nil {
1299 return templ_7745c5c3_Err
1300 }
1301 var templ_7745c5c3_Var72 string
1302 templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(a.Title)
1303 if templ_7745c5c3_Err != nil {
1304 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 168, Col: 24}
1305 }
1306 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72))
1307 if templ_7745c5c3_Err != nil {
1308 return templ_7745c5c3_Err
1309 }
1310 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "</strong>")
1311 if templ_7745c5c3_Err != nil {
1312 return templ_7745c5c3_Err
1313 }
1314 }
1315 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</p><p class=\"annot-msg\">")
1316 if templ_7745c5c3_Err != nil {
1317 return templ_7745c5c3_Err
1318 }
1319 var templ_7745c5c3_Var73 string
1320 templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinStringErrs(a.Message)
1321 if templ_7745c5c3_Err != nil {
1322 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 171, Col: 37}
1323 }
1324 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73))
1325 if templ_7745c5c3_Err != nil {
1326 return templ_7745c5c3_Err
1327 }
1328 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "</p>")
1329 if templ_7745c5c3_Err != nil {
1330 return templ_7745c5c3_Err
1331 }
1332 if a.Where != "" {
1333 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "<p class=\"annot-where\">")
1334 if templ_7745c5c3_Err != nil {
1335 return templ_7745c5c3_Err
1336 }
1337 if a.WhereHref != "" {
1338 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "<a href=\"")
1339 if templ_7745c5c3_Err != nil {
1340 return templ_7745c5c3_Err
1341 }
1342 var templ_7745c5c3_Var74 templ.SafeURL
1343 templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(a.WhereHref))
1344 if templ_7745c5c3_Err != nil {
1345 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 175, Col: 44}
1346 }
1347 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var74))
1348 if templ_7745c5c3_Err != nil {
1349 return templ_7745c5c3_Err
1350 }
1351 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "\">")
1352 if templ_7745c5c3_Err != nil {
1353 return templ_7745c5c3_Err
1354 }
1355 var templ_7745c5c3_Var75 string
1356 templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinStringErrs(a.Where)
1357 if templ_7745c5c3_Err != nil {
1358 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 175, Col: 56}
1359 }
1360 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75))
1361 if templ_7745c5c3_Err != nil {
1362 return templ_7745c5c3_Err
1363 }
1364 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "</a>")
1365 if templ_7745c5c3_Err != nil {
1366 return templ_7745c5c3_Err
1367 }
1368 } else {
1369 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "<span>")
1370 if templ_7745c5c3_Err != nil {
1371 return templ_7745c5c3_Err
1372 }
1373 var templ_7745c5c3_Var76 string
1374 templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinStringErrs(a.Where)
1375 if templ_7745c5c3_Err != nil {
1376 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 177, Col: 23}
1377 }
1378 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76))
1379 if templ_7745c5c3_Err != nil {
1380 return templ_7745c5c3_Err
1381 }
1382 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "</span>")
1383 if templ_7745c5c3_Err != nil {
1384 return templ_7745c5c3_Err
1385 }
1386 }
1387 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "</p>")
1388 if templ_7745c5c3_Err != nil {
1389 return templ_7745c5c3_Err
1390 }
1391 }
1392 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "</div></li>")
1393 if templ_7745c5c3_Err != nil {
1394 return templ_7745c5c3_Err
1395 }
1396 }
1397 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "</ul>")
1398 if templ_7745c5c3_Err != nil {
1399 return templ_7745c5c3_Err
1400 }
1401 if more {
1402 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "<p class=\"mute\">more annotations exist than are shown.</p>")
1403 if templ_7745c5c3_Err != nil {
1404 return templ_7745c5c3_Err
1405 }
1406 }
1407 return nil
1408 })
1409}
1410
1411// JobAnnotations is the annotations of the job page, replaced by the live
1412// updates; the element exists even when there is none, so that the first one
1413// has something to replace.
1414func JobAnnotations(anns []AnnotationView, more bool) templ.Component {
1415 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1416 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1417 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1418 return templ_7745c5c3_CtxErr
1419 }
1420 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1421 if !templ_7745c5c3_IsBuffer {
1422 defer func() {
1423 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1424 if templ_7745c5c3_Err == nil {
1425 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1426 }
1427 }()
1428 }
1429 ctx = templ.InitializeContext(ctx)
1430 templ_7745c5c3_Var77 := templ.GetChildren(ctx)
1431 if templ_7745c5c3_Var77 == nil {
1432 templ_7745c5c3_Var77 = templ.NopComponent
1433 }
1434 ctx = templ.ClearChildren(ctx)
1435 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "<section id=\"job-annotations\" class=\"annots\" aria-label=\"Annotations\">")
1436 if templ_7745c5c3_Err != nil {
1437 return templ_7745c5c3_Err
1438 }
1439 if len(anns) > 0 {
1440 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "<h3>Annotations <span class=\"count\">")
1441 if templ_7745c5c3_Err != nil {
1442 return templ_7745c5c3_Err
1443 }
1444 var templ_7745c5c3_Var78 string
1445 templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(anns)))
1446 if templ_7745c5c3_Err != nil {
1447 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 196, Col: 56}
1448 }
1449 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78))
1450 if templ_7745c5c3_Err != nil {
1451 return templ_7745c5c3_Err
1452 }
1453 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, "</span></h3>")
1454 if templ_7745c5c3_Err != nil {
1455 return templ_7745c5c3_Err
1456 }
1457 templ_7745c5c3_Err = AnnotationList(anns, more, true).Render(ctx, templ_7745c5c3_Buffer)
1458 if templ_7745c5c3_Err != nil {
1459 return templ_7745c5c3_Err
1460 }
1461 }
1462 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "</section>")
1463 if templ_7745c5c3_Err != nil {
1464 return templ_7745c5c3_Err
1465 }
1466 return nil
1467 })
1468}
1469
1470// RunSummaries is the job summaries of a run, one block per step that wrote
1471// one. The Markdown is rendered by the README renderer: raw HTML dropped, URLs
1472// filtered, images shown as their alt text.
1473func RunSummaries(sums []JobSummaries, more bool) templ.Component {
1474 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1475 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1476 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1477 return templ_7745c5c3_CtxErr
1478 }
1479 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1480 if !templ_7745c5c3_IsBuffer {
1481 defer func() {
1482 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1483 if templ_7745c5c3_Err == nil {
1484 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1485 }
1486 }()
1487 }
1488 ctx = templ.InitializeContext(ctx)
1489 templ_7745c5c3_Var79 := templ.GetChildren(ctx)
1490 if templ_7745c5c3_Var79 == nil {
1491 templ_7745c5c3_Var79 = templ.NopComponent
1492 }
1493 ctx = templ.ClearChildren(ctx)
1494 for _, j := range sums {
1495 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "<section class=\"summaries\" aria-label=\"")
1496 if templ_7745c5c3_Err != nil {
1497 return templ_7745c5c3_Err
1498 }
1499 var templ_7745c5c3_Var80 string
1500 templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue("Summary of " + j.Job)
1501 if templ_7745c5c3_Err != nil {
1502 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 207, Col: 63}
1503 }
1504 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80)
1505 if templ_7745c5c3_Err != nil {
1506 return templ_7745c5c3_Err
1507 }
1508 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "\"><h3>")
1509 if templ_7745c5c3_Err != nil {
1510 return templ_7745c5c3_Err
1511 }
1512 if j.JobHref != "" {
1513 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "<a href=\"")
1514 if templ_7745c5c3_Err != nil {
1515 return templ_7745c5c3_Err
1516 }
1517 var templ_7745c5c3_Var81 templ.SafeURL
1518 templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(j.JobHref))
1519 if templ_7745c5c3_Err != nil {
1520 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 210, Col: 39}
1521 }
1522 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81))
1523 if templ_7745c5c3_Err != nil {
1524 return templ_7745c5c3_Err
1525 }
1526 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "\">")
1527 if templ_7745c5c3_Err != nil {
1528 return templ_7745c5c3_Err
1529 }
1530 var templ_7745c5c3_Var82 string
1531 templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.JoinStringErrs(j.Job)
1532 if templ_7745c5c3_Err != nil {
1533 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 210, Col: 49}
1534 }
1535 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var82))
1536 if templ_7745c5c3_Err != nil {
1537 return templ_7745c5c3_Err
1538 }
1539 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "</a> ")
1540 if templ_7745c5c3_Err != nil {
1541 return templ_7745c5c3_Err
1542 }
1543 } else {
1544 var templ_7745c5c3_Var83 string
1545 templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.JoinStringErrs(j.Job)
1546 if templ_7745c5c3_Err != nil {
1547 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 212, Col: 12}
1548 }
1549 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var83))
1550 if templ_7745c5c3_Err != nil {
1551 return templ_7745c5c3_Err
1552 }
1553 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, " ")
1554 if templ_7745c5c3_Err != nil {
1555 return templ_7745c5c3_Err
1556 }
1557 }
1558 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<span class=\"mute\">summary</span></h3>")
1559 if templ_7745c5c3_Err != nil {
1560 return templ_7745c5c3_Err
1561 }
1562 for _, s := range j.Steps {
1563 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "<article class=\"prose summary\" aria-label=\"")
1564 if templ_7745c5c3_Err != nil {
1565 return templ_7745c5c3_Err
1566 }
1567 var templ_7745c5c3_Var84 string
1568 templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.ResolveAttributeValue(s.Step)
1569 if templ_7745c5c3_Err != nil {
1570 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 217, Col: 54}
1571 }
1572 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var84)
1573 if templ_7745c5c3_Err != nil {
1574 return templ_7745c5c3_Err
1575 }
1576 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "\" hx-ignore><h4 class=\"summary-step\">")
1577 if templ_7745c5c3_Err != nil {
1578 return templ_7745c5c3_Err
1579 }
1580 var templ_7745c5c3_Var85 string
1581 templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinStringErrs(s.Step)
1582 if templ_7745c5c3_Err != nil {
1583 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 218, Col: 38}
1584 }
1585 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85))
1586 if templ_7745c5c3_Err != nil {
1587 return templ_7745c5c3_Err
1588 }
1589 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</h4>")
1590 if templ_7745c5c3_Err != nil {
1591 return templ_7745c5c3_Err
1592 }
1593 if s.Note != "" {
1594 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "<p class=\"dim\">")
1595 if templ_7745c5c3_Err != nil {
1596 return templ_7745c5c3_Err
1597 }
1598 var templ_7745c5c3_Var86 string
1599 templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinStringErrs(s.Note)
1600 if templ_7745c5c3_Err != nil {
1601 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 220, Col: 29}
1602 }
1603 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86))
1604 if templ_7745c5c3_Err != nil {
1605 return templ_7745c5c3_Err
1606 }
1607 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "</p>")
1608 if templ_7745c5c3_Err != nil {
1609 return templ_7745c5c3_Err
1610 }
1611 } else {
1612 templ_7745c5c3_Err = templ.Raw(s.HTML).Render(ctx, templ_7745c5c3_Buffer)
1613 if templ_7745c5c3_Err != nil {
1614 return templ_7745c5c3_Err
1615 }
1616 }
1617 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "</article>")
1618 if templ_7745c5c3_Err != nil {
1619 return templ_7745c5c3_Err
1620 }
1621 }
1622 if j.More {
1623 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "<p class=\"mute\">the job has more summaries than the first 20, which are shown.</p>")
1624 if templ_7745c5c3_Err != nil {
1625 return templ_7745c5c3_Err
1626 }
1627 }
1628 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "</section>")
1629 if templ_7745c5c3_Err != nil {
1630 return templ_7745c5c3_Err
1631 }
1632 }
1633 if more {
1634 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "<p class=\"mute\">more summaries are not shown: the summaries of the page are over ")
1635 if templ_7745c5c3_Err != nil {
1636 return templ_7745c5c3_Err
1637 }
1638 var templ_7745c5c3_Var87 string
1639 templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.JoinStringErrs(humanSize(maxSummaryPageBytes))
1640 if templ_7745c5c3_Err != nil {
1641 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 232, Col: 115}
1642 }
1643 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var87))
1644 if templ_7745c5c3_Err != nil {
1645 return templ_7745c5c3_Err
1646 }
1647 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, ".</p>")
1648 if templ_7745c5c3_Err != nil {
1649 return templ_7745c5c3_Err
1650 }
1651 }
1652 return nil
1653 })
1654}
1655
1656func runRail(p RunPage) templ.Component {
1657 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1658 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1659 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1660 return templ_7745c5c3_CtxErr
1661 }
1662 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1663 if !templ_7745c5c3_IsBuffer {
1664 defer func() {
1665 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1666 if templ_7745c5c3_Err == nil {
1667 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1668 }
1669 }()
1670 }
1671 ctx = templ.InitializeContext(ctx)
1672 templ_7745c5c3_Var88 := templ.GetChildren(ctx)
1673 if templ_7745c5c3_Var88 == nil {
1674 templ_7745c5c3_Var88 = templ.NopComponent
1675 }
1676 ctx = templ.ClearChildren(ctx)
1677 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<section aria-labelledby=\"r-run\"><h2 id=\"r-run\">Run</h2><dl class=\"kv\"><dt>result</dt><dd>")
1678 if templ_7745c5c3_Err != nil {
1679 return templ_7745c5c3_Err
1680 }
1681 var templ_7745c5c3_Var89 string
1682 templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.JoinStringErrs(p.State)
1683 if templ_7745c5c3_Err != nil {
1684 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 241, Col: 16}
1685 }
1686 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var89))
1687 if templ_7745c5c3_Err != nil {
1688 return templ_7745c5c3_Err
1689 }
1690 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "</dd><dt>commit</dt><dd><a href=\"")
1691 if templ_7745c5c3_Err != nil {
1692 return templ_7745c5c3_Err
1693 }
1694 var templ_7745c5c3_Var90 templ.SafeURL
1695 templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.CHref))
1696 if templ_7745c5c3_Err != nil {
1697 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 243, Col: 39}
1698 }
1699 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var90))
1700 if templ_7745c5c3_Err != nil {
1701 return templ_7745c5c3_Err
1702 }
1703 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "\">")
1704 if templ_7745c5c3_Err != nil {
1705 return templ_7745c5c3_Err
1706 }
1707 var templ_7745c5c3_Var91 string
1708 templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.JoinStringErrs(p.Short)
1709 if templ_7745c5c3_Err != nil {
1710 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 243, Col: 51}
1711 }
1712 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var91))
1713 if templ_7745c5c3_Err != nil {
1714 return templ_7745c5c3_Err
1715 }
1716 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "</a></dd><dt>ref</dt><dd><a href=\"")
1717 if templ_7745c5c3_Err != nil {
1718 return templ_7745c5c3_Err
1719 }
1720 var templ_7745c5c3_Var92 templ.SafeURL
1721 templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RefHref))
1722 if templ_7745c5c3_Err != nil {
1723 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 245, Col: 41}
1724 }
1725 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var92))
1726 if templ_7745c5c3_Err != nil {
1727 return templ_7745c5c3_Err
1728 }
1729 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "\">")
1730 if templ_7745c5c3_Err != nil {
1731 return templ_7745c5c3_Err
1732 }
1733 var templ_7745c5c3_Var93 string
1734 templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinStringErrs(p.Ref)
1735 if templ_7745c5c3_Err != nil {
1736 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 245, Col: 51}
1737 }
1738 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93))
1739 if templ_7745c5c3_Err != nil {
1740 return templ_7745c5c3_Err
1741 }
1742 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "</a></dd><dt>actor</dt><dd>")
1743 if templ_7745c5c3_Err != nil {
1744 return templ_7745c5c3_Err
1745 }
1746 var templ_7745c5c3_Var94 string
1747 templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.JoinStringErrs(p.Actor)
1748 if templ_7745c5c3_Err != nil {
1749 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 247, Col: 16}
1750 }
1751 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var94))
1752 if templ_7745c5c3_Err != nil {
1753 return templ_7745c5c3_Err
1754 }
1755 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "</dd><dt>attempt</dt><dd>")
1756 if templ_7745c5c3_Err != nil {
1757 return templ_7745c5c3_Err
1758 }
1759 var templ_7745c5c3_Var95 string
1760 templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(int(p.Attempt)))
1761 if templ_7745c5c3_Err != nil {
1762 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 249, Col: 29}
1763 }
1764 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95))
1765 if templ_7745c5c3_Err != nil {
1766 return templ_7745c5c3_Err
1767 }
1768 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, " of ")
1769 if templ_7745c5c3_Err != nil {
1770 return templ_7745c5c3_Err
1771 }
1772 var templ_7745c5c3_Var96 string
1773 templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(int(p.Latest)))
1774 if templ_7745c5c3_Err != nil {
1775 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 249, Col: 56}
1776 }
1777 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96))
1778 if templ_7745c5c3_Err != nil {
1779 return templ_7745c5c3_Err
1780 }
1781 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "</dd></dl>")
1782 if templ_7745c5c3_Err != nil {
1783 return templ_7745c5c3_Err
1784 }
1785 if len(p.Attempts) > 0 {
1786 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "<ul class=\"attempts\">")
1787 if templ_7745c5c3_Err != nil {
1788 return templ_7745c5c3_Err
1789 }
1790 for _, a := range p.Attempts {
1791 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "<li>")
1792 if templ_7745c5c3_Err != nil {
1793 return templ_7745c5c3_Err
1794 }
1795 if a.Current {
1796 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "<span aria-current=\"page\">")
1797 if templ_7745c5c3_Err != nil {
1798 return templ_7745c5c3_Err
1799 }
1800 var templ_7745c5c3_Var97 string
1801 templ_7745c5c3_Var97, templ_7745c5c3_Err = templ.JoinStringErrs(a.Label)
1802 if templ_7745c5c3_Err != nil {
1803 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 256, Col: 42}
1804 }
1805 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var97))
1806 if templ_7745c5c3_Err != nil {
1807 return templ_7745c5c3_Err
1808 }
1809 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "</span>")
1810 if templ_7745c5c3_Err != nil {
1811 return templ_7745c5c3_Err
1812 }
1813 } else {
1814 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "<a href=\"")
1815 if templ_7745c5c3_Err != nil {
1816 return templ_7745c5c3_Err
1817 }
1818 var templ_7745c5c3_Var98 templ.SafeURL
1819 templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(a.Href))
1820 if templ_7745c5c3_Err != nil {
1821 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 258, Col: 38}
1822 }
1823 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98))
1824 if templ_7745c5c3_Err != nil {
1825 return templ_7745c5c3_Err
1826 }
1827 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "\">")
1828 if templ_7745c5c3_Err != nil {
1829 return templ_7745c5c3_Err
1830 }
1831 var templ_7745c5c3_Var99 string
1832 templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(a.Label)
1833 if templ_7745c5c3_Err != nil {
1834 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 258, Col: 50}
1835 }
1836 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99))
1837 if templ_7745c5c3_Err != nil {
1838 return templ_7745c5c3_Err
1839 }
1840 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "</a>")
1841 if templ_7745c5c3_Err != nil {
1842 return templ_7745c5c3_Err
1843 }
1844 }
1845 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "</li>")
1846 if templ_7745c5c3_Err != nil {
1847 return templ_7745c5c3_Err
1848 }
1849 }
1850 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "</ul>")
1851 if templ_7745c5c3_Err != nil {
1852 return templ_7745c5c3_Err
1853 }
1854 }
1855 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "</section>")
1856 if templ_7745c5c3_Err != nil {
1857 return templ_7745c5c3_Err
1858 }
1859 if p.CancelAction != "" || p.RerunAction != "" {
1860 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "<section aria-labelledby=\"r-act\" class=\"decide\"><h2 id=\"r-act\">Actions</h2><div class=\"d-btns\">")
1861 if templ_7745c5c3_Err != nil {
1862 return templ_7745c5c3_Err
1863 }
1864 if p.CancelAction != "" {
1865 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<form method=\"post\" action=\"")
1866 if templ_7745c5c3_Err != nil {
1867 return templ_7745c5c3_Err
1868 }
1869 var templ_7745c5c3_Var100 templ.SafeURL
1870 templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.CancelAction))
1871 if templ_7745c5c3_Err != nil {
1872 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 270, Col: 63}
1873 }
1874 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100))
1875 if templ_7745c5c3_Err != nil {
1876 return templ_7745c5c3_Err
1877 }
1878 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "\"><button type=\"submit\" class=\"btn\">Cancel run</button></form>")
1879 if templ_7745c5c3_Err != nil {
1880 return templ_7745c5c3_Err
1881 }
1882 }
1883 if p.RerunAction != "" {
1884 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "<form method=\"post\" action=\"")
1885 if templ_7745c5c3_Err != nil {
1886 return templ_7745c5c3_Err
1887 }
1888 var templ_7745c5c3_Var101 templ.SafeURL
1889 templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RerunAction))
1890 if templ_7745c5c3_Err != nil {
1891 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 273, Col: 62}
1892 }
1893 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101))
1894 if templ_7745c5c3_Err != nil {
1895 return templ_7745c5c3_Err
1896 }
1897 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\"><button type=\"submit\" class=\"btn primary\">Re-run all jobs</button></form>")
1898 if templ_7745c5c3_Err != nil {
1899 return templ_7745c5c3_Err
1900 }
1901 }
1902 if p.CanRerunFailed {
1903 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "<form method=\"post\" action=\"")
1904 if templ_7745c5c3_Err != nil {
1905 return templ_7745c5c3_Err
1906 }
1907 var templ_7745c5c3_Var102 templ.SafeURL
1908 templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RerunFailedAction))
1909 if templ_7745c5c3_Err != nil {
1910 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 276, Col: 68}
1911 }
1912 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102))
1913 if templ_7745c5c3_Err != nil {
1914 return templ_7745c5c3_Err
1915 }
1916 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "\"><button type=\"submit\" class=\"btn\">Re-run failed jobs</button></form>")
1917 if templ_7745c5c3_Err != nil {
1918 return templ_7745c5c3_Err
1919 }
1920 }
1921 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "</div></section>")
1922 if templ_7745c5c3_Err != nil {
1923 return templ_7745c5c3_Err
1924 }
1925 }
1926 return nil
1927 })
1928}
1929
1930// JobHead is the title of the job page with its state and its error, replaced
1931// by the live updates. total is the number of lines the log holds.
1932func JobHead(j JobRow, total int64) templ.Component {
1933 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1934 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1935 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1936 return templ_7745c5c3_CtxErr
1937 }
1938 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1939 if !templ_7745c5c3_IsBuffer {
1940 defer func() {
1941 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1942 if templ_7745c5c3_Err == nil {
1943 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1944 }
1945 }()
1946 }
1947 ctx = templ.InitializeContext(ctx)
1948 templ_7745c5c3_Var103 := templ.GetChildren(ctx)
1949 if templ_7745c5c3_Var103 == nil {
1950 templ_7745c5c3_Var103 = templ.NopComponent
1951 }
1952 ctx = templ.ClearChildren(ctx)
1953 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "<div id=\"job-head\" data-total=\"")
1954 if templ_7745c5c3_Err != nil {
1955 return templ_7745c5c3_Err
1956 }
1957 var templ_7745c5c3_Var104 string
1958 templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa64(total))
1959 if templ_7745c5c3_Err != nil {
1960 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 286, Col: 46}
1961 }
1962 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var104)
1963 if templ_7745c5c3_Err != nil {
1964 return templ_7745c5c3_Err
1965 }
1966 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "\"><h2 class=\"run-h\">")
1967 if templ_7745c5c3_Err != nil {
1968 return templ_7745c5c3_Err
1969 }
1970 templ_7745c5c3_Err = CheckIcon(j.Kind, j.State).Render(ctx, templ_7745c5c3_Buffer)
1971 if templ_7745c5c3_Err != nil {
1972 return templ_7745c5c3_Err
1973 }
1974 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "<span>")
1975 if templ_7745c5c3_Err != nil {
1976 return templ_7745c5c3_Err
1977 }
1978 var templ_7745c5c3_Var105 string
1979 templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinStringErrs(j.Name)
1980 if templ_7745c5c3_Err != nil {
1981 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 287, Col: 61}
1982 }
1983 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105))
1984 if templ_7745c5c3_Err != nil {
1985 return templ_7745c5c3_Err
1986 }
1987 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "</span> <span class=\"dim\">")
1988 if templ_7745c5c3_Err != nil {
1989 return templ_7745c5c3_Err
1990 }
1991 var templ_7745c5c3_Var106 string
1992 templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.JoinStringErrs(j.State)
1993 if templ_7745c5c3_Err != nil {
1994 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 287, Col: 98}
1995 }
1996 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var106))
1997 if templ_7745c5c3_Err != nil {
1998 return templ_7745c5c3_Err
1999 }
2000 var templ_7745c5c3_Var107 string
2001 templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2002 if templ_7745c5c3_Err != nil {
2003 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 287, Col: 105}
2004 }
2005 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107))
2006 if templ_7745c5c3_Err != nil {
2007 return templ_7745c5c3_Err
2008 }
2009 var templ_7745c5c3_Var108 string
2010 templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(j.Duration)
2011 if templ_7745c5c3_Err != nil {
2012 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 287, Col: 119}
2013 }
2014 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108))
2015 if templ_7745c5c3_Err != nil {
2016 return templ_7745c5c3_Err
2017 }
2018 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "</span></h2>")
2019 if templ_7745c5c3_Err != nil {
2020 return templ_7745c5c3_Err
2021 }
2022 if j.Error != "" {
2023 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "<p class=\"job-err\">")
2024 if templ_7745c5c3_Err != nil {
2025 return templ_7745c5c3_Err
2026 }
2027 var templ_7745c5c3_Var109 string
2028 templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(j.Error)
2029 if templ_7745c5c3_Err != nil {
2030 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 289, Col: 31}
2031 }
2032 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109))
2033 if templ_7745c5c3_Err != nil {
2034 return templ_7745c5c3_Err
2035 }
2036 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "</p>")
2037 if templ_7745c5c3_Err != nil {
2038 return templ_7745c5c3_Err
2039 }
2040 }
2041 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "</div>")
2042 if templ_7745c5c3_Err != nil {
2043 return templ_7745c5c3_Err
2044 }
2045 return nil
2046 })
2047}
2048
2049// JobSteps is the steps of the job in the rail, replaced by the live updates.
2050func JobSteps(steps []StepView) templ.Component {
2051 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
2052 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
2053 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
2054 return templ_7745c5c3_CtxErr
2055 }
2056 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
2057 if !templ_7745c5c3_IsBuffer {
2058 defer func() {
2059 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
2060 if templ_7745c5c3_Err == nil {
2061 templ_7745c5c3_Err = templ_7745c5c3_BufErr
2062 }
2063 }()
2064 }
2065 ctx = templ.InitializeContext(ctx)
2066 templ_7745c5c3_Var110 := templ.GetChildren(ctx)
2067 if templ_7745c5c3_Var110 == nil {
2068 templ_7745c5c3_Var110 = templ.NopComponent
2069 }
2070 ctx = templ.ClearChildren(ctx)
2071 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "<ol class=\"steps\" id=\"job-steps\">")
2072 if templ_7745c5c3_Err != nil {
2073 return templ_7745c5c3_Err
2074 }
2075 for _, s := range steps {
2076 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "<li>")
2077 if templ_7745c5c3_Err != nil {
2078 return templ_7745c5c3_Err
2079 }
2080 templ_7745c5c3_Err = CheckIcon(s.Kind, s.State).Render(ctx, templ_7745c5c3_Buffer)
2081 if templ_7745c5c3_Err != nil {
2082 return templ_7745c5c3_Err
2083 }
2084 if s.LogEnd > s.LogStart {
2085 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<a href=\"")
2086 if templ_7745c5c3_Err != nil {
2087 return templ_7745c5c3_Err
2088 }
2089 var templ_7745c5c3_Var111 templ.SafeURL
2090 templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL("#L" + itoa64(s.LogStart)))
2091 if templ_7745c5c3_Err != nil {
2092 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 301, Col: 55}
2093 }
2094 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111))
2095 if templ_7745c5c3_Err != nil {
2096 return templ_7745c5c3_Err
2097 }
2098 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "\">")
2099 if templ_7745c5c3_Err != nil {
2100 return templ_7745c5c3_Err
2101 }
2102 var templ_7745c5c3_Var112 string
2103 templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(s.Name)
2104 if templ_7745c5c3_Err != nil {
2105 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 301, Col: 66}
2106 }
2107 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112))
2108 if templ_7745c5c3_Err != nil {
2109 return templ_7745c5c3_Err
2110 }
2111 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, "</a> ")
2112 if templ_7745c5c3_Err != nil {
2113 return templ_7745c5c3_Err
2114 }
2115 } else {
2116 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, "<span>")
2117 if templ_7745c5c3_Err != nil {
2118 return templ_7745c5c3_Err
2119 }
2120 var templ_7745c5c3_Var113 string
2121 templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinStringErrs(s.Name)
2122 if templ_7745c5c3_Err != nil {
2123 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 303, Col: 19}
2124 }
2125 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113))
2126 if templ_7745c5c3_Err != nil {
2127 return templ_7745c5c3_Err
2128 }
2129 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "</span> ")
2130 if templ_7745c5c3_Err != nil {
2131 return templ_7745c5c3_Err
2132 }
2133 }
2134 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "<span class=\"dim\">")
2135 if templ_7745c5c3_Err != nil {
2136 return templ_7745c5c3_Err
2137 }
2138 var templ_7745c5c3_Var114 string
2139 templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.JoinStringErrs(s.Duration)
2140 if templ_7745c5c3_Err != nil {
2141 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 305, Col: 34}
2142 }
2143 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var114))
2144 if templ_7745c5c3_Err != nil {
2145 return templ_7745c5c3_Err
2146 }
2147 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "</span></li>")
2148 if templ_7745c5c3_Err != nil {
2149 return templ_7745c5c3_Err
2150 }
2151 }
2152 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "</ol>")
2153 if templ_7745c5c3_Err != nil {
2154 return templ_7745c5c3_Err
2155 }
2156 return nil
2157 })
2158}
2159
2160func Job(l Layout, p JobPage) templ.Component {
2161 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
2162 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
2163 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
2164 return templ_7745c5c3_CtxErr
2165 }
2166 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
2167 if !templ_7745c5c3_IsBuffer {
2168 defer func() {
2169 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
2170 if templ_7745c5c3_Err == nil {
2171 templ_7745c5c3_Err = templ_7745c5c3_BufErr
2172 }
2173 }()
2174 }
2175 ctx = templ.InitializeContext(ctx)
2176 templ_7745c5c3_Var115 := templ.GetChildren(ctx)
2177 if templ_7745c5c3_Var115 == nil {
2178 templ_7745c5c3_Var115 = templ.NopComponent
2179 }
2180 ctx = templ.ClearChildren(ctx)
2181 templ_7745c5c3_Var116 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
2182 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
2183 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
2184 if !templ_7745c5c3_IsBuffer {
2185 defer func() {
2186 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
2187 if templ_7745c5c3_Err == nil {
2188 templ_7745c5c3_Err = templ_7745c5c3_BufErr
2189 }
2190 }()
2191 }
2192 ctx = templ.InitializeContext(ctx)
2193 templ_7745c5c3_Err = LiveSlot("job-notice").Render(ctx, templ_7745c5c3_Buffer)
2194 if templ_7745c5c3_Err != nil {
2195 return templ_7745c5c3_Err
2196 }
2197 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, " ")
2198 if templ_7745c5c3_Err != nil {
2199 return templ_7745c5c3_Err
2200 }
2201 templ_7745c5c3_Err = JobHead(p.JobRow, p.Total).Render(ctx, templ_7745c5c3_Buffer)
2202 if templ_7745c5c3_Err != nil {
2203 return templ_7745c5c3_Err
2204 }
2205 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, " ")
2206 if templ_7745c5c3_Err != nil {
2207 return templ_7745c5c3_Err
2208 }
2209 templ_7745c5c3_Err = JobAnnotations(p.Annotations, p.AnnotationsMore).Render(ctx, templ_7745c5c3_Buffer)
2210 if templ_7745c5c3_Err != nil {
2211 return templ_7745c5c3_Err
2212 }
2213 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, " <div id=\"job-log\" class=\"joblog\" data-total=\"")
2214 if templ_7745c5c3_Err != nil {
2215 return templ_7745c5c3_Err
2216 }
2217 var templ_7745c5c3_Var117 string
2218 templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa64(p.Total))
2219 if templ_7745c5c3_Err != nil {
2220 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 316, Col: 63}
2221 }
2222 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var117)
2223 if templ_7745c5c3_Err != nil {
2224 return templ_7745c5c3_Err
2225 }
2226 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, "\"")
2227 if templ_7745c5c3_Err != nil {
2228 return templ_7745c5c3_Err
2229 }
2230 if p.Follow {
2231 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, " data-follow")
2232 if templ_7745c5c3_Err != nil {
2233 return templ_7745c5c3_Err
2234 }
2235 }
2236 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, " data-stream=\"")
2237 if templ_7745c5c3_Err != nil {
2238 return templ_7745c5c3_Err
2239 }
2240 var templ_7745c5c3_Var118 string
2241 templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.StreamHref)
2242 if templ_7745c5c3_Err != nil {
2243 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 316, Col: 118}
2244 }
2245 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var118)
2246 if templ_7745c5c3_Err != nil {
2247 return templ_7745c5c3_Err
2248 }
2249 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "\" data-next=\"")
2250 if templ_7745c5c3_Err != nil {
2251 return templ_7745c5c3_Err
2252 }
2253 var templ_7745c5c3_Var119 string
2254 templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa64(p.From + int64(len(p.Lines))))
2255 if templ_7745c5c3_Err != nil {
2256 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 316, Col: 169}
2257 }
2258 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var119)
2259 if templ_7745c5c3_Err != nil {
2260 return templ_7745c5c3_Err
2261 }
2262 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, "\">")
2263 if templ_7745c5c3_Err != nil {
2264 return templ_7745c5c3_Err
2265 }
2266 if p.Note != "" {
2267 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, "<p class=\"dim\">")
2268 if templ_7745c5c3_Err != nil {
2269 return templ_7745c5c3_Err
2270 }
2271 var templ_7745c5c3_Var120 string
2272 templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
2273 if templ_7745c5c3_Err != nil {
2274 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 318, Col: 27}
2275 }
2276 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120))
2277 if templ_7745c5c3_Err != nil {
2278 return templ_7745c5c3_Err
2279 }
2280 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, "</p>")
2281 if templ_7745c5c3_Err != nil {
2282 return templ_7745c5c3_Err
2283 }
2284 }
2285 if p.Prev != "" {
2286 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "<p class=\"more\"><a href=\"")
2287 if templ_7745c5c3_Err != nil {
2288 return templ_7745c5c3_Err
2289 }
2290 var templ_7745c5c3_Var121 templ.SafeURL
2291 templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Prev))
2292 if templ_7745c5c3_Err != nil {
2293 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 321, Col: 51}
2294 }
2295 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121))
2296 if templ_7745c5c3_Err != nil {
2297 return templ_7745c5c3_Err
2298 }
2299 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "\" rel=\"prev\">earlier lines</a></p>")
2300 if templ_7745c5c3_Err != nil {
2301 return templ_7745c5c3_Err
2302 }
2303 }
2304 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "<ol class=\"log\" start=\"")
2305 if templ_7745c5c3_Err != nil {
2306 return templ_7745c5c3_Err
2307 }
2308 var templ_7745c5c3_Var122 string
2309 templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa64(p.From + 1))
2310 if templ_7745c5c3_Err != nil {
2311 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 323, Col: 45}
2312 }
2313 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var122)
2314 if templ_7745c5c3_Err != nil {
2315 return templ_7745c5c3_Err
2316 }
2317 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, "\">")
2318 if templ_7745c5c3_Err != nil {
2319 return templ_7745c5c3_Err
2320 }
2321 for _, ln := range p.Lines {
2322 templ_7745c5c3_Err = LogLine(ln).Render(ctx, templ_7745c5c3_Buffer)
2323 if templ_7745c5c3_Err != nil {
2324 return templ_7745c5c3_Err
2325 }
2326 }
2327 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "</ol>")
2328 if templ_7745c5c3_Err != nil {
2329 return templ_7745c5c3_Err
2330 }
2331 if p.Next != "" {
2332 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, "<p class=\"more\"><a href=\"")
2333 if templ_7745c5c3_Err != nil {
2334 return templ_7745c5c3_Err
2335 }
2336 var templ_7745c5c3_Var123 templ.SafeURL
2337 templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Next))
2338 if templ_7745c5c3_Err != nil {
2339 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 329, Col: 51}
2340 }
2341 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var123))
2342 if templ_7745c5c3_Err != nil {
2343 return templ_7745c5c3_Err
2344 }
2345 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "\" rel=\"next\">more lines</a></p>")
2346 if templ_7745c5c3_Err != nil {
2347 return templ_7745c5c3_Err
2348 }
2349 }
2350 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "</div>")
2351 if templ_7745c5c3_Err != nil {
2352 return templ_7745c5c3_Err
2353 }
2354 return nil
2355 })
2356 templ_7745c5c3_Err = Shell(l, jobRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var116), templ_7745c5c3_Buffer)
2357 if templ_7745c5c3_Err != nil {
2358 return templ_7745c5c3_Err
2359 }
2360 return nil
2361 })
2362}
2363
2364// LogLine is a line of the log. Group and error markers of the runner show as
2365// headings and errors, never as raw text.
2366func LogLine(ln LogLineView) templ.Component {
2367 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
2368 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
2369 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
2370 return templ_7745c5c3_CtxErr
2371 }
2372 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
2373 if !templ_7745c5c3_IsBuffer {
2374 defer func() {
2375 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
2376 if templ_7745c5c3_Err == nil {
2377 templ_7745c5c3_Err = templ_7745c5c3_BufErr
2378 }
2379 }()
2380 }
2381 ctx = templ.InitializeContext(ctx)
2382 templ_7745c5c3_Var124 := templ.GetChildren(ctx)
2383 if templ_7745c5c3_Var124 == nil {
2384 templ_7745c5c3_Var124 = templ.NopComponent
2385 }
2386 ctx = templ.ClearChildren(ctx)
2387 var templ_7745c5c3_Var125 = []any{logClass(ln)}
2388 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var125...)
2389 if templ_7745c5c3_Err != nil {
2390 return templ_7745c5c3_Err
2391 }
2392 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "<li id=\"")
2393 if templ_7745c5c3_Err != nil {
2394 return templ_7745c5c3_Err
2395 }
2396 var templ_7745c5c3_Var126 string
2397 templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.ResolveAttributeValue("L" + itoa64(ln.N))
2398 if templ_7745c5c3_Err != nil {
2399 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 338, Col: 28}
2400 }
2401 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var126)
2402 if templ_7745c5c3_Err != nil {
2403 return templ_7745c5c3_Err
2404 }
2405 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, "\" class=\"")
2406 if templ_7745c5c3_Err != nil {
2407 return templ_7745c5c3_Err
2408 }
2409 var templ_7745c5c3_Var127 string
2410 templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var125).String())
2411 if templ_7745c5c3_Err != nil {
2412 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 1, Col: 0}
2413 }
2414 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var127)
2415 if templ_7745c5c3_Err != nil {
2416 return templ_7745c5c3_Err
2417 }
2418 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "\" data-step=\"")
2419 if templ_7745c5c3_Err != nil {
2420 return templ_7745c5c3_Err
2421 }
2422 var templ_7745c5c3_Var128 string
2423 templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(int(ln.Step)))
2424 if templ_7745c5c3_Err != nil {
2425 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 338, Col: 84}
2426 }
2427 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var128)
2428 if templ_7745c5c3_Err != nil {
2429 return templ_7745c5c3_Err
2430 }
2431 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, "\"")
2432 if templ_7745c5c3_Err != nil {
2433 return templ_7745c5c3_Err
2434 }
2435 if ln.Continued {
2436 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, " data-cont")
2437 if templ_7745c5c3_Err != nil {
2438 return templ_7745c5c3_Err
2439 }
2440 }
2441 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, "><time>")
2442 if templ_7745c5c3_Err != nil {
2443 return templ_7745c5c3_Err
2444 }
2445 var templ_7745c5c3_Var129 string
2446 templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Time)
2447 if templ_7745c5c3_Err != nil {
2448 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 338, Col: 130}
2449 }
2450 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
2451 if templ_7745c5c3_Err != nil {
2452 return templ_7745c5c3_Err
2453 }
2454 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, "</time><span class=\"t\">")
2455 if templ_7745c5c3_Err != nil {
2456 return templ_7745c5c3_Err
2457 }
2458 var templ_7745c5c3_Var130 string
2459 templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Text)
2460 if templ_7745c5c3_Err != nil {
2461 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 338, Col: 164}
2462 }
2463 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var130))
2464 if templ_7745c5c3_Err != nil {
2465 return templ_7745c5c3_Err
2466 }
2467 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "</span></li>")
2468 if templ_7745c5c3_Err != nil {
2469 return templ_7745c5c3_Err
2470 }
2471 return nil
2472 })
2473}
2474
2475func jobRail(p JobPage) templ.Component {
2476 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
2477 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
2478 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
2479 return templ_7745c5c3_CtxErr
2480 }
2481 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
2482 if !templ_7745c5c3_IsBuffer {
2483 defer func() {
2484 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
2485 if templ_7745c5c3_Err == nil {
2486 templ_7745c5c3_Err = templ_7745c5c3_BufErr
2487 }
2488 }()
2489 }
2490 ctx = templ.InitializeContext(ctx)
2491 templ_7745c5c3_Var131 := templ.GetChildren(ctx)
2492 if templ_7745c5c3_Var131 == nil {
2493 templ_7745c5c3_Var131 = templ.NopComponent
2494 }
2495 ctx = templ.ClearChildren(ctx)
2496 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "<section aria-labelledby=\"r-job\"><h2 id=\"r-job\">Steps</h2>")
2497 if templ_7745c5c3_Err != nil {
2498 return templ_7745c5c3_Err
2499 }
2500 templ_7745c5c3_Err = JobSteps(p.Steps).Render(ctx, templ_7745c5c3_Buffer)
2501 if templ_7745c5c3_Err != nil {
2502 return templ_7745c5c3_Err
2503 }
2504 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, "</section><section aria-labelledby=\"r-jobf\"><h2 id=\"r-jobf\">Job</h2><dl class=\"kv\"><dt>run</dt><dd><a href=\"")
2505 if templ_7745c5c3_Err != nil {
2506 return templ_7745c5c3_Err
2507 }
2508 var templ_7745c5c3_Var132 templ.SafeURL
2509 templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RunHref))
2510 if templ_7745c5c3_Err != nil {
2511 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 350, Col: 41}
2512 }
2513 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132))
2514 if templ_7745c5c3_Err != nil {
2515 return templ_7745c5c3_Err
2516 }
2517 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, "\">")
2518 if templ_7745c5c3_Err != nil {
2519 return templ_7745c5c3_Err
2520 }
2521 var templ_7745c5c3_Var133 string
2522 templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.JoinStringErrs(p.RunName)
2523 if templ_7745c5c3_Err != nil {
2524 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 350, Col: 55}
2525 }
2526 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var133))
2527 if templ_7745c5c3_Err != nil {
2528 return templ_7745c5c3_Err
2529 }
2530 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "</a></dd>")
2531 if templ_7745c5c3_Err != nil {
2532 return templ_7745c5c3_Err
2533 }
2534 if p.Runner != "" {
2535 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "<dt>runner</dt><dd>")
2536 if templ_7745c5c3_Err != nil {
2537 return templ_7745c5c3_Err
2538 }
2539 var templ_7745c5c3_Var134 string
2540 templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.JoinStringErrs(p.Runner)
2541 if templ_7745c5c3_Err != nil {
2542 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 353, Col: 18}
2543 }
2544 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var134))
2545 if templ_7745c5c3_Err != nil {
2546 return templ_7745c5c3_Err
2547 }
2548 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "</dd>")
2549 if templ_7745c5c3_Err != nil {
2550 return templ_7745c5c3_Err
2551 }
2552 }
2553 if p.Isolation != "" {
2554 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "<dt>isolation</dt><dd>")
2555 if templ_7745c5c3_Err != nil {
2556 return templ_7745c5c3_Err
2557 }
2558 var templ_7745c5c3_Var135 string
2559 templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.JoinStringErrs(p.Isolation)
2560 if templ_7745c5c3_Err != nil {
2561 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 357, Col: 21}
2562 }
2563 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var135))
2564 if templ_7745c5c3_Err != nil {
2565 return templ_7745c5c3_Err
2566 }
2567 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "</dd>")
2568 if templ_7745c5c3_Err != nil {
2569 return templ_7745c5c3_Err
2570 }
2571 }
2572 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, "<dt>lines</dt><dd>")
2573 if templ_7745c5c3_Err != nil {
2574 return templ_7745c5c3_Err
2575 }
2576 var templ_7745c5c3_Var136 string
2577 templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.JoinStringErrs(itoa64(p.Total))
2578 if templ_7745c5c3_Err != nil {
2579 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 360, Col: 24}
2580 }
2581 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var136))
2582 if templ_7745c5c3_Err != nil {
2583 return templ_7745c5c3_Err
2584 }
2585 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "</dd></dl><p><a href=\"")
2586 if templ_7745c5c3_Err != nil {
2587 return templ_7745c5c3_Err
2588 }
2589 var templ_7745c5c3_Var137 templ.SafeURL
2590 templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RawHref))
2591 if templ_7745c5c3_Err != nil {
2592 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 362, Col: 39}
2593 }
2594 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var137))
2595 if templ_7745c5c3_Err != nil {
2596 return templ_7745c5c3_Err
2597 }
2598 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, "\">raw log</a></p></section>")
2599 if templ_7745c5c3_Err != nil {
2600 return templ_7745c5c3_Err
2601 }
2602 return nil
2603 })
2604}
2605
2606// CommitChecks is the combined state of the checks of a commit, as a mark
2607// with a count, linking to the page that explains it.
2608func CommitChecks(c ChecksSummary) templ.Component {
2609 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
2610 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
2611 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
2612 return templ_7745c5c3_CtxErr
2613 }
2614 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
2615 if !templ_7745c5c3_IsBuffer {
2616 defer func() {
2617 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
2618 if templ_7745c5c3_Err == nil {
2619 templ_7745c5c3_Err = templ_7745c5c3_BufErr
2620 }
2621 }()
2622 }
2623 ctx = templ.InitializeContext(ctx)
2624 templ_7745c5c3_Var138 := templ.GetChildren(ctx)
2625 if templ_7745c5c3_Var138 == nil {
2626 templ_7745c5c3_Var138 = templ.NopComponent
2627 }
2628 ctx = templ.ClearChildren(ctx)
2629 if c.Total > 0 {
2630 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "<a class=\"ck-sum\" href=\"")
2631 if templ_7745c5c3_Err != nil {
2632 return templ_7745c5c3_Err
2633 }
2634 var templ_7745c5c3_Var139 templ.SafeURL
2635 templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href))
2636 if templ_7745c5c3_Err != nil {
2637 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 370, Col: 48}
2638 }
2639 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139))
2640 if templ_7745c5c3_Err != nil {
2641 return templ_7745c5c3_Err
2642 }
2643 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, "\" title=\"")
2644 if templ_7745c5c3_Err != nil {
2645 return templ_7745c5c3_Err
2646 }
2647 var templ_7745c5c3_Var140 string
2648 templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Title)
2649 if templ_7745c5c3_Err != nil {
2650 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 370, Col: 66}
2651 }
2652 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var140)
2653 if templ_7745c5c3_Err != nil {
2654 return templ_7745c5c3_Err
2655 }
2656 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "\">")
2657 if templ_7745c5c3_Err != nil {
2658 return templ_7745c5c3_Err
2659 }
2660 templ_7745c5c3_Err = CheckIcon(c.Kind, c.State).Render(ctx, templ_7745c5c3_Buffer)
2661 if templ_7745c5c3_Err != nil {
2662 return templ_7745c5c3_Err
2663 }
2664 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "<span class=\"mute\">")
2665 if templ_7745c5c3_Err != nil {
2666 return templ_7745c5c3_Err
2667 }
2668 var templ_7745c5c3_Var141 string
2669 templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(c.Label)
2670 if templ_7745c5c3_Err != nil {
2671 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 372, Col: 31}
2672 }
2673 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141))
2674 if templ_7745c5c3_Err != nil {
2675 return templ_7745c5c3_Err
2676 }
2677 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "</span></a>")
2678 if templ_7745c5c3_Err != nil {
2679 return templ_7745c5c3_Err
2680 }
2681 }
2682 return nil
2683 })
2684}
2685
2686// MRChecks is the checks section of the rail of a merge request.
2687func MRChecks(c ChecksSection) templ.Component {
2688 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
2689 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
2690 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
2691 return templ_7745c5c3_CtxErr
2692 }
2693 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
2694 if !templ_7745c5c3_IsBuffer {
2695 defer func() {
2696 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
2697 if templ_7745c5c3_Err == nil {
2698 templ_7745c5c3_Err = templ_7745c5c3_BufErr
2699 }
2700 }()
2701 }
2702 ctx = templ.InitializeContext(ctx)
2703 templ_7745c5c3_Var142 := templ.GetChildren(ctx)
2704 if templ_7745c5c3_Var142 == nil {
2705 templ_7745c5c3_Var142 = templ.NopComponent
2706 }
2707 ctx = templ.ClearChildren(ctx)
2708 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "<section aria-labelledby=\"r-checks\" id=\"mr-checks\"><h2 id=\"r-checks\">Checks <span class=\"count\">")
2709 if templ_7745c5c3_Err != nil {
2710 return templ_7745c5c3_Err
2711 }
2712 var templ_7745c5c3_Var143 string
2713 templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(c.Rows)))
2714 if templ_7745c5c3_Err != nil {
2715 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 380, Col: 66}
2716 }
2717 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143))
2718 if templ_7745c5c3_Err != nil {
2719 return templ_7745c5c3_Err
2720 }
2721 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, "</span></h2>")
2722 if templ_7745c5c3_Err != nil {
2723 return templ_7745c5c3_Err
2724 }
2725 if len(c.Rows) == 0 {
2726 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "<p class=\"dim\">no checks</p>")
2727 if templ_7745c5c3_Err != nil {
2728 return templ_7745c5c3_Err
2729 }
2730 } else {
2731 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "<ul class=\"checks\">")
2732 if templ_7745c5c3_Err != nil {
2733 return templ_7745c5c3_Err
2734 }
2735 for _, r := range c.Rows {
2736 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "<li>")
2737 if templ_7745c5c3_Err != nil {
2738 return templ_7745c5c3_Err
2739 }
2740 templ_7745c5c3_Err = CheckIcon(r.Kind, r.State).Render(ctx, templ_7745c5c3_Buffer)
2741 if templ_7745c5c3_Err != nil {
2742 return templ_7745c5c3_Err
2743 }
2744 if r.Href != "" {
2745 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "<a href=\"")
2746 if templ_7745c5c3_Err != nil {
2747 return templ_7745c5c3_Err
2748 }
2749 var templ_7745c5c3_Var144 templ.SafeURL
2750 templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
2751 if templ_7745c5c3_Err != nil {
2752 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 389, Col: 38}
2753 }
2754 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var144))
2755 if templ_7745c5c3_Err != nil {
2756 return templ_7745c5c3_Err
2757 }
2758 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "\">")
2759 if templ_7745c5c3_Err != nil {
2760 return templ_7745c5c3_Err
2761 }
2762 var templ_7745c5c3_Var145 string
2763 templ_7745c5c3_Var145, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
2764 if templ_7745c5c3_Err != nil {
2765 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 389, Col: 49}
2766 }
2767 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var145))
2768 if templ_7745c5c3_Err != nil {
2769 return templ_7745c5c3_Err
2770 }
2771 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</a> ")
2772 if templ_7745c5c3_Err != nil {
2773 return templ_7745c5c3_Err
2774 }
2775 } else {
2776 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "<span>")
2777 if templ_7745c5c3_Err != nil {
2778 return templ_7745c5c3_Err
2779 }
2780 var templ_7745c5c3_Var146 string
2781 templ_7745c5c3_Var146, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
2782 if templ_7745c5c3_Err != nil {
2783 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 391, Col: 21}
2784 }
2785 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var146))
2786 if templ_7745c5c3_Err != nil {
2787 return templ_7745c5c3_Err
2788 }
2789 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "</span> ")
2790 if templ_7745c5c3_Err != nil {
2791 return templ_7745c5c3_Err
2792 }
2793 }
2794 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, "<span class=\"dim\">")
2795 if templ_7745c5c3_Err != nil {
2796 return templ_7745c5c3_Err
2797 }
2798 var templ_7745c5c3_Var147 string
2799 templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinStringErrs(r.State)
2800 if templ_7745c5c3_Err != nil {
2801 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 393, Col: 33}
2802 }
2803 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147))
2804 if templ_7745c5c3_Err != nil {
2805 return templ_7745c5c3_Err
2806 }
2807 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, "</span> ")
2808 if templ_7745c5c3_Err != nil {
2809 return templ_7745c5c3_Err
2810 }
2811 if r.Waiting {
2812 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "<span class=\"mute\">waiting for a runner</span>")
2813 if templ_7745c5c3_Err != nil {
2814 return templ_7745c5c3_Err
2815 }
2816 }
2817 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "</li>")
2818 if templ_7745c5c3_Err != nil {
2819 return templ_7745c5c3_Err
2820 }
2821 }
2822 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "</ul>")
2823 if templ_7745c5c3_Err != nil {
2824 return templ_7745c5c3_Err
2825 }
2826 }
2827 if c.Note != "" {
2828 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "<p class=\"mute\">")
2829 if templ_7745c5c3_Err != nil {
2830 return templ_7745c5c3_Err
2831 }
2832 var templ_7745c5c3_Var148 string
2833 templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.JoinStringErrs(c.Note)
2834 if templ_7745c5c3_Err != nil {
2835 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 402, Col: 27}
2836 }
2837 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var148))
2838 if templ_7745c5c3_Err != nil {
2839 return templ_7745c5c3_Err
2840 }
2841 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "</p>")
2842 if templ_7745c5c3_Err != nil {
2843 return templ_7745c5c3_Err
2844 }
2845 }
2846 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "</section>")
2847 if templ_7745c5c3_Err != nil {
2848 return templ_7745c5c3_Err
2849 }
2850 return nil
2851 })
2852}
2853
2854var _ = templruntime.GeneratedTemplate