From 94cca506f6d1461bf38afa5b0e38d778391b8d39 Mon Sep 17 00:00:00 2001 From: Bobby Date: Thu, 17 Jul 2025 10:00:05 +0530 Subject: error handler messages via backend for upload --- imageboard/main.go | 10 ++++------ static/scripts/upload.js | 3 +-- templates/posts/new.django | 2 +- utils/handlers/fiber_error.go | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 utils/handlers/fiber_error.go diff --git a/imageboard/main.go b/imageboard/main.go index ba7836b..eef73ae 100644 --- a/imageboard/main.go +++ b/imageboard/main.go @@ -6,6 +6,7 @@ import ( "imageboard/middleware" "imageboard/processors" "imageboard/router" + "imageboard/utils/handlers" "log" _ "imageboard/database" @@ -26,12 +27,9 @@ func main() { engine := django.New("./templates", ".django") engine.Reload(config.Server.IsDevMode) app := fiber.New(fiber.Config{ - Views: engine, - ErrorHandler: func(ctx *fiber.Ctx, err error) error { - log.Printf("Error: %v", err) - return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error") - }, - BodyLimit: config.Upload.MaxSize, + Views: engine, + ErrorHandler: handlers.ServerErrorHandler, + BodyLimit: config.Upload.MaxSize, }) app.Use(recover.New()) diff --git a/static/scripts/upload.js b/static/scripts/upload.js index 6342aa2..309b0da 100644 --- a/static/scripts/upload.js +++ b/static/scripts/upload.js @@ -123,7 +123,6 @@ function setUploadLoadingIndicator(show) { indicator = document.createElement('div'); indicator.id = '_uploadLoadingIndicator'; indicator.className = 'upload-loading-indicator'; - // Segmented ring spinner markup, no text indicator.innerHTML = `
@@ -144,7 +143,7 @@ function setUploadLoadingIndicator(show) { `; dragBox.appendChild(indicator); } - // Animation logic for retro ring spinner + const spinner = indicator.querySelector('.ib-loader-spinner'); const segments = spinner ? spinner.querySelectorAll('.ib-loader-seg') : []; if (show && segments.length) { diff --git a/templates/posts/new.django b/templates/posts/new.django index 15dae77..3e7f080 100644 --- a/templates/posts/new.django +++ b/templates/posts/new.django @@ -13,7 +13,7 @@
- +
diff --git a/utils/handlers/fiber_error.go b/utils/handlers/fiber_error.go new file mode 100644 index 0000000..7284864 --- /dev/null +++ b/utils/handlers/fiber_error.go @@ -0,0 +1,15 @@ +package handlers + +import "github.com/gofiber/fiber/v2" + +func ServerErrorHandler(ctx *fiber.Ctx, err error) error { + code := fiber.StatusInternalServerError + msg := "Internal Server Error" + if e, ok := err.(*fiber.Error); ok { + code = e.Code + msg = e.Message + } else if err != nil { + msg = err.Error() + } + return ctx.Status(code).SendString(msg) +} -- cgit v1.2.3