Compare commits

..

18 Commits
0.1.0 ... 0.3.0

Author SHA1 Message Date
cb5f48d913 🚀Bumped version to v0.3.0
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-30 18:17:31 +02:00
ae44d7e2e8 🐞 fix release config 2021-03-30 18:17:09 +02:00
69bfe9e585 Merge branch 'bugfix/23-broken-build' into dev
All checks were successful
continuous-integration/drone/push Build is passing
close #23
2021-03-30 18:12:04 +02:00
15b60f60b5 migrate to Tailwind JIT + views + router/ build fix
ref #23
2021-03-30 18:05:55 +02:00
83924a9416 🚀Bumped version to v0.2.0
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-27 19:44:28 +01:00
bd29d99120 Added image to docker-compose
All checks were successful
continuous-integration/drone/push Build is passing
ref #17
2021-03-27 19:38:36 +01:00
323ddc1c3d Now building latest from main [ci-skip]
All checks were successful
continuous-integration/drone/push Build is passing
ref #17
2021-03-27 19:34:03 +01:00
a174df19dd Added ci to build dev and tags
All checks were successful
continuous-integration/drone/push Build is passing
ref #17
2021-03-27 19:32:32 +01:00
eec6a358d8 Added releaseit config
ref #17
2021-03-27 19:29:47 +01:00
5253fb1832 🚀Bumped version to v0.1.2 2021-03-27 19:02:19 +01:00
00f8d8023e package dependency cleanup 2021-03-26 21:05:18 +01:00
ef304c576b Merge branch 'feature/0.1.1' into dev 2021-03-26 20:45:11 +01:00
e2be86c558 v0.1.1 changelog 2021-03-26 20:44:53 +01:00
4d57812c04 version bump to 0.1.1 2021-03-26 20:43:52 +01:00
829fe32743 org registration - add team select
close #18
2021-03-26 20:42:20 +01:00
760b1b32a2 added baseurl_selfservice config
close #22
2021-03-26 20:10:26 +01:00
7b0bc22a71 [tmp] vue i18n error 2021-03-26 18:36:52 +01:00
88996f81d8 Merge tag '0.1.0' into dev
working basics
2021-03-26 18:01:03 +01:00
18 changed files with 372 additions and 110 deletions

109
.drone.yml Normal file
View File

@@ -0,0 +1,109 @@
---
kind: secret
name: docker_username
get:
path: odit-registry-builder
name: username
---
kind: secret
name: docker_password
get:
path: odit-registry-builder
name: password
---
kind: secret
name: git_ssh
get:
path: odit-git-bot
name: sshkey
---
kind: pipeline
type: kubernetes
name: build:dev
steps:
# - name: run full license export
# depends_on: ["clone"]
# image: node:alpine
# commands:
# - yarn
# - yarn licenses:export
# - name: push new licenses file to repo
# depends_on: ["run full license export"]
# image: appleboy/drone-git-push
# settings:
# branch: dev
# commit: true
# commit_message: new license file version [CI SKIP]
# author_email: bot@odit.services
# remote: git@git.odit.services:lfk/selfservice.git
# ssh_key:
# from_secret: git_ssh
- name: build dev
image: plugins/docker
depends_on: [clone]
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
repo: registry.odit.services/lfk/selfservice
tags:
- dev
registry: registry.odit.services
mtu: 1000
trigger:
branch:
- dev
event:
- push
---
kind: pipeline
type: kubernetes
name: build:latest
steps:
- name: build latest
image: plugins/docker
depends_on: [clone]
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
repo: registry.odit.services/lfk/selfservice
tags:
- latest
registry: registry.odit.services
mtu: 1000
trigger:
branch:
- main
event:
- push
---
kind: pipeline
type: kubernetes
name: build:tags
steps:
- name: build $DRONE_TAG
image: plugins/docker
depends_on: [clone]
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
repo: registry.odit.services/lfk/selfservice
tags:
- '${DRONE_TAG}'
registry: registry.odit.services
mtu: 1000
trigger:
event:
- tag

View File

