diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2023-12-26 02:24:06 +0100 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2023-12-26 02:34:19 +0100 |
commit | b91074ba9f523e3b2cbd31ed1915430c8c65502c (patch) | |
tree | 48cc65fb352fad1f128b51a2cba11e9e2bf0d48e /public/gallery.js | |
parent | bdad8bac2c904a439a5255358a8e9f90457bf663 (diff) | |
download | gallery-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.js | 26 |
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]', '○'), ]) }, } |