| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
the previous commit introduced handling error messages using a
"setErrormsg" function. This is now also used for the general error
messages which may show up at the bottom of surveys.
However, since js and async things are weird, the code there is still a
long repetitive mess which can't really be cut down further.
|
|
|
|
|
|
|
| |
In surveys containing radio buttons, there will now be a nice little
hint directly beneath them if none were selected when attempting to
submit (in addition to the relatively nondescript "not all required
questions were filled in"-hint at the bottom of the form)
|
|
|
|
| |
(it mistakenly set the locale to undefined before)
|
|
|
|
|
| |
(from the browser's preferences set via navigator.language and
navigator.languages)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a basic "replace fixed keys"-approach to translating the UI of
surveys. So far this works great, but for complex things it may fail for
some languages — for now I'll just try to take care not to add any
output that puts things in the middle of sentences, which I think should
work for a simple survey thing.
The default language is still english, which is important as the
language is declared withing a survey config — i.e. if loading it fails,
it cannot be applied, and the "enter passphrase" dialog can also not
change based on locales. This could possibly be fixed by adding an
unencrypted "header" to the encrypted configs, but for now I'm not sure
if that makes a lot of sense — it may be easier to just guess based on
the browser's settings, and otherwise fall back to some specified
default language.
The "thanks for your answers"-page also has no translation so far.
|
|
|
|
|
|
|
|
|
|
| |
This is a very simple, very high-contrast dark mode (for now). However,
not all default ui elements seem to respect it by default — i.e.
textareas stay entirely white by default and require additional theming.
I'm not sure if this is my system stlye or firefox interfering, but for
now I've added custom css rules which at least make text areas black.
Buttons and checkboxes are still white, however.
|
|
|
|
|
|
|
|
|
|
|
| |
This implements some accessibility guidelines, as hinted at by WAVE [1]:
- labels for textareas
- fieldsets for multiple-choice answers
One thing that's still missing is a set language, which I guess will be
best implemented together with an actual language switcher.
[1] https://wave.webaim.org/
|
|
|
|
| |
(i.e. defined charset & a main tag)
|
|
|
|
|
|
|
| |
this includes styling error messages red, and displaying error messages
in case not all answers were answered as required (for now, this just
means that not selecting any option in radio buttons is disallowed in
general, as so far there are no corresponding config fields).
|
| |
|
| |
|
|
|
|
|
|
|
| |
this includes deduplicating some code, and attempts at error messages
for files which could not be parsed as json but aren't actually valid
age-encrypted files (there doesn't seem to be some easy way to validate
that these files are valid age files without knowing the key).
|
|
|
|
|
|
| |
After a submission, the survey will now either redirect to a "thanks for
your answers!"-site (if the POST request had status 200) or else display
some kind of error message.
|
| |
|
| |
|
| |
|
|
|
|
| |
(previously, it tried to use ascii encoding and would fail)
|
| |
|
|
|
|
|
|
|
|
| |
these can be found in site/examples. There is a simple unencrypted survey
in "example.json", and an encrypted variant of the same in "encrypted.json".
The key used for encryption can be found in "key.age"; in particular, note
that the passphrase for the encrypted survey is exactly that private key.
|
| |
|
| |
|
|
|
|
|
|
| |
This can be used to write configs in dhall (instead of plain json), combined
with some input validation and (optionally) automatic encryption via the age
rust crate.
|
|
|
|
|
|
|
|
|
| |
The idea is that it can accept surveys sent to it. Note that in an actual
deployment it should have at least some rate-limiting, since actual validation
of input is impossible if they are encrypted – i.e. this is bascially a pastbin.
It may, however, be possible to require signing answers for survey with access
restrictions, or do a challange/response type thing before allowing submission.
|
|
|
|
|
| |
the nix tooling for rust and wasm appears to be really bad, so binary blobs
are easier for now.
|
|
|
|
|
|
|
| |
syntax: http(s)://domain.tld/path/to/file/index.html#[upload url]
The upload url may be relative to the site's position, or absolute.
Survey results will be POSTed to [upload path]/upload.
|
|
|
|
|
|
| |
web assembly needs its own mimetype set to work in the browser, which most
other development tools don't support — so this python script can be used
instead.
|
|
this depends on age stuffed into web assembly, which is not yet
part of this repository.
The idea is to have a web app (which is a static html page + js / wasm)
and a set of (optionally encrypted) json files which describe surveys,
which the main site can download on demand.
|