org registration - add team select

close #18
This commit is contained in:
Philipp Dormann 2021-03-26 20:42:20 +01:00
parent 760b1b32a2
commit 829fe32743
2 changed files with 25 additions and 3 deletions

View File

@ -3,5 +3,6 @@
</template>
<script setup>
config.baseurl_selfservices = (config.baseurl_selfservices || "/selfservice");
console.log(config.baseurl_selfservice);
config.baseurl_selfservice = (config.baseurl_selfservice || "/selfservice");
</script>

View File

@ -10,7 +10,21 @@
v-if="state.org_name !== ''"
class="mx-auto leading-relaxed text-base text-center"
>{{ $t('organization') }}: {{ state.org_name }}</p>
<p v-else class="mx-auto leading-relaxed text-base text-center">Bürgerlauf</p>
<p
v-if="state.org_name !== '' && state.org_teams.length > 0"
class="mx-auto leading-relaxed text-base text-center"
>Team:</p>
<select
v-model="org_team"
v-if="state.org_name !== '' && state.org_teams.length > 0"
class="w-full border bg-white rounded px-3 py-2 outline-none block mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
>
<option v-for="t in state.org_teams" :key="t.id" :value="t.id">{{ t.name }}</option>
</select>
<p
v-if="state.org_name === ''"
class="mx-auto leading-relaxed text-base text-center"
>Bürgerlauf</p>
<div class="mt-4">
<label for="first_name" class="block font-medium">
{{ $t('vorname') }}
@ -258,6 +272,8 @@ 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);
@ -268,9 +284,11 @@ let userdetails = ref({ firstname: "", lastname: "", middlename: "", mail: "", p
let provide_address = ref(false);
let agb_accepted = ref(false);
let data_confirmed = ref(false);
let org_team = 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"))))
@ -299,6 +317,9 @@ function login() {
country: "DE",
}
}
if (state.org_name !== '' && state.org_teams.length > 0) {
postdata.team = org_team.value;
}
toast("registration in progress...");
let url = `${config.baseurl}api/runners/register`;
if (props.token) {
@ -307,7 +328,7 @@ function login() {
axios.post(url, postdata)
.then(({ data }) => {
const token = btoa(data.token);
router.push(`${config.baseurl_selfservices}/profile/${token}`);
router.push(`${config.baseurl_selfservice}/profile/${token}`);
})
.catch((error) => {
console.log(error);