initial commit
This commit is contained in:
@@ -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>
|
||||
Reference in New Issue
Block a user