From 1ff819670cedb07a493721364ce50e5c543a8fc9 Mon Sep 17 00:00:00 2001 From: marlon-erler Date: Fri, 12 Jul 2024 01:54:53 +0200 Subject: [PATCH] add input to rename kanban boards --- dist/index.js | 28 +++++++++++++++++++++++++- src/Views/Objects/kanbanView.tsx | 34 ++++++++++++++++++++++++++++++-- src/translations.ts | 3 +++ 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/dist/index.js b/dist/index.js index 333cabcf..333299b8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -427,6 +427,7 @@ undoChanges: "Undo changes", close: "Close", discard: "Discard", + rename: "Rename", zoomOut: "zoom out", zoomIn: "zoom in", // overview @@ -513,6 +514,7 @@ undoChanges: "Deshacer", close: "Cerrar", discard: "Descartar", + rename: "Renombrar", zoomOut: "alejar", zoomIn: "acercar", // overview @@ -597,6 +599,7 @@ undoChanges: "\xC4nderungen verwerfen", close: "Schlie\xDFen", discard: "Verwerfen", + rename: "Umbenennen", zoomOut: "verkleinern", zoomIn: "vergr\xF6\xDFern", // overview @@ -1487,6 +1490,19 @@ return /* @__PURE__ */ createElement("div", { class: "width-100 height-100 scroll-no", "children:set": content }); } function KanbanBoardView(chat, kanbanBoard, selectedObject, isShowingObjectModal) { + const editingBoardTitle = new State(kanbanBoard.title); + const isEditing = new State(false); + const cannotRename = createProxyState( + [editingBoardTitle], + () => editingBoardTitle.value == kanbanBoard.title || editingBoardTitle.value == "" + ); + function renameBoard() { + kanbanBoard.items.forEach((messageObject) => { + const latest = chat.getMostRecentContent(messageObject); + latest.categoryName = editingBoardTitle.value; + chat.addObjectAndSend(messageObject); + }); + } function dragOver(event) { event.preventDefault(); } @@ -1500,6 +1516,7 @@ latest.categoryName = kanbanBoard.title; chat.addObjectAndSend(messageObject); } + const titleInput = /* @__PURE__ */ createElement("input", { "bind:value": editingBoardTitle, "on:enter": renameBoard }); return /* @__PURE__ */ createElement( "div", { @@ -1508,7 +1525,16 @@ "on:dragover": dragOver, "on:drop": drop }, - /* @__PURE__ */ createElement("b", { class: "flex-row width-100" }, kanbanBoard.title), + /* @__PURE__ */ createElement("div", { class: "flex-row align-center justify-apart" }, titleInput, /* @__PURE__ */ createElement( + "button", + { + class: "primary", + "aria-label": translation.rename, + "on:click": renameBoard, + "toggle:disabled": cannotRename + }, + /* @__PURE__ */ createElement("span", { class: "icon" }, "edit") + )), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("div", { class: "flex-column gap padding-bottom" }, ...kanbanBoard.items.map( (messageObject) => ObjectEntryView( diff --git a/src/Views/Objects/kanbanView.tsx b/src/Views/Objects/kanbanView.tsx index 4bce8a94..c676395b 100644 --- a/src/Views/Objects/kanbanView.tsx +++ b/src/Views/Objects/kanbanView.tsx @@ -59,6 +59,23 @@ function KanbanBoardView( selectedObject: React.State, isShowingObjectModal: React.State ) { + const editingBoardTitle = new React.State(kanbanBoard.title); + const isEditing = new React.State(false); + const cannotRename = React.createProxyState( + [editingBoardTitle], + () => + editingBoardTitle.value == kanbanBoard.title || + editingBoardTitle.value == "" + ); + + function renameBoard() { + kanbanBoard.items.forEach((messageObject) => { + const latest = chat.getMostRecentContent(messageObject); + latest.categoryName = editingBoardTitle.value; + chat.addObjectAndSend(messageObject); + }); + } + function dragOver(event: DragEvent) { event.preventDefault(); } @@ -73,10 +90,13 @@ function KanbanBoardView( const latest = chat.getMostRecentContent(messageObject); latest.categoryName = kanbanBoard.title; - chat.addObjectAndSend(messageObject); } + const titleInput = ( + + ); + return (
- {kanbanBoard.title} +
+ {titleInput} + +

{...kanbanBoard.items.map((messageObject) => diff --git a/src/translations.ts b/src/translations.ts index a603dfc5..c5e78582 100644 --- a/src/translations.ts +++ b/src/translations.ts @@ -6,6 +6,7 @@ const englishTranslations = { undoChanges: "Undo changes", close: "Close", discard: "Discard", + rename: "Rename", zoomOut: "zoom out", zoomIn: "zoom in", @@ -119,6 +120,7 @@ const allTranslations: { [key: string]: typeof englishTranslations } = { undoChanges: "Deshacer", close: "Cerrar", discard: "Descartar", + rename: "Renombrar", zoomOut: "alejar", zoomIn: "acercar", @@ -229,6 +231,7 @@ const allTranslations: { [key: string]: typeof englishTranslations } = { undoChanges: "Änderungen verwerfen", close: "Schließen", discard: "Verwerfen", + rename: "Umbenennen", zoomOut: "verkleinern", zoomIn: "vergrößern",