From d3ddc9e4aaede572cf28ab12a730611ad3009148 Mon Sep 17 00:00:00 2001 From: Dave Date: Tue, 7 May 2024 02:39:23 -0400 Subject: [PATCH] UI: flag `trust_remote_code` to users // favicon support (#2253) * attempt to indicate trust_remote_code in some way * bonus: favicon support! --------- Signed-off-by: Dave Lee --- core/http/app.go | 11 ++++++++++- core/http/elements/gallery.go | 14 +++++++++++--- core/http/static/favicon.ico | Bin 0 -> 15406 bytes core/http/static/general.css | 10 ++++++++++ 4 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 core/http/static/favicon.ico diff --git a/core/http/app.go b/core/http/app.go index 19c9375f..de31346b 100644 --- a/core/http/app.go +++ b/core/http/app.go @@ -20,6 +20,7 @@ import ( "github.com/gofiber/contrib/fiberzerolog" "github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2/middleware/cors" + "github.com/gofiber/fiber/v2/middleware/favicon" "github.com/gofiber/fiber/v2/middleware/filesystem" "github.com/gofiber/fiber/v2/middleware/recover" @@ -182,8 +183,16 @@ func App(cl *config.BackendConfigLoader, ml *model.ModelLoader, appConfig *confi } routes.RegisterJINARoutes(app, cl, ml, appConfig, auth) + httpFS := http.FS(embedDirStatic) + + app.Use(favicon.New(favicon.Config{ + URL: "/favicon.ico", + FileSystem: httpFS, + File: "static/favicon.ico", + })) + app.Use("/static", filesystem.New(filesystem.Config{ - Root: http.FS(embedDirStatic), + Root: httpFS, PathPrefix: "static", Browse: true, })) diff --git a/core/http/elements/gallery.go b/core/http/elements/gallery.go index 60c53da2..a9e3bf49 100644 --- a/core/http/elements/gallery.go +++ b/core/http/elements/gallery.go @@ -327,11 +327,19 @@ func ListModels(models []*gallery.GalleryModel, installing *xsync.SyncedMap[stri m.Icon = NoImage } + divProperties := attrs.Props{ + "class": "flex justify-center items-center", + } + + _, trustRemoteCodeExists := m.Overrides["trust_remote_code"] + if trustRemoteCodeExists { + // should this be checking for trust_remote_code: false? I don't think we ever use that value. + divProperties["class"] = divProperties["class"] + " remote-code" + } + elems = append(elems, - elem.Div(attrs.Props{ - "class": "flex justify-center items-center", - }, + elem.Div(divProperties, elem.A(attrs.Props{ "href": "#!", // "class": "justify-center items-center", diff --git a/core/http/static/favicon.ico b/core/http/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..05a5fa9e0dc68678fffde7c0e9d29298d3da5814 GIT binary patch literal 15406 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