diff --git a/app/components/pages/support/DocumentFilter.vue b/app/components/pages/support/DocumentFilter.vue new file mode 100644 index 0000000..82c8fad --- /dev/null +++ b/app/components/pages/support/DocumentFilter.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/app/pages/support/documents.vue b/app/pages/support/documents.vue index c03e8ea..8c0db6f 100644 --- a/app/pages/support/documents.vue +++ b/app/pages/support/documents.vue @@ -10,13 +10,15 @@
- - + + { + const types: DocumentTypeView[] = []; + documents.value.forEach((doc: DocumentListView) => { + if (!types.some((item) => item.id === doc.type.id)) { + if (doc.type.id === '-1') { + types.push({ + id: '-1', + name: $t('product-filter.misc'), + }); + } else { + types.push(doc.type); + } + } + }); + + return types; + }); + const productTypeOptions = computed(() => { const types: DocumentListProductType[] = []; documents.value.forEach((doc: DocumentListView) => { @@ -64,13 +85,13 @@ }); const productOptions = computed(() => { - if (!filters.selectedType) return []; + if (!filters.selectedProductType) return []; const products: DocumentListProduct[] = []; documents.value.forEach((doc: DocumentListView) => { doc.products?.forEach((product: DocumentListProduct) => { if ( - product.type.id === filters.selectedType && + product.type.id === filters.selectedProductType && !products.some((item) => item.id === product.id) ) { products.push(product); @@ -93,14 +114,18 @@ (product: DocumentListProduct) => product.id === filters.selectedProduct ) - : filters.selectedType + : filters.selectedProductType ? doc.products?.some( (product: DocumentListProduct) => - product.type?.id === filters.selectedType + product.type?.id === filters.selectedProductType ) : true; - return matchProduct; + const matchDocumentType = filters.selectedDocumentType + ? doc.type.id === filters.selectedDocumentType + : true; + + return matchProduct && matchDocumentType; }); }); @@ -112,7 +137,7 @@ }); watch( - () => filters.selectedType, + () => filters.selectedProductType, () => { filters.selectedProduct = null; } @@ -152,12 +177,6 @@ margin-left: auto; } - .document-category { - padding: 0rem 2rem; - gap: 4px; - margin-bottom: 0.5rem; - } - .page-content { padding: 1rem 2rem 2rem; }