summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* site: implement accessibility hints of WAVEstuebinm2021-04-082-17/+32
| | | | | | | | | | | 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/
* site: better html attributesstuebinm2021-04-082-3/+4
| | | | (i.e. defined charset & a main tag)
* site: better error messagesstuebinm2021-04-082-34/+47
| | | | | | | 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).
* site: sensible sizes for textareasstuebinm2021-04-071-0/+7
|
* add a todo filestuebinm2021-04-071-0/+18
|
* site: better error messagesstuebinm2021-04-071-14/+27
| | | | | | | 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).
* site: add visual feedback on survey submissionstuebinm2021-04-072-2/+31
| | | | | | 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.
* add a potentially useful readmestuebinm2021-04-051-0/+54
|
* utils: change name to survey-generatestuebinm2021-04-053-14/+13
|
* utils: switch to asymmetric encryptionstuebinm2021-04-051-6/+10
|
* server: fix binary file outputstuebinm2021-04-051-2/+3
| | | | (previously, it tried to use ascii encoding and would fail)
* site: add headers for survey POST requeststuebinm2021-04-051-2/+8
|
* add example surveystuebinm2021-04-053-0/+4
| | | | | | | | 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.
* util: make outfile configurable (or print to stdout)stuebinm2021-04-051-1/+12
|
* add dhall example configstuebinm2021-04-051-0/+20
|
* add utility programstuebinm2021-04-054-0/+2366
| | | | | | 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.
* add simple server which takes POST requestsstuebinm2021-04-052-0/+115
| | | | | | | | | 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.
* add wasm blobsstuebinm2021-04-055-0/+695
| | | | | the nix tooling for rust and wasm appears to be really bad, so binary blobs are easier for now.
* load survey from (and submit result to) path given as fragmentstuebinm2021-04-051-18/+30
| | | | | | | 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.
* simple python server for testing purposesstuebinm2021-04-041-0/+15
| | | | | | 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.
* simple forms with simple encryptionstuebinm2021-04-042-0/+259
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.