Update naming

This commit is contained in:
2024-05-20 21:53:09 -04:00
parent a6e357f973
commit 737de91bbc
11 changed files with 201 additions and 152 deletions

View File

@@ -113,7 +113,7 @@
/></q-item>
<q-separator spaced />
<IntervalTemplateComponent
v-for="template in timeblockTemplates"
v-for="template in intervalTemplates"
:key="template.$id"
:model-value="template"
/>
@@ -146,11 +146,7 @@ import {
today,
} from '@quasar/quasar-ui-qcalendar';
import { Boat, useBoatStore } from 'src/stores/boat';
import {
blocksOverlapped,
buildInterval,
useScheduleStore,
} from 'src/stores/schedule';
import { useScheduleStore } from 'src/stores/schedule';
import { onMounted, ref } from 'vue';
import type {
Interval,
@@ -161,12 +157,13 @@ import { date } from 'quasar';
import IntervalTemplateComponent from 'src/components/scheduling/IntervalTemplateComponent.vue';
import NavigationBar from 'src/components/scheduling/NavigationBar.vue';
import { storeToRefs } from 'pinia';
import { buildInterval, intervalsOverlapped } from 'src/utils/schedule';
const selectedDate = ref(today());
const { fetchBoats } = useBoatStore();
const scheduleStore = useScheduleStore();
const { boats } = storeToRefs(useBoatStore());
const { timeblockTemplates } = storeToRefs(useScheduleStore());
const intervalTemplates = scheduleStore.getIntervalTemplates();
const calendar = ref();
const overlapped = ref();
const alert = ref(false);
@@ -185,12 +182,11 @@ const newTemplate = ref<IntervalTemplate>({
onMounted(async () => {
await fetchBoats();
await scheduleStore.fetchIntervals();
await scheduleStore.fetchIntervalTemplates();
});
const filteredIntervals = (date: Timestamp, boat: Boat) => {
return scheduleStore.getIntervals(date, boat).value;
return scheduleStore.getIntervals(date, boat);
};
const sortedIntervals = (date: Timestamp, boat: Boat) => {
@@ -210,7 +206,7 @@ function createTemplate() {
newTemplate.value.$id = 'unsaved';
}
function createIntervals(boat: Boat, templateId: string, date: string) {
const intervals = timeBlocksFromTemplate(boat, templateId, date);
const intervals = intervalsFromTemplate(boat, templateId, date);
intervals.forEach((interval) => scheduleStore.createInterval(interval));
}
@@ -218,12 +214,14 @@ function getIntervals(date: Timestamp, boat: Boat) {
return scheduleStore.getIntervals(date, boat);
}
function timeBlocksFromTemplate(
function intervalsFromTemplate(
boat: Boat,
templateId: string,
date: string
): Interval[] {
const template = timeblockTemplates.value.find((t) => t.$id === templateId);
const template = scheduleStore
.getIntervalTemplates()
.value.find((t) => t.$id === templateId);
return template
? template.timeTuples.map((timeTuple: TimeTuple) =>
buildInterval(boat, timeTuple, date)
@@ -280,13 +278,13 @@ function onDrop(
const templateId = e.dataTransfer.getData('ID');
const date = scope.timestamp.date;
const resource = scope.resource;
const existingIntervals = getIntervals(scope.timestamp, resource).value;
const existingIntervals = getIntervals(scope.timestamp, resource);
const boatsToApply = type === 'head-day' ? boats.value : [resource];
overlapped.value = boatsToApply
.map((boat) =>
blocksOverlapped(
intervalsOverlapped(
existingIntervals.concat(
timeBlocksFromTemplate(boat, templateId, date)
intervalsFromTemplate(boat, templateId, date)
)
)
)