started work on admin web interface
This commit is contained in:
		
							parent
							
								
									e8bc663fbe
								
							
						
					
					
						commit
						b6265586e2
					
				
					 4 changed files with 780 additions and 0 deletions
				
			
		| 
						 | 
					@ -12,6 +12,7 @@ func RegisterRoutes() *http.ServeMux {
 | 
				
			||||||
	// Web interface
 | 
						// Web interface
 | 
				
			||||||
	mux.HandleFunc("/", web.IndexWebHandler)
 | 
						mux.HandleFunc("/", web.IndexWebHandler)
 | 
				
			||||||
	mux.HandleFunc("/about", web.AboutWebHandler)
 | 
						mux.HandleFunc("/about", web.AboutWebHandler)
 | 
				
			||||||
 | 
					  mux.HandleFunc("/admin", web.AdminWebHandler)
 | 
				
			||||||
	mux.HandleFunc("/files/{uuid}", web.FileViewWebHandler)
 | 
						mux.HandleFunc("/files/{uuid}", web.FileViewWebHandler)
 | 
				
			||||||
	mux.HandleFunc("POST /upload", web.IndexUploadHandler)
 | 
						mux.HandleFunc("POST /upload", web.IndexUploadHandler)
 | 
				
			||||||
	mux.Handle("/assets/", http.FileServer(http.FS(web.Files)))
 | 
						mux.Handle("/assets/", http.FileServer(http.FS(web.Files)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								server/web/admin.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								server/web/admin.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					package web
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"log/slog"
 | 
				
			||||||
 | 
						"net/http"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"git.jmbit.de/jmb/scanfile/server/internal/database"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func AdminWebHandler(w http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
 | 
					  jobs, err := database.ALlProcessingJobs()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							http.Error(w, err.Error(), http.StatusInternalServerError)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						component := Admin(jobs)
 | 
				
			||||||
 | 
						err = component.Render(r.Context(), w)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							slog.Error("Error rendering in IndexWebHandler", "error", err)
 | 
				
			||||||
 | 
							http.Error(w, err.Error(), http.StatusBadRequest)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										82
									
								
								server/web/admin.templ
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								server/web/admin.templ
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,82 @@
 | 
				
			||||||
 | 
					package web
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "git.jmbit.de/jmb/scanfile/server/web/templui/components/table"
 | 
				
			||||||
 | 
					import "git.jmbit.de/jmb/scanfile/server/internal/sqlc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					templ Admin(jobs []sqlc.ProcessingJob) {
 | 
				
			||||||
 | 
					  @Base("Admin") {
 | 
				
			||||||
 | 
					    @ProcessingJobs(jobs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					templ ProcessingJobs(jobs []sqlc.ProcessingJob) {
 | 
				
			||||||
 | 
					  @table.Table() {
 | 
				
			||||||
 | 
					    @table.Caption() {
 | 
				
			||||||
 | 
					      Processing jobs 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @table.Header() {
 | 
				
			||||||
 | 
					      @table.Row() {
 | 
				
			||||||
 | 
					        @table.Head() {
 | 
				
			||||||
 | 
					          ID
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        @table.Head() {
 | 
				
			||||||
 | 
					          File ID
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        @table.Head() {
 | 
				
			||||||
 | 
					          Created
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        @table.Head() {
 | 
				
			||||||
 | 
					          Started
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        @table.Head() {
 | 
				
			||||||
 | 
					          Completed
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        @table.Head() {
 | 
				
			||||||
 | 
					          Type
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        @table.Head() {
 | 
				
			||||||
 | 
					          Status
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        @table.Head() {
 | 
				
			||||||
 | 
					          Error
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @table.Body() {
 | 
				
			||||||
 | 
					      for _, job := range jobs {
 | 
				
			||||||
 | 
					        @table.Row() {
 | 
				
			||||||
 | 
					          @table.Cell() {
 | 
				
			||||||
 | 
					            {job.ID}
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          @table.Cell() {
 | 
				
			||||||
 | 
					            {job.FileID.String()}
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          @table.Cell() {
 | 
				
			||||||
 | 
					            {job.Created.Time.String()}
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          @table.Cell() {
 | 
				
			||||||
 | 
					            if job.Started.Valid {
 | 
				
			||||||
 | 
					              {job.Started.Time.String()}
 | 
				
			||||||
 | 
					            } else { - }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          @table.Cell() {
 | 
				
			||||||
 | 
					            if job.Completed.Valid {
 | 
				
			||||||
 | 
					            {job.Completed.Time.String()}
 | 
				
			||||||
 | 
					            } else { - }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          @table.Cell() {
 | 
				
			||||||
 | 
					            {job.JobType.String}
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          @table.Cell() {
 | 
				
			||||||
 | 
					            {job.Status.String}
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          @table.Cell() {
 | 
				
			||||||
 | 
					            {job.Error.String}
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										670
									
								
								server/web/admin_templ.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										670
									
								
								server/web/admin_templ.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,670 @@
 | 
				
			||||||
 | 
					// Code generated by templ - DO NOT EDIT.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// templ: version: v0.3.865
 | 
				
			||||||
 | 
					package web
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//lint:file-ignore SA4006 This context is only used if a nested component is present.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "github.com/a-h/templ"
 | 
				
			||||||
 | 
					import templruntime "github.com/a-h/templ/runtime"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "git.jmbit.de/jmb/scanfile/server/web/templui/components/table"
 | 
				
			||||||
 | 
					import "git.jmbit.de/jmb/scanfile/server/internal/sqlc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Admin(jobs []sqlc.ProcessingJob) templ.Component {
 | 
				
			||||||
 | 
						return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
							templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
							if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
 | 
				
			||||||
 | 
								return templ_7745c5c3_CtxErr
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
							if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
								defer func() {
 | 
				
			||||||
 | 
									templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
									if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
							templ_7745c5c3_Var1 := templ.GetChildren(ctx)
 | 
				
			||||||
 | 
							if templ_7745c5c3_Var1 == nil {
 | 
				
			||||||
 | 
								templ_7745c5c3_Var1 = templ.NopComponent
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							ctx = templ.ClearChildren(ctx)
 | 
				
			||||||
 | 
							templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
								templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
								templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
								if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
									defer func() {
 | 
				
			||||||
 | 
										templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}()
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
								templ_7745c5c3_Err = ProcessingJobs(jobs).Render(ctx, templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
								if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
									return templ_7745c5c3_Err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return nil
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							templ_7745c5c3_Err = Base("Admin").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
							if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
								return templ_7745c5c3_Err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func ProcessingJobs(jobs []sqlc.ProcessingJob) templ.Component {
 | 
				
			||||||
 | 
						return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
							templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
							if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
 | 
				
			||||||
 | 
								return templ_7745c5c3_CtxErr
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
							if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
								defer func() {
 | 
				
			||||||
 | 
									templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
									if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
							templ_7745c5c3_Var3 := templ.GetChildren(ctx)
 | 
				
			||||||
 | 
							if templ_7745c5c3_Var3 == nil {
 | 
				
			||||||
 | 
								templ_7745c5c3_Var3 = templ.NopComponent
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							ctx = templ.ClearChildren(ctx)
 | 
				
			||||||
 | 
							templ_7745c5c3_Var4 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
								templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
								templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
								if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
									defer func() {
 | 
				
			||||||
 | 
										templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}()
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
								templ_7745c5c3_Var5 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
									templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
									templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
									if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
										defer func() {
 | 
				
			||||||
 | 
											templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
												templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}()
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
									templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "Processing jobs ")
 | 
				
			||||||
 | 
									if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
										return templ_7745c5c3_Err
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									return nil
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
								templ_7745c5c3_Err = table.Caption().Render(templ.WithChildren(ctx, templ_7745c5c3_Var5), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
								if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
									return templ_7745c5c3_Err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, " ")
 | 
				
			||||||
 | 
								if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
									return templ_7745c5c3_Err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								templ_7745c5c3_Var6 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
									templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
									templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
									if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
										defer func() {
 | 
				
			||||||
 | 
											templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
												templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}()
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
									templ_7745c5c3_Var7 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
										templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
										templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
										if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
											defer func() {
 | 
				
			||||||
 | 
												templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
													templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
											}()
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
										templ_7745c5c3_Var8 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
											templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
											templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
											if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
												defer func() {
 | 
				
			||||||
 | 
													templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
														templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}()
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "ID")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											return nil
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = table.Head().Render(templ.WithChildren(ctx, templ_7745c5c3_Var8), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, " ")
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Var9 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
											templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
											templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
											if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
												defer func() {
 | 
				
			||||||
 | 
													templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
														templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}()
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "File ID")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											return nil
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = table.Head().Render(templ.WithChildren(ctx, templ_7745c5c3_Var9), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " ")
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Var10 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
											templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
											templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
											if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
												defer func() {
 | 
				
			||||||
 | 
													templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
														templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}()
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "Created")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											return nil
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = table.Head().Render(templ.WithChildren(ctx, templ_7745c5c3_Var10), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, " ")
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Var11 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
											templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
											templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
											if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
												defer func() {
 | 
				
			||||||
 | 
													templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
														templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}()
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "Started")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											return nil
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = table.Head().Render(templ.WithChildren(ctx, templ_7745c5c3_Var11), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, " ")
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Var12 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
											templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
											templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
											if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
												defer func() {
 | 
				
			||||||
 | 
													templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
														templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}()
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "Completed")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											return nil
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = table.Head().Render(templ.WithChildren(ctx, templ_7745c5c3_Var12), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, " ")
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Var13 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
											templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
											templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
											if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
												defer func() {
 | 
				
			||||||
 | 
													templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
														templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}()
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "Type")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											return nil
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = table.Head().Render(templ.WithChildren(ctx, templ_7745c5c3_Var13), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, " ")
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Var14 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
											templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
											templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
											if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
												defer func() {
 | 
				
			||||||
 | 
													templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
														templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}()
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "Status")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											return nil
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = table.Head().Render(templ.WithChildren(ctx, templ_7745c5c3_Var14), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, " ")
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										templ_7745c5c3_Var15 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
											templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
											templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
											if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
												defer func() {
 | 
				
			||||||
 | 
													templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
														templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}()
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "Error")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											return nil
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = table.Head().Render(templ.WithChildren(ctx, templ_7745c5c3_Var15), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										return nil
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									templ_7745c5c3_Err = table.Row().Render(templ.WithChildren(ctx, templ_7745c5c3_Var7), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
									if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
										return templ_7745c5c3_Err
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									return nil
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
								templ_7745c5c3_Err = table.Header().Render(templ.WithChildren(ctx, templ_7745c5c3_Var6), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
								if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
									return templ_7745c5c3_Err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, " ")
 | 
				
			||||||
 | 
								if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
									return templ_7745c5c3_Err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								templ_7745c5c3_Var16 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
									templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
									templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
									if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
										defer func() {
 | 
				
			||||||
 | 
											templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
												templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}()
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
									for _, job := range jobs {
 | 
				
			||||||
 | 
										templ_7745c5c3_Var17 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
											templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
											templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
											if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
												defer func() {
 | 
				
			||||||
 | 
													templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
														templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}()
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
											templ_7745c5c3_Var18 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
												templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
												templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
												if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
													defer func() {
 | 
				
			||||||
 | 
														templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
														if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
															templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
														}
 | 
				
			||||||
 | 
													}()
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
												var templ_7745c5c3_Var19 string
 | 
				
			||||||
 | 
												templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(job.ID)
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ.Error{Err: templ_7745c5c3_Err, FileName: `server/web/admin.templ`, Line: 51, Col: 19}
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ_7745c5c3_Err
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												return nil
 | 
				
			||||||
 | 
											})
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var18), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, " ")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Var20 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
												templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
												templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
												if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
													defer func() {
 | 
				
			||||||
 | 
														templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
														if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
															templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
														}
 | 
				
			||||||
 | 
													}()
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
												var templ_7745c5c3_Var21 string
 | 
				
			||||||
 | 
												templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(job.FileID.String())
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ.Error{Err: templ_7745c5c3_Err, FileName: `server/web/admin.templ`, Line: 54, Col: 32}
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ_7745c5c3_Err
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												return nil
 | 
				
			||||||
 | 
											})
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var20), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, " ")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Var22 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
												templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
												templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
												if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
													defer func() {
 | 
				
			||||||
 | 
														templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
														if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
															templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
														}
 | 
				
			||||||
 | 
													}()
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
												var templ_7745c5c3_Var23 string
 | 
				
			||||||
 | 
												templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(job.Created.Time.String())
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ.Error{Err: templ_7745c5c3_Err, FileName: `server/web/admin.templ`, Line: 57, Col: 38}
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ_7745c5c3_Err
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												return nil
 | 
				
			||||||
 | 
											})
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var22), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, " ")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Var24 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
												templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
												templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
												if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
													defer func() {
 | 
				
			||||||
 | 
														templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
														if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
															templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
														}
 | 
				
			||||||
 | 
													}()
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
												if job.Started.Valid {
 | 
				
			||||||
 | 
													var templ_7745c5c3_Var25 string
 | 
				
			||||||
 | 
													templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(job.Started.Time.String())
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
														return templ.Error{Err: templ_7745c5c3_Err, FileName: `server/web/admin.templ`, Line: 61, Col: 40}
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
													_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
														return templ_7745c5c3_Err
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												} else {
 | 
				
			||||||
 | 
													templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "- ")
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
														return templ_7745c5c3_Err
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												return nil
 | 
				
			||||||
 | 
											})
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var24), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, " ")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Var26 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
												templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
												templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
												if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
													defer func() {
 | 
				
			||||||
 | 
														templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
														if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
															templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
														}
 | 
				
			||||||
 | 
													}()
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
												if job.Completed.Valid {
 | 
				
			||||||
 | 
													var templ_7745c5c3_Var27 string
 | 
				
			||||||
 | 
													templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(job.Completed.Time.String())
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
														return templ.Error{Err: templ_7745c5c3_Err, FileName: `server/web/admin.templ`, Line: 66, Col: 40}
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
													_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
														return templ_7745c5c3_Err
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												} else {
 | 
				
			||||||
 | 
													templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "- ")
 | 
				
			||||||
 | 
													if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
														return templ_7745c5c3_Err
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												return nil
 | 
				
			||||||
 | 
											})
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var26), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, " ")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Var28 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
												templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
												templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
												if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
													defer func() {
 | 
				
			||||||
 | 
														templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
														if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
															templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
														}
 | 
				
			||||||
 | 
													}()
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
												var templ_7745c5c3_Var29 string
 | 
				
			||||||
 | 
												templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(job.JobType.String)
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ.Error{Err: templ_7745c5c3_Err, FileName: `server/web/admin.templ`, Line: 70, Col: 31}
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ_7745c5c3_Err
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												return nil
 | 
				
			||||||
 | 
											})
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var28), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, " ")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Var30 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
												templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
												templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
												if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
													defer func() {
 | 
				
			||||||
 | 
														templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
														if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
															templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
														}
 | 
				
			||||||
 | 
													}()
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
												var templ_7745c5c3_Var31 string
 | 
				
			||||||
 | 
												templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(job.Status.String)
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ.Error{Err: templ_7745c5c3_Err, FileName: `server/web/admin.templ`, Line: 73, Col: 30}
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ_7745c5c3_Err
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												return nil
 | 
				
			||||||
 | 
											})
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var30), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, " ")
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											templ_7745c5c3_Var32 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 | 
				
			||||||
 | 
												templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 | 
				
			||||||
 | 
												templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 | 
				
			||||||
 | 
												if !templ_7745c5c3_IsBuffer {
 | 
				
			||||||
 | 
													defer func() {
 | 
				
			||||||
 | 
														templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
														if templ_7745c5c3_Err == nil {
 | 
				
			||||||
 | 
															templ_7745c5c3_Err = templ_7745c5c3_BufErr
 | 
				
			||||||
 | 
														}
 | 
				
			||||||
 | 
													}()
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												ctx = templ.InitializeContext(ctx)
 | 
				
			||||||
 | 
												var templ_7745c5c3_Var33 string
 | 
				
			||||||
 | 
												templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(job.Error.String)
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ.Error{Err: templ_7745c5c3_Err, FileName: `server/web/admin.templ`, Line: 76, Col: 29}
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))
 | 
				
			||||||
 | 
												if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
													return templ_7745c5c3_Err
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
												return nil
 | 
				
			||||||
 | 
											})
 | 
				
			||||||
 | 
											templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var32), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
											if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
												return templ_7745c5c3_Err
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											return nil
 | 
				
			||||||
 | 
										})
 | 
				
			||||||
 | 
										templ_7745c5c3_Err = table.Row().Render(templ.WithChildren(ctx, templ_7745c5c3_Var17), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
										if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
											return templ_7745c5c3_Err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									return nil
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
								templ_7745c5c3_Err = table.Body().Render(templ.WithChildren(ctx, templ_7745c5c3_Var16), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
								if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
									return templ_7745c5c3_Err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return nil
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							templ_7745c5c3_Err = table.Table().Render(templ.WithChildren(ctx, templ_7745c5c3_Var4), templ_7745c5c3_Buffer)
 | 
				
			||||||
 | 
							if templ_7745c5c3_Err != nil {
 | 
				
			||||||
 | 
								return templ_7745c5c3_Err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var _ = templruntime.GeneratedTemplate
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue