From acce4bff1dd624530d058a28520c48329beb87ce Mon Sep 17 00:00:00 2001 From: Marco Furrer Date: Thu, 10 Jul 2025 22:03:50 +0200 Subject: [PATCH] added save-taskeditor event to Gantt component --- store/src/DataStore.ts | 5 +++ store/src/dom/scales.ts | 2 +- svelte/demos/cases/GanttSaveEvent.svelte | 32 ++++++++++++++++++++ svelte/demos/routes.js | 2 ++ svelte/src/components/sidebar/SideBar.svelte | 8 ++++- 5 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 svelte/demos/cases/GanttSaveEvent.svelte diff --git a/store/src/DataStore.ts b/store/src/DataStore.ts index 9be4498..47161bf 100644 --- a/store/src/DataStore.ts +++ b/store/src/DataStore.ts @@ -205,6 +205,10 @@ export default class DataStore extends Store { inBus.on("show-editor", ({ id }: TMethodsConfig["show-editor"]) => { this.setStateAsync({ activeTask: id }); }); + inBus.on("save-taskeditor", () => { + // Event fired when the save button in the task editor is clicked + // This event is automatically forwarded to external listeners + }); inBus.on( "select-task", ({ id, toggle, range, show }: TMethodsConfig["select-task"]) => { @@ -1126,6 +1130,7 @@ export type IDataMethodsConfig = CombineTypes< ["indent-task"]: { id: TID; mode: boolean }; ["show-editor"]: { id: TID }; + ["save-taskeditor"]: { id: TID }; ["add-link"]: { id?: TID; link: Partial }; ["update-link"]: { id: TID; link: Partial }; ["delete-link"]: { id: TID }; diff --git a/store/src/dom/scales.ts b/store/src/dom/scales.ts index 751c2ea..98571db 100644 --- a/store/src/dom/scales.ts +++ b/store/src/dom/scales.ts @@ -9,7 +9,7 @@ export function grid( if (typeof document === "undefined") return ""; const canvas = document.createElement("canvas"); - let fillMode = true; + const fillMode = true; if (fillMode) { const ctx = canvasSize(canvas, width, height, 1, color); diff --git a/svelte/demos/cases/GanttSaveEvent.svelte b/svelte/demos/cases/GanttSaveEvent.svelte new file mode 100644 index 0000000..2cb6e16 --- /dev/null +++ b/svelte/demos/cases/GanttSaveEvent.svelte @@ -0,0 +1,32 @@ + + + \ No newline at end of file diff --git a/svelte/demos/routes.js b/svelte/demos/routes.js index 7ac3751..d757769 100644 --- a/svelte/demos/routes.js +++ b/svelte/demos/routes.js @@ -11,6 +11,7 @@ import GanttReadOnly from "./cases/GanttReadOnly.svelte"; import GanttPreventActions from "./cases/GanttPreventActions.svelte"; import GanttFormControls from "./cases/GanttFormControls.svelte"; import GanttForm from "./cases/GanttForm.svelte"; +import GanttSaveEvent from "./cases/GanttSaveEvent.svelte"; import GanttSizes from "./cases/GanttSizes.svelte"; import GanttMultiple from "./cases/GanttMultiple.svelte"; import GanttPerformance from "./cases/GanttPerformance.svelte"; @@ -102,6 +103,7 @@ export const links = [ GanttFormControls, ], ["/custom-edit-form/:skin", "Custom editor", GanttForm], + ["/save-event/:skin", "Editor: save event", GanttSaveEvent], ["/locale/:skin", "Locales", GanttLocale], ["/fullscreen/:skin", "Fullscreen", GanttFullscreen], diff --git a/svelte/src/components/sidebar/SideBar.svelte b/svelte/src/components/sidebar/SideBar.svelte index f868c5e..011c2d1 100644 --- a/svelte/src/components/sidebar/SideBar.svelte +++ b/svelte/src/components/sidebar/SideBar.svelte @@ -55,6 +55,12 @@ api.exec("show-editor", { id: null }); } + function saveTask() { + // Fire the save-taskeditor event before hiding the editor + api.exec("save-taskeditor", { id: $task.id }); + hide(); + } + function onDurationChange(e) { tdata.update(v => { v.duration = e.value; @@ -88,7 +94,7 @@
- +