Auto-resize textareas, use babel to transpile JS

Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
Knut Ahlers 2018-08-22 21:08:48 +02:00
parent a5ca9d248e
commit 66908fd427
No known key found for this signature in database
GPG Key ID: DC2729FDD34BE99E
9 changed files with 1427 additions and 240 deletions

20
.babelrc Normal file
View File

@ -0,0 +1,20 @@
{
"presets": [
[
"env",
{
"targets": {
"browsers": [
"last 3 versions",
"Safari >= 10",
"not ie <= 8",
"Edge >= 12",
"iOS >= 10",
"Android >= 4.4"
]
}
}
],
"minify"
]
}

1
.gitignore vendored
View File

@ -2,4 +2,5 @@ frontend/css
frontend/js
frontend/locale/*.untranslated.json
frontend/webfonts
node_modules
ots

View File

@ -10,7 +10,7 @@ default: generate
generate: l10n download_libs
docker run --rm -ti -v $(CURDIR):$(CURDIR) -w $(CURDIR) node \
bash -c "npm install -g coffeescript && coffee -c frontend/application.coffee && chown -R $(shell id -u) frontend"
bash -exc "npm ci && npx coffee -t -c frontend/application.coffee && chown -R $(shell id -u) frontend"
go generate
l10n:

240
assets.go
View File

@ -116,35 +116,42 @@ func (fi bindataFileInfo) Sys() interface{} {
}
var _bindataFrontendApplicationcoffee = []byte(
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x56\x5f\x4f\xe3\x38\x10\x7f\xf7\xa7\x98\x6b\x91\x9c\x48\x25\x14\x8e" +
"\xbb\x87\x4a\x39\xe9\x8e\xdb\x7f\x12\x20\x04\x8b\xf6\x61\x85\x56\x4e\x3c\x69\x0c\xa9\xdd\xb5\x1d\xca\x0a\xfa\xdd" +
"\x57\x8e\x93\x34\x09\xa5\xea\xbe\x6d\x5f\x5a\xcf\x6f\xfe\xd8\x33\xbf\x99\xa9\xc1\xb4\xd4\x78\xc5\x8c\x59\x29\xcd" +
"\x21\x06\x59\x16\x05\x21\xa9\x46\x66\xf1\x06\x53\x8d\x16\x62\x08\x42\x38\xfc\x87\x00\x98\x46\x70\x10\xd0\x71\xa6" +
"\xf4\xe2\xac\xa3\x47\xc3\x28\x13\x92\x07\xd4\xe2\x93\x65\x1a\x19\x0d\xa3\x47\x56\x04\x21\xf1\x96\xfd\x38\x17\xcc" +
"\xe6\x91\x66\x92\xab\x45\x10\x46\x56\xdd\x58\x2d\xe4\x3c\xf8\xf3\xef\x30\x32\x65\x62\xfc\xe9\x24\xec\x06\xfd\x20" +
"\x92\x04\xb5\x30\xf9\xbf\xef\x6e\x22\x94\x69\xe0\x91\xc9\xc0\x79\x15\xef\x20\x62\xf7\xec\x09\x28\x5b\x8a\x23\xff" +
"\x18\x3a\x21\x00\x00\x0b\xb4\xb9\xe2\x33\x18\x2d\x95\xb1\xa3\x4a\xc4\x99\x65\xb3\xea\x57\x13\x6c\x56\x7f\xb7\xf0" +
"\xe7\x1f\x4b\x9c\xc1\xe8\xde\x28\xe9\x6d\x8c\x65\xb6\x34\x67\x8a\x63\x63\x79\x32\x3d\x6e\xcc\x7c\x56\x78\x0d\x9c" +
"\x4e\xa7\x33\x30\xca\x05\x16\x72\xfe\x45\x2b\x39\xaf\x91\xbf\xde\x44\x4e\xa7\xa7\xb3\x36\xeb\xfe\x33\x86\x0b\x95" +
"\x3e\x40\xa6\x34\x08\x69\x51\x67\x2c\x45\xb0\x68\xac\x68\xad\x60\x6b\xfc\x8d\xfc\x9b\xe0\x33\xa0\x99\x52\x09\xd3" +
"\xd4\x65\x29\x63\x85\x41\x42\xdc\x0b\x2f\x95\x7d\xaf\x4a\xc9\x3b\xd5\x76\x45\x96\xca\x66\x4e\x4c\xc3\xc8\xe4\x6a" +
"\xe5\x8a\x99\x33\x93\x9f\x2b\xd6\xd5\x74\x22\x88\x61\x25\x24\x57\xab\xa8\x50\x29\xb3\x42\xc9\xc8\x89\x09\x80\xc8" +
"\x2a\x85\xa8\x40\x39\xb7\x39\xc4\x31\x4c\xab\xab\x69\xb4\xa5\x96\xa4\x8e\x94\x32\xcd\x2f\x71\xd5\x72\x29\x17\x1c" +
"\x83\xb0\x03\x7a\xe4\xf6\xfa\x7c\x08\x76\xee\xd8\x93\xb7\x99\x5d\xb9\xcc\x6e\x73\x79\x8d\xac\x76\x7b\xa5\xb1\xf3" +
"\x44\x8d\xdf\x4b\x34\xf6\x15\xff\x77\xbf\xb3\x46\x39\xa6\x8a\xe3\xed\xf5\xa7\x33\xb5\x58\x2a\x89\xd2\x06\x0e\xa9" +
"\x68\xb9\x64\xda\x1a\x88\x7d\x3e\xcc\xb2\x10\x16\xe8\x0b\xf5\x39\xaa\xb0\x4e\x92\x4e\xaa\x24\xd5\x4e\x2b\xf0\xeb" +
"\xf4\x8e\xd4\xd5\xec\x37\x93\x47\x8f\xef\x5c\x08\xc1\x5b\xff\x6d\x1f\x1d\x87\x9b\x96\x18\xb9\x96\x98\xa3\x3d\x1a" +
"\x3f\x0b\xbe\x1e\x4d\x7e\x85\xe3\x15\x2d\xbb\x6c\x69\xb9\xef\x88\x9c\xab\xd5\xff\xcc\x32\x42\x84\x14\xf6\x3f\x21" +
"\xb9\x19\x90\x69\xcb\xc4\x48\x84\xe4\x40\x4d\x99\x2c\x84\xa5\x13\xe8\xce\x9d\xa6\xba\x0d\x27\x26\x10\x49\xf6\x98" +
"\x30\x7d\x98\xb8\xb9\xd1\x1a\xa7\x85\x48\x1f\xe8\x04\x5a\xc5\xca\xd0\xd7\xa8\xd1\x71\xf9\x48\x73\x26\xe7\x48\x27" +
"\xd0\x10\xb8\x0e\xa0\xf1\x11\x59\x31\xb8\x51\xe3\xb4\xc7\x04\x42\xda\x18\x9d\x97\x6d\x68\xa0\x31\x83\xb8\x7f\xf6" +
"\x45\x0e\xe8\x98\x86\xbe\x7a\x75\xcb\xf5\x1a\xd5\x39\x73\x59\xed\x4d\xd9\x8f\x35\x9b\x98\x65\x51\xdb\xbe\x9e\x29" +
"\x83\xfa\xff\x51\x4f\xed\x4d\xa3\xd7\xb6\xa3\xf1\xf3\xe6\xbc\x7e\xa9\x4e\x1d\xc3\xb5\x2b\x73\xa9\x0b\xaf\xb9\xe3" +
"\xda\xeb\x71\xcf\xd1\x68\xef\x96\x1d\xf6\xd7\xce\x9e\xae\x9b\x6f\x3b\xe8\x37\x8b\x90\xcb\xd2\xfa\xb5\xe2\x2e\xbe" +
"\x97\x6e\xa6\xd2\xd2\xec\xe9\xd7\x60\x81\xa9\x7d\x63\x63\xf9\xcd\xd8\xb0\x7c\x6b\xcd\x20\x86\x6e\xc1\xf6\xac\xd6" +
"\x70\xb5\x71\xdc\xbd\xda\x7e\x93\x61\xb9\x43\x61\x5b\x35\x7b\xe8\xb6\x3f\x0a\xcd\xce\x25\xfd\x8d\x38\x98\x21\xaf" +
"\xee\xd9\xcc\x6c\x72\xe0\x95\xda\xe1\x53\x45\x6f\x7a\x3d\x08\xc9\xcf\x00\x00\x00\xff\xff\x68\x64\x72\x7a\xeb\x08" +
"\x00\x00")
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x56\x5f\x6f\xdb\x36\x10\x7f\xe7\xa7\xb8\xd9\x01\x28\x61\x8e\xea\x64" +
"\xd9\x1e\x5c\x78\x40\x97\xfd\xe9\x80\xb6\x28\x92\x14\x7b\x18\x8a\x81\x16\x4f\x16\x1b\x99\xd4\xc8\x53\x9c\x2c\xcd" +
"\x77\x1f\x28\x4a\xb2\xe4\xa8\x9e\xf7\xd6\xbc\xc4\xe2\xef\xfe\xf1\xee\xf8\xbb\x73\x98\x56\x16\xdf\x0b\xe7\xb6\xc6" +
"\x4a\x58\x82\xae\x8a\x82\xb1\xd4\xa2\x20\xbc\xc6\xd4\x22\xc1\x12\xa2\x18\x4e\x7f\x64\x00\xae\x3d\x38\x89\xf8\x34" +
"\x33\x76\x73\xd9\x93\xe3\x71\x92\x29\x2d\x23\x4e\x78\x4f\xc2\xa2\xe0\x71\x72\x27\x8a\x28\x66\x41\x73\xe8\xe7\xad" +
"\xa0\x3c\xb1\x42\x4b\xb3\x89\xe2\x84\xcc\x35\x59\xa5\xd7\xd1\x77\x3f\xc4\x89\xab\x56\x2e\x7c\x9d\xc7\x7d\xa7\xbf" +
"\xa9\xd5\x0a\xad\x72\xf9\xab\x5f\xae\x13\xd4\x69\x14\x90\xd9\x9e\xf1\xda\xdf\x49\x22\x3e\x89\x7b\xe0\xa2\x54\x2f" +
"\xc2\x65\xf8\x8c\x01\x00\x6c\x90\x72\x23\x17\x30\x29\x8d\xa3\x49\x7d\x24\x05\x89\x45\xfd\xab\x75\xb6\x68\xfe\x77" +
"\xf0\xcd\x43\x89\x0b\x98\x7c\x72\x46\x07\x1d\x47\x82\x2a\x77\x69\x24\xb6\x9a\xe7\xf3\xb3\x56\x2d\x64\x45\x36\xc0" +
"\xc5\x7c\xbe\x00\x67\xbc\x63\xa5\xd7\x7f\x58\xa3\xd7\x0d\xf2\xfd\x17\x91\x8b\xf9\xc5\xa2\xcb\x7a\xf8\x9b\xc2\x5b" +
"\x93\xde\x42\x66\x2c\x28\x4d\x68\x33\x91\x22\x10\x3a\x52\x9d\x16\x8c\xfa\xdf\x9d\xff\xa5\xe4\x02\x78\x66\xcc\x4a" +
"\x58\xee\xb3\x94\x89\xc2\x21\x63\xfe\x86\xef\x0c\xfd\x6a\x2a\x2d\x7b\xd5\xf6\x45\xd6\x86\x32\x7f\xcc\xe3\xc4\xe5" +
"\x66\xeb\x8b\x99\x0b\x97\xbf\x31\xa2\x2f\xe9\x8f\x60\x09\x5b\xa5\xa5\xd9\x26\x85\x49\x05\x29\xa3\x13\x7f\xcc\x00" +
"\x54\x56\x0b\x24\x05\xea\x35\xe5\xb0\x5c\xc2\xbc\x0e\xcd\x22\x55\x56\xb3\xc6\x53\x2a\xac\x7c\x87\xdb\xae\x97\x72" +
"\x25\x31\x8a\x7b\x60\x40\x3e\x5c\xbd\xd9\x07\x7b\x31\x0e\xce\xbb\xcc\x6e\x7d\x66\xc7\x4c\x5e\xa1\x68\xcc\xbe\xb7" +
"\xd8\xbb\xa2\xc5\xbf\x2b\x74\xf4\xac\xff\x0f\xdf\xb3\x41\x25\xa6\x46\xe2\x87\xab\xdf\x2f\xcd\xa6\x34\x1a\x35\x45" +
"\x1e\xa9\xdb\xb2\x14\x96\x1c\x2c\x43\x3e\x5c\x59\x28\x02\xfe\x99\x87\x1c\xd5\x58\x2f\x49\xe7\x75\x92\x1a\xa3\x35" +
"\xf8\xe7\xfc\x23\x6b\xaa\x39\x7c\x4c\x01\x3d\xfb\xe8\x5d\x28\xd9\xd9\xef\xde\xd1\x59\xbc\x7b\x12\x13\xff\x24\xd6" +
"\x48\x2f\xa6\x8f\x4a\x3e\x4d\x66\xff\xa7\xc7\xeb\xb6\xec\x77\x4b\xd7\xfb\xbe\x91\x73\xb3\xfd\x59\x90\x60\x4c\x69" +
"\x45\x3f\x29\x2d\xdd\x5e\x33\x8d\x30\xc6\x4a\x69\x09\xdc\x55\xab\x8d\x22\x3e\x83\x3e\xef\xb4\xd5\x6d\x7b\x62\x06" +
"\x89\x16\x77\x2b\x61\x4f\x57\x9e\x37\x3a\xe5\xb4\x50\xe9\x2d\x9f\x41\x27\x58\x2b\x86\x1a\xb5\x32\x3e\x1f\x69\x2e" +
"\xf4\x1a\xf9\x0c\xda\x06\x6e\x1c\x58\xbc\x43\x51\xec\x45\xd4\x1a\x1d\x74\x02\x03\xf0\xe8\x15\x3a\xf5\x0f\xde\x34" +
"\x2c\xe7\xfb\xa5\x73\xdd\xbb\xf0\xae\x3b\x2c\x66\xb0\x1c\x7e\x87\xda\x47\x7c\xca\xe3\x50\xd4\xe6\x25\x3e\x37\x3f" +
"\x4c\x61\x8f\x5a\x51\xa4\x79\xb4\xa3\x08\x8f\xc0\x12\x28\x57\x8e\x85\x92\x9a\x60\x28\x18\x58\xb6\x44\x32\xf5\x82" +
"\x89\xa3\x87\x02\x93\x1c\xd5\x3a\xf7\x5a\x5c\x54\x64\x78\x23\x31\x26\x10\x79\xbb\x89\x4b\xad\x29\x8a\xd7\xf5\x61" +
"\x0c\xdf\x02\x2f\xef\x79\xe3\x0c\x0b\xf1\x80\x72\xd4\x63\xf3\x5a\x1c\xd2\x8d\xda\xa0\xa9\xa8\x0b\x6d\x06\x73\xc6" +
"\x76\x2e\x91\x5e\x11\x59\xb5\xaa\x08\x23\x5e\x07\xc0\x67\x30\x09\x31\x2c\x60\xfa\xf8\x2c\x86\xa7\xf2\xfe\x25\x6c" +
"\x94\x3e\xfd\x2f\x19\x73\x87\x36\x2b\xcc\xf6\xf4\x61\x91\x2b\x29\x51\xbf\x9c\xc4\xc1\xf3\x49\xe4\x7d\xc7\x4d\xa8" +
"\x89\xd1\x11\xef\xfa\xa4\x0d\x73\x88\x56\xbe\x4f\x07\xf7\x1d\xe0\xa5\x70\x84\x07\x25\xa4\x35\xe5\x41\x81\x5b\x7c" +
"\x90\x66\xab\xc7\x64\x62\xc6\xd8\x80\xe3\x7d\xae\xfd\x83\x1c\x0c\xe8\xd7\x0d\x11\x09\x12\x49\xc7\xfc\x81\x64\xf6" +
"\xa8\xe3\x9b\x66\xe0\xef\x66\x44\xa3\x3b\x99\x3e\xee\xbe\x9f\x3e\xd7\x5f\x3d\xc5\x27\xcf\x10\x95\x2d\x82\xe4\x81" +
"\xd6\x7e\x9a\x0e\x0c\x4d\x8e\x66\xfb\x7d\x6a\x3e\x38\x0e\x1a\xde\x1e\x07\xc3\x52\xa2\x74\x59\x51\xd8\x48\x7c\xe0" +
"\x47\xc9\x66\x26\xad\xdc\x91\x76\x1d\x16\x98\xd2\x17\x96\x9d\xb0\x54\xb5\x04\x39\x5a\x33\x58\x42\xbf\x60\x47\x56" +
"\x6b\x7f\x2b\x92\x78\x78\x2b\xfa\x4a\xe6\xec\x01\x81\xb1\x6a\x0e\xd0\xb1\x1d\x73\xb7\xae\x1d\xa7\x42\x56\xad\xd7" +
"\x68\xa1\x7d\xeb\x8c\x0d\xb7\xb0\xbd\xb9\xf5\xec\x82\xed\x9e\xc0\x4e\x82\x50\x37\xf0\xea\xb0\xdb\xf9\x12\xc5\xec" +
"\xdf\x00\x00\x00\xff\xff\x17\xa4\xb5\x7c\x5f\x0b\x00\x00")
func bindataFrontendApplicationcoffeeBytes() ([]byte, error) {
return bindataRead(
@ -163,8 +170,8 @@ func bindataFrontendApplicationcoffee() (*asset, error) {
info := bindataFileInfo{
name: "frontend/application.coffee",
size: 2283,
md5checksum: "4e6d54f11cf5a9a1e043bfbdbff77567",
size: 2911,
md5checksum: "3b6e46919590964a6ce7eb5102fe280d",
mode: os.FileMode(436),
modTime: time.Unix(1, 0),
}
@ -175,41 +182,37 @@ func bindataFrontendApplicationcoffee() (*asset, error) {
}
var _bindataFrontendApplicationjs = []byte(
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x56\x4d\x8f\xdb\x36\x13\xbe\xfb\x57\xcc\xbb\x6b\x40\x12\xa0\x97\xf6" +
"\x6e\xb6\x3d\xd8\xf0\xa1\x75\xdb\xa4\x40\x12\x04\xbb\x0d\x7a\x28\x82\x9a\x16\x47\x16\x13\x99\x74\x49\x6a\x9d\x60" +
"\xe3\xff\x5e\x50\xd4\x07\x45\xdb\xfb\x71\xea\x5e\xbc\xd4\x3c\x9c\x21\x67\x9e\x79\x38\x93\x09\xbc\x46\x81\x8a\x1a" +
"\x64\xb0\xfe\x06\x4b\x99\xe7\x88\x77\x99\xe2\x3b\x03\xd7\xe4\x15\xb9\x1a\xc5\x79\x25\x32\xc3\xa5\x88\x13\x78\x18" +
"\x01\xdc\x53\x05\x99\x42\x6a\xf0\x0e\x33\x85\x26\x05\x46\x0d\x7d\x2f\xcd\x6f\xb2\x12\x2c\x85\x82\xea\xe2\xad\xa4" +
"\x2c\x05\x2e\xb8\xf9\x99\x0b\xa6\x53\x10\xb8\x6f\xd1\x0a\xff\xa9\x50\x9b\x76\xa9\xeb\xdf\x65\xed\x90\xd5\xcb\x4a" +
"\xe1\x07\xaa\xf5\x5e\x2a\xbb\x2e\xe4\xfe\x17\x6a\x68\x0a\x5a\x6e\xd1\x14\x5c\x6c\xfe\x54\x52\x6c\xe6\xa3\x11\x04" +
"\x60\x58\x80\xa8\xca\xb2\xb6\xf8\x07\x84\x05\x04\x57\x70\x97\x70\x91\xe7\xf5\x5a\xb7\xc8\x71\x1c\x5d\xe6\x52\x6d" +
"\x97\x9e\x83\x28\x21\x39\x17\x2c\x8e\x0c\x7e\x35\x54\x21\x8d\x12\x72\x4f\xcb\x38\xe9\xf6\x0e\x4f\xf1\x8e\x9a\x82" +
"\x28\x2a\x98\xdc\xc6\x09\x31\xf2\xce\x28\x2e\x36\xf1\xab\x1f\x13\xa2\xab\xb5\x76\xab\xeb\x24\x88\xfc\x9a\xaf\xd7" +
"\xa8\xb8\x2e\x7e\xfa\xf5\x8e\xa0\xc8\x62\xdd\x67\xc8\xf3\xdf\x6c\x1b\x13\xfa\x99\x7e\x8d\x23\xba\xe3\x13\x77\xd9" +
"\x28\x6d\xee\x06\x60\x13\x25\xd9\x0c\x2e\x76\x52\x9b\x8b\xb4\xf9\x6a\xcb\x34\xeb\x30\x6d\xe4\x59\xf3\xdb\x7c\x3e" +
"\xf8\xe8\x3f\xbe\xed\x70\x06\x17\x9f\xb5\x14\x9d\x17\x6d\xa8\xa9\xf4\x52\x32\xf4\x7d\x5d\x4f\xaf\x66\x41\x29\x3b" +
"\xdb\xcd\x74\x3a\x0b\xaa\xd7\x1b\x7f\x78\xcc\x78\x33\xbd\x99\x1d\xd7\xce\xfd\x4d\x26\xf0\x4e\x66\x5f\x20\x97\x0a" +
"\xb8\x30\xa8\x72\x9a\x21\x18\xd4\x86\x8b\x8d\x87\x53\x68\x2a\x25\x86\x67\x8b\x7d\x47\x6d\x22\xfe\xe6\x6c\x06\x51" +
"\x2e\xe5\x9a\xaa\xc8\xb3\x1f\x9a\x8c\xd7\xff\x8f\xfc\xdf\xd6\xd2\x84\xc8\x69\xa9\xd1\x7e\x39\xd4\x14\xf4\xbb\xe2" +
"\x14\x05\x9b\x5d\x96\x70\x42\x9a\xdc\xc2\xa2\x84\x58\xbe\x3b\x62\x39\x2f\x6d\x37\x9d\x23\xb1\xb5\xbb\x53\xd8\xff" +
"\x60\x01\x7b\x2e\x98\xdc\x93\x52\x66\xd4\x82\x49\x0f\xe0\x39\xc4\x76\x45\x4a\x14\x1b\x53\xc0\x62\xb1\x80\x69\x9f" +
"\x54\x77\x1e\x07\x75\xf7\xb3\x47\xcb\xa8\x62\xef\xdb\xe6\x8d\x12\x52\x70\x86\x2d\xf1\x5b\xbb\x33\x7e\xbc\x7d\x7b" +
"\xc2\xee\x5d\x2d\x34\x75\x55\xdf\xdb\xaa\x07\x00\x2f\x3b\x36\xc4\x2d\xd2\x26\xcc\x07\x85\x27\xd2\x34\x10\x95\xc7" +
"\x72\x95\x02\x67\x29\xec\xa8\x32\xfa\x99\x69\x6b\x00\x0c\x33\xc9\xf0\xe3\xed\xef\x4b\xb9\xdd\x49\x81\xc2\xd4\xc9" +
"\x6c\x8e\x5b\x3b\x84\x45\x0d\x26\x7a\x57\x72\x13\x47\xdf\xa3\xa4\x4f\x7c\x0d\xf0\x33\x7f\xdd\x67\xbe\x89\x50\x43" +
"\xfe\x9a\x7e\x6a\xe9\x76\xa4\x2b\x0e\x70\xf5\xc9\xaf\x11\x67\x5d\xd4\x4e\x5a\xae\x82\x1c\x3a\xa9\x58\x59\xa9\xd8" +
"\xa0\x99\x8c\x1f\x38\x3b\xac\x7a\xb5\x78\x59\xa7\xd7\x3d\x39\x50\x7c\x4f\x04\x6c\x2f\x37\x82\x7d\xa2\x53\x5c\xa9" +
"\xba\x57\xe1\x54\x99\xce\xc8\xef\xba\x96\x5f\x5d\xad\xb7\xdc\x44\xe9\x40\xdd\x7d\xae\xf5\x8f\x0c\x11\xf4\x7e\x4d" +
"\xd5\xff\xd7\x56\x86\x3b\x07\x59\xc9\xb3\x2f\x91\xf7\x1a\x75\x9b\x5d\xf9\x5b\x9c\xcd\x67\x56\x50\xb1\xb1\xa2\xda" +
"\x76\xe0\x31\x31\x15\xde\x23\x2d\x83\x43\xb6\x31\x06\x8c\xf4\xae\xdf\xc5\x3e\x75\xfd\x9e\x7e\x0a\x73\x58\x0c\xd7" +
"\x2d\xaf\x2e\xa3\xa4\x63\xc9\x69\xe9\x19\x88\x9d\x1f\xc7\xd6\xed\xf8\x09\x7c\x53\xf7\x45\xa5\x4a\xff\x45\x7a\xd3" +
"\xd0\x9e\x1a\x4a\x3a\x81\xec\xf9\x1c\x90\xf3\x7f\x0b\xf7\xf8\xf6\xa4\x1e\x78\x59\x8d\x1f\xfa\xf5\xe1\x7b\xbd\xf2" +
"\xb6\x1f\x56\x3e\xa5\x2b\x55\xba\x2d\xf1\x23\xd7\x4f\x0e\x97\x03\x9f\xab\xf9\x8b\x24\x2b\xd4\x93\xa7\x64\xad\xd7" +
"\x9b\xd3\x76\x37\x1f\x70\xb1\xab\x4c\x33\x1c\x54\xaa\x7c\x36\x3e\x97\x59\xa5\x9f\xef\x5e\x63\x89\x99\x09\x94\xf2" +
"\xcc\x2c\xd4\x51\xa2\x69\xcb\xa7\xd9\x10\x8c\x25\x1e\x01\x5e\x5c\xfd\x70\xaa\x61\xf8\xc4\x54\xf3\xdf\xbf\x3b\x2f" +
"\x21\x48\x8f\x09\x18\x72\xf6\xf1\x3a\x37\x49\xea\x50\x25\x86\x13\xd1\x13\xe3\xc3\xd1\x85\xc2\xd7\x71\x1c\xce\xf0" +
"\x9e\x0a\x07\x67\x6e\xd5\xae\xd9\x9e\xcc\x47\xa3\x43\x42\x32\x5a\x96\xb1\x29\xb8\x4e\xe6\xa3\x7f\x03\x00\x00\xff" +
"\xff\xa4\xa3\x7c\x30\x33\x0c\x00\x00")
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x55\x41\x6f\xe3\x36\x13\xfd\x2b\x0e\x12\x84\x24\x3c\xd1\x3a\xf9\xf2" +
"\xf5\x20\x83\x87\x45\x50\xb4\x05\xda\xa2\x48\x76\x4f\x8b\x45\x31\x24\x47\x12\x13\x99\x34\x48\xca\x4e\xe0\xd5\x7f" +
"\x2f\x68\x5b\x89\x1d\x3b\x69\x2e\xbd\x18\x1e\xce\x68\xc8\xf7\xe6\xf1\x91\x75\x91\x46\x31\x05\xab\x13\x9b\xf2\xaa" +
"\x73\x3a\x59\xef\xb8\x58\x2d\x30\x8c\x10\x14\x68\x30\x40\x50\x41\x0d\x0d\x58\xb8\x87\x87\xa9\x95\xae\x6b\x5b\x50" +
"\xf2\x75\xf5\x34\x50\xea\x82\x1b\xa1\x3c\xe3\xec\xb4\xf2\x61\x76\x13\x08\x13\xdd\x91\x0e\x94\x98\x28\x2a\xeb\x0c" +
"\x67\x89\x1e\x13\x06\x42\x26\x8a\x05\xb6\x5c\x80\x95\x7f\x60\x6a\x8a\x80\xce\xf8\x19\x17\x45\xf2\x77\x29\x58\x57" +
"\xf3\xff\xfd\x24\x8a\xd8\xa9\xb8\x89\xae\x04\xa0\xfc\xc5\x2a\x45\xc1\xc6\xe6\xf3\xcf\x77\x05\x39\xcd\x11\xac\x80" +
"\xb3\x02\xef\xf1\x91\x33\x9c\xdb\x4f\x7a\xbd\x27\x83\xd5\x8c\x52\xe3\x4d\xc9\xe6\x3e\x26\x06\x06\x13\x96\xab\xb8" +
"\x3e\x4a\x89\xfd\x3a\xfe\xf2\x34\xa7\x92\xdd\x47\xef\x18\xc4\x84\xa9\x8b\x37\xde\x50\xb9\xba\x9a\x5c\x96\x0d\x5c" +
"\x4f\x26\xe5\x03\xfc\x7f\xfd\x7b\x3d\xb9\x2e\x07\xb8\x23\xe4\x62\xb5\x85\xda\xf0\x6d\xcb\xbf\xad\x29\x59\xe5\xbd" +
"\xc2\xc0\x7a\xd1\xf7\xbd\x80\x93\xcb\x1e\xf4\x2e\x49\xdb\x6f\x32\x39\xce\xa7\xca\x77\xce\x30\x51\xc4\xc6\x2f\xb9" +
"\xe8\xc1\x1c\xf2\x69\x2b\x8e\x72\x69\x9d\xf1\xcb\xa2\xf5\x1a\x73\xb2\x68\x30\x36\x30\x39\x91\x12\x8b\x96\x5c\x9d" +
"\x1a\xb1\xd3\x57\x63\x30\x7f\xd2\xf2\x99\xf1\xc6\x1a\xe2\x02\x86\xd4\x66\xfd\xeb\xed\xef\xfb\xa9\x9d\xd3\xec\xac" +
"\x46\x9f\x19\xb4\xae\x5e\x06\xef\xea\xc3\x66\xb7\x84\xdb\x86\x7f\x05\xda\x01\x52\x1f\x00\x01\x05\xe6\x45\x1c\x47" +
"\x01\xa1\x34\xa4\xbd\xa1\xaf\xb7\xbf\xdd\xf8\xd9\xdc\x3b\x72\x89\xa3\x00\x23\xb1\x88\xf3\xd6\x26\xce\x7e\x30\x01" +
"\x57\x52\x4a\xb3\xc5\x7d\x7e\xce\x51\x9a\x6f\x93\xef\x60\xa5\xf9\x76\xf9\x5d\x80\xca\xc5\xcf\x7a\xb9\xdc\xd7\x45" +
"\x4d\xe9\x13\x1b\x2b\x58\xbd\x37\xf9\x3c\x67\x0d\x57\x93\x49\x79\xdf\xf7\xa2\x07\x7a\x63\x7e\x47\xc4\xad\xd6\xe2" +
"\x8e\x9d\x9a\xd9\xc4\x40\x6d\x99\x1d\x66\x01\xa3\xc2\xe1\x42\x61\xb8\x50\x59\xe7\xcf\xf5\xba\xb5\xfa\x81\x41\x95" +
"\xcb\x37\xc4\x0c\x99\x4c\x8b\x6e\xd0\xd5\xc4\xc0\x6c\xba\x05\x5a\x10\xb6\xaf\x76\xdc\x76\xa8\x05\x60\x66\xbf\x3a" +
"\x72\xe2\x17\xaa\x03\x55\x72\x2f\x1a\xc8\x3d\x65\x22\x33\x99\x35\x8b\xc7\x31\xef\x5c\x5b\x42\xdd\xbc\xe1\x15\x32" +
"\x35\x36\x0e\xb3\xd6\xeb\x68\xdf\x29\x86\x54\x11\xd3\x53\x4b\x45\x43\xb6\x6e\x92\x34\x45\xd4\xc1\xb7\xed\xaf\xeb" +
"\x70\xcc\xe6\x8f\xec\xf8\x41\xb6\xe2\x89\x94\xbe\xd8\x19\xf9\x2e\x71\x05\x13\xd1\x83\xce\x4b\x9f\x53\x0a\x56\x75" +
"\x89\x38\x5b\x77\x67\xc0\x36\xfd\xcb\x11\x1b\xe7\xa3\x1c\xec\x32\x1d\xcd\xac\xbb\xf8\xd7\x22\xbf\xa0\x50\xb5\x7e" +
"\x79\xf1\x54\x36\xd6\x18\x72\x53\x96\x27\xa2\x45\xe1\x1d\x67\xc3\x94\xd4\x36\xec\x12\x03\xdc\xfc\x9f\x63\xcc\x5e" +
"\xb4\x8d\x4c\xf0\xf3\xe7\xe0\x81\x9e\x8c\x5f\xba\x1c\x67\xa5\x35\x2f\x60\x71\xc3\xa8\x02\x3d\x10\xb9\x16\xf6\xe0" +
"\x33\x90\xed\xf7\x44\x4a\x7b\x7e\xce\x95\x54\x63\xf6\x83\x8d\xad\x00\xfd\xde\x60\xc7\xec\x34\x6b\xff\x03\x16\xf1" +
"\xfa\x56\xbf\xe3\x20\x9b\x0b\x7f\x34\xb5\x71\x7a\xeb\xe6\x5d\xda\xda\xbc\xfe\x48\x61\xe5\x75\x17\x3f\xd4\x32\x52" +
"\x4b\x3a\xad\x1f\x8f\x4c\x47\x0f\xf7\x87\xfc\x1d\xb2\xb7\x4f\xdd\xde\x5b\x62\x48\x73\x05\x56\x88\x8f\x90\xf4\x9f" +
"\xfa\xe8\x9b\xe9\x43\xca\xf7\x72\x47\x5f\x57\xf5\xd1\xe2\x14\x6c\x5d\x53\x78\x56\xb3\xe8\xe1\xe1\x0d\xf3\x3b\x00" +
"\x34\x38\xff\x19\x3f\xfc\x20\x43\x31\x3c\x4b\x5c\x14\x1a\xdb\x96\x2f\xbc\x35\xa3\x89\x98\xfe\x13\x00\x00\xff\xff" +
"\x1a\xcb\xdd\x44\x7a\x08\x00\x00")
func bindataFrontendApplicationjsBytes() ([]byte, error) {
return bindataRead(
@ -228,8 +231,8 @@ func bindataFrontendApplicationjs() (*asset, error) {
info := bindataFileInfo{
name: "frontend/application.js",
size: 3123,
md5checksum: "a895cc8789468230c10a6c020c6d3187",
size: 2170,
md5checksum: "0ce1c4882aa2faf4e7ef349830c643bb",
mode: os.FileMode(436),
modTime: time.Unix(1, 0),
}
@ -3422,54 +3425,55 @@ func bindataFrontendCssFontawesomemincss() (*asset, error) {
var _bindataFrontendIndexhtml = []byte(
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x58\xd1\x6f\xdb\xbe\x11\x7e\xcf\x5f\x71\x3f\xe6\x35\x8c\xd6\x62\x05" +
"\xb6\x54\x32\x30\x14\x03\x56\xa0\x58\x87\x24\x05\xf6\x58\x4a\x3c\x4b\x4c\x29\x52\x25\x4f\x76\x5d\xc3\xff\xfb\x40" +
"\x51\x52\x2c\xcb\x76\xdc\xae\x7d\xf8\x21\x40\x6c\x51\xa7\xfb\x78\xdf\x7d\x77\x3c\x2b\xfd\x43\xda\x82\x36\x0d\x42" +
"\x45\xb5\x5e\x5c\xa5\xe1\x03\xb4\x30\x65\xc6\xd0\xb0\xc5\x15\x40\x5a\xa1\x90\xe1\x0b\x40\xfa\x07\xe7\x70\x8f\x5f" +
"\x5b\xe5\x50\x42\x8d\x24\x80\x44\xe9\x81\xf3\xfe\x7e\xb7\x54\x54\xc2\x79\xa4\x8c\xb5\xb4\xe4\x7f\x63\xfb\xb7\x2a" +
"\xa2\x86\x87\xe7\x57\x19\xfb\x2f\xff\xf4\x0f\xfe\xce\xd6\x8d\x20\x95\x6b\x64\x50\x58\x43\x68\x28\x63\xef\xff\x99" +
"\xa1\x2c\x71\xf2\xa4\x11\x35\x66\x6c\xa5\x70\xdd\x58\x47\x7b\xc6\x6b\x25\xa9\xca\x24\xae\x54\x81\xbc\xbb\xb8\x01" +
"\x65\x14\x29\xa1\xb9\x2f\x84\xc6\xec\xd5\x0d\xf8\xca\x29\xf3\x85\x93\xe5\x4b\x45\x99\xb1\x6c\x71\x15\x7d\x6b\x65" +
"\xbe\x80\x43\x9d\x31\x4f\x1b\x8d\xbe\x42\x24\x06\x95\xc3\x65\xc6\x92\xc2\xfb\x24\xb7\x96\x3c\x39\xd1\xdc\xd6\xca" +
"\xdc\x16\xde\x33\x50\x86\xb0\x74\x8a\x36\x19\xdb\x6e\x1f\xee\xdf\xff\x4b\xf8\x0a\x3e\x1f\xb7\xfe\xbc\xdb\x31\x48" +
"\x16\x3f\x02\xb6\x16\x54\x54\x97\xa3\x4d\xcc\x7f\x0c\x6e\x69\x0d\x89\x35\x7a\x5b\x23\x17\x5a\x5f\x84\x79\xe2\x99" +
"\x01\x38\x22\x93\x22\x8d\x8b\x8f\x8f\x0f\xc0\xe1\xa3\x41\x78\x54\x35\xc2\x03\x16\x0e\xc9\xa7\x49\xbc\xdb\x9b\x76" +
"\x5b\x8b\x1b\x06\xb8\x0e\x6e\xa9\x52\xa6\x5c\x3b\x6b\xca\x1b\xb8\x36\x96\x96\xb6\x35\xf2\x06\xae\x0b\xe1\xe4\x3d" +
"\x0a\x19\xfd\xf4\x0b\xf1\xe2\xd3\xfd\x87\x99\xc1\x7f\x1c\xc2\x16\xa4\xf2\x8d\x16\x9b\x3b\x30\xd6\xe0\x5b\xd8\xf5" +
"\x40\xb7\x4b\x6b\x09\x1d\x6c\xa1\xb0\xda\xba\x3b\xb8\x7e\xbd\x0c\x7f\x6f\x21\xc4\xc7\xbd\xfa\x8e\x77\xf0\x97\xdb" +
"\xbf\x63\xfd\x16\x08\xbf\x11\x17\x5a\x95\xe6\x0e\x0a\x34\x84\x6e\xf0\x93\x26\xe3\xee\xd3\x64\xa8\x92\x34\xb7\x72" +
"\x33\x44\x67\xc4\x0a\x0a\x2d\xbc\xcf\x98\x11\xab\x5c\x38\x88\x1f\x1c\xbf\x35\xc2\x48\xae\xcb\x61\x41\x0a\xf7\x05" +
"\xf2\x92\x37\x4e\xd5\xc2\x6d\xd8\x40\x49\x2a\xa6\x0e\x78\xee\x84\x91\x43\x1a\xaf\xd9\x22\x55\x83\xc1\x52\x78\x58" +
"\x0a\xde\x7a\x74\xdc\x77\x1c\xb0\x45\x9a\xa8\x05\x9c\x4a\x84\x18\x41\xf2\x96\xc8\x9a\x03\x24\xb2\x65\xa9\xd1\x31" +
"\x08\xfd\x21\x63\xd1\x86\x81\x14\x24\xfa\x7b\x19\x2b\xac\xd6\xa2\xf1\x38\x2c\x0b\x57\x86\xca\xbf\x8e\x2e\x1e\xda" +
"\x26\x54\x2b\xca\x77\xb1\x5a\x19\x08\xa7\x04\x0f\xb5\xeb\xac\x1e\x91\x4e\x98\x45\x8e\x50\x86\xc8\x74\x80\xe8\x56" +
"\xb5\xc8\x83\xa4\x1f\xbb\x0d\x04\xf6\x54\x29\x48\x59\x33\x32\x16\x44\xd5\x88\x13\xc1\x70\x55\x04\xd3\x34\x09\x26" +
"\x63\xf8\x49\x8c\xad\xcf\x1a\x40\x2a\xd5\x98\xb7\x21\xc2\x21\x51\xcf\x11\x2b\x79\x32\x80\xbd\xbd\xb4\xfa\x60\x27" +
"\x41\x13\xb5\xe6\xa2\x25\xbb\x67\xd7\xd5\xeb\x9e\x25\x57\x84\x75\xd8\xa8\x56\x2f\x1b\x89\x51\x0e\x71\x53\xb8\x7e" +
"\x18\xf2\x7f\xa8\x8e\x46\xb7\xbe\x97\xc5\x76\xfb\x08\x2c\x27\xc3\x0d\xae\x07\xc1\xec\x76\x41\x16\x53\xd4\x34\x69" +
"\xf5\x33\x55\x52\xad\xfa\xfe\x92\x18\xb1\x1a\x84\x3e\x21\xcc\x90\x50\x06\x1d\xd4\xc4\xff\xfa\x2c\xe4\x3d\x13\x67" +
"\xd7\xf0\xd4\x7a\x52\xcb\x0d\xef\x1b\x39\x8f\xa5\xb5\xcf\xdc\x34\x09\xbc\x96\xe3\x61\x32\x37\x10\x1a\x1d\x41\xf7" +
"\x9f\x4b\x61\xca\x20\x5b\x67\x83\x42\xbb\xb5\x9e\x97\xbe\x99\x4c\xbc\x00\xcc\x38\xfa\xda\xa2\x0f\x92\xe2\x85\x72" +
"\x85\x1e\x84\x57\x29\x29\xd1\x64\x8c\x5c\x8b\x91\xc1\x89\x97\x8e\xcd\xb8\x81\xc8\x25\x37\x96\x78\xc4\xdb\xed\xf6" +
"\xb7\xfd\x4c\xe1\x4f\xc6\x31\xed\x92\xbf\x3d\x9a\x01\x8d\xaf\x43\x9e\x22\xe6\xb9\x88\x26\x97\xfd\xc5\x71\x11\x9c" +
"\xcf\xf6\xab\xd7\x6c\x7c\x70\x66\x22\x9c\x84\xdc\x3a\x89\x6e\x6c\x99\x1d\x37\xe1\xc6\xbf\x9f\xf5\x3f\xa5\xe6\xc0" +
"\x01\x0f\x3d\x1b\xdd\x5e\xdb\x8d\xcd\x7e\x5d\x29\xc2\x83\x67\x7b\x4a\xba\xb3\x6b\x5a\x30\x53\x88\xc3\xe4\x1e\x41" +
"\x0d\x07\xc4\xcc\x7b\xba\xb4\xae\xee\x22\x08\x5f\xde\x39\x14\x84\x47\x83\x38\x74\x19\xcc\x79\xe9\x6c\xdb\x1c\x31" +
"\x0c\x0d\x23\xf4\x4b\x58\x5a\x97\xb1\xe1\x50\xe8\x22\xe9\xd6\x07\xa9\x86\xe6\xdd\xd5\x7e\xb7\x7a\xd4\x4f\x60\x46" +
"\x38\x14\x13\xdc\xbe\x93\x07\x8d\xae\x7d\xc6\xde\xf4\xfa\x1c\x0f\x9f\xe1\xa1\x23\x21\xcc\x89\xea\x96\x95\x69\x5a" +
"\x1a\x30\x72\x32\x10\x1a\x94\x6f\x8b\x02\xc3\x60\x12\x4f\x22\xdf\xe6\xb5\x22\x06\x2b\xa1\x5b\x0c\x23\x4a\xdf\xc7" +
"\x8a\x8e\xb5\xe7\xcc\xcc\x49\x4e\xc2\xae\x17\xe7\x33\x36\x55\xec\xb1\x0c\x0e\xc2\x1b\xb7\x35\x08\x6f\x9c\x46\x2e" +
"\x17\x5e\xef\xe3\x42\xe1\xf5\xe9\x8a\x81\xca\x5f\x27\xbe\x66\x9e\x89\x88\x1a\x76\xd5\x38\xe4\xad\xd3\x87\x68\x01" +
"\x6f\xf6\xdc\xc5\xca\xec\x13\x1d\x13\x1a\x60\xd8\x09\x61\xa1\x90\xd6\xe8\xcd\x3c\x95\x47\xf4\x73\x3e\x8e\xbc\x75" +
"\x86\x57\xca\xcc\x8a\xf6\x48\x24\xff\x87\x2a\x66\xed\x68\x32\x93\xfe\xae\x96\x14\x78\x0a\x3d\xfa\x57\xb7\xa5\x17" +
"\x95\xe1\x70\x85\x42\x9f\xe3\xf5\x02\x97\x07\x03\xe8\xac\xee\x03\x95\x11\xe8\x61\xbf\x87\x05\x9b\x1e\x7f\x6f\x7e" +
"\x19\x86\xb9\x23\x5b\x39\xcb\xc9\x2f\x49\xf1\x9f\x2d\xbf\x17\xd7\xeb\x85\xfd\x7f\xac\xd7\xd3\xcd\x7f\xce\x33\xbc" +
"\xa8\xb4\x20\xaf\xae\x80\xe7\x5d\xef\x67\x52\x1b\xaf\xe3\xfb\x8c\xe4\x76\x9c\x37\xc6\x17\x19\x87\x16\x61\x60\x0d" +
"\xf7\x4e\xcc\xb2\x35\xf1\x37\x2f\xcd\x32\x10\x7f\x72\x4e\xa8\xdd\xab\x24\xbb\x46\x87\x92\xe7\x1b\xb6\xdb\xc1\x38" +
"\xd0\x57\x44\x8d\xbf\x4b\x92\x52\x51\xd5\xe6\xb7\x85\xad\x93\x0f\xed\x77\xb5\x44\x97\x58\xf2\xd3\xf1\x3e\x0f\xc3" +
"\x5e\x34\xec\x07\xfc\xc1\xf4\xe3\xe3\x43\x98\xea\x61\xbb\xbd\x5d\xa1\xf3\xca\x9a\x3d\x0a\x8f\x4d\x6b\x87\x94\xa5" +
"\xbe\x70\xaa\x21\xf0\xae\xc8\x58\xf2\xe4\x93\xa7\xaf\x2d\xba\x4d\xf7\xe3\xff\xe9\xf4\xfb\x82\x43\xc3\xcf\xe1\x48" +
"\x4e\x93\xe8\x6c\x71\xdc\x73\x63\x9b\x06\xdd\x05\x9e\x27\x86\x97\x78\x9e\xbe\x9b\x39\xef\xfc\xd0\xf6\x12\xff\xa5" +
"\xca\x73\x74\xca\x57\x5c\xa0\xbf\x00\xe3\x98\xfd\x4b\x38\xa2\x69\xb4\x2a\xba\xdf\xbb\x67\xbc\x4f\xad\x66\x3e\xd3" +
"\x24\xbe\xa2\x48\x93\xf8\xce\xef\xea\x7f\x01\x00\x00\xff\xff\xf3\xdd\x17\x43\x05\x14\x00\x00")
"\x51\x52\x2c\xcb\x76\xdc\xae\x7d\xf8\x21\x40\x6c\x51\xc7\xfb\x78\xdf\x7d\x3c\x9e\x99\xfe\x21\x6d\x41\x9b\x06\xa1" +
"\xa2\x5a\x2f\xae\xd2\xf0\x01\x5a\x98\x32\x63\x68\xd8\xe2\x0a\x20\xad\x50\xc8\xf0\x05\x20\xfd\x83\x73\xb8\xc7\xaf" +
"\xad\x72\x28\xa1\x46\x12\x40\xa2\xf4\xc0\x79\xff\xbe\x1b\x2a\x2a\xe1\x3c\x52\xc6\x5a\x5a\xf2\xbf\xb1\xfd\x57\x15" +
"\x51\xc3\xc3\xfc\x55\xc6\xfe\xcb\x3f\xfd\x83\xbf\xb3\x75\x23\x48\xe5\x1a\x19\x14\xd6\x10\x1a\xca\xd8\xfb\x7f\x66" +
"\x28\x4b\x9c\xcc\x34\xa2\xc6\x8c\xad\x14\xae\x1b\xeb\x68\xcf\x78\xad\x24\x55\x99\xc4\x95\x2a\x90\x77\x0f\x37\xa0" +
"\x8c\x22\x25\x34\xf7\x85\xd0\x98\xbd\xba\x01\x5f\x39\x65\xbe\x70\xb2\x7c\xa9\x28\x33\x96\x2d\xae\xa2\x6f\xad\xcc" +
"\x17\x70\xa8\x33\xe6\x69\xa3\xd1\x57\x88\xc4\xa0\x72\xb8\xcc\x58\x52\x78\x9f\xe4\xd6\x92\x27\x27\x9a\xdb\x5a\x99" +
"\xdb\xc2\x7b\x06\xca\x10\x96\x4e\xd1\x26\x63\xdb\xed\xc3\xfd\xfb\x7f\x09\x5f\xc1\xe7\xe3\xd6\x9f\x77\x3b\x06\xc9" +
"\xe2\x47\xc0\xd6\x82\x8a\xea\x72\xb4\x89\xf9\x8f\xc1\x2d\xad\x21\xb1\x46\x6f\x6b\xe4\x42\xeb\x8b\x30\x4f\xcc\x19" +
"\x80\x23\x32\x29\xd2\xb8\xf8\xf8\xf8\x00\x1c\x3e\x1a\x84\x47\x55\x23\x3c\x60\xe1\x90\x7c\x9a\xc4\xb7\xbd\x69\xb7" +
"\xb4\xb8\x60\x80\xeb\xe0\x96\x2a\x65\xca\xb5\xb3\xa6\xbc\x81\x6b\x63\x69\x69\x5b\x23\x6f\xe0\xba\x10\x4e\xde\xa3" +
"\x90\xd1\x4f\x3f\x10\x1f\x3e\xdd\x7f\x98\x19\xfc\xc7\x21\x6c\x41\x2a\xdf\x68\xb1\xb9\x03\x63\x0d\xbe\x85\x5d\x0f" +
"\x74\xbb\xb4\x96\xd0\xc1\x16\x0a\xab\xad\xbb\x83\xeb\xd7\xcb\xf0\xf7\x16\x42\x7c\xdc\xab\xef\x78\x07\x7f\xb9\xfd" +
"\x3b\xd6\x6f\x81\xf0\x1b\x71\xa1\x55\x69\xee\xa0\x40\x43\xe8\x9e\xfd\x84\x77\xc2\xa1\x80\x6d\x9c\xb8\x14\xb5\xd2" +
"\x9b\x3b\xa8\xad\xb1\xbe\x11\xc5\x08\x99\x26\x63\xa0\x69\x32\x6c\xa8\x34\xb7\x72\x33\x10\x61\xc4\x0a\x0a\x2d\xbc" +
"\xcf\x98\x11\xab\x5c\x38\x88\x1f\x1c\xbf\x35\xc2\x48\xae\xcb\x61\x40\x0a\xf7\x05\xf2\x92\x37\x4e\xd5\xc2\x6d\xd8" +
"\xc0\x5e\x2a\xa6\x0e\x78\xee\x84\x91\x43\xc6\xaf\xd9\x22\x55\x83\xc1\x52\x78\x58\x0a\xde\x7a\x74\xdc\x77\x74\xb1" +
"\x45\x9a\xa8\x05\x9c\xca\x99\x18\x41\xf2\x96\xc8\x9a\x03\x24\xb2\x65\xa9\xd1\x31\x08\xa5\x24\x63\xd1\x86\x81\x14" +
"\x24\xfa\x77\x19\x2b\xac\xd6\xa2\xf1\x38\x0c\x0b\x57\x86\x22\x71\x1d\x5d\x3c\xb4\x4d\xd8\xd8\x28\xdf\xc5\x8d\xcd" +
"\x40\x38\x25\x78\xd8\xe6\xce\xea\x11\xe9\x84\x59\xe4\x08\x65\x88\x4c\x07\x88\x6e\x54\x8b\x3c\xa8\xff\xb1\x5b\x40" +
"\x60\x4f\x95\x82\x94\x35\x23\x63\x41\x7f\x8d\x38\x11\x0c\x57\x45\x30\x4d\x93\x60\x32\x86\x9f\xc4\xd8\xfa\xac\x01" +
"\xa4\x52\x8d\x79\x1b\x22\x1c\x12\xf5\x1c\xb1\x92\x27\x03\xd8\x5b\x4b\xab\x0f\x56\x12\x34\x51\x6b\x2e\x5a\xb2\x7b" +
"\x76\xdd\xd6\xde\xb3\xe4\x8a\xb0\x0e\x0b\xd5\xea\x65\x23\x31\xca\x21\x2e\x0a\xd7\x0f\x43\xfe\x0f\xd5\xd1\xe8\xd6" +
"\xf7\xb2\xd8\x6e\x1f\x81\xe5\x64\xb8\xc1\xf5\x20\x98\xdd\x2e\xc8\x62\x8a\x9a\x26\xad\x7e\xa6\x4a\xaa\x55\x5f\x8a" +
"\x12\x23\x56\x83\xd0\x27\x84\x19\x12\xca\xa0\x83\x9a\xf8\x5f\x9f\x85\xbc\x67\xe2\xec\x1a\x9e\x5a\x4f\x6a\xb9\xe1" +
"\x7d\xcd\xe7\x71\x17\xee\x33\x37\x4d\x02\xaf\xe5\x78\xee\xcc\x0d\x84\x46\x47\xd0\xfd\xe7\x52\x98\x32\xc8\xd6\xd9" +
"\xa0\xd0\x6e\xac\xe7\xa5\xaf\x3b\x13\x2f\x00\x33\x8e\xbe\xb6\xe8\x83\xa4\x78\xa1\x5c\xa1\x07\xe1\x55\x4a\x4a\x34" +
"\x19\x23\xd7\x62\x64\x70\xe2\xa5\x63\x33\x2e\x20\x72\xc9\x8d\x25\x1e\xf1\x76\xbb\xfd\x65\x3f\x53\xf8\x93\x71\x4c" +
"\x0b\xea\x6f\x8f\x66\x40\xe3\xeb\x90\xa7\x88\x79\x2e\xa2\xc9\x63\xff\x70\x5c\x04\xe7\xb3\xfd\xea\x35\x1b\x27\xce" +
"\x4c\x84\x93\x90\x5b\x27\xd1\x8d\x25\xb3\xe3\x26\xbc\xf8\xf7\xb3\xfe\xa7\xd4\x1c\x38\xe0\xa1\x66\xa3\xdb\x2b\xbb" +
"\xf1\x5c\x58\x57\x8a\xf0\x60\x6e\x4f\x49\x77\xcc\x4d\x37\xcc\x14\xe2\x30\xb9\x47\x50\xc3\x01\x31\xf3\x9e\x2e\xad" +
"\xab\xbb\x08\xc2\x97\x77\x0e\x05\xe1\xd1\x20\x0e\x5d\x06\x73\x5e\x3a\xdb\x36\x47\x0c\x43\xc1\x08\xf5\x12\x96\xd6" +
"\x65\x6c\x38\x14\xba\x48\xba\xf1\x41\xaa\xa1\x78\x77\x7b\xbf\x1b\x3d\xea\x67\x3c\x15\xf7\x71\xfb\x4a\x1e\x34\xba" +
"\xf6\x19\x7b\xd3\xeb\x73\x3c\x7c\x86\x49\x47\x42\x98\x13\xd5\x0d\x2b\xd3\xb4\x34\x60\xe4\x64\x20\x14\x28\xdf\x16" +
"\x05\x86\x1e\x26\x9e\x44\xbe\xcd\x6b\x45\x0c\x56\x42\xb7\x18\xba\x99\xbe\x8e\x15\x1d\x6b\xcf\x99\x99\x93\x9c\x84" +
"\x55\x2f\xce\x67\x6c\xaa\xd8\x63\x19\x1c\x84\x37\x2e\x6b\x10\xde\xd8\xb8\x5c\x2e\xbc\xde\xc7\x85\xc2\xeb\xd3\x15" +
"\x03\x95\xbf\x4e\x7c\xcd\x3c\x13\x11\x35\xac\xaa\x71\xc8\x5b\xa7\x0f\xd1\x02\xde\x6c\xde\xc5\xca\xec\x13\x1d\x13" +
"\x1a\x60\xd8\x09\x61\xa1\x90\xd6\xe8\xcd\x3c\x95\x47\xf4\x73\x3e\x8e\xbc\x75\x86\x57\xca\xcc\x36\xed\x91\x48\xfe" +
"\x0f\x55\xcc\xca\xd1\xa4\x7d\xfd\x5d\x25\x29\xf0\x14\x6a\xf4\xaf\x2e\x4b\x2f\x2a\xc3\xe1\x0a\x85\x3e\xc7\xeb\x05" +
"\x2e\x0f\x1a\xd0\xd9\xbe\x0f\x54\x46\xa0\x87\xfd\x1a\x16\x6c\x7a\xfc\xbd\xfe\x65\x68\xe6\x8e\x2c\xe5\x2c\x27\xbf" +
"\x24\xc5\x7f\xb6\xfc\x5e\xbc\x5f\x2f\xac\xff\xe3\x7e\x3d\x5d\xfc\xe7\x3c\xc3\x8b\x4a\x0b\xf2\xea\x36\xf0\xbc\xea" +
"\xfd\x4c\x6a\xe3\x73\xbc\xfa\x48\x6e\xc7\x7e\x63\xbc\xf3\x38\xb4\x08\x0d\x6b\x78\x77\xa2\x97\xad\x89\xbf\x79\xa9" +
"\x97\x81\xf8\xeb\x74\x42\xed\xde\x4e\xb2\x6b\x74\x28\x79\xbe\x61\xbb\x1d\x8c\x0d\x7d\x45\xd4\xf8\xbb\x24\x29\x15" +
"\x55\x6d\x7e\x5b\xd8\x3a\xf9\xd0\x7e\x57\x4b\x74\x89\x25\x3f\x6d\xef\xf3\xd0\xec\x45\xc3\xbe\xc1\x1f\x4c\x3f\x3e" +
"\x3e\x84\xae\x1e\xb6\xdb\xdb\x15\x3a\xaf\xac\xd9\xa3\xf0\x58\xb7\x76\x48\x59\xea\x0b\xa7\x1a\x02\xef\x8a\x8c\x25" +
"\x4f\x3e\x79\xfa\xda\xa2\xdb\x74\xf7\x04\x4f\xa7\xaf\x16\x0e\x0d\x3f\x87\x23\x39\x4d\xa2\xb3\xc5\x71\xcf\x8d\x6d" +
"\x1a\x74\x17\x78\x9e\x18\x5e\xe2\x79\x7a\x8d\x73\xde\xf9\xa1\xed\x25\xfe\x4b\x95\xe7\xe8\x94\xaf\xb8\x40\x7f\x01" +
"\xc6\x31\xfb\x97\x70\x44\xd3\x68\x55\x74\xbf\x77\xcf\x78\x9f\x5a\xcd\x7c\xa6\x49\xbc\xa2\x48\x93\x78\x3d\x78\xf5" +
"\xbf\x00\x00\x00\xff\xff\x72\x3b\xda\x38\x30\x14\x00\x00")
func bindataFrontendIndexhtmlBytes() ([]byte, error) {
return bindataRead(
@ -3488,8 +3492,8 @@ func bindataFrontendIndexhtml() (*asset, error) {
info := bindataFileInfo{
name: "frontend/index.html",
size: 5125,
md5checksum: "5f5253fb6b2c1bf2b27961bf03062bee",
size: 5168,
md5checksum: "fee5388d6adb9685d39a89ef10e96a05",
mode: os.FileMode(436),
modTime: time.Unix(1, 0),
}

View File

@ -57,11 +57,34 @@ initBinds = () ->
$('#newSecret, .navbar-brand').bind 'click', newSecret
$(window).bind 'hashchange', hashLoad
$('#revealSecret').bind 'click', requestSecret
bindResizeTextarea()
newSecret = () ->
location.href = location.href.split('#')[0]
false
bindResizeTextarea = () ->
$('textarea').each(() ->
text = this
doResize = () =>
#text.style.height = 'auto'
text.style.height = (this.scrollHeight) + 'px'
delayedResize = () =>
window.setTimeout doResize, 0
text.setAttribute('style', "height: #{this.scrollHeight}px; min-height: #{this.scrollHeight}px; overflow-y:hidden;")
$(text)
.on('change', doResize)
.on('cut', delayedResize)
.on('paste', delayedResize)
.on('drop', delayedResize)
.on('keydown', delayedResize)
)
secretCreated = (data) ->
secretHash = data.secret_id
if securePassword != null
@ -89,6 +112,7 @@ showData = (data) ->
$('#cardReadSecretPre').hide()
$('#cardReadSecret').show()
$('#cardReadSecret').find('textarea').val secret
$('#cardReadSecret').find('textarea').trigger 'change'
somethingWrong = () ->
$('#somethingwrong').show()

View File

@ -1,121 +1 @@
// Generated by CoffeeScript 2.3.1
(function() {
var createSecret, dataNotFound, hashLoad, initBinds, newSecret, requestSecret, secretCreated, securePassword, showData, somethingWrong;
securePassword = null;
createSecret = function() {
var secret;
secret = $('#formCreateSecret').find('textarea').val();
securePassword = Math.random().toString(36).substring(2);
secret = GibberishAES.enc(secret, securePassword);
$.ajax('api/create', {
method: "post",
data: {
secret: secret
},
dataType: "json",
statusCode: {
201: secretCreated,
400: somethingWrong,
500: somethingWrong,
404: function() {
// Mock for interface testing
return secretCreated({
secret_id: 'foobar'
});
}
}
});
return false;
};
dataNotFound = function() {
return $('#notfound').show();
};
hashLoad = function() {
var hash;
hash = window.location.hash;
if (hash.length === 0) {
return;
}
$('#cardNewSecret').hide();
$('#cardSecretURL').hide();
$('#notfound').hide();
$('#somethingwrong').hide();
return $('#cardReadSecretPre').show();
};
requestSecret = function() {
var hash, id, parts;
hash = window.location.hash;
hash = decodeURIComponent(hash);
parts = hash.split('|');
if (parts.length === 2) {
hash = parts[0];
securePassword = parts[1];
}
id = hash.substring(1);
return $.ajax(`api/get/${id}`, {
dataType: "json",
statusCode: {
404: dataNotFound,
200: showData
}
});
};
initBinds = function() {
$('#formCreateSecret').bind('submit', createSecret);
$('#newSecret, .navbar-brand').bind('click', newSecret);
$(window).bind('hashchange', hashLoad);
return $('#revealSecret').bind('click', requestSecret);
};
newSecret = function() {
location.href = location.href.split('#')[0];
return false;
};
secretCreated = function(data) {
var secretHash, url;
secretHash = data.secret_id;
if (securePassword !== null) {
secretHash = `${secretHash}|${securePassword}`;
}
url = `${(location.href.split('#')[0])}#${secretHash}`;
$('#cardNewSecret').hide();
$('#cardReadSecretPre').hide();
$('#cardSecretURL').show();
$('#cardSecretURL').find('input').val(url);
$('#cardSecretURL').find('input').focus();
$('#cardSecretURL').find('input').select();
return securePassword = null;
};
showData = function(data) {
var secret;
secret = data.secret;
if (securePassword !== null) {
secret = GibberishAES.dec(secret, securePassword);
}
$('#cardNewSecret').hide();
$('#cardSecretURL').hide();
$('#notfound').hide();
$('#somethingwrong').hide();
$('#cardReadSecretPre').hide();
$('#cardReadSecret').show();
return $('#cardReadSecret').find('textarea').val(secret);
};
somethingWrong = function() {
return $('#somethingwrong').show();
};
$(function() {
initBinds();
return hashLoad();
});
}).call(this);
'use strict';(function(){var a,b,c,d,e,f,g,h,i,j,k;i=null,b=function(){var a;return a=$('#formCreateSecret').find('textarea').val(),i=Math.random().toString(36).substring(2),a=GibberishAES.enc(a,i),$.ajax('api/create',{method:'post',data:{secret:a},dataType:'json',statusCode:{201:h,400:k,500:k,404:function a(){return h({secret_id:'foobar'})}}}),!1},c=function(){return $('#notfound').show()},d=function(){var a;if(a=window.location.hash,0!==a.length)return $('#cardNewSecret').hide(),$('#cardSecretURL').hide(),$('#notfound').hide(),$('#somethingwrong').hide(),$('#cardReadSecretPre').show()},g=function(){var a,b,d;return a=window.location.hash,a=decodeURIComponent(a),d=a.split('|'),2===d.length&&(a=d[0],i=d[1]),b=a.substring(1),$.ajax('api/get/'+b,{dataType:'json',statusCode:{404:c,200:j}})},e=function(){return $('#formCreateSecret').bind('submit',b),$('#newSecret, .navbar-brand').bind('click',f),$(window).bind('hashchange',d),$('#revealSecret').bind('click',g),a()},f=function(){return location.href=location.href.split('#')[0],!1},a=function(){return $('textarea').each(function(){var a,b,c,d=this;return c=this,b=function(){return c.style.height=d.scrollHeight+'px'},a=function(){return window.setTimeout(b,0)},c.setAttribute('style','height: '+this.scrollHeight+'px; min-height: '+this.scrollHeight+'px; overflow-y:hidden;'),$(c).on('change',b).on('cut',a).on('paste',a).on('drop',a).on('keydown',a)})},h=function(a){var b,c;return b=a.secret_id,null!==i&&(b=b+'|'+i),c=location.href.split('#')[0]+'#'+b,$('#cardNewSecret').hide(),$('#cardReadSecretPre').hide(),$('#cardSecretURL').show(),$('#cardSecretURL').find('input').val(c),$('#cardSecretURL').find('input').focus(),$('#cardSecretURL').find('input').select(),i=null},j=function(a){var b;return b=a.secret,null!==i&&(b=GibberishAES.dec(b,i)),$('#cardNewSecret').hide(),$('#cardSecretURL').hide(),$('#notfound').hide(),$('#somethingwrong').hide(),$('#cardReadSecretPre').hide(),$('#cardReadSecret').show(),$('#cardReadSecret').find('textarea').val(b),$('#cardReadSecret').find('textarea').trigger('change')},k=function(){return $('#somethingwrong').show()},$(function(){return e(),d()})}).call(void 0);

View File

@ -15,6 +15,7 @@
<style>
#somethingwrong, #notfound, #cardReadSecret, #cardSecretURL, #cardReadSecretPre { display: none; }
.footer { color: #2f2f2f; font-size: 0.9em; text-align: center; }
textarea { font-family: monospace; }
</style>
</head>
<body>

1246
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

11
package.json Normal file
View File

@ -0,0 +1,11 @@
{
"name": "ots",
"version": "0.0.0",
"internal": true,
"devDependencies": {
"babel-core": "^6.26.3",
"babel-preset-env": "^1.7.0",
"babel-preset-minify": "^0.4.3",
"coffeescript": "^2.3.1"
}
}