fixes
This commit is contained in:
40
index.html
40
index.html
@@ -705,6 +705,21 @@
|
||||
container.appendChild(ul);
|
||||
}
|
||||
|
||||
function countSubcategoryArticles(children) {
|
||||
let total = 0;
|
||||
children.forEach(child => {
|
||||
// Count articles in this child
|
||||
const childCount = child.products ? child.products.length : child.articleCount;
|
||||
total += childCount;
|
||||
|
||||
// Recursively count articles in nested subcategories
|
||||
if (child.children && child.children.length > 0) {
|
||||
total += countSubcategoryArticles(child.children);
|
||||
}
|
||||
});
|
||||
return total;
|
||||
}
|
||||
|
||||
function renderCategory(category) {
|
||||
// category might be a filtered copy or original.
|
||||
// If it's a copy, it has _original pointing to the real state node.
|
||||
@@ -764,19 +779,30 @@
|
||||
|
||||
const count = document.createElement('div');
|
||||
count.className = 'category-count';
|
||||
// Use original counts or filtered counts?
|
||||
// "remove all articles ... with no match"
|
||||
// If filtered, we should probably show the count of MATCHING articles?
|
||||
// User didn't specify, but it makes sense to show matching count if filtered.
|
||||
// But articleCount comes from API.
|
||||
// We can calculate it from products array if loaded.
|
||||
const productCount = category.products ? category.products.length : category.articleCount;
|
||||
// When filtering, show actual matching product count
|
||||
// If this category is not a direct match (only matches due to subcategories),
|
||||
// and products aren't loaded, show 0 instead of total articleCount
|
||||
let productCount;
|
||||
if (category.products !== null && category.products !== undefined) {
|
||||
// Products are loaded, use the filtered count
|
||||
productCount = category.products.length;
|
||||
} else if (state.filter && !realNode._isDirectMatch) {
|
||||
// Filtering is active and this is not a direct match, so show 0
|
||||
productCount = 0;
|
||||
} else {
|
||||
// No filter or is a direct match, use API count
|
||||
productCount = category.articleCount;
|
||||
}
|
||||
let countText = `${productCount} articles`;
|
||||
|
||||
// Always show subcategory count if children exist (User requirement)
|
||||
// Use filtered children length
|
||||
if (category.children && category.children.length > 0) {
|
||||
const subcategoryArticleCount = countSubcategoryArticles(category.children);
|
||||
countText += `, ${category.children.length} subcategories`;
|
||||
if (subcategoryArticleCount > 0) {
|
||||
countText += ` with ${subcategoryArticleCount} more articles`;
|
||||
}
|
||||
}
|
||||
count.textContent = countText;
|
||||
info.appendChild(count);
|
||||
|
||||
Reference in New Issue
Block a user