aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBobby <[email protected]>2025-07-17 10:00:05 +0530
committerBobby <[email protected]>2025-07-17 10:00:05 +0530
commit94cca506f6d1461bf38afa5b0e38d778391b8d39 (patch)
treed328a4024637040b10efdd9a1d53f45650cdde00
parent74543cd6dfc1a6d00c0bacbe07408d9ffbb73082 (diff)
downloadimageboard-94cca506f6d1461bf38afa5b0e38d778391b8d39.tar.xz
imageboard-94cca506f6d1461bf38afa5b0e38d778391b8d39.zip
error handler messages via backend for upload
-rw-r--r--imageboard/main.go10
-rw-r--r--static/scripts/upload.js3
-rw-r--r--templates/posts/new.django2
-rw-r--r--utils/handlers/fiber_error.go15
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)
+}