Zeithandling im Vertretungsplan angepasst, Marker für neue Zeilen eingefügt

This commit is contained in:
Daniel Spittank 2021-11-14 22:44:38 +01:00
parent 6250b17889
commit 420b4ef469
2 changed files with 25 additions and 15 deletions

View file

@ -59,6 +59,17 @@
<template v-slot:item.datum></template> <template v-slot:item.datum></template>
<template v-slot:header.datum></template> <template v-slot:header.datum></template>
<!-- Darstellung der Stunde (inkl. Badge für neue Einträge) -->
<template v-slot:item.stunde="{ item }">
<v-badge
color="yellow"
dot
:value="item.letzte_aenderung > vpDatumsgrenze"
>
{{ item.stunde }}
</v-badge>
</template>
<!-- Darstellung der Klasse --> <!-- Darstellung der Klasse -->
<template v-slot:item.klassen="{ item }"> <template v-slot:item.klassen="{ item }">
<Klasse v-for="(k, i) in klassen(item.klassen)" :key="i" :id="k" /> <Klasse v-for="(k, i) in klassen(item.klassen)" :key="i" :id="k" />
@ -194,12 +205,12 @@ export default {
], ],
expanded:[], expanded:[],
datepicker: false, datepicker: false,
vpDatum: new Date() vpDatum: new Date(),
vpDatumsgrenze: 0 // Grenze für "neue" Einträge
}; };
}, },
props: { props: {
vpUrl: String, // URL der GPU014, vpUrl: String, // URL der GPU014,
startDatum: Date
}, },
computed: { computed: {
datumIso () { datumIso () {
@ -211,6 +222,7 @@ export default {
}, },
set: function (val) { set: function (val) {
this.vpDatum = new Date(val) this.vpDatum = new Date(val)
this.vpDatumsgrenze = parseInt(this.vpDatum.toISOString().split('T')[0].replace(/-/g,'') + "0800")
} }
}, },
today () { today () {
@ -220,6 +232,17 @@ export default {
}, },
methods: { methods: {
async reload () { async reload () {
// Datum aktualisieren
this.vpDatum = new Date()
this.vpDatumsgrenze = parseInt(this.vpDatum.toISOString().split('T')[0].replace(/-/g,'') + "0800")
// Wochenenden überspringen
if (this.vpDatum.getDay() === 6) {
// Samstag => Montag
this.vpDatum.setDate(this.vpDatum.getDate() + 2)
} else if (this.vpDatum.getDay() === 0) {
// Sonntag => Montag
this.vpDatum.setDate(this.vpDatum.getDate() + 1)
}
// Feldnamen definieren // Feldnamen definieren
const vpHeader = 'nr,datum,stunde,absenznr,id_unterricht,lehrkraft,lehrkraft_vertretung,fach,fach_statistik_id,fach_vertretung,fach_vertretung_statistik_id,raum,raum_vertretung,statistik_id,klassen,absenzgrund,anmerkung,art,klassen_vertretung,art_vertretung,letzte_aenderung,extra\n' const vpHeader = 'nr,datum,stunde,absenznr,id_unterricht,lehrkraft,lehrkraft_vertretung,fach,fach_statistik_id,fach_vertretung,fach_vertretung_statistik_id,raum,raum_vertretung,statistik_id,klassen,absenzgrund,anmerkung,art,klassen_vertretung,art_vertretung,letzte_aenderung,extra\n'
// Abrufen // Abrufen
@ -237,8 +260,6 @@ export default {
} }
}, },
created () { created () {
// Startdatum festlegen
if (typeof this.startDatum !== 'undefined') this.vpDatum = this.startDatum
// Vertretungsplan neu laden // Vertretungsplan neu laden
this.reload() this.reload()
} }

View file

@ -41,7 +41,6 @@
> >
<Vertretungsplan <Vertretungsplan
vpUrl="/stundenplan/proxy.php?file=G014" vpUrl="/stundenplan/proxy.php?file=G014"
:startDatum="startDatum"
/> />
</v-sheet> </v-sheet>
</v-col> </v-col>
@ -85,7 +84,6 @@ export default {
'Vertretungsplan', 'Vertretungsplan',
'Stundenpläne' 'Stundenpläne'
], ],
startDatum: new Date()
}), }),
props: { props: {
@ -97,14 +95,5 @@ export default {
Vertretungsplan Vertretungsplan
}, },
created: function () {
if (this.startDatum.getDay() === 6) {
// Samstag => Montag
this.startDatum.setDate(this.startDatum.getDate() + 2)
} else if (this.startDatum.getDay() === 0) {
// Sonntag => Montag
this.startDatum.setDate(this.startDatum.getDate() + 1)
}
}
} }
</script> </script>