Add new members

This commit is contained in:
philipp lang 2024-06-18 01:58:19 +02:00
parent b76fc8133e
commit d9586511c3
1 changed files with 15 additions and 2 deletions

View File

@ -96,7 +96,7 @@
</a> </a>
</template> </template>
<div class="mt-2" :class="containerClassesSm"> <div class="mt-2" :class="containerClassesSm">
<template v-for="(memberField, memberIndex) in memberFields"> <template v-for="(memberField, memberIndex) in member.id ? memberFields : newMemberFields">
<v-checkbox <v-checkbox
v-if="memberField.type === 'CheckboxField'" v-if="memberField.type === 'CheckboxField'"
v-model="member[memberField.key]" v-model="member[memberField.key]"
@ -181,8 +181,9 @@
</div> </div>
</accordion> </accordion>
</div> </div>
<div class="flex justify-center mt-5"> <div class="flex justify-center space-x-3 mt-5">
<v-btn @click.prevent="membersCompleted = true">Mitgliederdaten speichern</v-btn> <v-btn @click.prevent="membersCompleted = true">Mitgliederdaten speichern</v-btn>
<v-btn @click.prevent="addMember">Mitglied hinzufügen</v-btn>
</div> </div>
</template> </template>
<template #finished> <template #finished>
@ -269,7 +270,15 @@ const defaultMember = computed(() => {
return fields; return fields;
}); });
const newDefaultMember = computed(() => {
var fields = {};
newMemberFields.value.forEach((field) => (fields[field.key] = field.value));
return fields;
});
const memberFields = computed(() => props.fields.filter((field) => field.for_members === true && field.nami_type === null)); const memberFields = computed(() => props.fields.filter((field) => field.for_members === true && field.nami_type === null));
const newMemberFields = computed(() => props.fields.filter((field) => field.for_members === true));
const inner = computed( const inner = computed(
{ {
@ -290,6 +299,10 @@ function memberSelected(member) {
return inner.value.map((m) => m.id).includes(member.id); return inner.value.map((m) => m.id).includes(member.id);
} }
function addMember(index) {
inner.value.push(JSON.parse(JSON.stringify({id: null, innerFormName: 'Neues Mitglied', ...newDefaultMember.value})));
}
function toggleMember(member) { function toggleMember(member) {
if (memberSelected(member)) { if (memberSelected(member)) {
inner.value = inner.value.filter((m) => m.id !== member.id); inner.value = inner.value.filter((m) => m.id !== member.id);