Register - basic form validations
This commit is contained in:
parent
94f5787988
commit
2b303ac9b2
@ -3,7 +3,5 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
// import HelloWorld from "./components/HelloWorld.vue";
|
//
|
||||||
// import LoginForm from "./components/LoginForm.vue";
|
|
||||||
// import Footer from "./components/Footer.vue";
|
|
||||||
</script>
|
</script>
|
@ -18,8 +18,10 @@
|
|||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
:placeholder="[[$t('vorname')]]"
|
:placeholder="[[$t('vorname')]]"
|
||||||
type="text"
|
type="text"
|
||||||
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
:class="{ 'border-red-500': (!userdetails.firstname.trim()), 'border-green-300': (userdetails.firstname.trim()) }"
|
||||||
|
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
/>
|
/>
|
||||||
|
<!-- -->
|
||||||
<label for="middle_name" class="block font-medium">{{ $t('mittelname') }}</label>
|
<label for="middle_name" class="block font-medium">{{ $t('mittelname') }}</label>
|
||||||
<input
|
<input
|
||||||
v-model="userdetails.middlename"
|
v-model="userdetails.middlename"
|
||||||
@ -28,8 +30,9 @@
|
|||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
:placeholder="[[$t('mittelname')]]"
|
:placeholder="[[$t('mittelname')]]"
|
||||||
type="text"
|
type="text"
|
||||||
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
/>
|
/>
|
||||||
|
<!-- -->
|
||||||
<label for="last_name" class="block font-medium">
|
<label for="last_name" class="block font-medium">
|
||||||
{{ $t('nachname') }}
|
{{ $t('nachname') }}
|
||||||
<span class="font-bold">*</span>
|
<span class="font-bold">*</span>
|
||||||
@ -41,8 +44,10 @@
|
|||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
:placeholder="[[$t('nachname')]]"
|
:placeholder="[[$t('nachname')]]"
|
||||||
type="text"
|
type="text"
|
||||||
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
:class="{ 'border-red-500': (!userdetails.lastname.trim()), 'border-green-300': (userdetails.lastname.trim()) }"
|
||||||
|
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
/>
|
/>
|
||||||
|
<!-- -->
|
||||||
<label for="email_address" class="block font-medium">
|
<label for="email_address" class="block font-medium">
|
||||||
E-Mail Adresse
|
E-Mail Adresse
|
||||||
<span class="font-bold">*</span>
|
<span class="font-bold">*</span>
|
||||||
@ -54,10 +59,23 @@
|
|||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
placeholder="E-Mail Adresse"
|
placeholder="E-Mail Adresse"
|
||||||
type="email"
|
type="email"
|
||||||
:class="{ 'border-red-500': (!isEmail(userdetails.mail)), 'border-gray-300': (isEmail(userdetails.mail)) }"
|
:class="{ 'border-red-500': (!isEmail(userdetails.mail)), 'border-green-300': (isEmail(userdetails.mail)) }"
|
||||||
class="dark:bg-gray-800 mt-1 block w-full shadow-sm rounded-l-md sm:text-sm border bg-gray-50 text-gray-100 rounded-md p-2"
|
class="dark:bg-gray-800 mt-1 block w-full shadow-sm sm:text-sm border bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
/>
|
/>
|
||||||
<p class="text-sm">{{ $t('please_provide_valid_mail') }}</p>
|
<p v-if="!isEmail(userdetails.mail)" class="text-sm">{{ $t('please_provide_valid_mail') }}</p>
|
||||||
|
<!-- -->
|
||||||
|
<label for="phone" class="block font-medium">{{ $t('phone_number') }}</label>
|
||||||
|
<input
|
||||||
|
v-model="userdetails.phone"
|
||||||
|
name="phone"
|
||||||
|
id="phone"
|
||||||
|
autocomplete="off"
|
||||||
|
:placeholder="[[$t('phone_number')]]"
|
||||||
|
type="tel"
|
||||||
|
:class="{ 'border-red-500': (!phone_valid), 'border-green-300': (phone_valid) }"
|
||||||
|
class="dark:bg-gray-800 mt-1 block w-full shadow-sm sm:text-sm border bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
|
/>
|
||||||
|
<!-- -->
|
||||||
<div class="grid grid-cols-6 mt-6">
|
<div class="grid grid-cols-6 mt-6">
|
||||||
<div class="col-span-6"></div>
|
<div class="col-span-6"></div>
|
||||||
<div class="flex items-start col-span-6">
|
<div class="flex items-start col-span-6">
|
||||||
@ -86,7 +104,7 @@
|
|||||||
:placeholder="[[$t('strasse')]]"
|
:placeholder="[[$t('strasse')]]"
|
||||||
id="street"
|
id="street"
|
||||||
autocomplete="street-address"
|
autocomplete="street-address"
|
||||||
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-span-6 sm:col-span-6 lg:col-span-2">
|
<div class="col-span-6 sm:col-span-6 lg:col-span-2">
|
||||||
@ -96,7 +114,7 @@
|
|||||||
name="city"
|
name="city"
|
||||||
:placeholder="[[$t('ort')]]"
|
:placeholder="[[$t('ort')]]"
|
||||||
id="city"
|
id="city"
|
||||||
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-span-6 sm:col-span-3 lg:col-span-2">
|
<div class="col-span-6 sm:col-span-3 lg:col-span-2">
|
||||||
@ -107,7 +125,7 @@
|
|||||||
:placeholder="[[$t('plz')]]"
|
:placeholder="[[$t('plz')]]"
|
||||||
id="postal_code"
|
id="postal_code"
|
||||||
autocomplete="postal-code"
|
autocomplete="postal-code"
|
||||||
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
class="dark:bg-gray-800 mt-1 focus:ring-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -163,30 +181,38 @@ import { ref } from "vue";
|
|||||||
import axios from "redaxios";
|
import axios from "redaxios";
|
||||||
import Toastify from "toastify-js";
|
import Toastify from "toastify-js";
|
||||||
import isEmail from 'validator/es/lib/isEmail';
|
import isEmail from 'validator/es/lib/isEmail';
|
||||||
|
import isMobilePhone from 'validator/es/lib/isMobilePhone';
|
||||||
|
|
||||||
let userdetails = ref({ firstname: "", lastname: "", middlename: "", mail: "" });
|
let userdetails = ref({ firstname: "", lastname: "", middlename: "", mail: "", phone: "" });
|
||||||
|
let phone_valid = ref(!userdetails.value.phone.trim() || isMobilePhone(userdetails.value.phone));
|
||||||
let provide_address = ref(false);
|
let provide_address = ref(false);
|
||||||
let agb_accepted = ref(false);
|
let agb_accepted = ref(false);
|
||||||
function login() {
|
function login() {
|
||||||
userdetails = userdetails.value;
|
userdetails = userdetails.value;
|
||||||
if (isEmail(userdetails.mail)) {
|
if (userdetails.phone === "" || isMobilePhone(userdetails.phone)) {
|
||||||
axios.post('https://dev.lauf-fuer-kaya.de/api/runners/register', {
|
if (isEmail(userdetails.mail)) {
|
||||||
"email": userdetails.mail,
|
let postdata = {
|
||||||
"firstname": userdetails.firstname,
|
"email": userdetails.mail,
|
||||||
"middlename": userdetails.middlename,
|
"firstname": userdetails.firstname,
|
||||||
"lastname": userdetails.lastname,
|
"middlename": userdetails.middlename,
|
||||||
"address": {}
|
"lastname": userdetails.lastname,
|
||||||
})
|
"address": {}
|
||||||
.then(function(response) {
|
}
|
||||||
response = response.data;
|
if (isMobilePhone(userdetails.phone)) {
|
||||||
const token = response.token;
|
postdata.phone = userdetails.phone;
|
||||||
const userid = JSON.parse(atob(token.split(".")[1])).id;
|
}
|
||||||
console.log({ token });
|
axios.post('https://dev.lauf-fuer-kaya.de/api/runners/register',)
|
||||||
console.log({ userid });
|
.then(function(response) {
|
||||||
})
|
response = response.data;
|
||||||
.catch(function(error) {
|
const token = response.token;
|
||||||
console.log(error);
|
const userid = JSON.parse(atob(token.split(".")[1])).id;
|
||||||
});
|
console.log({ token });
|
||||||
|
console.log({ userid });
|
||||||
|
})
|
||||||
|
.catch(function(error) {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// console.log(agb_accepted.value);
|
// console.log(agb_accepted.value);
|
||||||
// alert("AGB was " + (agb_accepted.value === true ? "accepted" : "not accepted"));
|
// alert("AGB was " + (agb_accepted.value === true ? "accepted" : "not accepted"));
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
"mittelname": "Mittelname",
|
"mittelname": "Mittelname",
|
||||||
"nachname": "Nachname",
|
"nachname": "Nachname",
|
||||||
"ort": "Ort",
|
"ort": "Ort",
|
||||||
|
"phone_number": "Telefonnummer",
|
||||||
"please_provide_valid_mail": "Bitte geben Sie eine gültige E-Mail Adresse an",
|
"please_provide_valid_mail": "Bitte geben Sie eine gültige E-Mail Adresse an",
|
||||||
"plz": "PLZ",
|
"plz": "PLZ",
|
||||||
"provide_address": "Adresse angeben?",
|
"provide_address": "Adresse angeben?",
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
"mittelname": "Middlename",
|
"mittelname": "Middlename",
|
||||||
"nachname": "Lastname",
|
"nachname": "Lastname",
|
||||||
"ort": "City",
|
"ort": "City",
|
||||||
|
"phone_number": "Phone Number",
|
||||||
"please_provide_valid_mail": "Please provide a valid mail address.",
|
"please_provide_valid_mail": "Please provide a valid mail address.",
|
||||||
"plz": "zipcode",
|
"plz": "zipcode",
|
||||||
"provide_address": "Provide a postal address?",
|
"provide_address": "Provide a postal address?",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user