Skip to content
Snippets Groups Projects

Resolve "Frontend for Models"

Merged Julian requested to merge 1-frontend-for-models into master
Compare and Show latest version
14 files
+ 207
105
Compare changes
  • Side-by-side
  • Inline
Files
14
@@ -3,17 +3,16 @@
<v-card class="sidebar">
<v-navigation-drawer floating permanent>
<v-list dense rounded>
<validity-range-field
<time-grid-field
solo
rounded
hide-details
v-model="internalValidityRange"
:loading="$apollo.queries.currentValidityRange.loading"
v-model="internalTimeGrid"
/>
<slot-creator
:query="$apollo.queries.items"
:validity-range="internalValidityRange.id"
v-if="internalValidityRange"
:time-grid="internalTimeGrid.id"
v-if="internalTimeGrid"
:breaks="createBreaks"
>
<template #activator="{ on, attrs }">
@@ -49,6 +48,23 @@
</v-list-item>
</template>
</slot-creator>
<copy-from-range-menu
v-if="internalTimeGrid"
>
<template #activator="{ on, attrs }">
<v-list-item link v-bind="attrs" v-on="on">
<v-list-item-icon>
<v-icon>mdi-content-copy</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>{{
$t("lesrooster.slot.copy_from_range")
}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
</template>
</copy-from-range-menu>
</v-list>
</v-navigation-drawer>
</v-card>
@@ -222,21 +238,22 @@ import {
deleteSlot,
deleteSlots,
} from "../breaks_and_slots/slot.graphql";
import { currentValidityRange } from "../validity_range/validityRange.graphql";
import ValidityRangeField from "../validity_range/ValidityRangeField.vue";
import DeleteDialog from "aleksis.core/components/generic/dialogs/DeleteDialog.vue";
import DeleteMultipleDialog from "aleksis.core/components/generic/dialogs/DeleteMultipleDialog.vue";
import CopyFromRangeMenu from "../validity_range/CopyFromRangeMenu.vue";
import SlotCard from "./SlotCard.vue";
import SlotCreator from "./SlotCreator.vue";
import TimeGridField from "../validity_range/TimeGridField.vue";
export default {
name: "LessonRaster",
components: {
TimeGridField,
CopyFromRangeMenu,
SlotCreator,
DeleteDialog,
DeleteMultipleDialog,
SlotCard,
ValidityRangeField,
},
apollo: {
items: {
@@ -244,7 +261,7 @@ export default {
variables() {
return {
filters: JSON.stringify({
validity_range: this.internalValidityRange.id,
time_grid: this.internalTimeGrid.id,
}),
};
},
@@ -254,20 +271,14 @@ export default {
);
},
skip() {
return this.internalValidityRange === null;
},
},
currentValidityRange: {
query: currentValidityRange,
result(data) {
this.internalValidityRange = data.data.currentValidityRange;
return this.internalTimeGrid === null;
},
},
},
data() {
return {
weekdays: [],
internalValidityRange: null,
internalTimeGrid: null,
loading: {},
gqlQuery: slots,
deleteMutation: deleteSlot,
@@ -333,7 +344,7 @@ export default {
await this.$apollo.mutate({
mutation: carryOverSlots,
variables: {
validityRange: this.internalValidityRange.id,
timeGrid: this.internalTimeGrid.id,
fromDay: this.intDay(src),
toDay: this.intDay(dest),
},
@@ -377,7 +388,7 @@ export default {
this.$apollo.mutate({
mutation: carryOverSlots,
variables: {
validityRange: this.internalValidityRange.id || slot.validityRange.id,
timeGrid: this.internalTimeGrid.id || slot.timeGrid.id,
fromDay: this.intDay(slot.weekday),
toDay: this.intDay(day),
only: [slot.id],
Loading