settings: add "tasks" button (advanced)

added a GET /tasks route to list tasks with a description (untranslated,
but this is mostly a dev feature anyway). Loaded in a modal by enabling
advanced settings and pressing the Tasks button at the top (where logs,
backups, restart are). Also added some icons in settings, and removed
some redundant "flex flex-row"s on buttons and reduced the spacing in
those with icons to gap-1.
This commit is contained in:
Harvey Tindall
2025-11-29 15:43:06 +00:00
parent 598a389e3d
commit fb1b673dee
8 changed files with 138 additions and 16 deletions

View File

@@ -7,6 +7,35 @@ import (
"github.com/gin-gonic/gin"
)
// @Summary List existing task routes, with friendly names and descriptions.
// @Produce json
// @Success 200 {object} TasksDTO
// @Router /tasks [get]
// @Security Bearer
// @tags Tasks
func (app *appContext) TaskList(gc *gin.Context) {
resp := TasksDTO{Tasks: []TaskDTO{
TaskDTO{
URL: "/tasks/housekeeping",
Name: "Housekeeping",
Description: "General housekeeping tasks: Clearing expired invites & activities, unused contact details & captchas, etc.",
},
TaskDTO{
URL: "/tasks/users",
Name: "Users",
Description: "Checks for (pending) account expiries and performs the appropriate actions.",
},
}}
if app.config.Section("jellyseerr").Key("enabled").MustBool(false) {
resp.Tasks = append(resp.Tasks, TaskDTO{
URL: "/tasks/jellyseerr",
Name: "Jellyseerr user import",
Description: "Imports existing users into jellyfin and synchronizes contact details. Should only need to be run once when the feature is enabled, which is done automatically.",
})
}
gc.JSON(200, resp)
}
// @Summary Triggers general housekeeping tasks: Clearing expired invites, activities, unused contact details, captchas, etc.
// @Success 204
// @Router /tasks/housekeeping [post]