Improve Task Display
This commit is contained in:
parent
1a46eaf51b
commit
1a181980a3
4 changed files with 49 additions and 18 deletions
|
@ -19,7 +19,7 @@ import (
|
|||
type TasksData struct {
|
||||
Libraries []Library
|
||||
FfmpegCommands []FfmpegCommand
|
||||
Tasks []TaskDisplay
|
||||
Tasks []TasksDisplay
|
||||
Stats TaskStats
|
||||
OrderBy string
|
||||
OrderAsc bool
|
||||
|
@ -40,7 +40,7 @@ type TaskStats struct {
|
|||
TotalCount int
|
||||
}
|
||||
|
||||
type TaskDisplay struct {
|
||||
type TasksDisplay struct {
|
||||
ID int `db:"id"`
|
||||
Library int `db:"library"`
|
||||
Worker *string `db:"worker"`
|
||||
|
@ -51,6 +51,17 @@ type TaskDisplay struct {
|
|||
UpdatedAt string `db:"updated_at"`
|
||||
}
|
||||
|
||||
type TaskDisplay struct {
|
||||
ID int
|
||||
Library string
|
||||
Worker string
|
||||
Type string
|
||||
Status string
|
||||
Filename string
|
||||
Log []string
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
type TaskDB struct {
|
||||
ID int `db:"id"`
|
||||
Library int `db:"library"`
|
||||
|
@ -167,7 +178,7 @@ func handleTasks(w http.ResponseWriter, r *http.Request) {
|
|||
data.Page = uint(page)
|
||||
}
|
||||
|
||||
rows, err = db.Query(r.Context(), "SELECT t.id AS id, l.id AS library, t.worker_id AS worker, t.type AS type, fc.name AS ffmpeg_command, t.status AS status, f.path AS file, t.updated_at AS updated_at FROM tasks t INNER JOIN files f ON f.id = t.file_id INNER JOIN libraries l ON l.id = f.library_id INNER JOIN ffmpeg_commands fc ON fc.id = t.ffmpeg_command_id "+fmt.Sprintf("ORDER BY %v %v LIMIT %d OFFSET %d", data.OrderBy, orderDir, data.Limit, data.Page*data.Limit))
|
||||
rows, err = db.Query(r.Context(), "SELECT t.id AS id, l.id AS library, w.name AS worker, t.type AS type, fc.name AS ffmpeg_command, t.status AS status, f.path AS file, t.updated_at AS updated_at FROM tasks t INNER JOIN files f ON f.id = t.file_id INNER JOIN libraries l ON l.id = f.library_id INNER JOIN ffmpeg_commands fc ON fc.id = t.ffmpeg_command_id INNER JOIN workers w ON t.worker_id = w.id "+fmt.Sprintf("ORDER BY %v %v LIMIT %d OFFSET %d", data.OrderBy, orderDir, data.Limit, data.Page*data.Limit))
|
||||
if err != nil {
|
||||
slog.ErrorContext(r.Context(), "Query Tasks", "err", err)
|
||||
http.Error(w, "Error Query Tasks: "+err.Error(), http.StatusInternalServerError)
|
||||
|
@ -180,7 +191,7 @@ func handleTasks(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
for i := range tasks {
|
||||
data.Tasks = append(data.Tasks, TaskDisplay{
|
||||
data.Tasks = append(data.Tasks, TasksDisplay{
|
||||
ID: tasks[i].ID,
|
||||
Library: tasks[i].Library,
|
||||
Worker: tasks[i].Worker,
|
||||
|
@ -214,18 +225,18 @@ func handleTask(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
var log []string
|
||||
err := db.QueryRow(r.Context(), "SELECT log FROM tasks WHERE id = $1", id).Scan(&log)
|
||||
var typ constants.TaskType
|
||||
var status constants.TaskStatus
|
||||
t := TaskDisplay{}
|
||||
err := db.QueryRow(r.Context(), "SELECT t.id, l.name, w.name, t.type, t.status, f.path, t.log, t.updated_at FROM tasks t INNER JOIN workers w ON w.id = t.worker_id INNER JOIN files f ON f.id = t.file_id INNER JOIN libraries l ON l.id = f.library_id WHERE t.id = $1", id).Scan(&t.ID, &t.Library, &t.Worker, &typ, &status, &t.Filename, &t.Log, &t.UpdatedAt)
|
||||
if err != nil {
|
||||
slog.ErrorContext(r.Context(), "Query Tasks", "err", err)
|
||||
http.Error(w, "Error Query Tasks: "+err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
t := types.Task{
|
||||
Log: log,
|
||||
}
|
||||
|
||||
t.Type = typ.String()
|
||||
t.Status = status.String()
|
||||
buf := bytes.Buffer{}
|
||||
err = templates.ExecuteTemplate(&buf, constants.TASK_TEMPLATE_NAME, t)
|
||||
if err != nil {
|
||||
|
@ -311,7 +322,7 @@ func createTask(ctx context.Context, r *http.Request) error {
|
|||
|
||||
type QueuedTask struct {
|
||||
ID int
|
||||
Type int
|
||||
Type constants.TaskType
|
||||
FileID int `json:"file_id"`
|
||||
FileMD5 []byte `json:"file_md5" db:"md5"`
|
||||
Data json.RawMessage
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue