only consider filtered tasks for kanban views

This commit is contained in:
marlon-erler
2026-04-01 09:42:51 +00:00
parent 2ef4454131
commit 68dbd378e8
3 changed files with 20 additions and 15 deletions
+14 -9
View File
@@ -357,8 +357,7 @@
for (const object of objects) { for (const object of objects) {
const stringEntryObject = converter(object); const stringEntryObject = converter(object);
const stringEntryObjectValue = stringEntryObject[key]; const stringEntryObjectValue = stringEntryObject[key];
if (stringEntryObjectValue == void 0) if (stringEntryObjectValue == void 0) continue;
continue;
values.add(stringEntryObjectValue.toString()); values.add(stringEntryObjectValue.toString());
} }
return [...values.values()]; return [...values.values()];
@@ -3336,7 +3335,13 @@
VersionIdToOption VersionIdToOption
] ]
} }
), /* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_drop_down"))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "label"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskNameLabel), /* @__PURE__ */ createElement("input", { "bind:value": taskViewModel.name, id: "focused" }))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskBoardLabel), /* @__PURE__ */ createElement( ), /* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_drop_down"))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "label"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskNameLabel), /* @__PURE__ */ createElement(
"input",
{
"bind:value": taskViewModel.name,
id: "focused"
}
))), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "category"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, translations.chatPage.task.taskBoardLabel), /* @__PURE__ */ createElement(
"select", "select",
{ {
"bind:value": taskViewModel.boardId, "bind:value": taskViewModel.boardId,
@@ -3990,14 +3995,14 @@
return PropertyValueList( return PropertyValueList(
"category", "category",
(taskViewModel) => taskViewModel.task, (taskViewModel) => taskViewModel.task,
boardViewModel.taskViewModels, boardViewModel.filteredTaskViewModels,
(categories, sortedCategories) => { (categories, sortedCategories) => {
const categoryNameConverter = (categoryName) => { const categoryNameConverter = (categoryName) => {
const index = createPropertyValueIndexState( const index = createPropertyValueIndexState(
sortedCategories, sortedCategories,
categoryName categoryName
); );
return KanbanBoard(categoryName, index, boardViewModel); return Column(categoryName, index, boardViewModel);
}; };
return /* @__PURE__ */ createElement( return /* @__PURE__ */ createElement(
"div", "div",
@@ -4009,7 +4014,7 @@
} }
); );
} }
function KanbanBoard(categoryName, index, boardViewModel) { function Column(categoryName, index, boardViewModel) {
return FilteredList( return FilteredList(
{ category: categoryName }, { category: categoryName },
(taskViewModel) => taskViewModel.task, (taskViewModel) => taskViewModel.task,
@@ -4092,7 +4097,7 @@
collectPropertyValuesToState( collectPropertyValuesToState(
"status", "status",
(taskViewModel) => taskViewModel.task, (taskViewModel) => taskViewModel.task,
boardViewModel.taskViewModels, boardViewModel.filteredTaskViewModels,
statuses statuses
); );
}); });
@@ -4185,7 +4190,7 @@
sortedStatuses, sortedStatuses,
statusName statusName
); );
return CategoryStatusColumn( return StatusColumn(
categoryName, categoryName,
statusName, statusName,
index2, index2,
@@ -4226,7 +4231,7 @@
} }
); );
} }
function CategoryStatusColumn(categoryName, statusName, index, boardViewModel, taskViewModelsWithMatchingCategory) { function StatusColumn(categoryName, statusName, index, boardViewModel, taskViewModelsWithMatchingCategory) {
const taskViewModels = new ListState(); const taskViewModels = new ListState();
taskViewModelsWithMatchingCategory.handleAddition((taskViewModel) => { taskViewModelsWithMatchingCategory.handleAddition((taskViewModel) => {
const doesMatchStatus = taskViewModel.status.value == statusName; const doesMatchStatus = taskViewModel.status.value == statusName;
+3 -3
View File
@@ -17,7 +17,7 @@ export function BoardKanbanPage(boardViewModel: BoardViewModel) {
return PropertyValueList( return PropertyValueList(
"category", "category",
(taskViewModel: TaskViewModel) => taskViewModel.task, (taskViewModel: TaskViewModel) => taskViewModel.task,
boardViewModel.taskViewModels, boardViewModel.filteredTaskViewModels,
( (
categories: React.ListState<string>, categories: React.ListState<string>,
sortedCategories: React.State<string[]>, sortedCategories: React.State<string[]>,
@@ -30,7 +30,7 @@ export function BoardKanbanPage(boardViewModel: BoardViewModel) {
sortedCategories, sortedCategories,
categoryName, categoryName,
); );
return KanbanBoard(categoryName, index, boardViewModel); return Column(categoryName, index, boardViewModel);
}; };
return ( return (
@@ -43,7 +43,7 @@ export function BoardKanbanPage(boardViewModel: BoardViewModel) {
); );
} }
function KanbanBoard( function Column(
categoryName: string, categoryName: string,
index: React.State<number>, index: React.State<number>,
boardViewModel: BoardViewModel, boardViewModel: BoardViewModel,
+3 -3
View File
@@ -27,7 +27,7 @@ export function BoardStatusGridPage(boardViewModel: BoardViewModel) {
collectPropertyValuesToState( collectPropertyValuesToState(
"status", "status",
(taskViewModel: TaskViewModel) => taskViewModel.task, (taskViewModel: TaskViewModel) => taskViewModel.task,
boardViewModel.taskViewModels, boardViewModel.filteredTaskViewModels,
statuses, statuses,
); );
}); });
@@ -160,7 +160,7 @@ function CategoryRow(
sortedStatuses, sortedStatuses,
statusName, statusName,
); );
return CategoryStatusColumn( return StatusColumn(
categoryName, categoryName,
statusName, statusName,
index, index,
@@ -211,7 +211,7 @@ function CategoryRow(
); );
} }
function CategoryStatusColumn( function StatusColumn(
categoryName: string, categoryName: string,
statusName: string, statusName: string,
index: React.State<number>, index: React.State<number>,