From 3777a99a54eca09761e4245961f76caea332f8f0 Mon Sep 17 00:00:00 2001 From: Pascal Huber Date: Sun, 3 Mar 2024 16:54:23 +0100 Subject: [PATCH 1/3] improve login form --- README.md | 22 ++++++++++++++++++++-- src/components/LoginForm.vue | 24 ++++-------------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 0583566..3ccfd31 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,29 @@ parties agree with me. ![VoteLog Screenshot](screenshot.png) (those are not my votes, at least not all of them...) -## Setup +## Build Docker images -### Build and run Development WebDAV server +Build in your native architecture as follows. +```bash +docker -t votelog . ``` + +Build an aarch64 image, run the following (may need some dependencies). + +```bash +docker buildx build --platform linux/arm64 -t votelog . +``` + +## Setup + +### WebDAV server + +Build and run Development server with username "cat" and password "dog". Add +`VUE_APP_WEBDAV_URI="http://localhost:8080"` into `.env.local` to make this the +default value on the login page. + +```bash docker build -t webdav-dev dev/webdav/ docker-compose -f dev/webdav/docker-compose.yml up -d ``` diff --git a/src/components/LoginForm.vue b/src/components/LoginForm.vue index 6a98508..5c895dd 100644 --- a/src/components/LoginForm.vue +++ b/src/components/LoginForm.vue @@ -7,26 +7,12 @@ Anmeldung fehlgeschlagen
-
- server: {{ defaultWebDav }} 
- - use different server - -
-
- - use default server - -
-
+
@@ -66,12 +52,10 @@ export default { data: function () { return { - webDav: undefined, - defaultWebDav: process.env.VUE_APP_WEBDAV_URI, + webDav: process.env.VUE_APP_WEBDAV_URI, userName: undefined, password: undefined, loginFailed: false, - customWebDav: false, }; }, computed: { @@ -82,7 +66,7 @@ export default { methods: { async login() { const payload = { - webDav: this.customWebDav ? this.webDav : this.defaultWebDav, + webDav: this.webDav, userName: this.userName, password: this.password, }; From 68d1163b71b4a77c5a4a4aba48604c4a84950af9 Mon Sep 17 00:00:00 2001 From: Pascal Huber Date: Sun, 3 Mar 2024 21:46:01 +0100 Subject: [PATCH 2/3] minor design and router improvements --- src/assets/4x.svg | 32 +++++++++----------- src/assets/README.md | 3 +- src/assets/ja.svg | 33 ++++++++++---------- src/assets/nein.png | Bin 0 -> 3883 bytes src/assets/nein.svg | 43 +++++++++++---------------- src/components/AboutPage.vue | 42 ++++++++++++++++++++++++++ src/components/App.vue | 23 +------------- src/components/Index.vue | 29 ++++++++++++++---- src/components/LoginForm.vue | 2 +- src/components/NavBar.vue | 22 +++++++++++--- src/components/VotesTableSubject.vue | 2 +- src/icons.js | 6 ++++ src/router.js | 40 ++++++++++++++----------- 13 files changed, 164 insertions(+), 113 deletions(-) create mode 100644 src/assets/nein.png create mode 100644 src/components/AboutPage.vue diff --git a/src/assets/4x.svg b/src/assets/4x.svg index fd0fe40..97d6c4c 100644 --- a/src/assets/4x.svg +++ b/src/assets/4x.svg @@ -7,7 +7,7 @@ viewBox="0 0 85.195831 58.994766" version="1.1" id="svg32163" - inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" sodipodi:docname="4x.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" @@ -28,14 +28,16 @@ fit-margin-right="0" fit-margin-bottom="0" inkscape:zoom="1.28" - inkscape:cx="216.79688" + inkscape:cx="217.1875" inkscape:cy="234.76562" - inkscape:window-width="2554" - inkscape:window-height="1375" + inkscape:window-width="2129" + inkscape:window-height="1133" inkscape:window-x="0" - inkscape:window-y="32" - inkscape:window-maximized="1" - inkscape:current-layer="text3459" /> + inkscape:window-y="0" + inkscape:window-maximized="0" + inkscape:current-layer="text3459" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1" /> - 4x + transform="scale(0.95150393,1.0509678)" + aria-label="4x" /> + inkscape:window-y="0" + inkscape:window-maximized="0" + inkscape:current-layer="text113379" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1" /> + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect35482);display:inline;fill:#000000;fill-opacity:1;stroke:none" /> + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3734);display:inline;fill:#000000;fill-opacity:1;stroke:none" /> - + style="font-size:42.3333px;font-family:UnifrakturCook;-inkscape-font-specification:UnifrakturCook;stroke-width:0.0700042" + d="m 83.178245,99.831941 3.121254,-3.927406 4.630205,2.170408 q -0.227376,0.847493 -0.496094,1.653645 -0.248046,0.806152 -0.39274,2.170412 -0.144694,1.34358 -0.144694,3.20393 0,1.83968 -0.04134,3.61735 -0.04134,1.77767 -0.992187,5.84977 -0.950846,4.0721 -4.113441,11.82356 -0.661458,-0.64079 -2.191079,-1.01286 1.343586,-4.85758 1.674315,-9.9012 0.330729,-5.04361 0.413411,-10.06656 l 0.06201,-3.59668 q 0,-0.99218 -1.529621,-1.984369 z m 0.620116,-4.113441 1.653645,-8.16487 6.180497,2.459796 z m 8.826328,6.82128 8.061521,-6.552563 9.13638,4.278803 q -1.6123,1.4056 -1.63297,3.1626 l -0.0827,6.84195 q 0,0.7028 0.72347,1.59164 0.74414,0.88883 1.40559,1.42626 l -4.17545,4.29948 -3.20393,-3.28662 q -1.15756,0.93018 -2.33578,1.71566 -1.17822,0.76481 -2.108395,1.6123 -3.100583,-1.15755 -5.787756,-3.57601 0.764811,-0.97151 0.888834,-2.83186 l -0.06201,-6.24251 q 0,-0.0827 0,-0.16536 0,-1.21957 -0.826822,-2.27377 z m 7.090001,-1.59163 q -1.198892,1.79834 -1.198892,3.20394 v 5.06428 q 0,1.5503 0.558105,2.21175 0.475423,0.68213 0.868163,1.21957 0.413414,0.53743 1.302244,0.78548 l 1.69499,-1.21957 v -9.50845 z" + id="text1" + aria-label="ja" /> diff --git a/src/assets/nein.png b/src/assets/nein.png new file mode 100644 index 0000000000000000000000000000000000000000..f81b7b44058781cf6315e720668bc9f9d81d1f42 GIT binary patch literal 3883 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 SD?un90T@jKjaMj#`~L$ORVVuZ literal 0 HcmV?d00001 diff --git a/src/assets/nein.svg b/src/assets/nein.svg index bb01f44..6e1899b 100644 --- a/src/assets/nein.svg +++ b/src/assets/nein.svg @@ -7,7 +7,7 @@ viewBox="0 0 85.195831 58.994766" version="1.1" id="svg32163" - inkscape:version="1.1 (c68e22c387, 2021-05-23)" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" sodipodi:docname="nein.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" @@ -27,15 +27,17 @@ fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" - inkscape:zoom="2.8284271" - inkscape:cx="228.92582" - inkscape:cy="65.230601" - inkscape:window-width="2554" - inkscape:window-height="1375" + inkscape:zoom="0.99999999" + inkscape:cx="173" + inkscape:cy="340.5" + inkscape:window-width="2129" + inkscape:window-height="1133" inkscape:window-x="0" - inkscape:window-y="32" - inkscape:window-maximized="1" - inkscape:current-layer="layer1" /> + inkscape:window-y="0" + inkscape:window-maximized="0" + inkscape:current-layer="text113379" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1" /> + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect35482);display:inline;fill:#000000;fill-opacity:1;stroke:none" /> + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3734);display:inline;fill:#000000;fill-opacity:1;stroke:none" /> - - - + style="font-size:42.3333px;font-family:UnifrakturCook;-inkscape-font-specification:UnifrakturCook;stroke-width:0.0700042" + d="m 72.408889,98.922427 2.418455,-3.017902 6.593908,4.774895 -0.620117,2.43913 -0.268717,6.65592 q 0,0.062 0,0.12403 0,1.01286 0.620116,1.67431 0.620117,0.64079 1.405598,0.97152 l -4.134111,5.04362 q -1.529621,-1.1989 -2.356444,-2.12907 -0.806151,-0.93018 -0.806151,-3.82406 0,-0.2067 0,-0.43408 l 0.144693,-7.64811 q 0,-0.86816 -2.645831,-2.89388 l -0.826822,1.30225 -0.392741,7.81347 q 0,0.062 0,0.12403 0,1.01286 0.620117,1.67431 0.620117,0.64079 1.426268,0.97152 l -4.134111,5.04362 -4.361488,-3.53467 q 1.178222,-1.42627 1.178222,-2.85254 l 0.165364,-9.38443 q 0,-0.99219 -1.529621,-1.984379 l 3.121254,-3.927406 z m 21.600732,18.665523 -9.901197,-3.94808 q 0.558105,-3.10058 0.558105,-6.44922 0,-3.3693 -0.640787,-7.02799 l 7.131342,-4.196123 v -0.06201 l 0.04134,0.02067 h 0.02067 l 8.040846,5.767083 -8.371575,8.80566 q 0.847493,1.01286 1.88102,1.11621 1.033528,0.10336 1.694986,0.10336 0.682129,0 1.591633,-0.062 0.930175,-0.0827 2.273761,-0.12403 -1.095539,1.52962 -2.170408,3.03857 -1.074869,1.50895 -2.149738,3.01791 z m -3.431313,-16.10237 q -1.198892,0 -1.198892,3.26595 0,1.86035 0.620117,3.7207 0,0.18603 0.06201,0.31006 l 3.32796,-3.514 q 0.3514,-0.37207 0.3514,-0.74414 0,-0.37207 -0.37207,-0.95085 -0.3514,-0.57877 -0.72347,-0.95084 -1.302245,-1.13688 -2.067055,-1.13688 z m 9.694492,-1.653649 3.12126,-3.927406 4.6302,2.170409 q -0.24805,0.847493 -0.53743,1.653645 -0.28939,0.806151 -0.28939,1.653641 l -0.28939,8.39225 q 0,0.10336 0,0.18604 0,0.97152 0.62012,1.6123 0.62011,0.64079 1.42627,0.97152 l -4.13412,5.04362 -4.38215,-3.53467 q 1.19889,-1.42627 1.19889,-2.85254 l 0.14469,-9.38443 q 0,-0.99219 -1.50895,-1.984379 z m 0.62012,-4.113441 1.65364,-8.16487 6.13916,2.459797 z m 16.8465,3.203937 2.41846,-3.017902 6.5939,4.774895 -0.62011,2.43913 -0.26872,6.65592 q 0,0.062 0,0.12403 0,1.01286 0.62012,1.67431 0.62011,0.64079 1.40559,0.97152 l -4.13411,5.04362 q -1.52962,-1.1989 -2.35644,-2.12907 -0.80615,-0.93018 -0.80615,-3.82406 0,-0.2067 0,-0.43408 l 0.14469,-7.64811 q 0,-0.86816 -2.64583,-2.89388 l -0.82682,1.30225 -0.39274,7.81347 q 0,0.062 0,0.12403 0,1.01286 0.62011,1.67431 0.62012,0.64079 1.42627,0.97152 l -4.13411,5.04362 -4.36149,-3.53467 q 1.17823,-1.42627 1.17823,-2.85254 l 0.16536,-9.38443 q 0,-0.99219 -1.52962,-1.984379 l 3.12125,-3.927406 z" + id="text1" + aria-label="nein" /> diff --git a/src/components/AboutPage.vue b/src/components/AboutPage.vue new file mode 100644 index 0000000..4d043fd --- /dev/null +++ b/src/components/AboutPage.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/components/App.vue b/src/components/App.vue index 45e100a..0515ced 100644 --- a/src/components/App.vue +++ b/src/components/App.vue @@ -1,37 +1,16 @@ diff --git a/src/components/Index.vue b/src/components/Index.vue index 9b03117..21e375d 100644 --- a/src/components/Index.vue +++ b/src/components/Index.vue @@ -1,21 +1,35 @@ @@ -23,4 +37,7 @@ export default { nav { margin-bottom: 1rem; } +body { + padding-bottom: 1rem; +} diff --git a/src/components/LoginForm.vue b/src/components/LoginForm.vue index 5c895dd..fd3ae59 100644 --- a/src/components/LoginForm.vue +++ b/src/components/LoginForm.vue @@ -1,5 +1,5 @@