diff options
| author | Bobby <[email protected]> | 2025-07-17 10:00:05 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2025-07-17 10:00:05 +0530 |
| commit | 94cca506f6d1461bf38afa5b0e38d778391b8d39 (patch) | |
| tree | d328a4024637040b10efdd9a1d53f45650cdde00 | |
| parent | 74543cd6dfc1a6d00c0bacbe07408d9ffbb73082 (diff) | |
| download | imageboard-94cca506f6d1461bf38afa5b0e38d778391b8d39.tar.xz imageboard-94cca506f6d1461bf38afa5b0e38d778391b8d39.zip | |
error handler messages via backend for upload
| -rw-r--r-- | imageboard/main.go | 10 | ||||
| -rw-r--r-- | static/scripts/upload.js | 3 | ||||
| -rw-r--r-- | templates/posts/new.django | 2 | ||||
| -rw-r--r-- | utils/handlers/fiber_error.go | 15 |
4 files changed, 21 insertions, 9 deletions
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 = ` <div class="upload-loading-icon"> <div class="ib-loader-spinner"> @@ -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 @@ <input type="submit" value="Add URL" /> </form> </div> - <div class="error" style="display: none; margin: 8px 0; width: 512px;" id="error-message"></div> + <div class="error" style="display: none; margin: 8px 0; width: 100%;" id="error-message"></div> <div id="_uploadViaLink_UploadPreviewsArea" class="upload-previews"></div> </div> </div> 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) +} |
