Compare commits
31 Commits
0.4.3
...
feature/30
Author | SHA1 | Date | |
---|---|---|---|
ec44a8b63e | |||
676f0e8339 | |||
27fd8f9a91 | |||
bc1c824d9f | |||
b8c1b8c43b | |||
713db5e1e8 | |||
0795ea318d | |||
bd512e0651 | |||
cf0437c3a7 | |||
8a24505d64 | |||
175bb168ae | |||
9751c2e9fd | |||
7440fc404e | |||
ba3dedb164 | |||
d710d4b68f | |||
125fcdd8cf | |||
8773239244 | |||
85b0549a11 | |||
fc04e71311 | |||
619078cce8 | |||
30f3a51ef8 | |||
60dea511b9 | |||
863568d7d0 | |||
555823954a | |||
efcb7f5674 | |||
e796f6dcaf | |||
52a082841d | |||
e3f7497af5 | |||
9b62962758 | |||
84dc33bf14 | |||
1c19657935 |
37
CHANGELOG.md
37
CHANGELOG.md
@@ -2,8 +2,45 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
|
||||
|
||||
#### [0.5.0](https://git.odit.services/lfk/selfservice/compare/0.4.5...0.5.0)
|
||||
|
||||
- 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)
|
||||
|
||||
> 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)
|
||||
- 🚀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)
|
||||
- pass browser locale to api/runners/register/ [`e3f7497`](https://git.odit.services/lfk/selfservice/commit/e3f7497af5860b2472b6cdfd33090b9d68b9fb49)
|
||||
|
||||
#### [0.4.4](https://git.odit.services/lfk/selfservice/compare/0.4.3...0.4.4)
|
||||
|
||||
> 31 March 2021
|
||||
|
||||
- 🚀Bumped version to v0.4.4 [`9b62962`](https://git.odit.services/lfk/selfservice/commit/9b62962758f8a73d669bca69b77f2c09a13c9e7a)
|
||||
- 🚑 hotfix - baseurl_selfservice -> baseurl [`84dc33b`](https://git.odit.services/lfk/selfservice/commit/84dc33bf14ace839261aea02ffbcac5d627f8200)
|
||||
|
||||
#### [0.4.3](https://git.odit.services/lfk/selfservice/compare/0.4.2...0.4.3)
|
||||
|
||||
> 31 March 2021
|
||||
|
||||
- 🚀Bumped version to v0.4.3 [`cad34d3`](https://git.odit.services/lfk/selfservice/commit/cad34d357b9bd8501eed26b35b5324d2b4f756c3)
|
||||
- 🚑 hotfix - Profile api path [`2056ce1`](https://git.odit.services/lfk/selfservice/commit/2056ce1e62a33e14bce5bdef5ea8cd38e039dc62)
|
||||
|
||||
#### [0.4.2](https://git.odit.services/lfk/selfservice/compare/0.4.1...0.4.2)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@odit/lfk-selfservice",
|
||||
"version": "0.4.3",
|
||||
"version": "0.5.0",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"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?",
|
||||
"apartment_suite_etc": "Addresszeile 2",
|
||||
"cancel_keep_my_data": "Abbrechen, meine Daten behalten",
|
||||
"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",
|
||||
"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",
|
||||
"download_certificate": "Urkunde herunterladen",
|
||||
"e_mail_adress": "E-Mail Adresse",
|
||||
@@ -13,10 +19,13 @@
|
||||
"imprint": "Impressum",
|
||||
"lap_time": "Rundenzeit",
|
||||
"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.",
|
||||
"mittelname": "Mittelname",
|
||||
"nachname": "Nachname",
|
||||
"no_laps_scans_were_recorded_yet": "Es wurden noch keine Runden / Scans aufgezeichnet ...",
|
||||
"not_registered_yet": "Noch nicht registriert?",
|
||||
"organization": "Organisation",
|
||||
"ort": "Ort",
|
||||
"phone_number": "Telefonnummer",
|
||||
"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 registrieren!",
|
||||
"register_now_small": "Jetzt registrieren",
|
||||
"registrieren": "Registrieren",
|
||||
"resend_the_registration_mail": "Registrierungsmail erneut versenden",
|
||||
"save_changes": "Änderungen speichern",
|
||||
"sponsoring": "Sponsoring",
|
||||
"strasse": "Straße",
|
||||
@@ -37,5 +48,7 @@
|
||||
"this_is_not_a_valid_international_phone_number": "Dies ist keine gültige internationale Telefonnummer",
|
||||
"tos": "AGBs",
|
||||
"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?",
|
||||
"apartment_suite_etc": "Apartment, suite, etc.",
|
||||
"cancel_keep_my_data": "Cancel, keep my data",
|
||||
"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",
|
||||
"delete_my_data": "Delete my data",
|
||||
"deletion_in_progress": "Deletion in progress...",
|
||||
"distance": "Distance",
|
||||
"download_certificate": "Download certificate",
|
||||
"e_mail_adress": "mail address",
|
||||
@@ -13,10 +19,12 @@
|
||||
"imprint": "Imprint",
|
||||
"lap_time": "Lap time",
|
||||
"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.",
|
||||
"mittelname": "Middlename",
|
||||
"nachname": "Lastname",
|
||||
"no_laps_scans_were_recorded_yet": "No laps/ scans were recorded yet...",
|
||||
"not_registered_yet": "Not registered yet?",
|
||||
"organization": "Organization",
|
||||
"ort": "City",
|
||||
"phone_number": "Phone Number",
|
||||
@@ -30,7 +38,9 @@
|
||||
"register_now": "Register now for Lauf für Kaya! 2021."
|
||||
},
|
||||
"register_now": "Register now!",
|
||||
"register_now_small": "Register now",
|
||||
"registrieren": "Register Now",
|
||||
"resend_the_registration_mail": "Resend the registration mail",
|
||||
"save_changes": "Save changes",
|
||||
"sponsoring": "Sponsoring",
|
||||
"strasse": "Street/ Block",
|
||||
@@ -39,5 +49,6 @@
|
||||
"tos": "Terms of Service",
|
||||
"view_my_data": "View my data",
|
||||
"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">
|
||||
<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"
|
||||
href="./register"
|
||||
href="./register/"
|
||||
>{{ $t('register_now') }}</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"
|
||||
>{{ $t('view_my_data') }}</a>
|
||||
</div>
|
||||
|
@@ -12,29 +12,108 @@
|
||||
<p class="text-md whitespace-nowrap">{{ state.group }}</p>
|
||||
</div>
|
||||
<div class="inline-flex md:ml-auto md:mr-0 mx-auto items-center">
|
||||
<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"
|
||||
>
|
||||
<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;"
|
||||
<div v-if="(state.delete_active === false)">
|
||||
<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"
|
||||
>
|
||||
<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>
|
||||
<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" />
|
||||
<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>
|
||||
</section>
|
||||
@@ -178,13 +257,14 @@ const state = reactive({
|
||||
scans: [],
|
||||
group: "",
|
||||
activetab: "profile",
|
||||
delete_active: false,
|
||||
})
|
||||
const toast = useToast();
|
||||
const props = defineProps({
|
||||
token: String
|
||||
})
|
||||
const accesstoken = atob(props.token);
|
||||
axios.get(`${config.baseurl_selfservice}api/runners/me/${accesstoken}`)
|
||||
axios.get(`${config.baseurl}api/runners/me/${accesstoken}`)
|
||||
.then(({ data }) => {
|
||||
state.phone = data.phone;
|
||||
state.email = data.email;
|
||||
@@ -206,4 +286,16 @@ axios.get(`${config.baseurl}api/runners/me/${accesstoken}/scans`)
|
||||
}).catch((error) => {
|
||||
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>
|
@@ -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>
|
@@ -261,8 +261,6 @@ 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
|
||||
@@ -320,14 +318,16 @@ function login() {
|
||||
postdata.team = org_team.value;
|
||||
}
|
||||
toast("registration in progress...");
|
||||
let url = `${config.baseurl}api/runners/register`;
|
||||
const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
|
||||
let url = `${config.baseurl}api/runners/register/?locale=${browserlocale}`;
|
||||
if (props.token) {
|
||||
url = `${config.baseurl}api/runners/register/${props.token}`
|
||||
url = `${config.baseurl}api/runners/register/${props.token}/?locale=${browserlocale}`
|
||||
}
|
||||
axios.post(url, postdata)
|
||||
.then(({ data }) => {
|
||||
const token = btoa(data.token);
|
||||
// router.push(`${config.baseurl_selfservice}/profile/${token}`);
|
||||
// alert(token);
|
||||
location.replace(`${config.baseurl_selfservice}profile/${token}`);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log(error);
|
||||
|
Reference in New Issue
Block a user