@@ -37,33 +72,149 @@
:label="template.name"
style="font-size: 0.8em"
draggable="true"
+ @dragstart="onDragStart($event, template)"
>
-
- {{ item[0] }} - {{ item[1] }}
-
+
+
+
+
+
-
-
+
+
+
+
+
-
diff --git a/src/stores/sampledata/schedule.ts b/src/stores/sampledata/schedule.ts
index cdb79a5..1cecd8b 100644
--- a/src/stores/sampledata/schedule.ts
+++ b/src/stores/sampledata/schedule.ts
@@ -18,7 +18,7 @@ import type {
export const templateA: TimeBlockTemplate = {
id: '1',
name: 'WeekdayBlocks',
- timeTuple: [
+ timeTuples: [
['08:00', '12:00'],
['12:00', '16:00'],
['17:00', '21:00'],
@@ -28,7 +28,7 @@ export const templateA: TimeBlockTemplate = {
export const templateB: TimeBlockTemplate = {
id: '2',
name: 'WeekendBlocks',
- timeTuple: [
+ timeTuples: [
['07:00', '10:00'],
['10:00', '13:00'],
['13:00', '16:00'],
diff --git a/src/stores/schedule.ts b/src/stores/schedule.ts
index 0fb54b0..37a5c91 100644
--- a/src/stores/schedule.ts
+++ b/src/stores/schedule.ts
@@ -15,6 +15,30 @@ import {
Timeblock,
} from './schedule.types';
import { AppwriteIds, databases } from 'src/boot/appwrite';
+import { ID, Models } from 'appwrite';
+
+export function arrayToTimeTuples(arr: string[]) {
+ const timeTuples: TimeTuple[] = [];
+ for (let i = 0; i < arr.length; i += 2) {
+ timeTuples.push([arr[i], arr[i + 1]]);
+ }
+ return timeTuples;
+}
+
+export function buildTimeBlock(
+ resource: Boat,
+ time: TimeTuple,
+ blockDate: string
+): Timeblock {
+ /* When the time zone offset is absent, date-only forms are interpreted
+ as a UTC time and date-time forms are interpreted as local time. */
+ const result = {
+ boatId: resource.$id,
+ start: new Date(blockDate + 'T' + time[0]).toISOString(),
+ end: new Date(blockDate + 'T' + time[1]).toISOString(),
+ };
+ return result;
+}
export const useScheduleStore = defineStore('schedule', () => {
// TODO: Implement functions to dynamically pull this data.
@@ -22,11 +46,16 @@ export const useScheduleStore = defineStore('schedule', () => {
const timeblocks = ref