From 863568d7d0e132dd1b7d13a2cb1afe8db02c472c Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Thu, 1 Apr 2021 19:07:04 +0200 Subject: [PATCH 1/5] basic ProfileNone layout ref #30 --- src/locales/de.json | 10 ++- src/locales/en.json | 8 +- src/views/ProfileNone.vue | 153 +++++++++++++++++++++++++++++++++++++- 3 files changed, 168 insertions(+), 3 deletions(-) diff --git a/src/locales/de.json b/src/locales/de.json index 98a43c4..90c3f15 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -1,4 +1,5 @@ { + "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", "configuration_error": "Konfigurationsfehler", @@ -13,10 +14,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 +33,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 +43,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..." } \ No newline at end of file diff --git a/src/locales/en.json b/src/locales/en.json index fad20fc..b734383 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,4 +1,5 @@ { + "access_is_only_provided_via_your_email_link": "Access is only provided via the link you received upon registration.", "already_have_an_account": "Already have an account?", "apartment_suite_etc": "Apartment, suite, etc.", "configuration_error": "Configuration error", @@ -13,10 +14,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 +33,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 +44,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..." } \ No newline at end of file diff --git a/src/views/ProfileNone.vue b/src/views/ProfileNone.vue index b8762df..fa84bd5 100644 --- a/src/views/ProfileNone.vue +++ b/src/views/ProfileNone.vue @@ -1 +1,152 @@ - \ No newline at end of file + + + \ No newline at end of file -- 2.47.2 From 60dea511b9fbb6d206ee531618e788e686fa6b5a Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Thu, 1 Apr 2021 19:07:14 +0200 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=90=9E=20fix=20home=20routes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #30 --- src/views/Home.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/Home.vue b/src/views/Home.vue index 354e370..9794fe3 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -11,10 +11,10 @@ -- 2.47.2 From 30f3a51ef82ad966225abc6fd95508af56106924 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Thu, 1 Apr 2021 19:22:23 +0200 Subject: [PATCH 3/5] add forgot view + action ref #30 --- src/views/ProfileNone.vue | 105 ++++++++++++++------------------------ 1 file changed, 37 insertions(+), 68 deletions(-) diff --git a/src/views/ProfileNone.vue b/src/views/ProfileNone.vue index fa84bd5..c6385cf 100644 --- a/src/views/ProfileNone.vue +++ b/src/views/ProfileNone.vue @@ -27,23 +27,25 @@ *

{{ $t('please_provide_valid_mail') }}

@@ -76,77 +78,44 @@ import isMobilePhone from 'validator/es/lib/isMobilePhone'; import isPostalCode from 'validator/es/lib/isPostalCode'; import { useToast } from "vue-toastification"; -const props = defineProps({ - token: String -}) -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); - }); -} +// const props = defineProps({ +// token: String +// }) +// 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); +// }); +// } -let userdetails = ref({ firstname: "", lastname: "", middlename: "", mail: "", phone: "", address: { street: "", address2: "", city: "", zipcode: "" } }); -let provide_address = ref(false); -let agb_accepted = ref(false); -let data_confirmed = ref(false); -let org_team = ref(""); +let user_email = 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")))) + submit_enabled: computed(() => isEmail(user_email.value)) }) const toast = useToast(); -function login() { - userdetails = userdetails.value; - if (userdetails.phone === "" || isMobilePhone(userdetails.phone)) { - if (isEmail(userdetails.mail)) { - let postdata = { - "email": userdetails.mail, - "firstname": userdetails.firstname, - "middlename": userdetails.middlename, - "lastname": userdetails.lastname, - "address": {} - } - if (isMobilePhone(userdetails.phone)) { - postdata.phone = userdetails.phone; - } - if (provide_address.value === true) { - postdata.address = { - address1: userdetails.address.street, - address2: userdetails.address.address2 || "", - city: userdetails.address.city, - postalcode: userdetails.address.zipcode, - country: "DE", - } - } - if (state.org_name !== '' && state.org_teams.length > 0) { - postdata.team = org_team.value; - } - toast("registration in progress..."); - 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}/?locale=${browserlocale}` - } - axios.post(url, postdata) - .then(({ data }) => { - const token = btoa(data.token); - // alert(token); - location.replace(`${config.baseurl_selfservice}profile/${token}`); - }) - .catch((error) => { - console.log(error); - }); - } +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/?locale=${browserlocale}`, { + "mail": user_email.value + }) + .then(({ data }) => { + console.log(data); + toast("sent password reset mail to " + user_email.value + "!"); + }) + .catch((error) => { + console.log(error); + toast("user does not exist..."); + }); } } \ No newline at end of file -- 2.47.2 From 0795ea318d80b764eee89462ad87da86aa7ce0ae Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 1 Apr 2021 19:55:01 +0200 Subject: [PATCH 4/5] Fixed post url and body ref #30 --- src/views/ProfileNone.vue | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/views/ProfileNone.vue b/src/views/ProfileNone.vue index c6385cf..1ad43f1 100644 --- a/src/views/ProfileNone.vue +++ b/src/views/ProfileNone.vue @@ -105,9 +105,7 @@ 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/?locale=${browserlocale}`, { - "mail": user_email.value - }) + 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 + "!"); -- 2.47.2 From 713db5e1e8fed5f38b3a5d19cfe870eff16eeda1 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 1 Apr 2021 19:55:23 +0200 Subject: [PATCH 5/5] Removed useless code ref #30 --- src/views/ProfileNone.vue | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/views/ProfileNone.vue b/src/views/ProfileNone.vue index 1ad43f1..b6bd51b 100644 --- a/src/views/ProfileNone.vue +++ b/src/views/ProfileNone.vue @@ -78,21 +78,6 @@ import isMobilePhone from 'validator/es/lib/isMobilePhone'; import isPostalCode from 'validator/es/lib/isPostalCode'; import { useToast } from "vue-toastification"; -// const props = defineProps({ -// token: String -// }) -// 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); -// }); -// } - let user_email = ref(""); // const state = reactive({ -- 2.47.2