@@ -2,4 +2,117 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### 0.0.1
#### [0.3.0](https://git.odit.services/lfk/selfservice/compare/0.2.0...0.3.0)
- Merge branch 'bugfix/23-broken-build' into dev [`#23`](https://git.odit.services/lfk/selfservice/issues/23)
- migrate to Tailwind JIT + views + router/ build fix [`15b60f6`](https://git.odit.services/lfk/selfservice/commit/15b60f60b5d4f3c4035460f25807c5f5f2f19578)
- 🐞 fix release config [`ae44d7e`](https://git.odit.services/lfk/selfservice/commit/ae44d7e2e86b9bee74d453301846d02b29c632f2)
- 🚀Bumped version to v0.1.2 [`5253fb1`](https://git.odit.services/lfk/selfservice/commit/5253fb18325ce9069e84180b30110ae97752ef20)
#### [0.2.0](https://git.odit.services/lfk/selfservice/compare/0.1.1...0.2.0)
> 27 March 2021
- 🚀Bumped version to v0.2.0 [`83924a9`](https://git.odit.services/lfk/selfservice/commit/83924a9416dc966a417b32fa19b5fb725181e5ee)
- Added ci to build dev and tags [`a174df1`](https://git.odit.services/lfk/selfservice/commit/a174df19ddbf65b0229af38947a9416b1bcd0703)
- Now building latest from main [ci-skip] [`323ddc1`](https://git.odit.services/lfk/selfservice/commit/323ddc1c3d91ffa74200ed9250b891d2fe4da78d)
- Added releaseit config [`eec6a35`](https://git.odit.services/lfk/selfservice/commit/eec6a358d899a40eb6bac92bb3af37b2d37a5d91)
- package dependency cleanup [`00f8d80`](https://git.odit.services/lfk/selfservice/commit/00f8d8023e3ca47eb650c8b1c5c550112ed0d503)
- Added image to docker-compose [`bd29d99`](https://git.odit.services/lfk/selfservice/commit/bd29d9912023539b26cdac36997d7cb29ec0d538)
#### [0.1.1](https://git.odit.services/lfk/selfservice/compare/0.1.0...0.1.1)
> 26 March 2021
- org registration - add team select [`#18`](https://git.odit.services/lfk/selfservice/issues/18)
- added baseurl_selfservice config [`#22`](https://git.odit.services/lfk/selfservice/issues/22)
- [tmp] vue i18n error [`7b0bc22`](https://git.odit.services/lfk/selfservice/commit/7b0bc22a7157ee4551ab69dd5be856abed90b60c)
- ⏫ v0.1.1 changelog [`e2be86c`](https://git.odit.services/lfk/selfservice/commit/e2be86c5589f9ca9053d5bcdc61be3a642b94791)
- ⏫ version bump to 0.1.1 [`4d57812`](https://git.odit.services/lfk/selfservice/commit/4d57812c043e9078656818a33d241df220127a92)
- Merge tag '0.1.0' into dev [`88996f8`](https://git.odit.services/lfk/selfservice/commit/88996f81d8990969048f00a7c175d2a30da2588b)
#### 0.1.0
> 26 March 2021
- drop profile data editing [`#20`](https://git.odit.services/lfk/selfservice/issues/20)
- Merge pull request 'feature/15_company_registration' (#16) from feature/15_company_registration into dev [`#15`](https://git.odit.services/lfk/selfservice/issues/15)
- Merge pull request 'i18n support for TOS checkbox' (#14) from feature/4-component-interpolation into dev [`#4`](https://git.odit.services/lfk/selfservice/issues/4)
- Merge pull request 'feature/11-user-scans' (#13) from feature/11-user-scans into dev [`#11`](https://git.odit.services/lfk/selfservice/issues/11)
- Merge pull request 'feature/10-my-profile-data' (#12) from feature/10-my-profile-data into dev [`#10`](https://git.odit.services/lfk/selfservice/issues/10)
- Merge pull request 'feature/3_env_file' (#9) from feature/3_env_file into dev [`#3`](https://git.odit.services/lfk/selfservice/issues/3)
- Merge pull request 'feature/5_basic_ui_lap_times' (#8) from feature/5_basic_ui_lap_times into dev [`#5`](https://git.odit.services/lfk/selfservice/issues/5)
- Merge pull request 'use new flex grid for responsive displaying action buttons' (#7) from feature/6_profile_action_buttons into dev [`#6`](https://git.odit.services/lfk/selfservice/issues/6)
- Merge pull request 'feature/1-register-disable-submit-address' (#2) from feature/1-register-disable-submit-address into dev [`#1`](https://git.odit.services/lfk/selfservice/issues/1)
- Initial commit [`7c2154a`](https://git.odit.services/lfk/selfservice/commit/7c2154ad026e8850727c40e9759757c4ceb56d0b)
- sample routes + first landing page and routing logic [`3e92597`](https://git.odit.services/lfk/selfservice/commit/3e92597a563399149b5fbfab74fce6a0ecd6aba4)
- basic ui for profile page [`a0cbeae`](https://git.odit.services/lfk/selfservice/commit/a0cbeae8fef54c298883c379a9e9e9440f6d3336)
- 🎉 initial commit [`4ca10e1`](https://git.odit.services/lfk/selfservice/commit/4ca10e1db4b99b0181fdb0bdad1c042f958b2267)
- ✨refined Register component for basic requirements [`e63367e`](https://git.odit.services/lfk/selfservice/commit/e63367e84e382607d372dd5f14f3dd13da0426de)
- Profile - basic ui reactivity logic [`13543c3`](https://git.odit.services/lfk/selfservice/commit/13543c3cd2792b3f7829a2e0d5d64e73852d7feb)
- 🚚 tmp move Login component [`a661064`](https://git.odit.services/lfk/selfservice/commit/a661064f34d31dd1ef5a01919cc8d5a2d81882b9)
- basic lap/ scans ui [`1436948`](https://git.odit.services/lfk/selfservice/commit/14369480ea23e8b0af8548596a6bf3d331de13e5)
- basic markdown rendering + routing for /imprint and /privacy [`5a5261d`](https://git.odit.services/lfk/selfservice/commit/5a5261d6b0d4adc62c100a29cebd07d25b89028d)
- Register - basic form validations [`2b303ac`](https://git.odit.services/lfk/selfservice/commit/2b303ac9b279423bc0cee687e4d9ef3bdb3727c2)
- use new flex grid for responsive displaying action buttons [`2b9c454`](https://git.odit.services/lfk/selfservice/commit/2b9c454395a4789236878b7e2a77dc1fa230eafe)
- merge #6 into #5 [`7fa459b`](https://git.odit.services/lfk/selfservice/commit/7fa459b71b2bdd96d4a5104b5356441e1232e5e8)
- re-order language files 😬 [`4fb9aee`](https://git.odit.services/lfk/selfservice/commit/4fb9aee25586cc873f7e276fd44e41458b633b70)
- 🐳 working docker config + Dockerfile [`5a258d8`](https://git.odit.services/lfk/selfservice/commit/5a258d8e6ceadb6a66cf628e8093876d1f4a783c)
- 🧹 added order script for i18n keys [`94f5787`](https://git.odit.services/lfk/selfservice/commit/94f578798818f7188ff83e6accb201a50aaa43a2)
- Profile - remove form styling. data is not editable yet [`8205c11`](https://git.odit.services/lfk/selfservice/commit/8205c11bd9a38c49608b0641dd89df22f492efd0)
- 🌎 basic i18n keys for Register component [`37b7ed7`](https://git.odit.services/lfk/selfservice/commit/37b7ed75c52cea16b413fcd2af586a30392496d5)
- Register - reactive AGB registration button [`9effcb4`](https://git.odit.services/lfk/selfservice/commit/9effcb457540b512c261286cbf46bbd856b7d8b9)
- Register - basic input POST to api [`8bf0803`](https://git.odit.services/lfk/selfservice/commit/8bf08034b798da354fdbbbc7ce6e5a72616bb16b)
- added ui for configuration errors page [`c92d5bf`](https://git.odit.services/lfk/selfservice/commit/c92d5bf5f2ff7642e2a55abe0002ff94f2d64d3e)
- fix accessibility in Profile component [`3351092`](https://git.odit.services/lfk/selfservice/commit/335109285912a4df16d4f0aea90c0ba054089762)
- 🌎 Profile - i18n compatibility [`b518730`](https://git.odit.services/lfk/selfservice/commit/b518730fab90927b111f1708b532c5eb34e2aee2)
- basic demo for i18n integration along with i18n-ally [`63bb34e`](https://git.odit.services/lfk/selfservice/commit/63bb34ef997bed202f3f208645e14861318e66ef)
- basic input styling for Profile page [`8fd6f47`](https://git.odit.services/lfk/selfservice/commit/8fd6f47b2f5d21a58ce356a949910db7d7e6064b)
- 🎉 working vue reactivity [`d18dbc3`](https://git.odit.services/lfk/selfservice/commit/d18dbc3a1fdf1bc9f2e8c5b37cc2d3044857410a)
- 📍🏠 added address2 field to Register [`2153944`](https://git.odit.services/lfk/selfservice/commit/215394489461e17760263cebf606475938500e6b)
- Profile - fetch user profile data from api [`0929f2b`](https://git.odit.services/lfk/selfservice/commit/0929f2bbc7037106bc6c9a4c948f51c59148a10b)
- 🐳 basic devcontainer config [`5bfeac6`](https://git.odit.services/lfk/selfservice/commit/5bfeac693e8f9bfe6f62a38e12bf259744330c39)
- 📃 updated README [`4c78712`](https://git.odit.services/lfk/selfservice/commit/4c78712f83565f21f3cdee2168f9221e2a007951)
- Profile - display group [`641e7a0`](https://git.odit.services/lfk/selfservice/commit/641e7a0d8ff75ce5756d11f39b583f55731b821c)
- accessibility fixes for input borders [`b7f15f4`](https://git.odit.services/lfk/selfservice/commit/b7f15f4d6827c893aa1fc4d47996df2fb46602ff)
- add required confirmation of data on registration [`aa287cf`](https://git.odit.services/lfk/selfservice/commit/aa287cf452e588a41ec0f74063dcbecdb08d476a)
- 🐞 bugfix for non-existant env.js [`987ac4d`](https://git.odit.services/lfk/selfservice/commit/987ac4d02cf63af5acdcc60f0ee2ec54534773cb)
- fallback for env config errors [`20229ab`](https://git.odit.services/lfk/selfservice/commit/20229ab14252e20ffb3ac0e3e8b9d8f7f31819a3)
- move profile to path param [`a39cf75`](https://git.odit.services/lfk/selfservice/commit/a39cf75c7fc2e29a5a1a34a7db39355e59ce9476)
- sample toast integration [`ff89071`](https://git.odit.services/lfk/selfservice/commit/ff89071156325b40239d39bc5c21106cfb6448a0)
- ⚙ basic release config [`35b4796`](https://git.odit.services/lfk/selfservice/commit/35b4796f3794f332940becc25a617777216cc1f3)
- added more example laps [`c8bf0b2`](https://git.odit.services/lfk/selfservice/commit/c8bf0b2685f1e0db4df5e4ce405268865775eb41)
- Register - correct phone number validation [`72f6523`](https://git.odit.services/lfk/selfservice/commit/72f65234f09fc2b9c7179fa1b43e217fab59ae60)
- basic /register/:token route [`18d1dda`](https://git.odit.services/lfk/selfservice/commit/18d1ddacf7e99e67e6572533ebd9add3d0c0592f)
- i18n support for TOS checkbox [`d405557`](https://git.odit.services/lfk/selfservice/commit/d405557aafb205c958914c85bd69c364d107370c)
- 🌎 first translations for landing page [`f1c45df`](https://git.odit.services/lfk/selfservice/commit/f1c45dff11bfa088f04922f5cd2d8f4f5f873f2f)
- enable org registration [`7904151`](https://git.odit.services/lfk/selfservice/commit/7904151a52af1a1592706e6a468943c8e9c57518)
- working path params for org registration [`79d8545`](https://git.odit.services/lfk/selfservice/commit/79d8545ed6b2e0e64ca02194bc7009b48d2c8f2d)
- ⏫ dependency bump [`36baf17`](https://git.odit.services/lfk/selfservice/commit/36baf174a52e3a5ce21294f7d4e899d6893fd517)
- ✨ basic env.js file for api baseurl, documentserver_key [`747c1d2`](https://git.odit.services/lfk/selfservice/commit/747c1d2a906ed46325b999ebc0f079265ad81eeb)
- ✅ added zipcode validation [`b5eade9`](https://git.odit.services/lfk/selfservice/commit/b5eade9633fb88659cdfe882220db0579e39ada1)
- 🌟 added requirement stars to Register ui [`2822fcd`](https://git.odit.services/lfk/selfservice/commit/2822fcdeba3c5f559c165d512a2743949bf9c61e)
- ⏫ dependency bumps [`70ac314`](https://git.odit.services/lfk/selfservice/commit/70ac31401654c316a5c162dbc142421788fccee7)
- format lap times + only display valid scans [`ff1f43e`](https://git.odit.services/lfk/selfservice/commit/ff1f43e235ba318008b9c408853231c809760304)
- Register - basic email input validation [`0c006cc`](https://git.odit.services/lfk/selfservice/commit/0c006cc09c983041d906621677b4a7a32ca1bb22)
- Register - reactive address checkbox [`2b3f4ab`](https://git.odit.services/lfk/selfservice/commit/2b3f4abe1ac13318f5dee873b3454eb06577d1c5)
- use api response object properly [`c8d4621`](https://git.odit.services/lfk/selfservice/commit/c8d462100a660e8edfd3bc46bd0c8abbd002f661)
- added sponsorings tab [`e499357`](https://git.odit.services/lfk/selfservice/commit/e499357d6f151eaa8885ebfb78150e709ba4e753)
- 🌎 translation for lap times + distance [`cf5c279`](https://git.odit.services/lfk/selfservice/commit/cf5c279eacde5d62b62c030b21ba51caad56eac4)
- 🐞 fix for address submitting [`9d970b0`](https://git.odit.services/lfk/selfservice/commit/9d970b02b8a7ab54109fc3df2c652d01e0c99a8e)
- ⏫ version bump to 0.1.0 [`ace5c95`](https://git.odit.services/lfk/selfservice/commit/ace5c958f1ce63c1a91ae730b129de45ee9b975a)
- added empty state for scans [`49c3507`](https://git.odit.services/lfk/selfservice/commit/49c3507a71a6ca212b0b8ade2b1945ea90db96bc)
- ✨ Register - invalid phone number error state [`e633ad6`](https://git.odit.services/lfk/selfservice/commit/e633ad6cea5d1fe8596cb67319ca7da7548bc770)
- display user name in Profile title [`b30277b`](https://git.odit.services/lfk/selfservice/commit/b30277b617c1329702cb538b7e98d98929ca2346)
- ✨ Profile - basic parsing for hash based query params [`f8ceec4`](https://git.odit.services/lfk/selfservice/commit/f8ceec492d720ced359da9001088bf691cb8c28f)
- ✨ Profile - lap times table responsiveness [`503aafb`](https://git.odit.services/lfk/selfservice/commit/503aafba06d0d72fd980dedd9a56905c6673ce28)
- 🐞 Register - display error state for empty + required address inputs [`3404fc0`](https://git.odit.services/lfk/selfservice/commit/3404fc06bf8e7163319680991f8d98208869478c)
- fix fallback component routing for invalid env config [`56daa7c`](https://git.odit.services/lfk/selfservice/commit/56daa7c501e3f59e988f1912ed397e43d6311572)
- center empty state image [`cb3dc13`](https://git.odit.services/lfk/selfservice/commit/cb3dc13c8acfeea3fad9ba9d5f9f6eade3e2310d)
- routing import fix [`ac9f1ba`](https://git.odit.services/lfk/selfservice/commit/ac9f1ba2aca43d38d67604a4f6e77c5b29a670af)
- ✨ Register - disable register button when invalid phone number is set [`e858334`](https://git.odit.services/lfk/selfservice/commit/e8583340c761663067aa51a4937d0795b75d21f1)
- 🐞 Register - fix zipcode submitting [`43ee4b5`](https://git.odit.services/lfk/selfservice/commit/43ee4b51f9973a20fbb2f4f7774763f5c089b0e1)
- 🚀Bumped version to v0.0.1 [`c8db78d`](https://git.odit.services/lfk/selfservice/commit/c8db78df6ffd5b4bdeb53893f363659ae2eefd45)
- Register - style agb link with underline [`c8e1b5d`](https://git.odit.services/lfk/selfservice/commit/c8e1b5d80db0ce20043a5cda5588c995e71ee090)
- new favicon [`9958fed`](https://git.odit.services/lfk/selfservice/commit/9958fed045e683cbf25b51c66deec405fd342073)
- 🌎 added missing translations [`69db350`](https://git.odit.services/lfk/selfservice/commit/69db350461231123796bc24a2452e6af47a7c83f)

View File

@@ -2,5 +2,8 @@ version: "3"
services:
httpd:
build: .
#image: registry.odit.services/lfk/selfservice:dev
volumes:
- ./public/env.sample.js:/usr/share/nginx/html/env.js
ports:
- 4050:80

View File

@@ -1,44 +1,50 @@
{
"name": "@odit/lfk-selfservice",
"version": "0.1.0",
"scripts": {
"dev": "vite",
"build": "vite build",
"release": "release-it --only-version"
},
"dependencies": {
"got": "^11.8.2",
"marked": "^2.0.1",
"redaxios": "^0.4.1",
"toastify-js": "^1.9.3",
"validator": "^13.5.2",
"vue": "^3.0.5",
"vue-i18n": "^9.0.0",
"vue-phone-number-input": "^1.1.10",
"vue-router": "4",
"vue-toastification": "^2.0.0-rc.1"
},
"devDependencies": {
"@vitejs/plugin-vue": "^1.1.5",
"@vue/compiler-sfc": "^3.0.7",
"autoprefixer": "^10.2.5",
"postcss": "^8.2.8",
"release-it": "^14.5.0",
"tailwindcss": "^2.0.4",
"vite": "^2.1.2",
"vite-plugin-windicss": "^0.9.11"
},
"release-it": {
"git": {
"commit": true,
"requireCleanWorkingDir": false,
"commitMessage": "🚀Bumped version to v${version}",
"requireBranch": "dev",
"push": false,
"tag": false
},
"npm": {
"publish": false
}
}
}
{
"name": "@odit/lfk-selfservice",
"version": "0.3.0",
"scripts": {
"dev": "vite",
"build": "vite build",
"release": "release-it --only-version"
},
"dependencies": {
"marked": "2.0.1",
"redaxios": "0.4.1",
"toastify-js": "1.10.0",
"validator": "13.5.2",
"vue-i18n": "9.0.0",
"vue-toastification": "2.0.0-rc.1",
"vue": "3.0.9",
"vue-router": "4.0.5"
},
"devDependencies": {
"@tailwindcss/jit": "0.1.17",
"@tailwindcss/aspect-ratio": "0.2.0",
"@tailwindcss/forms": "0.3.2",
"@tailwindcss/line-clamp": "0.2.0",
"@tailwindcss/typography": "0.4.0",
"@vitejs/plugin-vue": "1.2.0",
"@vue/compiler-sfc": "3.0.9",
"autoprefixer": "10.2.5",
"tailwindcss": "2.0.4",
"release-it": "14.5.0",
"vite": "2.1.3"
},
"release-it": {
"git": {
"commit": true,
"requireCleanWorkingDir": false,
"commitMessage": "🚀Bumped version to v${version}",
"requireBranch": "dev",
"push": false,
"tag": true,
"tagName": null,
"tagAnnotation": "v${version}"
},
"npm": {
"publish": false
},
"hooks": {
"after:bump": "npx auto-changelog --commit-limit false -p -u --hide-credit && git add CHANGELOG.md && node order_i18n.js && git add src/locales"
}
}
}

View File

@@ -3,6 +3,8 @@ const config = {
documentserver_key: '',
// required
baseurl: '',
// optional, will fallback to /selfservice
baseurl_selfservice: '/selfservice',
// optional, will fallback to /imprint
url_imprint: '',
// optional, will fallback to /privacy

View File

@@ -1,7 +1,9 @@
<template>
<router-view></router-view>
<main>
<router-view></router-view>
</main>
</template>
<script setup>
//
config.baseurl_selfservice = (config.baseurl_selfservice || "/selfservice");
</script>

14
src/language.js Normal file
View File

@@ -0,0 +1,14 @@
import * as keys_en from './locales/en.json';
import * as keys_de from './locales/de.json';
import { createI18n } from 'vue-i18n';
const messages = {
en: keys_en,
de: keys_de
};
const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
export const i18n = createI18n({
locale: browserlocale,
fallbackLocale: 'en',
messages
});

View File

@@ -17,6 +17,7 @@
"mittelname": "Middlename",
"nachname": "Lastname",
"no_laps_scans_were_recorded_yet": "No laps/ scans were recorded yet...",
"organization": "Organization",
"ort": "City",
"phone_number": "Phone Number",
"please_provide_a_valid_zipcode": "Please provide a valid zipcode...",
@@ -37,5 +38,6 @@
"this_is_not_a_valid_international_phone_number": "This is not a valid international phone number",
"tos": "Terms of Service",
"view_my_data": "View my data",
"vorname": "Firstname"
"vorname": "Firstname",
"you_have_been_registered": "You have been registered!"
}

View File

@@ -1,49 +1,21 @@
import { createApp } from 'vue';
import { createWebHistory, createRouter } from 'vue-router';
import App from './App.vue';
import { createI18n } from 'vue-i18n';
import Toast from 'vue-toastification';
import 'windi.css';
import './tailwind.css';
import 'toastify-js/src/toastify.css';
import 'vue-toastification/dist/index.css';
import * as keys_en from './locales/en.json';
import * as keys_de from './locales/de.json';
import App from './App.vue';
import { routes } from './routes.js';
import { createRouter, createWebHistory } from 'vue-router';
import { i18n } from './language';
import Toast from 'vue-toastification';
const messages = {
en: keys_en,
de: keys_de
};
const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
const i18n = createI18n({
locale: browserlocale,
fallbackLocale: 'en',
messages
});
const app = createApp(App);
// ---------------
const EnvError = import('./components/EnvError.vue');
const Home = import('./components/Home.vue');
const Imprint = import('./components/Imprint.vue');
const Privacy = import('./components/Privacy.vue');
const Register = () => import('./components/Register.vue');
const Profile = () => import('./components/Profile.vue');
//
let routes = [ { path: '/:pathMatch(.*)*', component: EnvError } ];
if (typeof config !== 'undefined') {
if (config.baseurl && config.documentserver_key) {
routes = [
{ path: '/', component: Home },
{ path: '/imprint', component: Imprint },
{ path: '/privacy', component: Privacy },
{ path: '/register', component: Register },
{ path: '/register/:token', component: Register, props: true },
{ path: '/profile/:token', component: Profile, props: true }
];
}
}
const router = createRouter({
history: createWebHistory(),
routes
});
// ---------------
createApp(App).use(Toast).use(i18n).use(router).mount('#app');
app.use(router);
app.use(i18n);
app.use(Toast);
app.mount('#app');

16
src/routes.js Normal file
View File

@@ -0,0 +1,16 @@
import EnvError from './components/EnvError.vue';
import Home from './views/Home.vue';
import Imprint from './views/Imprint.vue';
import Privacy from './views/Privacy.vue';
import Register from './views/Register.vue';
import Profile from './views/Profile.vue';
/** @type {import('vue-router').RouterOptions['routes']} */
export const routes = [
{ path: '/', component: Home },
{ path: '/imprint', component: Imprint },
{ path: '/privacy', component: Privacy },
{ path: '/register', component: Register },
{ path: '/register/:token', component: Register, props: true },
{ path: '/profile/:token', component: Profile, props: true }
];

3
src/tailwind.css Normal file
View File

@@ -0,0 +1,3 @@
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';

View File

@@ -25,6 +25,5 @@
</template>
<script setup>
import LoginForm from "./LoginForm.vue";
import Footer from "./Footer.vue";
import Footer from "@/components/Footer.vue";
</script>

View File

@@ -10,7 +10,7 @@
</div>
</section>
</template>
<style src="./simple.css">
<style src="../simple.css">
</style>
<script>
import marked from "marked";

View File

@@ -10,7 +10,7 @@
</div>
</section>
</template>
<style src="./simple.css">
<style src="../simple.css">
</style>
<script>
import marked from "marked";

View File

@@ -165,13 +165,10 @@
</template>
<script setup>
import { ref, reactive } from "vue";
import { reactive } from "vue";
import { useToast } from "vue-toastification";
import axios from "redaxios";
// import isEmail from 'validator/es/lib/isEmail';
// import isMobilePhone from 'validator/es/lib/isMobilePhone';
// import isPostalCode from 'validator/es/lib/isPostalCode';
//
const state = reactive({
phone: "",
email: "",
@@ -187,7 +184,7 @@ const props = defineProps({
token: String
})
const accesstoken = atob(props.token);
axios.get(`${config.baseurl}api/runners/me/${accesstoken}`)
axios.get(`${config.baseurl_selfservice}/api/runners/me/${accesstoken}`)
.then(({ data }) => {
state.phone = data.phone;
state.email = data.email;

View File

@@ -9,8 +9,22 @@
<p
v-if="state.org_name !== ''"
class="mx-auto leading-relaxed text-base text-center"
>Organization: {{ state.org_name }}</p>
<p v-else class="mx-auto leading-relaxed text-base text-center">Bürgerlauf</p>
>{{ $t('organization') }}: {{ state.org_name }}</p>
<p
v-if="state.org_name !== '' && state.org_teams.length > 0"
class="mx-auto leading-relaxed text-base text-center"
>Team:</p>
<select
v-model="org_team"
v-if="state.org_name !== '' && state.org_teams.length > 0"
class="w-full border bg-white rounded px-3 py-2 outline-none block mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
>
<option v-for="t in state.org_teams" :key="t.id" :value="t.id">{{ t.name }}</option>
</select>
<p
v-if="state.org_name === ''"
class="mx-auto leading-relaxed text-base text-center"
>Bürgerlauf</p>
<div class="mt-4">
<label for="first_name" class="block font-medium">
{{ $t('vorname') }}
@@ -247,6 +261,8 @@ import isEmail from 'validator/es/lib/isEmail';
import isMobilePhone from 'validator/es/lib/isMobilePhone';
import isPostalCode from 'validator/es/lib/isPostalCode';
import { useToast } from "vue-toastification";
// import { router } from '../router';
import { i18n } from '../language';
const props = defineProps({
token: String
@@ -256,6 +272,8 @@ if (props.token) {
axios.get(`${config.baseurl}api/organizations/selfservice/${props.token}`)
.then(({ data }) => {
state.org_name = data.name;
state.org_teams = data.teams;
org_team.value = data.teams[0]?.id;
})
.catch((error) => {
console.log(error);
@@ -266,9 +284,11 @@ let userdetails = ref({ firstname: "", lastname: "", middlename: "", mail: "", p
let provide_address = ref(false);
let agb_accepted = ref(false);
let data_confirmed = ref(false);
let org_team = ref("");
//
const state = reactive({
org_name: "",
org_teams: [],
submit_enabled: computed(() => agb_accepted.value === true && data_confirmed.value === true && (isMobilePhone(userdetails.value.phone) || !userdetails.value.phone.trim()) && isEmail(userdetails.value.mail)
&& userdetails.value.firstname
&& userdetails.value.lastname && (provide_address.value === false || provide_address.value === true && (userdetails.value.address.street.trim() && userdetails.value.address.city.trim() && isPostalCode(userdetails.value.address.zipcode, "DE"))))
@@ -297,6 +317,9 @@ function login() {
country: "DE",
}
}
if (state.org_name !== '' && state.org_teams.length > 0) {
postdata.team = org_team.value;
}
toast("registration in progress...");
let url = `${config.baseurl}api/runners/register`;
if (props.token) {
@@ -305,9 +328,7 @@ function login() {
axios.post(url, postdata)
.then(({ data }) => {
const token = btoa(data.token);
location.replace("../profile/" + token)
//
toast.success("You have been registered!");
// router.push(`${config.baseurl_selfservice}/profile/${token}`);
})
.catch((error) => {
console.log(error);

View File

@@ -1,9 +1,12 @@
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import WindiCSS from 'vite-plugin-windicss';
import path from 'path';
/**
* @type {import('vite').UserConfig}
*/
export default {
plugins: [ vue(), WindiCSS() ]
};
export default defineConfig({
plugins: [ vue() ],
resolve: {
alias: {
'@': path.resolve(__dirname, '/src')
}
}
});