add button to delete task

This commit is contained in:
marlon-erler
2024-07-24 14:10:09 +02:00
parent e93a041a77
commit 71d840e024
5 changed files with 41 additions and 6 deletions
+17 -4
View File
@@ -1463,12 +1463,12 @@
this.close(); this.close();
this.save(); this.save();
}; };
// storage // settings
save = () => { save = () => {
const newTaskFileContent = BoardModel.createTaskFileContent( const newTaskFileContent = BoardModel.createTaskFileContent(
this.task.fileId, this.task.fileId,
this.name.value, this.name.value,
this.boardViewModel.boardInfo.fileId this.task.boardId
); );
newTaskFileContent.description = this.description.value; newTaskFileContent.description = this.description.value;
newTaskFileContent.status = this.status.value; newTaskFileContent.status = this.status.value;
@@ -1479,6 +1479,11 @@
this.boardModel.updateTaskAndSend(newTaskFileContent); this.boardModel.updateTaskAndSend(newTaskFileContent);
this.boardViewModel.showTaskInList(newTaskFileContent); this.boardViewModel.showTaskInList(newTaskFileContent);
}; };
deleteTask = () => {
this.close();
this.boardModel.deleteTask(this.task.boardId, this.task.fileId);
this.boardViewModel.removeTaskFromList(this.task.fileId);
};
// load // load
loadAllData = () => { loadAllData = () => {
this.name.value = this.task.name; this.name.value = this.task.name;
@@ -1573,6 +1578,9 @@
); );
this.taskViewModels.set(taskFileContent.fileId, taskViewModel); this.taskViewModels.set(taskFileContent.fileId, taskViewModel);
}; };
removeTaskFromList = (taskId) => {
this.taskViewModels.remove(taskId);
};
select = () => { select = () => {
this.taskPageViewModel.selectBoard(this); this.taskPageViewModel.selectBoard(this);
}; };
@@ -2065,7 +2073,8 @@
taskPriorityLabel: "Priority", taskPriorityLabel: "Priority",
taskDescriptionLabel: "Description", taskDescriptionLabel: "Description",
taskDateLabel: "Date", taskDateLabel: "Date",
taskTimeLabel: "Time" taskTimeLabel: "Time",
deleteTaskButton: "Delete task"
} }
} }
}; };
@@ -2359,7 +2368,11 @@
rows: "10", rows: "10",
"bind:value": taskViewModel.description "bind:value": taskViewModel.description
} }
))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskCategoryLabel), /* @__PURE__ */ createElement("input", { "bind:value": taskViewModel.category }))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "clock_loader_40"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskStatusLabel), /* @__PURE__ */ createElement("input", { "bind:value": taskViewModel.status }))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "priority_high"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskPriorityLabel), /* @__PURE__ */ createElement("input", { type: "number", "bind:value": taskViewModel.priority }))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "calendar_month"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskDateLabel), /* @__PURE__ */ createElement("input", { type: "date", "bind:value": taskViewModel.date }))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "schedule"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskTimeLabel), /* @__PURE__ */ createElement("input", { type: "time", "bind:value": taskViewModel.time })))), /* @__PURE__ */ createElement("div", { class: "flex-row width-100" }, /* @__PURE__ */ createElement("button", { class: "flex", "on:click": taskViewModel.close }, translations.general.closeButton), /* @__PURE__ */ createElement("button", { class: "flex primary", "on:click": taskViewModel.closeAndSave }, translations.general.saveButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "save"))))); ))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskCategoryLabel), /* @__PURE__ */ createElement("input", { "bind:value": taskViewModel.category }))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "clock_loader_40"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskStatusLabel), /* @__PURE__ */ createElement("input", { "bind:value": taskViewModel.status }))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "priority_high"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskPriorityLabel), /* @__PURE__ */ createElement("input", { type: "number", "bind:value": taskViewModel.priority }))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "calendar_month"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskDateLabel), /* @__PURE__ */ createElement("input", { type: "date", "bind:value": taskViewModel.date }))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "schedule"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskTimeLabel), /* @__PURE__ */ createElement("input", { type: "time", "bind:value": taskViewModel.time }))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("div", { class: "width-input" }, DangerousActionButton(
translations.chatPage.task.deleteTaskButton,
"delete_forever",
taskViewModel.deleteTask
))), /* @__PURE__ */ createElement("div", { class: "flex-row width-100" }, /* @__PURE__ */ createElement("button", { class: "flex", "on:click": taskViewModel.close }, translations.general.closeButton), /* @__PURE__ */ createElement("button", { class: "flex primary", "on:click": taskViewModel.closeAndSave }, translations.general.saveButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "save")))));
} }
// src/View/Components/taskEntry.tsx // src/View/Components/taskEntry.tsx
+10
View File
@@ -73,6 +73,16 @@ export function TaskSettingsModal(taskViewModel: TaskViewModel) {
<input type="time" bind:value={taskViewModel.time}></input> <input type="time" bind:value={taskViewModel.time}></input>
</div> </div>
</label> </label>
<hr></hr>
<div class="width-input">
{DangerousActionButton(
translations.chatPage.task.deleteTaskButton,
"delete_forever",
taskViewModel.deleteTask
)}
</div>
</main> </main>
<div class="flex-row width-100"> <div class="flex-row width-100">
<button class="flex" on:click={taskViewModel.close}> <button class="flex" on:click={taskViewModel.close}>
+2
View File
@@ -170,6 +170,8 @@ const englishTranslations = {
taskDateLabel: "Date", taskDateLabel: "Date",
taskTimeLabel: "Time", taskTimeLabel: "Time",
deleteTaskButton: "Delete task",
}, },
}, },
}; };
+4
View File
@@ -104,6 +104,10 @@ export default class BoardViewModel {
this.taskViewModels.set(taskFileContent.fileId, taskViewModel); this.taskViewModels.set(taskFileContent.fileId, taskViewModel);
}; };
removeTaskFromList = (taskId: string): void => {
this.taskViewModels.remove(taskId);
}
select = (): void => { select = (): void => {
this.taskPageViewModel.selectBoard(this); this.taskPageViewModel.selectBoard(this);
}; };
+8 -2
View File
@@ -43,13 +43,13 @@ export default class TaskViewModel {
this.save(); this.save();
}; };
// storage // settings
save = (): void => { save = (): void => {
const newTaskFileContent: TaskFileContent = const newTaskFileContent: TaskFileContent =
BoardModel.createTaskFileContent( BoardModel.createTaskFileContent(
this.task.fileId, this.task.fileId,
this.name.value, this.name.value,
this.boardViewModel.boardInfo.fileId this.task.boardId
); );
newTaskFileContent.description = this.description.value; newTaskFileContent.description = this.description.value;
@@ -63,6 +63,12 @@ export default class TaskViewModel {
this.boardViewModel.showTaskInList(newTaskFileContent); this.boardViewModel.showTaskInList(newTaskFileContent);
}; };
deleteTask = (): void => {
this.close();
this.boardModel.deleteTask(this.task.boardId, this.task.fileId);
this.boardViewModel.removeTaskFromList(this.task.fileId);
};
// load // load
loadAllData = (): void => { loadAllData = (): void => {
this.name.value = this.task.name; this.name.value = this.task.name;