Compare commits
2 Commits
2b303ac9b2
...
ff89071156
Author | SHA1 | Date | |
---|---|---|---|
ff89071156 | |||
b7f15f4d68 |
@ -14,7 +14,8 @@
|
|||||||
"vue": "^3.0.5",
|
"vue": "^3.0.5",
|
||||||
"vue-i18n": "^9.0.0",
|
"vue-i18n": "^9.0.0",
|
||||||
"vue-phone-number-input": "^1.1.10",
|
"vue-phone-number-input": "^1.1.10",
|
||||||
"vue-router": "4"
|
"vue-router": "4",
|
||||||
|
"vue-toastification": "^2.0.0-rc.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vitejs/plugin-vue": "^1.1.5",
|
"@vitejs/plugin-vue": "^1.1.5",
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
:placeholder="[[$t('vorname')]]"
|
:placeholder="[[$t('vorname')]]"
|
||||||
type="text"
|
type="text"
|
||||||
:class="{ 'border-red-500': (!userdetails.firstname.trim()), 'border-green-300': (userdetails.firstname.trim()) }"
|
: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"
|
class="dark:bg-gray-800 mt-1 block w-full shadow-sm sm:text-sm border-gray-300 border-2 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>
|
||||||
@ -30,7 +30,7 @@
|
|||||||
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 sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
class="dark:bg-gray-800 mt-1 block w-full shadow-sm sm:text-sm border-gray-300 border-2 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">
|
||||||
@ -45,7 +45,7 @@
|
|||||||
:placeholder="[[$t('nachname')]]"
|
:placeholder="[[$t('nachname')]]"
|
||||||
type="text"
|
type="text"
|
||||||
:class="{ 'border-red-500': (!userdetails.lastname.trim()), 'border-green-300': (userdetails.lastname.trim()) }"
|
: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"
|
class="dark:bg-gray-800 mt-1 block w-full shadow-sm sm:text-sm border-gray-300 border-2 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">
|
||||||
@ -60,7 +60,7 @@
|
|||||||
placeholder="E-Mail Adresse"
|
placeholder="E-Mail Adresse"
|
||||||
type="email"
|
type="email"
|
||||||
:class="{ 'border-red-500': (!isEmail(userdetails.mail)), 'border-green-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 sm:text-sm border bg-gray-50 text-gray-500 rounded-md p-2"
|
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(userdetails.mail)" class="text-sm">{{ $t('please_provide_valid_mail') }}</p>
|
<p v-if="!isEmail(userdetails.mail)" class="text-sm">{{ $t('please_provide_valid_mail') }}</p>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
@ -73,7 +73,7 @@
|
|||||||
:placeholder="[[$t('phone_number')]]"
|
:placeholder="[[$t('phone_number')]]"
|
||||||
type="tel"
|
type="tel"
|
||||||
:class="{ 'border-red-500': (!phone_valid), 'border-green-300': (phone_valid) }"
|
: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"
|
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"
|
||||||
/>
|
/>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div class="grid grid-cols-6 mt-6">
|
<div class="grid grid-cols-6 mt-6">
|
||||||
@ -85,7 +85,7 @@
|
|||||||
id="address_activated"
|
id="address_activated"
|
||||||
name="address_activated"
|
name="address_activated"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
|
class="h-4 w-4 text-indigo-600 border-gray-300 rounded"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="ml-3 text-sm">
|
<div class="ml-3 text-sm">
|
||||||
@ -104,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 sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
class="dark:bg-gray-800 mt-1 block w-full shadow-sm sm:text-sm border-gray-300 border-2 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">
|
||||||
@ -114,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 sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
class="dark:bg-gray-800 mt-1 block w-full shadow-sm sm:text-sm border-gray-300 border-2 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">
|
||||||
@ -125,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 sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2"
|
class="dark:bg-gray-800 mt-1 block w-full shadow-sm sm:text-sm border-gray-300 border-2 bg-gray-50 text-gray-500 rounded-md p-2"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -137,7 +137,7 @@
|
|||||||
id="agb_accepted"
|
id="agb_accepted"
|
||||||
name="agb_accepted"
|
name="agb_accepted"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
|
class="h-4 w-4 text-indigo-600 border-gray-300 rounded"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="ml-3 text-sm">
|
<div class="ml-3 text-sm">
|
||||||
@ -152,7 +152,7 @@
|
|||||||
@click="login"
|
@click="login"
|
||||||
:disabled="(agb_accepted === false)"
|
:disabled="(agb_accepted === false)"
|
||||||
:class="{ 'opacity-50': (agb_accepted === false), 'cursor-not-allowed': (agb_accepted === false) }"
|
:class="{ 'opacity-50': (agb_accepted === false), 'cursor-not-allowed': (agb_accepted === false) }"
|
||||||
class="text-white block w-full text-center py-2 px-3 border 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"
|
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('registrieren') }}</button>
|
>{{ $t('registrieren') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -168,7 +168,7 @@
|
|||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<a
|
<a
|
||||||
href="./login"
|
href="./login"
|
||||||
class="block w-full text-center py-2 px-3 border 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"
|
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('go_to_login') }}</a>
|
>{{ $t('go_to_login') }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -182,11 +182,13 @@ 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';
|
import isMobilePhone from 'validator/es/lib/isMobilePhone';
|
||||||
|
import { useToast } from "vue-toastification";
|
||||||
|
|
||||||
let userdetails = ref({ firstname: "", lastname: "", middlename: "", mail: "", phone: "" });
|
let userdetails = ref({ firstname: "", lastname: "", middlename: "", mail: "", phone: "" });
|
||||||
let phone_valid = ref(!userdetails.value.phone.trim() || isMobilePhone(userdetails.value.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);
|
||||||
|
const toast = useToast();
|
||||||
function login() {
|
function login() {
|
||||||
userdetails = userdetails.value;
|
userdetails = userdetails.value;
|
||||||
if (userdetails.phone === "" || isMobilePhone(userdetails.phone)) {
|
if (userdetails.phone === "" || isMobilePhone(userdetails.phone)) {
|
||||||
@ -201,20 +203,21 @@ function login() {
|
|||||||
if (isMobilePhone(userdetails.phone)) {
|
if (isMobilePhone(userdetails.phone)) {
|
||||||
postdata.phone = userdetails.phone;
|
postdata.phone = userdetails.phone;
|
||||||
}
|
}
|
||||||
axios.post('https://dev.lauf-fuer-kaya.de/api/runners/register',)
|
toast("registration in progress...");
|
||||||
.then(function(response) {
|
axios.post('https://dev.lauf-fuer-kaya.de/api/runners/register', postdata)
|
||||||
|
.then((response) => {
|
||||||
response = response.data;
|
response = response.data;
|
||||||
const token = response.token;
|
const token = response.token;
|
||||||
const userid = JSON.parse(atob(token.split(".")[1])).id;
|
const userid = JSON.parse(atob(token.split(".")[1])).id;
|
||||||
console.log({ token });
|
console.log({ token });
|
||||||
console.log({ userid });
|
console.log({ userid });
|
||||||
|
//
|
||||||
|
toast.success("You have been registered!");
|
||||||
})
|
})
|
||||||
.catch(function(error) {
|
.catch((error) => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// console.log(agb_accepted.value);
|
|
||||||
// alert("AGB was " + (agb_accepted.value === true ? "accepted" : "not accepted"));
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
@ -2,8 +2,10 @@ import { createApp } from 'vue';
|
|||||||
import { createWebHistory, createRouter } from 'vue-router';
|
import { createWebHistory, createRouter } from 'vue-router';
|
||||||
import App from './App.vue';
|
import App from './App.vue';
|
||||||
import { createI18n } from 'vue-i18n';
|
import { createI18n } from 'vue-i18n';
|
||||||
|
import Toast from 'vue-toastification';
|
||||||
import 'windi.css';
|
import 'windi.css';
|
||||||
import 'toastify-js/src/toastify.css';
|
import 'toastify-js/src/toastify.css';
|
||||||
|
import 'vue-toastification/dist/index.css';
|
||||||
import * as keys_en from './locales/en.json';
|
import * as keys_en from './locales/en.json';
|
||||||
import * as keys_de from './locales/de.json';
|
import * as keys_de from './locales/de.json';
|
||||||
|
|
||||||
@ -32,4 +34,4 @@ const router = createRouter({
|
|||||||
]
|
]
|
||||||
});
|
});
|
||||||
// ---------------
|
// ---------------
|
||||||
createApp(App).use(i18n).use(router).mount('#app');
|
createApp(App).use(Toast).use(i18n).use(router).mount('#app');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user