initial commit

This commit is contained in:
walamana
2023-09-16 21:45:26 +02:00
commit 2d458f08f3
64 changed files with 4655 additions and 0 deletions
+93
View File
@@ -0,0 +1,93 @@
<script setup lang="ts">
import {computed, onMounted, reactive, ref} from "vue";
import Plan from "@/components/Plan.vue";
import {API} from "@/views/api";
import type {PlanModel} from "@/models/models";
const plan = reactive<PlanModel>({
gottesdienste: [],
ministranten: [],
marks: []
})
const sortedGottesdienste = computed(() => {
return plan.gottesdienste.sort((a, b) => {
console.log(a, b)
return a.date - b.date
})
})
async function addGodi(data) {
console.log(data)
let date = Date.parse(data.date + "T" + data.time);
let attendance = data.attendance && data.attendance != ""
? Date.parse(data.date + "T" + data.attendance)
: (date - 1000*60*30)
console.log(date, attendance, data.date + "T" + data.attendance)
let newGodi = await API.addGottesdienst(
data.name,
new Date(date),
new Date(attendance),
0
)
console.log(newGodi)
plan.gottesdienste.push(newGodi)
}
async function deleteGottedienst(id) {
let deleted = await API.deleteGottesdienst(id)
if(deleted) {
let index = plan.gottesdienste.findIndex(godi => godi.id == id)
plan.gottesdienste.splice(index, 1)
}
}
onMounted(async () => {
let fetchedPlan = await API.getPlan(0)
plan.gottesdienste = fetchedPlan.gottesdienste
plan.ministranten = fetchedPlan.ministranten
plan.marks = fetchedPlan.marks
})
function toggleMark(gid, mid) {
// TODO: track changes
let existingMark = plan.marks.find(mark => mark.mid == mid && mark.gid == gid);
if(existingMark) {
existingMark.value = ((existingMark.value + 2) % 3) - 1
console.log(existingMark.value.valueOf())
}else{
const mark = {
gid, mid, value: 1
}
plan.marks.push(mark)
}
}
</script>
<template>
<main>
<Plan
:gottesdienste="sortedGottesdienste"
:ministranten="plan.ministranten"
:marks="plan.marks"
:edit="false"
@added="addGodi"
@delete="deleteGottedienst"
@toggle-mark="toggleMark">
</Plan>
<button @click="addGodi">Add random Gottesdienst</button>
</main>
</template>
<style scoped lang="less">
</style>