Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1a3c9edeb3 | |||
| fd6bd88d42 | |||
| 544542ac1e | |||
| 67c0dae537 | |||
| cd6a139daf | |||
| ec44a8b63e | |||
| 676f0e8339 | |||
| 27fd8f9a91 | |||
| bc1c824d9f | |||
| b8c1b8c43b | |||
| 713db5e1e8 | |||
| 0795ea318d | |||
| bd512e0651 | |||
| cf0437c3a7 | |||
| 8a24505d64 | |||
| 175bb168ae | |||
| 9751c2e9fd | |||
| 7440fc404e | |||
| ba3dedb164 | |||
| d710d4b68f | |||
| 125fcdd8cf | |||
| 8773239244 | |||
| 85b0549a11 | |||
| fc04e71311 | |||
| 619078cce8 | |||
| 30f3a51ef8 | |||
| 60dea511b9 | |||
| 863568d7d0 | |||
| 555823954a | |||
| 1c19657935 |
241
.drone.yml
241
.drone.yml
@@ -1,109 +1,134 @@
|
|||||||
---
|
---
|
||||||
kind: secret
|
kind: secret
|
||||||
name: docker_username
|
name: docker_username
|
||||||
get:
|
get:
|
||||||
path: odit-registry-builder
|
path: odit-registry-builder
|
||||||
name: username
|
name: username
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: secret
|
kind: secret
|
||||||
name: docker_password
|
name: docker_password
|
||||||
get:
|
get:
|
||||||
path: odit-registry-builder
|
path: odit-registry-builder
|
||||||
name: password
|
name: password
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: secret
|
kind: secret
|
||||||
name: git_ssh
|
name: git_ssh
|
||||||
get:
|
get:
|
||||||
path: odit-git-bot
|
path: odit-git-bot
|
||||||
name: sshkey
|
name: sshkey
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: kubernetes
|
type: kubernetes
|
||||||
name: build:dev
|
name: build:dev
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# - name: run full license export
|
# - name: run full license export
|
||||||
# depends_on: ["clone"]
|
# depends_on: ["clone"]
|
||||||
# image: node:alpine
|
# image: node:alpine
|
||||||
# commands:
|
# commands:
|
||||||
# - yarn
|
# - yarn
|
||||||
# - yarn licenses:export
|
# - yarn licenses:export
|
||||||
# - name: push new licenses file to repo
|
# - name: push new licenses file to repo
|
||||||
# depends_on: ["run full license export"]
|
# depends_on: ["run full license export"]
|
||||||
# image: appleboy/drone-git-push
|
# image: appleboy/drone-git-push
|
||||||
# settings:
|
# settings:
|
||||||
# branch: dev
|
# branch: dev
|
||||||
# commit: true
|
# commit: true
|
||||||
# commit_message: new license file version [CI SKIP]
|
# commit_message: new license file version [CI SKIP]
|
||||||
# author_email: bot@odit.services
|
# author_email: bot@odit.services
|
||||||
# remote: git@git.odit.services:lfk/selfservice.git
|
# remote: git@git.odit.services:lfk/selfservice.git
|
||||||
# ssh_key:
|
# ssh_key:
|
||||||
# from_secret: git_ssh
|
# from_secret: git_ssh
|
||||||
- name: build dev
|
- name: build dev
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
depends_on: [clone]
|
depends_on: [clone]
|
||||||
settings:
|
settings:
|
||||||
username:
|
username:
|
||||||
from_secret: docker_username
|
from_secret: docker_username
|
||||||
password:
|
password:
|
||||||
from_secret: docker_password
|
from_secret: docker_password
|
||||||
repo: registry.odit.services/lfk/selfservice
|
repo: registry.odit.services/lfk/selfservice
|
||||||
tags:
|
tags:
|
||||||
- dev
|
- dev
|
||||||
registry: registry.odit.services
|
registry: registry.odit.services
|
||||||
mtu: 1000
|
mtu: 1000
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- dev
|
- dev
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: kubernetes
|
type: kubernetes
|
||||||
name: build:latest
|
name: build:testing
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build latest
|
- name: build testing
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
depends_on: [clone]
|
depends_on: [clone]
|
||||||
settings:
|
settings:
|
||||||
username:
|
username:
|
||||||
from_secret: docker_username
|
from_secret: docker_username
|
||||||
password:
|
password:
|
||||||
from_secret: docker_password
|
from_secret: docker_password
|
||||||
repo: registry.odit.services/lfk/selfservice
|
repo: registry.odit.services/lfk/selfservice
|
||||||
tags:
|
tags:
|
||||||
- latest
|
- testing
|
||||||
registry: registry.odit.services
|
registry: registry.odit.services
|
||||||
mtu: 1000
|
mtu: 1000
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- main
|
- bugfix/31-env_linking
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: kubernetes
|
type: kubernetes
|
||||||
name: build:tags
|
name: build:latest
|
||||||
steps:
|
|
||||||
- name: build $DRONE_TAG
|
steps:
|
||||||
image: plugins/docker
|
- name: build latest
|
||||||
depends_on: [clone]
|
image: plugins/docker
|
||||||
settings:
|
depends_on: [clone]
|
||||||
username:
|
settings:
|
||||||
from_secret: docker_username
|
username:
|
||||||
password:
|
from_secret: docker_username
|
||||||
from_secret: docker_password
|
password:
|
||||||
repo: registry.odit.services/lfk/selfservice
|
from_secret: docker_password
|
||||||
tags:
|
repo: registry.odit.services/lfk/selfservice
|
||||||
- '${DRONE_TAG}'
|
tags:
|
||||||
registry: registry.odit.services
|
- latest
|
||||||
mtu: 1000
|
registry: registry.odit.services
|
||||||
trigger:
|
mtu: 1000
|
||||||
event:
|
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
|
- tag
|
||||||
36
CHANGELOG.md
36
CHANGELOG.md
@@ -2,9 +2,45 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
|
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
|
||||||
|
|
||||||
|
#### [0.5.1](https://git.odit.services/lfk/selfservice/compare/0.5.0...0.5.1)
|
||||||
|
|
||||||
|
- Merge pull request 'feature/30-profile-forgot-link' (#35) from feature/30-profile-forgot-link into dev [`#30`](https://git.odit.services/lfk/selfservice/issues/30)
|
||||||
|
- Merge pull request 'Env linking bugfix bugfix/31-env_linking' (#37) from bugfix/31-env_linking into dev [`fd6bd88`](https://git.odit.services/lfk/selfservice/commit/fd6bd88d4238cca2a2755ab1bc51ff7870bef947)
|
||||||
|
- basic ProfileNone layout [`863568d`](https://git.odit.services/lfk/selfservice/commit/863568d7d0e132dd1b7d13a2cb1afe8db02c472c)
|
||||||
|
- add forgot view + action [`30f3a51`](https://git.odit.services/lfk/selfservice/commit/30f3a51ef82ad966225abc6fd95508af56106924)
|
||||||
|
- Added building pipeline for current branch [`544542a`](https://git.odit.services/lfk/selfservice/commit/544542ac1e9717506676c1495c2d530eca833d31)
|
||||||
|
- Removed useless code [`713db5e`](https://git.odit.services/lfk/selfservice/commit/713db5e1e8fed5f38b3a5d19cfe870eff16eeda1)
|
||||||
|
- Now manually linking env and main [`67c0dae`](https://git.odit.services/lfk/selfservice/commit/67c0dae537df5842e89c0ed040c0fef02df01b69)
|
||||||
|
- Fixed post url and body [`0795ea3`](https://git.odit.services/lfk/selfservice/commit/0795ea318d80b764eee89462ad87da86aa7ce0ae)
|
||||||
|
- 🐞 fix home routes [`60dea51`](https://git.odit.services/lfk/selfservice/commit/60dea511b9fbb6d206ee531618e788e686fa6b5a)
|
||||||
|
|
||||||
|
#### [0.5.0](https://git.odit.services/lfk/selfservice/compare/0.4.5...0.5.0)
|
||||||
|
|
||||||
|
> 1 April 2021
|
||||||
|
|
||||||
|
- 🚀Bumped version to v0.5.0 [`676f0e8`](https://git.odit.services/lfk/selfservice/commit/676f0e83393be823ccb612846650a9a98bf7f0b3)
|
||||||
|
- Revert "🚀Bumped version to v0.5.0" [`27fd8f9`](https://git.odit.services/lfk/selfservice/commit/27fd8f9a9106294ae6522f2fff42dfbf84f06f82)
|
||||||
|
- 🚀Bumped version to v0.5.0 [`b8c1b8c`](https://git.odit.services/lfk/selfservice/commit/b8c1b8c43b6d050d239d836bbb6ace2504fdcd21)
|
||||||
|
- Merge pull request 'Runner self deletion feature/21-user_deletion' (#36) from feature/21-user_deletion into dev [`bd512e0`](https://git.odit.services/lfk/selfservice/commit/bd512e0651363f1f2543136d354d9ada9990d83d)
|
||||||
|
- Sorted translations [`cf0437c`](https://git.odit.services/lfk/selfservice/commit/cf0437c3a738d42154ed1336d6020b88661b462f)
|
||||||
|
- Added translations 🌍 [`ba3dedb`](https://git.odit.services/lfk/selfservice/commit/ba3dedb1643e2d5f1c2ab92224a11c1c8a82ae71)
|
||||||
|
- Added confirmation for profile deletion [`8773239`](https://git.odit.services/lfk/selfservice/commit/8773239244c064a888a4ad1f66298f2811fcc2ae)
|
||||||
|
- Added confirmation for profile deletion [`85b0549`](https://git.odit.services/lfk/selfservice/commit/85b0549a11927758c579cd08bc8015ae00105a84)
|
||||||
|
- Updated icons [`d710d4b`](https://git.odit.services/lfk/selfservice/commit/d710d4b68ff0e9515eb4a0a4ea0def7b3552e599)
|
||||||
|
- Added data deletion button [`619078c`](https://git.odit.services/lfk/selfservice/commit/619078cce8281bef520b05bf3e735c26d0752375)
|
||||||
|
- Content i18n run 🌍 [`175bb16`](https://git.odit.services/lfk/selfservice/commit/175bb168ae134009c26072b76cd74948aecc189f)
|
||||||
|
- Implemented basic deletion [`fc04e71`](https://git.odit.services/lfk/selfservice/commit/fc04e713110df161c481cb9a3b64e78b30d4f79b)
|
||||||
|
- Added translations [`8a24505`](https://git.odit.services/lfk/selfservice/commit/8a24505d64832001d6a44800f61f7e0705892046)
|
||||||
|
- Updated toasts and removed useless code [`7440fc4`](https://git.odit.services/lfk/selfservice/commit/7440fc404ea2a8e68e7ce896e8369700069b2021)
|
||||||
|
- Added error toast [`9751c2e`](https://git.odit.services/lfk/selfservice/commit/9751c2e9fd99650efab4d5edce3909c907ea9391)
|
||||||
|
- Merge pull request 'RELEASE 0.3.0' (#25) from dev into main [`1c19657`](https://git.odit.services/lfk/selfservice/commit/1c196579356a70f9d761f7f69d79033157570076)
|
||||||
|
|
||||||
#### [0.4.5](https://git.odit.services/lfk/selfservice/compare/0.4.4...0.4.5)
|
#### [0.4.5](https://git.odit.services/lfk/selfservice/compare/0.4.4...0.4.5)
|
||||||
|
|
||||||
|
> 1 April 2021
|
||||||
|
|
||||||
- Merge pull request 'feature/32-registration-language' (#33) from feature/32-registration-language into dev [`#32`](https://git.odit.services/lfk/selfservice/issues/32)
|
- Merge pull request 'feature/32-registration-language' (#33) from feature/32-registration-language into dev [`#32`](https://git.odit.services/lfk/selfservice/issues/32)
|
||||||
|
- 🚀Bumped version to v0.4.5 [`efcb7f5`](https://git.odit.services/lfk/selfservice/commit/efcb7f56745aa3f347eb98399ee1bcb68a157e9d)
|
||||||
- 🐞 fix /profile/ router on register [`52a0828`](https://git.odit.services/lfk/selfservice/commit/52a082841d47d1ed9c0997776a0784285a3f6ba7)
|
- 🐞 fix /profile/ router on register [`52a0828`](https://git.odit.services/lfk/selfservice/commit/52a082841d47d1ed9c0997776a0784285a3f6ba7)
|
||||||
- pass browser locale to api/runners/register/ [`e3f7497`](https://git.odit.services/lfk/selfservice/commit/e3f7497af5860b2472b6cdfd33090b9d68b9fb49)
|
- pass browser locale to api/runners/register/ [`e3f7497`](https://git.odit.services/lfk/selfservice/commit/e3f7497af5860b2472b6cdfd33090b9d68b9fb49)
|
||||||
|
|
||||||
|
|||||||
32
index.html
32
index.html
@@ -1,17 +1,17 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="de">
|
<html lang="de">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Lauf für Kaya! - Selfservice</title>
|
<title>Lauf für Kaya! - Selfservice</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="dark:bg-gray-900 text-black dark:text-white p-0">
|
<body class="dark:bg-gray-900 text-black dark:text-white p-0">
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script src="/env.js"></script>
|
<script src="./env.js"></script>
|
||||||
<script defer type="module" src="/src/main.js"></script>
|
<script defer type="module" src="./src/main.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@odit/lfk-selfservice",
|
"name": "@odit/lfk-selfservice",
|
||||||
"version": "0.4.5",
|
"version": "0.5.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
{
|
{
|
||||||
|
"access_is_only_provided_via_your_email_link": "Der Zugang erfolgt nur über den Link, den Sie bei der Registrierung erhalten haben.",
|
||||||
"already_have_an_account": "Sie haben bereits einen Account?",
|
"already_have_an_account": "Sie haben bereits einen Account?",
|
||||||
"apartment_suite_etc": "Addresszeile 2",
|
"apartment_suite_etc": "Addresszeile 2",
|
||||||
|
"cancel_keep_my_data": "Abbrechen, meine Daten behalten",
|
||||||
"configuration_error": "Konfigurationsfehler",
|
"configuration_error": "Konfigurationsfehler",
|
||||||
|
"confirm_delete_all_of_my_data": "Bestätigung, meine gesamten Daten löschen",
|
||||||
"confirm_personal_data": "Hiermit bestätige ich die Vollständigkeit und Richtigkeit der oben genannten Angaben",
|
"confirm_personal_data": "Hiermit bestätige ich die Vollständigkeit und Richtigkeit der oben genannten Angaben",
|
||||||
|
"delete-all-of-my-data": "Meine gesamten Daten löschen",
|
||||||
|
"delete_my_data": "Meine Daten löschen",
|
||||||
|
"deletion_in_progress": "Daten werden gelöscht...",
|
||||||
"distance": "Distanz",
|
"distance": "Distanz",
|
||||||
"download_certificate": "Urkunde herunterladen",
|
"download_certificate": "Urkunde herunterladen",
|
||||||
"e_mail_adress": "E-Mail Adresse",
|
"e_mail_adress": "E-Mail Adresse",
|
||||||
@@ -13,10 +19,13 @@
|
|||||||
"imprint": "Impressum",
|
"imprint": "Impressum",
|
||||||
"lap_time": "Rundenzeit",
|
"lap_time": "Rundenzeit",
|
||||||
"lap_times": "Rundenzeiten",
|
"lap_times": "Rundenzeiten",
|
||||||
|
"lost_your_registration_mail": "Haben Sie Ihre Registrierungsmail verloren?",
|
||||||
"main_page_text": "Hier können Sie sich für den Lauf Für Kaya! registrieren oder ihr Läuferprofil verwalten.",
|
"main_page_text": "Hier können Sie sich für den Lauf Für Kaya! registrieren oder ihr Läuferprofil verwalten.",
|
||||||
"mittelname": "Mittelname",
|
"mittelname": "Mittelname",
|
||||||
"nachname": "Nachname",
|
"nachname": "Nachname",
|
||||||
"no_laps_scans_were_recorded_yet": "Es wurden noch keine Runden / Scans aufgezeichnet ...",
|
"no_laps_scans_were_recorded_yet": "Es wurden noch keine Runden / Scans aufgezeichnet ...",
|
||||||
|
"not_registered_yet": "Noch nicht registriert?",
|
||||||
|
"organization": "Organisation",
|
||||||
"ort": "Ort",
|
"ort": "Ort",
|
||||||
"phone_number": "Telefonnummer",
|
"phone_number": "Telefonnummer",
|
||||||
"please_provide_a_valid_zipcode": "Bitte geben Sie eine gültige Postleitzahl an...",
|
"please_provide_a_valid_zipcode": "Bitte geben Sie eine gültige Postleitzahl an...",
|
||||||
@@ -29,7 +38,9 @@
|
|||||||
"register_now": "Jetzt für den Lauf für Kaya! 2021 registrieren."
|
"register_now": "Jetzt für den Lauf für Kaya! 2021 registrieren."
|
||||||
},
|
},
|
||||||
"register_now": "Jetzt registrieren!",
|
"register_now": "Jetzt registrieren!",
|
||||||
|
"register_now_small": "Jetzt registrieren",
|
||||||
"registrieren": "Registrieren",
|
"registrieren": "Registrieren",
|
||||||
|
"resend_the_registration_mail": "Registrierungsmail erneut versenden",
|
||||||
"save_changes": "Änderungen speichern",
|
"save_changes": "Änderungen speichern",
|
||||||
"sponsoring": "Sponsoring",
|
"sponsoring": "Sponsoring",
|
||||||
"strasse": "Straße",
|
"strasse": "Straße",
|
||||||
@@ -37,5 +48,7 @@
|
|||||||
"this_is_not_a_valid_international_phone_number": "Dies ist keine gültige internationale Telefonnummer",
|
"this_is_not_a_valid_international_phone_number": "Dies ist keine gültige internationale Telefonnummer",
|
||||||
"tos": "AGBs",
|
"tos": "AGBs",
|
||||||
"view_my_data": "Meine Läuferdaten einsehen",
|
"view_my_data": "Meine Läuferdaten einsehen",
|
||||||
"vorname": "Vorname"
|
"vorname": "Vorname",
|
||||||
|
"you_have_been_registered": "Sie wurden registriert!",
|
||||||
|
"you_have_not_provided_a_valid_access_key": "Sie haben keinen gültigen Zugangsschlüssel angegeben..."
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,14 @@
|
|||||||
{
|
{
|
||||||
|
"access_is_only_provided_via_your_email_link": "Access is only provided via the link you received upon registration.",
|
||||||
|
"all_data_deleted": "All Data deleted!",
|
||||||
"already_have_an_account": "Already have an account?",
|
"already_have_an_account": "Already have an account?",
|
||||||
"apartment_suite_etc": "Apartment, suite, etc.",
|
"apartment_suite_etc": "Apartment, suite, etc.",
|
||||||
|
"cancel_keep_my_data": "Cancel, keep my data",
|
||||||
"configuration_error": "Configuration error",
|
"configuration_error": "Configuration error",
|
||||||
|
"confirm_delete_all_of_my_data": "Confirm, delete all of my data",
|
||||||
"confirm_personal_data": "I hereby confirm that the above information is complete and correct",
|
"confirm_personal_data": "I hereby confirm that the above information is complete and correct",
|
||||||
|
"delete_my_data": "Delete my data",
|
||||||
|
"deletion_in_progress": "Deletion in progress...",
|
||||||
"distance": "Distance",
|
"distance": "Distance",
|
||||||
"download_certificate": "Download certificate",
|
"download_certificate": "Download certificate",
|
||||||
"e_mail_adress": "mail address",
|
"e_mail_adress": "mail address",
|
||||||
@@ -13,10 +19,12 @@
|
|||||||
"imprint": "Imprint",
|
"imprint": "Imprint",
|
||||||
"lap_time": "Lap time",
|
"lap_time": "Lap time",
|
||||||
"lap_times": "Lap times",
|
"lap_times": "Lap times",
|
||||||
|
"lost_your_registration_mail": "Lost your registration mail?",
|
||||||
"main_page_text": "Here you can register for the Lauf Für Kaya! or manage your runner profile.",
|
"main_page_text": "Here you can register for the Lauf Für Kaya! or manage your runner profile.",
|
||||||
"mittelname": "Middlename",
|
"mittelname": "Middlename",
|
||||||
"nachname": "Lastname",
|
"nachname": "Lastname",
|
||||||
"no_laps_scans_were_recorded_yet": "No laps/ scans were recorded yet...",
|
"no_laps_scans_were_recorded_yet": "No laps/ scans were recorded yet...",
|
||||||
|
"not_registered_yet": "Not registered yet?",
|
||||||
"organization": "Organization",
|
"organization": "Organization",
|
||||||
"ort": "City",
|
"ort": "City",
|
||||||
"phone_number": "Phone Number",
|
"phone_number": "Phone Number",
|
||||||
@@ -30,7 +38,9 @@
|
|||||||
"register_now": "Register now for Lauf für Kaya! 2021."
|
"register_now": "Register now for Lauf für Kaya! 2021."
|
||||||
},
|
},
|
||||||
"register_now": "Register now!",
|
"register_now": "Register now!",
|
||||||
|
"register_now_small": "Register now",
|
||||||
"registrieren": "Register Now",
|
"registrieren": "Register Now",
|
||||||
|
"resend_the_registration_mail": "Resend the registration mail",
|
||||||
"save_changes": "Save changes",
|
"save_changes": "Save changes",
|
||||||
"sponsoring": "Sponsoring",
|
"sponsoring": "Sponsoring",
|
||||||
"strasse": "Street/ Block",
|
"strasse": "Street/ Block",
|
||||||
@@ -39,5 +49,6 @@
|
|||||||
"tos": "Terms of Service",
|
"tos": "Terms of Service",
|
||||||
"view_my_data": "View my data",
|
"view_my_data": "View my data",
|
||||||
"vorname": "Firstname",
|
"vorname": "Firstname",
|
||||||
"you_have_been_registered": "You have been registered!"
|
"you_have_been_registered": "You have been registered!",
|
||||||
|
"you_have_not_provided_a_valid_access_key": "You have not provided a valid access key..."
|
||||||
}
|
}
|
||||||
@@ -11,10 +11,10 @@
|
|||||||
<div class="mt-6 sm:flex place-content-center">
|
<div class="mt-6 sm:flex place-content-center">
|
||||||
<a
|
<a
|
||||||
class="w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-gray-900 bg-white shadow-sm hover:text-gray-600 focus:outline-none focus:text-gray-600 transition ease-in-out duration-150 xl:text-lg xl:py-4"
|
class="w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-gray-900 bg-white shadow-sm hover:text-gray-600 focus:outline-none focus:text-gray-600 transition ease-in-out duration-150 xl:text-lg xl:py-4"
|
||||||
href="./register"
|
href="./register/"
|
||||||
>{{ $t('register_now') }}</a>
|
>{{ $t('register_now') }}</a>
|
||||||
<a
|
<a
|
||||||
href="./profile"
|
href="./profile/"
|
||||||
class="mt-4 sm:ml-4 sm:mt-0 w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-white bg-gray-800 shadow-sm hover:bg-gray-700 focus:outline-none focus:bg-gray-700 transition ease-in-out duration-150 xl:text-lg xl:py-4"
|
class="mt-4 sm:ml-4 sm:mt-0 w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-white bg-gray-800 shadow-sm hover:bg-gray-700 focus:outline-none focus:bg-gray-700 transition ease-in-out duration-150 xl:text-lg xl:py-4"
|
||||||
>{{ $t('view_my_data') }}</a>
|
>{{ $t('view_my_data') }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -12,29 +12,108 @@
|
|||||||
<p class="text-md whitespace-nowrap">{{ state.group }}</p>
|
<p class="text-md whitespace-nowrap">{{ state.group }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="inline-flex md:ml-auto md:mr-0 mx-auto items-center">
|
<div class="inline-flex md:ml-auto md:mr-0 mx-auto items-center">
|
||||||
<button
|
<div v-if="(state.delete_active === false)">
|
||||||
type="button"
|
<button
|
||||||
class="focus:border-black focus:ring-2 focus:ring-black text-white text-sm py-2.5 px-5 rounded-md bg-blue-500 hover:bg-blue-600 hover:shadow-lg"
|
type="button"
|
||||||
>
|
class="focus:border-black focus:ring-2 focus:ring-black text-white text-sm py-2.5 px-5 rounded-md bg-blue-500 hover:bg-blue-600 hover:shadow-lg"
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="2"
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
class="feather feather-download"
|
|
||||||
style="display: inline;height: 1rem;vertical-align: sub;"
|
|
||||||
>
|
>
|
||||||
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
|
<svg
|
||||||
<polyline points="7 10 12 15 17 10" />
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
<line x1="12" y1="15" x2="12" y2="3" />
|
width="24"
|
||||||
</svg>
|
height="24"
|
||||||
{{ $t('download_certificate') }}
|
viewBox="0 0 24 24"
|
||||||
</button>
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
class="feather feather-download"
|
||||||
|
style="display: inline;height: 1rem;vertical-align: sub;"
|
||||||
|
>
|
||||||
|
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
|
||||||
|
<polyline points="7 10 12 15 17 10" />
|
||||||
|
<line x1="12" y1="15" x2="12" y2="3" />
|
||||||
|
</svg>
|
||||||
|
{{ $t('download_certificate') }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="focus:border-black focus:ring-2 focus:ring-black text-white text-sm py-2.5 px-5 rounded-md bg-red-600 hover:bg-red-700 hover:shadow-lg ml-1"
|
||||||
|
@click="() => { state.delete_active = true }"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="none"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
class="feather feather-download"
|
||||||
|
style="display: inline;height: 1rem;vertical-align: sub;"
|
||||||
|
>
|
||||||
|
<path d="M0 0h24v24H0z" />
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M17 6h5v2h-2v13a1 1 0 01-1 1H5a1 1 0 01-1-1V8H2V6h5V3a1 1 0 011-1h8a1 1 0 011 1v3zm1 2H6v12h12V8zm-5 6l2 2-1 1-2-2-2 2-1-1 2-2-2-2 1-1 2 2 2-2 1 1-2 2zM9 4v2h6V4H9z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
{{ $t('delete_my_data') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div v-if="(state.delete_active === true)">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="focus:border-black focus:ring-2 focus:ring-black text-white text-sm py-2.5 px-5 rounded-md bg-blue-500 hover:bg-blue-600 hover:shadow-lg"
|
||||||
|
@click="() => { state.delete_active = false }"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="none"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
class="feather feather-download"
|
||||||
|
style="display: inline;height: 1rem;vertical-align: sub;"
|
||||||
|
>
|
||||||
|
<path fill="none" d="M0 0h24v24H0z" />
|
||||||
|
<path fill="currentColor" d="M12 11l5-5 1 1-5 5 5 5-1 1-5-5-5 5-1-1 5-5-5-5 1-1z" />
|
||||||
|
</svg>
|
||||||
|
{{ $t('cancel_keep_my_data') }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="focus:border-black focus:ring-2 focus:ring-black text-white text-sm py-2.5 px-5 rounded-md bg-red-600 hover:bg-red-700 hover:shadow-lg ml-1"
|
||||||
|
@click="delete_me"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="none"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
class="feather feather-download"
|
||||||
|
style="display: inline;height: 1rem;vertical-align: sub;"
|
||||||
|
>
|
||||||
|
<path d="M0 0h24v24H0z" />
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M17 6h5v2h-2v13a1 1 0 01-1 1H5a1 1 0 01-1-1V8H2V6h5V3a1 1 0 011-1h8a1 1 0 011 1v3zm1 2H6v12h12V8zm-5 6l2 2-1 1-2-2-2 2-1-1 2-2-2-2 1-1 2 2 2-2 1 1-2 2zM9 4v2h6V4H9z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
{{ $t('confirm_delete_all_of_my_data') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -178,6 +257,7 @@ const state = reactive({
|
|||||||
scans: [],
|
scans: [],
|
||||||
group: "",
|
group: "",
|
||||||
activetab: "profile",
|
activetab: "profile",
|
||||||
|
delete_active: false,
|
||||||
})
|
})
|
||||||
const toast = useToast();
|
const toast = useToast();
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@@ -206,4 +286,16 @@ axios.get(`${config.baseurl}api/runners/me/${accesstoken}/scans`)
|
|||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
toast.error("An error occured while loading your profile data");
|
toast.error("An error occured while loading your profile data");
|
||||||
})
|
})
|
||||||
|
function delete_me() {
|
||||||
|
toast("Deletion in progress...");
|
||||||
|
let url = `${config.baseurl}api/runners/me/${accesstoken}?force=true`
|
||||||
|
axios.delete(url)
|
||||||
|
.then(() => {
|
||||||
|
toast("All Data deleted!");
|
||||||
|
location.replace(`${config.baseurl_selfservice}`);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
toast.error("An error occured while deleting your profile data");
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -1 +1,104 @@
|
|||||||
<template>You have not provided a valid access key...</template>
|
<template>
|
||||||
|
<div class="min-h-screen flex items-center justify-center">
|
||||||
|
<div class="max-w-md w-full py-12 px-6">
|
||||||
|
<img class="mx-auto h-24 w-auto" src="/favicon.png" alt />
|
||||||
|
<h1
|
||||||
|
class="sm:text-3xl text-2xl font-medium title-font mb-4 text-center"
|
||||||
|
>Lauf für Kaya! - {{ $t('profile') }}</h1>
|
||||||
|
<p class="mx-auto leading-relaxed text-base text-center">
|
||||||
|
{{ $t('you_have_not_provided_a_valid_access_key') }}
|
||||||
|
<br />
|
||||||
|
{{ $t('access_is_only_provided_via_your_email_link') }}
|
||||||
|
</p>
|
||||||
|
<div class="mt-6">
|
||||||
|
<div class="relative">
|
||||||
|
<div class="absolute inset-0 flex items-center">
|
||||||
|
<div class="w-full border-t border-gray-300"></div>
|
||||||
|
</div>
|
||||||
|
<div class="relative flex justify-center text-sm">
|
||||||
|
<span
|
||||||
|
class="px-2 bg-white dark:bg-gray-900"
|
||||||
|
>{{ $t('lost_your_registration_mail') }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mt-4">
|
||||||
|
<label for="email_address" class="block font-medium">
|
||||||
|
{{ $t('e_mail_adress') }}
|
||||||
|
<span class="font-bold">*</span>
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
v-model="user_email"
|
||||||
|
name="email_address"
|
||||||
|
id="email_address"
|
||||||
|
autocomplete="off"
|
||||||
|
:placeholder="[[$t('e_mail_adress')]]"
|
||||||
|
type="email"
|
||||||
|
:class="{ 'border-red-500': (!isEmail(user_email)), 'border-green-300': (isEmail(user_email)) }"
|
||||||
|
class="dark:bg-gray-800 mt-1 block w-full shadow-sm sm:text-sm border-2 bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
|
/>
|
||||||
|
<p
|
||||||
|
v-if="!isEmail(user_email)"
|
||||||
|
class="text-sm"
|
||||||
|
>{{ $t('please_provide_valid_mail') }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="mt-2">
|
||||||
|
<a
|
||||||
|
:disabled="(!state.submit_enabled)"
|
||||||
|
:class="{ 'opacity-50': (!state.submit_enabled), 'cursor-not-allowed': (!state.submit_enabled) }"
|
||||||
|
@click="resendMail"
|
||||||
|
class="block w-full text-center py-2 px-3 border-2 border-gray-300 rounded-md p-1 dark:bg-gray-800 font-medium hover:border-gray-400 focus:outline-none focus:border-gray-400 sm:text-sm"
|
||||||
|
>{{ $t('resend_the_registration_mail') }}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mt-12">
|
||||||
|
<div class="relative">
|
||||||
|
<div class="absolute inset-0 flex items-center">
|
||||||
|
<div class="w-full border-t border-gray-300"></div>
|
||||||
|
</div>
|
||||||
|
<div class="relative flex justify-center text-sm">
|
||||||
|
<span class="px-2 bg-white dark:bg-gray-900">{{ $t('not_registered_yet') }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mt-2">
|
||||||
|
<a
|
||||||
|
href="./register/"
|
||||||
|
class="text-white block w-full text-center py-2 px-3 border-2 border-gray-300 rounded-md p-1 bg-blue-800 font-medium hover:border-gray-400 focus:outline-none focus:border-gray-400 sm:text-sm"
|
||||||
|
>{{ $t('register_now_small') }}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { computed, ref, reactive, defineProps } from "vue";
|
||||||
|
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';
|
||||||
|
import { useToast } from "vue-toastification";
|
||||||
|
|
||||||
|
let user_email = ref("");
|
||||||
|
//
|
||||||
|
const state = reactive({
|
||||||
|
org_name: "",
|
||||||
|
org_teams: [],
|
||||||
|
submit_enabled: computed(() => isEmail(user_email.value))
|
||||||
|
})
|
||||||
|
const toast = useToast();
|
||||||
|
function resendMail() {
|
||||||
|
if (isEmail(user_email.value)) {
|
||||||
|
toast("sending password reset mail...");
|
||||||
|
const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
|
||||||
|
axios.post(`${config.baseurl}api/runners/forgot?mail=${user_email.value}&locale=${browserlocale}`)
|
||||||
|
.then(({ data }) => {
|
||||||
|
console.log(data);
|
||||||
|
toast("sent password reset mail to " + user_email.value + "!");
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
toast("user does not exist...");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user