aboutsummaryrefslogtreecommitdiff
path: root/public/gallery.js
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2023-12-26 02:24:06 +0100
committerPřemysl Eric Janouch <p@janouch.name>2023-12-26 02:34:19 +0100
commitb91074ba9f523e3b2cbd31ed1915430c8c65502c (patch)
tree48cc65fb352fad1f128b51a2cba11e9e2bf0d48e /public/gallery.js
parentbdad8bac2c904a439a5255358a8e9f90457bf663 (diff)
downloadgallery-b91074ba9f523e3b2cbd31ed1915430c8c65502c.tar.gz
gallery-b91074ba9f523e3b2cbd31ed1915430c8c65502c.tar.xz
gallery-b91074ba9f523e3b2cbd31ed1915430c8c65502c.zip
Indicate faulty requests better
Diffstat (limited to 'public/gallery.js')
-rw-r--r--public/gallery.js26
1 files changed, 20 insertions, 6 deletions
diff --git a/public/gallery.js b/public/gallery.js
index 299d372..9d3b067 100644
--- a/public/gallery.js
+++ b/public/gallery.js
@@ -1,14 +1,25 @@
'use strict'
+let callActive = false
+let callFaulty = false
+
function call(method, params) {
- // TODO: Make it apparent when results result in errors:
- // - With responseType == "json", m.request() always expects JSON,
- // and error.message is null if it fails, but we can handle it manually.
- // - Go can wrap all errors into trivial strings before writing.
+ // XXX: At least with POST, unsuccessful requests result
+ // in catched errors containing Errors with a null message.
+ // This is an issue within XMLHttpRequest.
+ callActive++
return m.request({
method: "POST",
url: `/api/${method}`,
body: params,
+ }).then(result => {
+ callActive--
+ callFaulty = false
+ return result
+ }).catch(error => {
+ callActive--
+ callFaulty = true
+ throw error
})
}
@@ -72,8 +83,11 @@ let Header = {
return m('.header', {}, [
m('nav', main),
m('nav', context),
- // TODO: End it with an activity indicator.
- m('.activity', '☺'),
+ callFaulty
+ ? m('.activity.error[title=Error]', '●')
+ : callActive
+ ? m('.activity[title=Busy]', '●')
+ : m('.activity[title=Idle]', '○'),
])
},
}