show columns/rows of tasks without specified fields

This commit is contained in:
marlon-erler
2026-04-01 09:33:30 +00:00
parent feb5364315
commit 2ef4454131
8 changed files with 45 additions and 33 deletions
+19 -14
View File
@@ -322,7 +322,7 @@
function createTimestamp() {
return (/* @__PURE__ */ new Date()).toISOString();
}
function checkDoesObjectMatchReference(reference, stringEntryObject) {
function checkDoesObjectMatchReference(reference, stringEntryObject, explicitEmptyValue = false) {
reference_entry_loop: for (const referenceEntry of Object.entries(
reference
)) {
@@ -338,10 +338,12 @@
return false;
}
} else {
if (referenceValue == "" && (stringEntryObjectValue == void 0 || stringEntryObjectValue == "")) {
return false;
} else if (referenceValue == "") {
continue reference_entry_loop;
if (explicitEmptyValue == false) {
if (referenceValue == "" && (stringEntryObjectValue == void 0 || stringEntryObjectValue == "")) {
return false;
} else if (referenceValue == "") {
continue reference_entry_loop;
}
}
if (stringEntryObjectValue != referenceValue) {
return false;
@@ -355,7 +357,7 @@
for (const object of objects) {
const stringEntryObject = converter(object);
const stringEntryObjectValue = stringEntryObject[key];
if (stringEntryObjectValue == void 0 || stringEntryObjectValue == "")
if (stringEntryObjectValue == void 0)
continue;
values.add(stringEntryObjectValue.toString());
}
@@ -2651,7 +2653,8 @@
///
filterTasksHeadline: "Filter Tasks",
///
renameCategoryInputPlaceholder: "Rename category,"
renameCategoryInputPlaceholder: "Rename category",
renameStatusInputPlaceholder: "Rename status"
},
calendar: {
eventsBoard: "Events",
@@ -2825,7 +2828,8 @@
taskTimeLabel: "Uhrzeit",
deleteTaskButton: "Aufgabe l\xF6schen",
filterTasksHeadline: "Aufgaben filtern",
renameCategoryInputPlaceholder: "Kategorie umbenennen"
renameCategoryInputPlaceholder: "Kategorie umbenennen",
renameStatusInputPlaceholder: "Status umbenennen"
},
calendar: {
eventsBoard: "Ereignisse",
@@ -2995,7 +2999,8 @@
taskTimeLabel: "Hora",
deleteTaskButton: "Eliminar tarea",
filterTasksHeadline: "Filtrar Tareas",
renameCategoryInputPlaceholder: "Renombrar categor\xEDa"
renameCategoryInputPlaceholder: "Renombrar categor\xEDa",
renameStatusInputPlaceholder: "Renombrar estado"
},
calendar: {
eventsBoard: "Eventos",
@@ -3898,9 +3903,8 @@
propertyValues.add(existingValue);
}
for (const displayedValue of propertyValues.value.values()) {
if (values.includes(displayedValue) == false) {
propertyValues.remove(displayedValue);
}
if (values.includes(displayedValue)) continue;
propertyValues.remove(displayedValue);
}
}
function createSortedPropertyValueState(propertyValues) {
@@ -3922,7 +3926,8 @@
objects.handleAddition((newObject) => {
const doesMatch = checkDoesObjectMatchReference(
reference,
stringEntryObjectConverter(newObject)
stringEntryObjectConverter(newObject),
true
);
if (doesMatch == false) return;
matchingObjects.add(newObject);
@@ -4151,7 +4156,7 @@
const view = /* @__PURE__ */ createElement("div", { class: "flex-row" }, /* @__PURE__ */ createElement("div", { class: "property-input-wrapper" }, /* @__PURE__ */ createElement(
"input",
{
placeholder: translations.chatPage.task.renameCategoryInputPlaceholder,
placeholder: translations.chatPage.task.renameStatusInputPlaceholder,
"bind:value": viewModel.inputValue,
"on:enter": viewModel.set
}
+13 -11
View File
@@ -40,6 +40,7 @@ export function filterObjectsByStringEntries<T>(
export function checkDoesObjectMatchReference(
reference: StringEntryObject,
stringEntryObject: StringEntryObject,
explicitEmptyValue: boolean = false,
): boolean {
reference_entry_loop: for (const referenceEntry of Object.entries(
reference,
@@ -68,15 +69,17 @@ export function checkDoesObjectMatchReference(
return false;
}
} else {
// property must exist but be anything
if (
referenceValue == "" &&
(stringEntryObjectValue == undefined ||
stringEntryObjectValue == "")
) {
return false;
} else if (referenceValue == "") {
continue reference_entry_loop;
if (explicitEmptyValue == false) {
// property must exist but be anything
if (
referenceValue == "" &&
(stringEntryObjectValue == undefined ||
stringEntryObjectValue == "")
) {
return false;
} else if (referenceValue == "") {
continue reference_entry_loop;
}
}
// property must match
@@ -99,8 +102,7 @@ export function collectObjectValuesForKey<T>(
const stringEntryObject: StringEntryObject = converter(object);
const stringEntryObjectValue: Stringifiable | undefined =
stringEntryObject[key];
if (stringEntryObjectValue == undefined || stringEntryObjectValue == "")
continue;
if (stringEntryObjectValue == undefined) continue;
values.add(stringEntryObjectValue.toString());
}
+1 -2
View File
@@ -118,8 +118,7 @@ function StatusNameCell(
<div class="property-input-wrapper">
<input
placeholder={
translations.chatPage.task
.renameCategoryInputPlaceholder
translations.chatPage.task.renameStatusInputPlaceholder
}
bind:value={viewModel.inputValue}
on:enter={viewModel.set}
+1
View File
@@ -17,6 +17,7 @@ export function FilteredList<T>(
const doesMatch: boolean = checkDoesObjectMatchReference(
reference,
stringEntryObjectConverter(newObject),
true,
);
if (doesMatch == false) return;
+2 -3
View File
@@ -47,9 +47,8 @@ export function collectPropertyValuesToState<T>(
}
for (const displayedValue of propertyValues.value.values()) {
if (values.includes(displayedValue) == false) {
propertyValues.remove(displayedValue);
}
if (values.includes(displayedValue)) continue;
propertyValues.remove(displayedValue);
}
}
+4 -1
View File
@@ -53,7 +53,10 @@ export function TaskSettingsModal(taskViewModel: TaskViewModel) {
<span>
{translations.chatPage.task.taskNameLabel}
</span>
<input bind:value={taskViewModel.name} id="focused"></input>
<input
bind:value={taskViewModel.name}
id="focused"
></input>
</div>
</label>
+4 -1
View File
@@ -240,7 +240,8 @@ const englishTranslations = {
///
renameCategoryInputPlaceholder: "Rename category,",
renameCategoryInputPlaceholder: "Rename category",
renameStatusInputPlaceholder: "Rename status",
},
calendar: {
@@ -493,6 +494,7 @@ const allTranslations: { [language: string]: typeof englishTranslations } = {
filterTasksHeadline: "Aufgaben filtern",
renameCategoryInputPlaceholder: "Kategorie umbenennen",
renameStatusInputPlaceholder: "Status umbenennen",
},
calendar: {
@@ -739,6 +741,7 @@ const allTranslations: { [language: string]: typeof englishTranslations } = {
filterTasksHeadline: "Filtrar Tareas",
renameCategoryInputPlaceholder: "Renombrar categoría",
renameStatusInputPlaceholder: "Renombrar estado",
},
calendar: {