2024-08-16 21:35:12 +02:00
|
|
|
import { Date, Time } from "std-widgets.slint";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export struct TaskData {
|
|
|
|
sourceId: int,
|
|
|
|
id: int,
|
|
|
|
title: string,
|
|
|
|
checked: bool,
|
|
|
|
tags: [string],
|
|
|
|
}
|
|
|
|
|
|
|
|
export struct Event {
|
|
|
|
sourceId: int,
|
|
|
|
id: int,
|
|
|
|
title: string,
|
|
|
|
startsAt: Time,
|
|
|
|
endsAt: Time,
|
|
|
|
tasks: [TaskData],
|
|
|
|
}
|
|
|
|
|
|
|
|
export struct Day {
|
|
|
|
sourceId: int,
|
|
|
|
id: int,
|
|
|
|
date: Date,
|
|
|
|
events: [Event],
|
|
|
|
tasks: [TaskData],
|
|
|
|
isLate: bool,
|
|
|
|
isToday: bool
|
|
|
|
}
|
|
|
|
|
|
|
|
struct OpenNewTaskFormParams {
|
|
|
|
eventSourceId: int,
|
|
|
|
eventId: int,
|
|
|
|
}
|
|
|
|
|
|
|
|
export global Backend {
|
2024-09-02 11:52:06 +02:00
|
|
|
in-out property<[string]> sources;
|
2024-08-16 21:35:12 +02:00
|
|
|
in-out property<[string]> tags;
|
|
|
|
in-out property<[Day]> visible_tasks;
|
2024-10-08 16:36:01 +02:00
|
|
|
in-out property<[TaskData]> unscheduled-tasks;
|
2024-08-16 21:35:12 +02:00
|
|
|
|
|
|
|
callback task_clicked(int, int);
|
|
|
|
callback source_clicked(int);
|
|
|
|
callback tag_clicked(int);
|
|
|
|
|
|
|
|
callback open_new_task_form(OpenNewTaskFormParams);
|
|
|
|
callback open_edit_task_form(int, int);
|
|
|
|
callback open_new_event_form();
|
|
|
|
callback open_edit_event_form(int, int);
|
|
|
|
callback toggle_show_completed_tasks();
|
|
|
|
callback delete_task_clicked(int, int);
|
|
|
|
callback delete_event_clicked(int, int);
|
|
|
|
|
|
|
|
pure callback formatDate(Date) -> string;
|
|
|
|
}
|