mirror of
https://codeberg.org/vyn/mirai.git
synced 2025-07-02 01:13:19 +00:00
128 lines
2.5 KiB
Text
128 lines
2.5 KiB
Text
import { Date, Time } from "std-widgets.slint";
|
|
import { CalendarDay } from "components/Calendar.slint";
|
|
|
|
export struct NewTaskData {
|
|
sourceId: int,
|
|
eventId: int,
|
|
title: string,
|
|
scheduled: bool,
|
|
date: Date
|
|
}
|
|
|
|
export struct SaveTaskData {
|
|
sourceId: int,
|
|
id: int,
|
|
title: string,
|
|
scheduled: bool,
|
|
date: Date,
|
|
}
|
|
|
|
export struct NewEventParams {
|
|
sourceId: int,
|
|
title: string,
|
|
date: Date,
|
|
startsAt: Time,
|
|
endsAt: Time
|
|
}
|
|
|
|
export struct SaveEventParams {
|
|
sourceId: int,
|
|
id: int,
|
|
title: string,
|
|
date: Date,
|
|
startsAt: Time,
|
|
endsAt: Time
|
|
}
|
|
|
|
export struct AddSourceParam {
|
|
name: string,
|
|
type: string,
|
|
path: string
|
|
}
|
|
|
|
export struct ModifySourceParam {
|
|
id: int,
|
|
name: string,
|
|
path: string
|
|
}
|
|
|
|
export struct Source {
|
|
id: int,
|
|
name: string,
|
|
selected: bool,
|
|
path: string
|
|
}
|
|
|
|
export struct TaskData {
|
|
sourceId: int,
|
|
eventId: int,
|
|
id: int,
|
|
title: string,
|
|
date: Date,
|
|
checked: bool,
|
|
}
|
|
|
|
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,
|
|
relativeDaysDiff: int
|
|
}
|
|
|
|
struct OpenNewTaskFormParams {
|
|
eventSourceId: int,
|
|
eventId: int,
|
|
}
|
|
|
|
export global Backend {
|
|
in-out property<[Source]> sources-selected;
|
|
in-out property<int> default-source-index;
|
|
in-out property<[string]> sources;
|
|
in-out property<bool> no-source-selected;
|
|
in-out property<[string]> tags;
|
|
in-out property<[Day]> days;
|
|
in-out property<[CalendarDay]> calendar;
|
|
in-out property<[TaskData]> unscheduled-tasks;
|
|
|
|
callback task-clicked(int, int);
|
|
callback source-clicked(int);
|
|
callback tag-clicked(int);
|
|
callback settings-clicked();
|
|
callback add-source-clicked();
|
|
callback edit-source-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);
|
|
|
|
callback create-task(NewTaskData);
|
|
callback save-task(SaveTaskData);
|
|
callback create-event(NewEventParams);
|
|
callback save-event(SaveEventParams);
|
|
|
|
callback add-source(AddSourceParam);
|
|
callback modify-source(ModifySourceParam);
|
|
callback delete-source(int);
|
|
|
|
// Utils
|
|
pure callback format-date(Date) -> string;
|
|
pure callback format-date-relative(Date) -> string;
|
|
pure callback capitalize-string(string) -> string;
|
|
}
|