MCPcopy Create free account
hub / github.com/TechJeeper/Printventory / getCombinedFilteredModels

Function getCombinedFilteredModels

search.js:16–84  ·  view source on GitHub ↗
(overrides = {})

Source from the content-addressed store, hash-verified

14
15function filterValueList(primaryArr, legacyStr) {
16 const out = [];
17 if (Array.isArray(primaryArr)) {
18 for (const x of primaryArr) {
19 if (x != null && String(x).trim() !== "") out.push(String(x).trim());
20 }
21 }
22 if (!out.length && legacyStr != null && String(legacyStr).trim() !== "") {
23 out.push(String(legacyStr).trim());
24 }
25 return out;
26}
27
28/** Snapshot of sidebar / query-builder filters (same atoms as View Entire Library). */
29function getCurrentLibraryFilters() {
30 const designer = document.getElementById("designer-select")?.value || "";
31 const license = document.getElementById("license-select")?.value || "";
32 const parentModel = document.getElementById("parent-select")?.value || "";
33 const printStatus = document.getElementById("printed-select")?.value || "all";
34 const newStatus = document.getElementById("new-select")?.value || "all";
35 const favoriteStatus = document.getElementById("favorite-select")?.value || "all";
36 const ratingStatus = document.getElementById("rating-select")?.value || "all";
37 const ratingMinStatus = document.getElementById("rating-min-select")?.value || "all";
38 const tagFilter = document.getElementById("tag-filter")?.value || "";
39 const filamentFilter = document.getElementById("filament-filter")?.value || "";
40 const fileType = document.getElementById("filetype-select")?.value || "";
41
42 const filters = {
43 designerInverted: window.invertedFilters?.designer || false,
44 dateAdded: window.dateAddedFilter || null,
45 licenseInverted: window.invertedFilters?.license || false,
46 parentModelInverted: window.invertedFilters?.parentModel || false,
47 printed: printStatus === "all" ? undefined : printStatus,
48 isNew: newStatus === "all" ? undefined : newStatus,
49 favorite: favoriteStatus === "all" ? undefined : favoriteStatus,
50 rating: ratingStatus === "all" ? undefined : ratingStatus,
51 ratingMin: ratingMinStatus === "all" ? undefined : ratingMinStatus,
52 tagInverted: window.invertedFilters?.tag || false,
53 filamentInverted: window.invertedFilters?.filament || false,
54 fileType,
55 searchInverted: window.invertedFilters?.search || false,
56 directory: window.currentDirectoryFilter
57 };
58 if (typeof window.queryBuilderAppendExtendedFilterFields === "function") {
59 window.queryBuilderAppendExtendedFilterFields(filters);
60 } else {
61 const searchInputValue = (document.getElementById("search-filter-input")?.value || "").trim();
62 const resolvedSearchTerm = searchInputValue || lastSearchTerm || "";
63 filters.designer = designer;
64 filters.license = license;
65 filters.parentModel = parentModel;
66 filters.tag = tagFilter;
67 if (filamentFilter) filters.filament = filamentFilter;
68 filters.search = resolvedSearchTerm;
69 }
70 return filters;
71}
72
73function libraryFiltersAreActive(filters) {

Callers 1

performCombinedSearchFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected