Skip to content

Commit 2fbb0e3

Browse files
BenjaminCharmesml-evs
authored andcommitted
Add 'no Blocks' filter in DataTable
1 parent 8ee15c2 commit 2fbb0e3

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

webapp/src/components/DynamicDataTable.vue

+23-8
Original file line numberDiff line numberDiff line change
@@ -365,13 +365,15 @@ export default {
365365
uniqueBlockTypes() {
366366
const itemsWithBlocks = this.data.filter((item) => item.blocks && item.blocks.length > 0);
367367
368-
return Array.from(
369-
new Map(
370-
itemsWithBlocks
371-
.flatMap((item) => item.blocks)
372-
.map((block) => [block.title, { title: block.title }]),
373-
).values(),
368+
const blockTypesMap = new Map(
369+
itemsWithBlocks
370+
.flatMap((item) => item.blocks)
371+
.map((block) => [block.title, { title: block.title }]),
374372
);
373+
374+
blockTypesMap.set("No blocks", { title: "No blocks" });
375+
376+
return Array.from(blockTypesMap.values());
375377
},
376378
knownTypes() {
377379
// Grab the set of types stored under the item type key
@@ -453,6 +455,15 @@ export default {
453455
return true;
454456
}
455457
458+
if (
459+
Array.isArray(filterValue) &&
460+
filterValue.some((filter) => filter.title === "No blocks")
461+
) {
462+
if (!value || !Array.isArray(value) || value.length === 0) {
463+
return true;
464+
}
465+
}
466+
456467
if (!value || !Array.isArray(value)) {
457468
return false;
458469
}
@@ -463,11 +474,15 @@ export default {
463474
if (Array.isArray(filterValue)) {
464475
if (isAnd) {
465476
return filterValue.every((filterBlock) =>
466-
value.some((itemBlock) => itemBlock.title === filterBlock.title),
477+
filterBlock.title === "No blocks"
478+
? !value || value.length === 0
479+
: value.some((itemBlock) => itemBlock.title === filterBlock.title),
467480
);
468481
} else {
469482
return filterValue.some((filterBlock) =>
470-
value.some((itemBlock) => itemBlock.title === filterBlock.title),
483+
filterBlock.title === "No blocks"
484+
? !value || value.length === 0
485+
: value.some((itemBlock) => itemBlock.title === filterBlock.title),
471486
);
472487
}
473488
}

0 commit comments

Comments
 (0)