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
449func RunDetail(l Layout, p RunPage) templ.Component {
450 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
451 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
452 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
453 return templ_7745c5c3_CtxErr
454 }
455 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
456 if !templ_7745c5c3_IsBuffer {
457 defer func() {
458 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
459 if templ_7745c5c3_Err == nil {
460 templ_7745c5c3_Err = templ_7745c5c3_BufErr
461 }
462 }()
463 }
464 ctx = templ.InitializeContext(ctx)
465 templ_7745c5c3_Var27 := templ.GetChildren(ctx)
466 if templ_7745c5c3_Var27 == nil {
467 templ_7745c5c3_Var27 = templ.NopComponent
468 }
469 ctx = templ.ClearChildren(ctx)
470 templ_7745c5c3_Var28 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
471 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
472 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
473 if !templ_7745c5c3_IsBuffer {
474 defer func() {
475 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
476 if templ_7745c5c3_Err == nil {
477 templ_7745c5c3_Err = templ_7745c5c3_BufErr
478 }
479 }()
480 }
481 ctx = templ.InitializeContext(ctx)
482 templ_7745c5c3_Err = LiveSlot("run-notice").Render(ctx, templ_7745c5c3_Buffer)
483 if templ_7745c5c3_Err != nil {
484 return templ_7745c5c3_Err
485 }
486 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, " <div id=\"run-body\">")
487 if templ_7745c5c3_Err != nil {
488 return templ_7745c5c3_Err
489 }
490 templ_7745c5c3_Err = RunBody(p).Render(ctx, templ_7745c5c3_Buffer)
491 if templ_7745c5c3_Err != nil {
492 return templ_7745c5c3_Err
493 }
494 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</div>")
495 if templ_7745c5c3_Err != nil {
496 return templ_7745c5c3_Err
497 }
498 return nil
499 })
500 templ_7745c5c3_Err = Shell(l, runRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var28), templ_7745c5c3_Buffer)
501 if templ_7745c5c3_Err != nil {
502 return templ_7745c5c3_Err
503 }
504 return nil
505 })
506}
507
508// runBodyFragment is the body of the run page as a live fragment.
509func runBodyFragment(p RunPage) templ.Component {
510 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
511 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
512 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
513 return templ_7745c5c3_CtxErr
514 }
515 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
516 if !templ_7745c5c3_IsBuffer {
517 defer func() {
518 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
519 if templ_7745c5c3_Err == nil {
520 templ_7745c5c3_Err = templ_7745c5c3_BufErr
521 }
522 }()
523 }
524 ctx = templ.InitializeContext(ctx)
525 templ_7745c5c3_Var29 := templ.GetChildren(ctx)
526 if templ_7745c5c3_Var29 == nil {
527 templ_7745c5c3_Var29 = templ.NopComponent
528 }
529 ctx = templ.ClearChildren(ctx)
530 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<div id=\"run-body\">")
531 if templ_7745c5c3_Err != nil {
532 return templ_7745c5c3_Err
533 }
534 templ_7745c5c3_Err = RunBody(p).Render(ctx, templ_7745c5c3_Buffer)
535 if templ_7745c5c3_Err != nil {
536 return templ_7745c5c3_Err
537 }
538 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "</div>")
539 if templ_7745c5c3_Err != nil {
540 return templ_7745c5c3_Err
541 }
542 return nil
543 })
544}
545
546// RunBody is the jobs of a run, replaced by the live updates.
547func RunBody(p RunPage) templ.Component {
548 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
549 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
550 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
551 return templ_7745c5c3_CtxErr
552 }
553 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
554 if !templ_7745c5c3_IsBuffer {
555 defer func() {
556 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
557 if templ_7745c5c3_Err == nil {
558 templ_7745c5c3_Err = templ_7745c5c3_BufErr
559 }
560 }()
561 }
562 ctx = templ.InitializeContext(ctx)
563 templ_7745c5c3_Var30 := templ.GetChildren(ctx)
564 if templ_7745c5c3_Var30 == nil {
565 templ_7745c5c3_Var30 = templ.NopComponent
566 }
567 ctx = templ.ClearChildren(ctx)
568 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "<h2 class=\"run-h\">")
569 if templ_7745c5c3_Err != nil {
570 return templ_7745c5c3_Err
571 }
572 templ_7745c5c3_Err = CheckIcon(p.Kind, p.State).Render(ctx, templ_7745c5c3_Buffer)
573 if templ_7745c5c3_Err != nil {
574 return templ_7745c5c3_Err
575 }
576 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "<span>")
577 if templ_7745c5c3_Err != nil {
578 return templ_7745c5c3_Err
579 }
580 var templ_7745c5c3_Var31 string
581 templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(p.Workflow)
582 if templ_7745c5c3_Err != nil {
583 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 77, Col: 64}
584 }
585 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
586 if templ_7745c5c3_Err != nil {
587 return templ_7745c5c3_Err
588 }
589 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "</span> <span class=\"mute\">")
590 if templ_7745c5c3_Err != nil {
591 return templ_7745c5c3_Err
592 }
593 var templ_7745c5c3_Var32 string
594 templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(p.Number)
595 if templ_7745c5c3_Err != nil {
596 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 77, Col: 103}
597 }
598 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
599 if templ_7745c5c3_Err != nil {
600 return templ_7745c5c3_Err
601 }
602 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</span></h2>")
603 if templ_7745c5c3_Err != nil {
604 return templ_7745c5c3_Err
605 }
606 if p.Error != "" {
607 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<pre class=\"run-err\">")
608 if templ_7745c5c3_Err != nil {
609 return templ_7745c5c3_Err
610 }
611 var templ_7745c5c3_Var33 string
612 templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(p.Error)
613 if templ_7745c5c3_Err != nil {
614 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 79, Col: 32}
615 }
616 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))
617 if templ_7745c5c3_Err != nil {
618 return templ_7745c5c3_Err
619 }
620 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</pre>")
621 if templ_7745c5c3_Err != nil {
622 return templ_7745c5c3_Err
623 }
624 }
625 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "<ul class=\"jobs\">")
626 if templ_7745c5c3_Err != nil {
627 return templ_7745c5c3_Err
628 }
629 for _, j := range p.Jobs {
630 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "<li id=\"")
631 if templ_7745c5c3_Err != nil {
632 return templ_7745c5c3_Err
633 }
634 var templ_7745c5c3_Var34 string
635 templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.ResolveAttributeValue("job-" + j.ID)
636 if templ_7745c5c3_Err != nil {
637 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 83, Col: 25}
638 }
639 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var34)
640 if templ_7745c5c3_Err != nil {
641 return templ_7745c5c3_Err
642 }
643 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\"><a class=\"job-h\" href=\"")
644 if templ_7745c5c3_Err != nil {
645 return templ_7745c5c3_Err
646 }
647 var templ_7745c5c3_Var35 templ.SafeURL
648 templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(j.Href))
649 if templ_7745c5c3_Err != nil {
650 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 84, Col: 49}
651 }
652 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
653 if templ_7745c5c3_Err != nil {
654 return templ_7745c5c3_Err
655 }
656 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "\">")
657 if templ_7745c5c3_Err != nil {
658 return templ_7745c5c3_Err
659 }
660 templ_7745c5c3_Err = CheckIcon(j.Kind, j.State).Render(ctx, templ_7745c5c3_Buffer)
661 if templ_7745c5c3_Err != nil {
662 return templ_7745c5c3_Err
663 }
664 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "<span class=\"j-name\">")
665 if templ_7745c5c3_Err != nil {
666 return templ_7745c5c3_Err
667 }
668 var templ_7745c5c3_Var36 string
669 templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs(j.Name)
670 if templ_7745c5c3_Err != nil {
671 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 86, Col: 34}
672 }
673 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36))
674 if templ_7745c5c3_Err != nil {
675 return templ_7745c5c3_Err
676 }
677 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "</span> <span class=\"dim\">")
678 if templ_7745c5c3_Err != nil {
679 return templ_7745c5c3_Err
680 }
681 var templ_7745c5c3_Var37 string
682 templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.JoinStringErrs(j.State)
683 if templ_7745c5c3_Err != nil {
684 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 87, Col: 32}
685 }
686 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var37))
687 if templ_7745c5c3_Err != nil {
688 return templ_7745c5c3_Err
689 }
690 var templ_7745c5c3_Var38 string
691 templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
692 if templ_7745c5c3_Err != nil {
693 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 87, Col: 39}
694 }
695 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var38))
696 if templ_7745c5c3_Err != nil {
697 return templ_7745c5c3_Err
698 }
699 var templ_7745c5c3_Var39 string
700 templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(j.Duration)
701 if templ_7745c5c3_Err != nil {
702 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 87, Col: 53}
703 }
704 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39))
705 if templ_7745c5c3_Err != nil {
706 return templ_7745c5c3_Err
707 }
708 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</span></a> ")
709 if templ_7745c5c3_Err != nil {
710 return templ_7745c5c3_Err
711 }
712 if j.Runner != "" {
713 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<span class=\"mute\">on ")
714 if templ_7745c5c3_Err != nil {
715 return templ_7745c5c3_Err
716 }
717 var templ_7745c5c3_Var40 string
718 templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(runnerText(j))
719 if templ_7745c5c3_Err != nil {
720 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 90, Col: 42}
721 }
722 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40))
723 if templ_7745c5c3_Err != nil {
724 return templ_7745c5c3_Err
725 }
726 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</span> ")
727 if templ_7745c5c3_Err != nil {
728 return templ_7745c5c3_Err
729 }
730 }
731 if len(j.Needs) > 0 {
732 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "<span class=\"mute\">needs ")
733 if templ_7745c5c3_Err != nil {
734 return templ_7745c5c3_Err
735 }
736 var templ_7745c5c3_Var41 string
737 templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(joinWords(j.Needs))
738 if templ_7745c5c3_Err != nil {
739 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 93, Col: 50}
740 }
741 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41))
742 if templ_7745c5c3_Err != nil {
743 return templ_7745c5c3_Err
744 }
745 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "</span> ")
746 if templ_7745c5c3_Err != nil {
747 return templ_7745c5c3_Err
748 }
749 }
750 if j.Error != "" {
751 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "<p class=\"job-err\">")
752 if templ_7745c5c3_Err != nil {
753 return templ_7745c5c3_Err
754 }
755 var templ_7745c5c3_Var42 string
756 templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(j.Error)
757 if templ_7745c5c3_Err != nil {
758 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 96, Col: 33}
759 }
760 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42))
761 if templ_7745c5c3_Err != nil {
762 return templ_7745c5c3_Err
763 }
764 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "</p>")
765 if templ_7745c5c3_Err != nil {
766 return templ_7745c5c3_Err
767 }
768 }
769 if len(j.Steps) > 0 {
770 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "<ol class=\"steps\">")
771 if templ_7745c5c3_Err != nil {
772 return templ_7745c5c3_Err
773 }
774 for _, s := range j.Steps {
775 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "<li>")
776 if templ_7745c5c3_Err != nil {
777 return templ_7745c5c3_Err
778 }
779 templ_7745c5c3_Err = CheckIcon(s.Kind, s.State).Render(ctx, templ_7745c5c3_Buffer)
780 if templ_7745c5c3_Err != nil {
781 return templ_7745c5c3_Err
782 }
783 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "<span>")
784 if templ_7745c5c3_Err != nil {
785 return templ_7745c5c3_Err
786 }
787 var templ_7745c5c3_Var43 string
788 templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(s.Name)
789 if templ_7745c5c3_Err != nil {
790 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 101, Col: 53}
791 }
792 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
793 if templ_7745c5c3_Err != nil {
794 return templ_7745c5c3_Err
795 }
796 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "</span> <span class=\"dim\">")
797 if templ_7745c5c3_Err != nil {
798 return templ_7745c5c3_Err
799 }
800 var templ_7745c5c3_Var44 string
801 templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinStringErrs(s.Duration)
802 if templ_7745c5c3_Err != nil {
803 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 101, Col: 93}
804 }
805 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44))
806 if templ_7745c5c3_Err != nil {
807 return templ_7745c5c3_Err
808 }
809 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</span></li>")
810 if templ_7745c5c3_Err != nil {
811 return templ_7745c5c3_Err
812 }
813 }
814 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</ol>")
815 if templ_7745c5c3_Err != nil {
816 return templ_7745c5c3_Err
817 }
818 }
819 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "</li>")
820 if templ_7745c5c3_Err != nil {
821 return templ_7745c5c3_Err
822 }
823 }
824 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</ul>")
825 if templ_7745c5c3_Err != nil {
826 return templ_7745c5c3_Err
827 }
828 return nil
829 })
830}
831
832func runRail(p RunPage) templ.Component {
833 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
834 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
835 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
836 return templ_7745c5c3_CtxErr
837 }
838 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
839 if !templ_7745c5c3_IsBuffer {
840 defer func() {
841 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
842 if templ_7745c5c3_Err == nil {
843 templ_7745c5c3_Err = templ_7745c5c3_BufErr
844 }
845 }()
846 }
847 ctx = templ.InitializeContext(ctx)
848 templ_7745c5c3_Var45 := templ.GetChildren(ctx)
849 if templ_7745c5c3_Var45 == nil {
850 templ_7745c5c3_Var45 = templ.NopComponent
851 }
852 ctx = templ.ClearChildren(ctx)
853 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<section aria-labelledby=\"r-run\"><h2 id=\"r-run\">Run</h2><dl class=\"kv\"><dt>result</dt><dd>")
854 if templ_7745c5c3_Err != nil {
855 return templ_7745c5c3_Err
856 }
857 var templ_7745c5c3_Var46 string
858 templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinStringErrs(p.State)
859 if templ_7745c5c3_Err != nil {
860 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 115, Col: 16}
861 }
862 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46))
863 if templ_7745c5c3_Err != nil {
864 return templ_7745c5c3_Err
865 }
866 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</dd><dt>commit</dt><dd><a href=\"")
867 if templ_7745c5c3_Err != nil {
868 return templ_7745c5c3_Err
869 }
870 var templ_7745c5c3_Var47 templ.SafeURL
871 templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.CHref))
872 if templ_7745c5c3_Err != nil {
873 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 117, Col: 39}
874 }
875 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47))
876 if templ_7745c5c3_Err != nil {
877 return templ_7745c5c3_Err
878 }
879 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "\">")
880 if templ_7745c5c3_Err != nil {
881 return templ_7745c5c3_Err
882 }
883 var templ_7745c5c3_Var48 string
884 templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(p.Short)
885 if templ_7745c5c3_Err != nil {
886 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 117, Col: 51}
887 }
888 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48))
889 if templ_7745c5c3_Err != nil {
890 return templ_7745c5c3_Err
891 }
892 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "</a></dd><dt>ref</dt><dd><a href=\"")
893 if templ_7745c5c3_Err != nil {
894 return templ_7745c5c3_Err
895 }
896 var templ_7745c5c3_Var49 templ.SafeURL
897 templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RefHref))
898 if templ_7745c5c3_Err != nil {
899 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 119, Col: 41}
900 }
901 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49))
902 if templ_7745c5c3_Err != nil {
903 return templ_7745c5c3_Err
904 }
905 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "\">")
906 if templ_7745c5c3_Err != nil {
907 return templ_7745c5c3_Err
908 }
909 var templ_7745c5c3_Var50 string
910 templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(p.Ref)
911 if templ_7745c5c3_Err != nil {
912 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 119, Col: 51}
913 }
914 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50))
915 if templ_7745c5c3_Err != nil {
916 return templ_7745c5c3_Err
917 }
918 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</a></dd><dt>actor</dt><dd>")
919 if templ_7745c5c3_Err != nil {
920 return templ_7745c5c3_Err
921 }
922 var templ_7745c5c3_Var51 string
923 templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.JoinStringErrs(p.Actor)
924 if templ_7745c5c3_Err != nil {
925 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 121, Col: 16}
926 }
927 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var51))
928 if templ_7745c5c3_Err != nil {
929 return templ_7745c5c3_Err
930 }
931 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</dd><dt>attempt</dt><dd>")
932 if templ_7745c5c3_Err != nil {
933 return templ_7745c5c3_Err
934 }
935 var templ_7745c5c3_Var52 string
936 templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(int(p.Attempt)))
937 if templ_7745c5c3_Err != nil {
938 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 123, Col: 29}
939 }
940 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var52))
941 if templ_7745c5c3_Err != nil {
942 return templ_7745c5c3_Err
943 }
944 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, " of ")
945 if templ_7745c5c3_Err != nil {
946 return templ_7745c5c3_Err
947 }
948 var templ_7745c5c3_Var53 string
949 templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(int(p.Latest)))
950 if templ_7745c5c3_Err != nil {
951 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 123, Col: 56}
952 }
953 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var53))
954 if templ_7745c5c3_Err != nil {
955 return templ_7745c5c3_Err
956 }
957 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</dd></dl>")
958 if templ_7745c5c3_Err != nil {
959 return templ_7745c5c3_Err
960 }
961 if len(p.Attempts) > 0 {
962 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<ul class=\"attempts\">")
963 if templ_7745c5c3_Err != nil {
964 return templ_7745c5c3_Err
965 }
966 for _, a := range p.Attempts {
967 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "<li>")
968 if templ_7745c5c3_Err != nil {
969 return templ_7745c5c3_Err
970 }
971 if a.Current {
972 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "<span aria-current=\"page\">")
973 if templ_7745c5c3_Err != nil {
974 return templ_7745c5c3_Err
975 }
976 var templ_7745c5c3_Var54 string
977 templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(a.Label)
978 if templ_7745c5c3_Err != nil {
979 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 130, Col: 42}
980 }
981 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54))
982 if templ_7745c5c3_Err != nil {
983 return templ_7745c5c3_Err
984 }
985 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "</span>")
986 if templ_7745c5c3_Err != nil {
987 return templ_7745c5c3_Err
988 }
989 } else {
990 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "<a href=\"")
991 if templ_7745c5c3_Err != nil {
992 return templ_7745c5c3_Err
993 }
994 var templ_7745c5c3_Var55 templ.SafeURL
995 templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(a.Href))
996 if templ_7745c5c3_Err != nil {
997 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 132, Col: 38}
998 }
999 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55))
1000 if templ_7745c5c3_Err != nil {
1001 return templ_7745c5c3_Err
1002 }
1003 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "\">")
1004 if templ_7745c5c3_Err != nil {
1005 return templ_7745c5c3_Err
1006 }
1007 var templ_7745c5c3_Var56 string
1008 templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.JoinStringErrs(a.Label)
1009 if templ_7745c5c3_Err != nil {
1010 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 132, Col: 50}
1011 }
1012 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var56))
1013 if templ_7745c5c3_Err != nil {
1014 return templ_7745c5c3_Err
1015 }
1016 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "</a>")
1017 if templ_7745c5c3_Err != nil {
1018 return templ_7745c5c3_Err
1019 }
1020 }
1021 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "</li>")
1022 if templ_7745c5c3_Err != nil {
1023 return templ_7745c5c3_Err
1024 }
1025 }
1026 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "</ul>")
1027 if templ_7745c5c3_Err != nil {
1028 return templ_7745c5c3_Err
1029 }
1030 }
1031 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "</section>")
1032 if templ_7745c5c3_Err != nil {
1033 return templ_7745c5c3_Err
1034 }
1035 if p.CancelAction != "" || p.RerunAction != "" {
1036 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "<section aria-labelledby=\"r-act\" class=\"decide\"><h2 id=\"r-act\">Actions</h2><div class=\"d-btns\">")
1037 if templ_7745c5c3_Err != nil {
1038 return templ_7745c5c3_Err
1039 }
1040 if p.CancelAction != "" {
1041 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "<form method=\"post\" action=\"")
1042 if templ_7745c5c3_Err != nil {
1043 return templ_7745c5c3_Err
1044 }
1045 var templ_7745c5c3_Var57 templ.SafeURL
1046 templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.CancelAction))
1047 if templ_7745c5c3_Err != nil {
1048 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 144, Col: 63}
1049 }
1050 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))
1051 if templ_7745c5c3_Err != nil {
1052 return templ_7745c5c3_Err
1053 }
1054 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "\"><button type=\"submit\" class=\"btn\">Cancel run</button></form>")
1055 if templ_7745c5c3_Err != nil {
1056 return templ_7745c5c3_Err
1057 }
1058 }
1059 if p.RerunAction != "" {
1060 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "<form method=\"post\" action=\"")
1061 if templ_7745c5c3_Err != nil {
1062 return templ_7745c5c3_Err
1063 }
1064 var templ_7745c5c3_Var58 templ.SafeURL
1065 templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RerunAction))
1066 if templ_7745c5c3_Err != nil {
1067 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 147, Col: 62}
1068 }
1069 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))
1070 if templ_7745c5c3_Err != nil {
1071 return templ_7745c5c3_Err
1072 }
1073 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "\"><button type=\"submit\" class=\"btn primary\">Re-run all jobs</button></form>")
1074 if templ_7745c5c3_Err != nil {
1075 return templ_7745c5c3_Err
1076 }
1077 }
1078 if p.CanRerunFailed {
1079 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "<form method=\"post\" action=\"")
1080 if templ_7745c5c3_Err != nil {
1081 return templ_7745c5c3_Err
1082 }
1083 var templ_7745c5c3_Var59 templ.SafeURL
1084 templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RerunFailedAction))
1085 if templ_7745c5c3_Err != nil {
1086 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 150, Col: 68}
1087 }
1088 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59))
1089 if templ_7745c5c3_Err != nil {
1090 return templ_7745c5c3_Err
1091 }
1092 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "\"><button type=\"submit\" class=\"btn\">Re-run failed jobs</button></form>")
1093 if templ_7745c5c3_Err != nil {
1094 return templ_7745c5c3_Err
1095 }
1096 }
1097 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "</div></section>")
1098 if templ_7745c5c3_Err != nil {
1099 return templ_7745c5c3_Err
1100 }
1101 }
1102 return nil
1103 })
1104}
1105
1106// JobHead is the title of the job page with its state and its error, replaced
1107// by the live updates. total is the number of lines the log holds.
1108func JobHead(j JobRow, total int64) templ.Component {
1109 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1110 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1111 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1112 return templ_7745c5c3_CtxErr
1113 }
1114 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1115 if !templ_7745c5c3_IsBuffer {
1116 defer func() {
1117 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1118 if templ_7745c5c3_Err == nil {
1119 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1120 }
1121 }()
1122 }
1123 ctx = templ.InitializeContext(ctx)
1124 templ_7745c5c3_Var60 := templ.GetChildren(ctx)
1125 if templ_7745c5c3_Var60 == nil {
1126 templ_7745c5c3_Var60 = templ.NopComponent
1127 }
1128 ctx = templ.ClearChildren(ctx)
1129 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "<div id=\"job-head\" data-total=\"")
1130 if templ_7745c5c3_Err != nil {
1131 return templ_7745c5c3_Err
1132 }
1133 var templ_7745c5c3_Var61 string
1134 templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa64(total))
1135 if templ_7745c5c3_Err != nil {
1136 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 160, Col: 46}
1137 }
1138 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var61)
1139 if templ_7745c5c3_Err != nil {
1140 return templ_7745c5c3_Err
1141 }
1142 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "\"><h2 class=\"run-h\">")
1143 if templ_7745c5c3_Err != nil {
1144 return templ_7745c5c3_Err
1145 }
1146 templ_7745c5c3_Err = CheckIcon(j.Kind, j.State).Render(ctx, templ_7745c5c3_Buffer)
1147 if templ_7745c5c3_Err != nil {
1148 return templ_7745c5c3_Err
1149 }
1150 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "<span>")
1151 if templ_7745c5c3_Err != nil {
1152 return templ_7745c5c3_Err
1153 }
1154 var templ_7745c5c3_Var62 string
1155 templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.JoinStringErrs(j.Name)
1156 if templ_7745c5c3_Err != nil {
1157 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 161, Col: 61}
1158 }
1159 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var62))
1160 if templ_7745c5c3_Err != nil {
1161 return templ_7745c5c3_Err
1162 }
1163 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "</span> <span class=\"dim\">")
1164 if templ_7745c5c3_Err != nil {
1165 return templ_7745c5c3_Err
1166 }
1167 var templ_7745c5c3_Var63 string
1168 templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(j.State)
1169 if templ_7745c5c3_Err != nil {
1170 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 161, Col: 98}
1171 }
1172 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))
1173 if templ_7745c5c3_Err != nil {
1174 return templ_7745c5c3_Err
1175 }
1176 var templ_7745c5c3_Var64 string
1177 templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1178 if templ_7745c5c3_Err != nil {
1179 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 161, Col: 105}
1180 }
1181 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64))
1182 if templ_7745c5c3_Err != nil {
1183 return templ_7745c5c3_Err
1184 }
1185 var templ_7745c5c3_Var65 string
1186 templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(j.Duration)
1187 if templ_7745c5c3_Err != nil {
1188 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 161, Col: 119}
1189 }
1190 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))
1191 if templ_7745c5c3_Err != nil {
1192 return templ_7745c5c3_Err
1193 }
1194 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "</span></h2>")
1195 if templ_7745c5c3_Err != nil {
1196 return templ_7745c5c3_Err
1197 }
1198 if j.Error != "" {
1199 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, "<p class=\"job-err\">")
1200 if templ_7745c5c3_Err != nil {
1201 return templ_7745c5c3_Err
1202 }
1203 var templ_7745c5c3_Var66 string
1204 templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.JoinStringErrs(j.Error)
1205 if templ_7745c5c3_Err != nil {
1206 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 163, Col: 31}
1207 }
1208 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var66))
1209 if templ_7745c5c3_Err != nil {
1210 return templ_7745c5c3_Err
1211 }
1212 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "</p>")
1213 if templ_7745c5c3_Err != nil {
1214 return templ_7745c5c3_Err
1215 }
1216 }
1217 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "</div>")
1218 if templ_7745c5c3_Err != nil {
1219 return templ_7745c5c3_Err
1220 }
1221 return nil
1222 })
1223}
1224
1225// JobSteps is the steps of the job in the rail, replaced by the live updates.
1226func JobSteps(steps []StepView) templ.Component {
1227 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1228 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1229 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1230 return templ_7745c5c3_CtxErr
1231 }
1232 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1233 if !templ_7745c5c3_IsBuffer {
1234 defer func() {
1235 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1236 if templ_7745c5c3_Err == nil {
1237 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1238 }
1239 }()
1240 }
1241 ctx = templ.InitializeContext(ctx)
1242 templ_7745c5c3_Var67 := templ.GetChildren(ctx)
1243 if templ_7745c5c3_Var67 == nil {
1244 templ_7745c5c3_Var67 = templ.NopComponent
1245 }
1246 ctx = templ.ClearChildren(ctx)
1247 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "<ol class=\"steps\" id=\"job-steps\">")
1248 if templ_7745c5c3_Err != nil {
1249 return templ_7745c5c3_Err
1250 }
1251 for _, s := range steps {
1252 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "<li>")
1253 if templ_7745c5c3_Err != nil {
1254 return templ_7745c5c3_Err
1255 }
1256 templ_7745c5c3_Err = CheckIcon(s.Kind, s.State).Render(ctx, templ_7745c5c3_Buffer)
1257 if templ_7745c5c3_Err != nil {
1258 return templ_7745c5c3_Err
1259 }
1260 if s.LogEnd > s.LogStart {
1261 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "<a href=\"")
1262 if templ_7745c5c3_Err != nil {
1263 return templ_7745c5c3_Err
1264 }
1265 var templ_7745c5c3_Var68 templ.SafeURL
1266 templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL("#L" + itoa64(s.LogStart)))
1267 if templ_7745c5c3_Err != nil {
1268 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 175, Col: 55}
1269 }
1270 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))
1271 if templ_7745c5c3_Err != nil {
1272 return templ_7745c5c3_Err
1273 }
1274 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "\">")
1275 if templ_7745c5c3_Err != nil {
1276 return templ_7745c5c3_Err
1277 }
1278 var templ_7745c5c3_Var69 string
1279 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(s.Name)
1280 if templ_7745c5c3_Err != nil {
1281 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 175, Col: 66}
1282 }
1283 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var69))
1284 if templ_7745c5c3_Err != nil {
1285 return templ_7745c5c3_Err
1286 }
1287 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "</a> ")
1288 if templ_7745c5c3_Err != nil {
1289 return templ_7745c5c3_Err
1290 }
1291 } else {
1292 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "<span>")
1293 if templ_7745c5c3_Err != nil {
1294 return templ_7745c5c3_Err
1295 }
1296 var templ_7745c5c3_Var70 string
1297 templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(s.Name)
1298 if templ_7745c5c3_Err != nil {
1299 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 177, Col: 19}
1300 }
1301 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70))
1302 if templ_7745c5c3_Err != nil {
1303 return templ_7745c5c3_Err
1304 }
1305 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "</span> ")
1306 if templ_7745c5c3_Err != nil {
1307 return templ_7745c5c3_Err
1308 }
1309 }
1310 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "<span class=\"dim\">")
1311 if templ_7745c5c3_Err != nil {
1312 return templ_7745c5c3_Err
1313 }
1314 var templ_7745c5c3_Var71 string
1315 templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(s.Duration)
1316 if templ_7745c5c3_Err != nil {
1317 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 179, Col: 34}
1318 }
1319 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71))
1320 if templ_7745c5c3_Err != nil {
1321 return templ_7745c5c3_Err
1322 }
1323 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</span></li>")
1324 if templ_7745c5c3_Err != nil {
1325 return templ_7745c5c3_Err
1326 }
1327 }
1328 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "</ol>")
1329 if templ_7745c5c3_Err != nil {
1330 return templ_7745c5c3_Err
1331 }
1332 return nil
1333 })
1334}
1335
1336func Job(l Layout, p JobPage) templ.Component {
1337 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1338 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1339 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1340 return templ_7745c5c3_CtxErr
1341 }
1342 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1343 if !templ_7745c5c3_IsBuffer {
1344 defer func() {
1345 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1346 if templ_7745c5c3_Err == nil {
1347 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1348 }
1349 }()
1350 }
1351 ctx = templ.InitializeContext(ctx)
1352 templ_7745c5c3_Var72 := templ.GetChildren(ctx)
1353 if templ_7745c5c3_Var72 == nil {
1354 templ_7745c5c3_Var72 = templ.NopComponent
1355 }
1356 ctx = templ.ClearChildren(ctx)
1357 templ_7745c5c3_Var73 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1358 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1359 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1360 if !templ_7745c5c3_IsBuffer {
1361 defer func() {
1362 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1363 if templ_7745c5c3_Err == nil {
1364 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1365 }
1366 }()
1367 }
1368 ctx = templ.InitializeContext(ctx)
1369 templ_7745c5c3_Err = LiveSlot("job-notice").Render(ctx, templ_7745c5c3_Buffer)
1370 if templ_7745c5c3_Err != nil {
1371 return templ_7745c5c3_Err
1372 }
1373 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, " ")
1374 if templ_7745c5c3_Err != nil {
1375 return templ_7745c5c3_Err
1376 }
1377 templ_7745c5c3_Err = JobHead(p.JobRow, p.Total).Render(ctx, templ_7745c5c3_Buffer)
1378 if templ_7745c5c3_Err != nil {
1379 return templ_7745c5c3_Err
1380 }
1381 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, " <div id=\"job-log\" class=\"joblog\" data-total=\"")
1382 if templ_7745c5c3_Err != nil {
1383 return templ_7745c5c3_Err
1384 }
1385 var templ_7745c5c3_Var74 string
1386 templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa64(p.Total))
1387 if templ_7745c5c3_Err != nil {
1388 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 189, Col: 63}
1389 }
1390 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var74)
1391 if templ_7745c5c3_Err != nil {
1392 return templ_7745c5c3_Err
1393 }
1394 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "\"")
1395 if templ_7745c5c3_Err != nil {
1396 return templ_7745c5c3_Err
1397 }
1398 if p.Follow {
1399 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, " data-follow")
1400 if templ_7745c5c3_Err != nil {
1401 return templ_7745c5c3_Err
1402 }
1403 }
1404 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, " data-stream=\"")
1405 if templ_7745c5c3_Err != nil {
1406 return templ_7745c5c3_Err
1407 }
1408 var templ_7745c5c3_Var75 string
1409 templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.StreamHref)
1410 if templ_7745c5c3_Err != nil {
1411 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 189, Col: 118}
1412 }
1413 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var75)
1414 if templ_7745c5c3_Err != nil {
1415 return templ_7745c5c3_Err
1416 }
1417 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "\" data-next=\"")
1418 if templ_7745c5c3_Err != nil {
1419 return templ_7745c5c3_Err
1420 }
1421 var templ_7745c5c3_Var76 string
1422 templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa64(p.From + int64(len(p.Lines))))
1423 if templ_7745c5c3_Err != nil {
1424 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 189, Col: 169}
1425 }
1426 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var76)
1427 if templ_7745c5c3_Err != nil {
1428 return templ_7745c5c3_Err
1429 }
1430 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "\">")
1431 if templ_7745c5c3_Err != nil {
1432 return templ_7745c5c3_Err
1433 }
1434 if p.Note != "" {
1435 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "<p class=\"dim\">")
1436 if templ_7745c5c3_Err != nil {
1437 return templ_7745c5c3_Err
1438 }
1439 var templ_7745c5c3_Var77 string
1440 templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
1441 if templ_7745c5c3_Err != nil {
1442 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 191, Col: 27}
1443 }
1444 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var77))
1445 if templ_7745c5c3_Err != nil {
1446 return templ_7745c5c3_Err
1447 }
1448 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "</p>")
1449 if templ_7745c5c3_Err != nil {
1450 return templ_7745c5c3_Err
1451 }
1452 }
1453 if p.Prev != "" {
1454 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "<p class=\"more\"><a href=\"")
1455 if templ_7745c5c3_Err != nil {
1456 return templ_7745c5c3_Err
1457 }
1458 var templ_7745c5c3_Var78 templ.SafeURL
1459 templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Prev))
1460 if templ_7745c5c3_Err != nil {
1461 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 194, Col: 51}
1462 }
1463 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78))
1464 if templ_7745c5c3_Err != nil {
1465 return templ_7745c5c3_Err
1466 }
1467 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "\" rel=\"prev\">earlier lines</a></p>")
1468 if templ_7745c5c3_Err != nil {
1469 return templ_7745c5c3_Err
1470 }
1471 }
1472 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "<ol class=\"log\" start=\"")
1473 if templ_7745c5c3_Err != nil {
1474 return templ_7745c5c3_Err
1475 }
1476 var templ_7745c5c3_Var79 string
1477 templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa64(p.From + 1))
1478 if templ_7745c5c3_Err != nil {
1479 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 196, Col: 45}
1480 }
1481 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var79)
1482 if templ_7745c5c3_Err != nil {
1483 return templ_7745c5c3_Err
1484 }
1485 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, "\">")
1486 if templ_7745c5c3_Err != nil {
1487 return templ_7745c5c3_Err
1488 }
1489 for _, ln := range p.Lines {
1490 templ_7745c5c3_Err = LogLine(ln).Render(ctx, templ_7745c5c3_Buffer)
1491 if templ_7745c5c3_Err != nil {
1492 return templ_7745c5c3_Err
1493 }
1494 }
1495 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "</ol>")
1496 if templ_7745c5c3_Err != nil {
1497 return templ_7745c5c3_Err
1498 }
1499 if p.Next != "" {
1500 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "<p class=\"more\"><a href=\"")
1501 if templ_7745c5c3_Err != nil {
1502 return templ_7745c5c3_Err
1503 }
1504 var templ_7745c5c3_Var80 templ.SafeURL
1505 templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Next))
1506 if templ_7745c5c3_Err != nil {
1507 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 202, Col: 51}
1508 }
1509 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var80))
1510 if templ_7745c5c3_Err != nil {
1511 return templ_7745c5c3_Err
1512 }
1513 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "\" rel=\"next\">more lines</a></p>")
1514 if templ_7745c5c3_Err != nil {
1515 return templ_7745c5c3_Err
1516 }
1517 }
1518 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "</div>")
1519 if templ_7745c5c3_Err != nil {
1520 return templ_7745c5c3_Err
1521 }
1522 return nil
1523 })
1524 templ_7745c5c3_Err = Shell(l, jobRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var73), templ_7745c5c3_Buffer)
1525 if templ_7745c5c3_Err != nil {
1526 return templ_7745c5c3_Err
1527 }
1528 return nil
1529 })
1530}
1531
1532// LogLine is a line of the log. Group and error markers of the runner show as
1533// headings and errors, never as raw text.
1534func LogLine(ln LogLineView) templ.Component {
1535 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1536 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1537 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1538 return templ_7745c5c3_CtxErr
1539 }
1540 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1541 if !templ_7745c5c3_IsBuffer {
1542 defer func() {
1543 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1544 if templ_7745c5c3_Err == nil {
1545 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1546 }
1547 }()
1548 }
1549 ctx = templ.InitializeContext(ctx)
1550 templ_7745c5c3_Var81 := templ.GetChildren(ctx)
1551 if templ_7745c5c3_Var81 == nil {
1552 templ_7745c5c3_Var81 = templ.NopComponent
1553 }
1554 ctx = templ.ClearChildren(ctx)
1555 var templ_7745c5c3_Var82 = []any{logClass(ln)}
1556 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var82...)
1557 if templ_7745c5c3_Err != nil {
1558 return templ_7745c5c3_Err
1559 }
1560 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "<li id=\"")
1561 if templ_7745c5c3_Err != nil {
1562 return templ_7745c5c3_Err
1563 }
1564 var templ_7745c5c3_Var83 string
1565 templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.ResolveAttributeValue("L" + itoa64(ln.N))
1566 if templ_7745c5c3_Err != nil {
1567 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 211, Col: 28}
1568 }
1569 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var83)
1570 if templ_7745c5c3_Err != nil {
1571 return templ_7745c5c3_Err
1572 }
1573 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "\" class=\"")
1574 if templ_7745c5c3_Err != nil {
1575 return templ_7745c5c3_Err
1576 }
1577 var templ_7745c5c3_Var84 string
1578 templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var82).String())
1579 if templ_7745c5c3_Err != nil {
1580 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 1, Col: 0}
1581 }
1582 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var84)
1583 if templ_7745c5c3_Err != nil {
1584 return templ_7745c5c3_Err
1585 }
1586 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "\" data-step=\"")
1587 if templ_7745c5c3_Err != nil {
1588 return templ_7745c5c3_Err
1589 }
1590 var templ_7745c5c3_Var85 string
1591 templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(int(ln.Step)))
1592 if templ_7745c5c3_Err != nil {
1593 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 211, Col: 84}
1594 }
1595 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var85)
1596 if templ_7745c5c3_Err != nil {
1597 return templ_7745c5c3_Err
1598 }
1599 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "\"")
1600 if templ_7745c5c3_Err != nil {
1601 return templ_7745c5c3_Err
1602 }
1603 if ln.Continued {
1604 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, " data-cont")
1605 if templ_7745c5c3_Err != nil {
1606 return templ_7745c5c3_Err
1607 }
1608 }
1609 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "><time>")
1610 if templ_7745c5c3_Err != nil {
1611 return templ_7745c5c3_Err
1612 }
1613 var templ_7745c5c3_Var86 string
1614 templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Time)
1615 if templ_7745c5c3_Err != nil {
1616 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 211, Col: 130}
1617 }
1618 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86))
1619 if templ_7745c5c3_Err != nil {
1620 return templ_7745c5c3_Err
1621 }
1622 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</time><span class=\"t\">")
1623 if templ_7745c5c3_Err != nil {
1624 return templ_7745c5c3_Err
1625 }
1626 var templ_7745c5c3_Var87 string
1627 templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Text)
1628 if templ_7745c5c3_Err != nil {
1629 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 211, Col: 164}
1630 }
1631 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var87))
1632 if templ_7745c5c3_Err != nil {
1633 return templ_7745c5c3_Err
1634 }
1635 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "</span></li>")
1636 if templ_7745c5c3_Err != nil {
1637 return templ_7745c5c3_Err
1638 }
1639 return nil
1640 })
1641}
1642
1643func jobRail(p JobPage) templ.Component {
1644 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1645 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1646 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1647 return templ_7745c5c3_CtxErr
1648 }
1649 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1650 if !templ_7745c5c3_IsBuffer {
1651 defer func() {
1652 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1653 if templ_7745c5c3_Err == nil {
1654 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1655 }
1656 }()
1657 }
1658 ctx = templ.InitializeContext(ctx)
1659 templ_7745c5c3_Var88 := templ.GetChildren(ctx)
1660 if templ_7745c5c3_Var88 == nil {
1661 templ_7745c5c3_Var88 = templ.NopComponent
1662 }
1663 ctx = templ.ClearChildren(ctx)
1664 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "<section aria-labelledby=\"r-job\"><h2 id=\"r-job\">Steps</h2>")
1665 if templ_7745c5c3_Err != nil {
1666 return templ_7745c5c3_Err
1667 }
1668 templ_7745c5c3_Err = JobSteps(p.Steps).Render(ctx, templ_7745c5c3_Buffer)
1669 if templ_7745c5c3_Err != nil {
1670 return templ_7745c5c3_Err
1671 }
1672 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "</section><section aria-labelledby=\"r-jobf\"><h2 id=\"r-jobf\">Job</h2><dl class=\"kv\"><dt>run</dt><dd><a href=\"")
1673 if templ_7745c5c3_Err != nil {
1674 return templ_7745c5c3_Err
1675 }
1676 var templ_7745c5c3_Var89 templ.SafeURL
1677 templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RunHref))
1678 if templ_7745c5c3_Err != nil {
1679 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 223, Col: 41}
1680 }
1681 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var89))
1682 if templ_7745c5c3_Err != nil {
1683 return templ_7745c5c3_Err
1684 }
1685 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "\">")
1686 if templ_7745c5c3_Err != nil {
1687 return templ_7745c5c3_Err
1688 }
1689 var templ_7745c5c3_Var90 string
1690 templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.JoinStringErrs(p.RunName)
1691 if templ_7745c5c3_Err != nil {
1692 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 223, Col: 55}
1693 }
1694 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var90))
1695 if templ_7745c5c3_Err != nil {
1696 return templ_7745c5c3_Err
1697 }
1698 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "</a></dd>")
1699 if templ_7745c5c3_Err != nil {
1700 return templ_7745c5c3_Err
1701 }
1702 if p.Runner != "" {
1703 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "<dt>runner</dt><dd>")
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.Runner)
1709 if templ_7745c5c3_Err != nil {
1710 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 226, Col: 18}
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, 138, "</dd>")
1717 if templ_7745c5c3_Err != nil {
1718 return templ_7745c5c3_Err
1719 }
1720 }
1721 if p.Isolation != "" {
1722 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<dt>isolation</dt><dd>")
1723 if templ_7745c5c3_Err != nil {
1724 return templ_7745c5c3_Err
1725 }
1726 var templ_7745c5c3_Var92 string
1727 templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.JoinStringErrs(p.Isolation)
1728 if templ_7745c5c3_Err != nil {
1729 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 230, Col: 21}
1730 }
1731 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var92))
1732 if templ_7745c5c3_Err != nil {
1733 return templ_7745c5c3_Err
1734 }
1735 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "</dd>")
1736 if templ_7745c5c3_Err != nil {
1737 return templ_7745c5c3_Err
1738 }
1739 }
1740 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "<dt>lines</dt><dd>")
1741 if templ_7745c5c3_Err != nil {
1742 return templ_7745c5c3_Err
1743 }
1744 var templ_7745c5c3_Var93 string
1745 templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.JoinStringErrs(itoa64(p.Total))
1746 if templ_7745c5c3_Err != nil {
1747 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 233, Col: 24}
1748 }
1749 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var93))
1750 if templ_7745c5c3_Err != nil {
1751 return templ_7745c5c3_Err
1752 }
1753 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "</dd></dl><p><a href=\"")
1754 if templ_7745c5c3_Err != nil {
1755 return templ_7745c5c3_Err
1756 }
1757 var templ_7745c5c3_Var94 templ.SafeURL
1758 templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.RawHref))
1759 if templ_7745c5c3_Err != nil {
1760 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 235, Col: 39}
1761 }
1762 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var94))
1763 if templ_7745c5c3_Err != nil {
1764 return templ_7745c5c3_Err
1765 }
1766 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "\">raw log</a></p></section>")
1767 if templ_7745c5c3_Err != nil {
1768 return templ_7745c5c3_Err
1769 }
1770 return nil
1771 })
1772}
1773
1774// CommitChecks is the combined state of the checks of a commit, as a mark
1775// with a count, linking to the page that explains it.
1776func CommitChecks(c ChecksSummary) templ.Component {
1777 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1778 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1779 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1780 return templ_7745c5c3_CtxErr
1781 }
1782 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1783 if !templ_7745c5c3_IsBuffer {
1784 defer func() {
1785 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1786 if templ_7745c5c3_Err == nil {
1787 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1788 }
1789 }()
1790 }
1791 ctx = templ.InitializeContext(ctx)
1792 templ_7745c5c3_Var95 := templ.GetChildren(ctx)
1793 if templ_7745c5c3_Var95 == nil {
1794 templ_7745c5c3_Var95 = templ.NopComponent
1795 }
1796 ctx = templ.ClearChildren(ctx)
1797 if c.Total > 0 {
1798 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "<a class=\"ck-sum\" href=\"")
1799 if templ_7745c5c3_Err != nil {
1800 return templ_7745c5c3_Err
1801 }
1802 var templ_7745c5c3_Var96 templ.SafeURL
1803 templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href))
1804 if templ_7745c5c3_Err != nil {
1805 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 243, Col: 48}
1806 }
1807 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96))
1808 if templ_7745c5c3_Err != nil {
1809 return templ_7745c5c3_Err
1810 }
1811 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "\" title=\"")
1812 if templ_7745c5c3_Err != nil {
1813 return templ_7745c5c3_Err
1814 }
1815 var templ_7745c5c3_Var97 string
1816 templ_7745c5c3_Var97, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Title)
1817 if templ_7745c5c3_Err != nil {
1818 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 243, Col: 66}
1819 }
1820 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var97)
1821 if templ_7745c5c3_Err != nil {
1822 return templ_7745c5c3_Err
1823 }
1824 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "\">")
1825 if templ_7745c5c3_Err != nil {
1826 return templ_7745c5c3_Err
1827 }
1828 templ_7745c5c3_Err = CheckIcon(c.Kind, c.State).Render(ctx, templ_7745c5c3_Buffer)
1829 if templ_7745c5c3_Err != nil {
1830 return templ_7745c5c3_Err
1831 }
1832 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "<span class=\"mute\">")
1833 if templ_7745c5c3_Err != nil {
1834 return templ_7745c5c3_Err
1835 }
1836 var templ_7745c5c3_Var98 string
1837 templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(c.Label)
1838 if templ_7745c5c3_Err != nil {
1839 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 245, Col: 31}
1840 }
1841 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98))
1842 if templ_7745c5c3_Err != nil {
1843 return templ_7745c5c3_Err
1844 }
1845 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "</span></a>")
1846 if templ_7745c5c3_Err != nil {
1847 return templ_7745c5c3_Err
1848 }
1849 }
1850 return nil
1851 })
1852}
1853
1854// MRChecks is the checks section of the rail of a merge request.
1855func MRChecks(c ChecksSection) templ.Component {
1856 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1857 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1858 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1859 return templ_7745c5c3_CtxErr
1860 }
1861 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1862 if !templ_7745c5c3_IsBuffer {
1863 defer func() {
1864 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1865 if templ_7745c5c3_Err == nil {
1866 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1867 }
1868 }()
1869 }
1870 ctx = templ.InitializeContext(ctx)
1871 templ_7745c5c3_Var99 := templ.GetChildren(ctx)
1872 if templ_7745c5c3_Var99 == nil {
1873 templ_7745c5c3_Var99 = templ.NopComponent
1874 }
1875 ctx = templ.ClearChildren(ctx)
1876 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "<section aria-labelledby=\"r-checks\" id=\"mr-checks\"><h2 id=\"r-checks\">Checks <span class=\"count\">")
1877 if templ_7745c5c3_Err != nil {
1878 return templ_7745c5c3_Err
1879 }
1880 var templ_7745c5c3_Var100 string
1881 templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(c.Rows)))
1882 if templ_7745c5c3_Err != nil {
1883 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 253, Col: 66}
1884 }
1885 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100))
1886 if templ_7745c5c3_Err != nil {
1887 return templ_7745c5c3_Err
1888 }
1889 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "</span></h2>")
1890 if templ_7745c5c3_Err != nil {
1891 return templ_7745c5c3_Err
1892 }
1893 if len(c.Rows) == 0 {
1894 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "<p class=\"dim\">no checks</p>")
1895 if templ_7745c5c3_Err != nil {
1896 return templ_7745c5c3_Err
1897 }
1898 } else {
1899 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "<ul class=\"checks\">")
1900 if templ_7745c5c3_Err != nil {
1901 return templ_7745c5c3_Err
1902 }
1903 for _, r := range c.Rows {
1904 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "<li>")
1905 if templ_7745c5c3_Err != nil {
1906 return templ_7745c5c3_Err
1907 }
1908 templ_7745c5c3_Err = CheckIcon(r.Kind, r.State).Render(ctx, templ_7745c5c3_Buffer)
1909 if templ_7745c5c3_Err != nil {
1910 return templ_7745c5c3_Err
1911 }
1912 if r.Href != "" {
1913 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "<a href=\"")
1914 if templ_7745c5c3_Err != nil {
1915 return templ_7745c5c3_Err
1916 }
1917 var templ_7745c5c3_Var101 templ.SafeURL
1918 templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
1919 if templ_7745c5c3_Err != nil {
1920 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 262, Col: 38}
1921 }
1922 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101))
1923 if templ_7745c5c3_Err != nil {
1924 return templ_7745c5c3_Err
1925 }
1926 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "\">")
1927 if templ_7745c5c3_Err != nil {
1928 return templ_7745c5c3_Err
1929 }
1930 var templ_7745c5c3_Var102 string
1931 templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
1932 if templ_7745c5c3_Err != nil {
1933 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 262, Col: 49}
1934 }
1935 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102))
1936 if templ_7745c5c3_Err != nil {
1937 return templ_7745c5c3_Err
1938 }
1939 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "</a> ")
1940 if templ_7745c5c3_Err != nil {
1941 return templ_7745c5c3_Err
1942 }
1943 } else {
1944 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "<span>")
1945 if templ_7745c5c3_Err != nil {
1946 return templ_7745c5c3_Err
1947 }
1948 var templ_7745c5c3_Var103 string
1949 templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
1950 if templ_7745c5c3_Err != nil {
1951 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 264, Col: 21}
1952 }
1953 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103))
1954 if templ_7745c5c3_Err != nil {
1955 return templ_7745c5c3_Err
1956 }
1957 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "</span> ")
1958 if templ_7745c5c3_Err != nil {
1959 return templ_7745c5c3_Err
1960 }
1961 }
1962 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<span class=\"dim\">")
1963 if templ_7745c5c3_Err != nil {
1964 return templ_7745c5c3_Err
1965 }
1966 var templ_7745c5c3_Var104 string
1967 templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(r.State)
1968 if templ_7745c5c3_Err != nil {
1969 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 266, Col: 33}
1970 }
1971 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104))
1972 if templ_7745c5c3_Err != nil {
1973 return templ_7745c5c3_Err
1974 }
1975 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "</span> ")
1976 if templ_7745c5c3_Err != nil {
1977 return templ_7745c5c3_Err
1978 }
1979 if r.Waiting {
1980 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "<span class=\"mute\">waiting for a runner</span>")
1981 if templ_7745c5c3_Err != nil {
1982 return templ_7745c5c3_Err
1983 }
1984 }
1985 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "</li>")
1986 if templ_7745c5c3_Err != nil {
1987 return templ_7745c5c3_Err
1988 }
1989 }
1990 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "</ul>")
1991 if templ_7745c5c3_Err != nil {
1992 return templ_7745c5c3_Err
1993 }
1994 }
1995 if c.Note != "" {
1996 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "<p class=\"mute\">")
1997 if templ_7745c5c3_Err != nil {
1998 return templ_7745c5c3_Err
1999 }
2000 var templ_7745c5c3_Var105 string
2001 templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinStringErrs(c.Note)
2002 if templ_7745c5c3_Err != nil {
2003 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/actions.templ`, Line: 275, Col: 27}
2004 }
2005 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105))
2006 if templ_7745c5c3_Err != nil {
2007 return templ_7745c5c3_Err
2008 }
2009 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "</p>")
2010 if templ_7745c5c3_Err != nil {
2011 return templ_7745c5c3_Err
2012 }
2013 }
2014 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "</section>")
2015 if templ_7745c5c3_Err != nil {
2016 return templ_7745c5c3_Err
2017 }
2018 return nil
2019 })
2020}
2021
2022var _ = templruntime.GeneratedTemplate