+{{/* Pass the current section to the JavaScript via data attributes */}}
+{{/* Also add a data attribute mapping section names to category names */}}
+
{{ $categories := slice "Books" "Movies" "TV Series" "Recipes" "YouTube" "Music" "Concerts" }}
{{ range $i, $cat := $categories }}
{{ $cat }}
@@ -19,7 +31,20 @@ document.addEventListener('DOMContentLoaded', function() {
const originalTabs = Array.from(tabsContainer.querySelectorAll('.tab')); // Tabs defined in HTML
const cardsContainer = document.getElementById('cards');
const allCards = Array.from(cardsContainer.children);
- const currentSectionTitle = tabsContainer.getAttribute('data-current-section-title');
+
+ // Get the current section and section-to-category mappings
+ const currentSection = tabsContainer.getAttribute('data-current-section');
+ let sectionMappings = {};
+ try {
+ sectionMappings = JSON.parse(tabsContainer.getAttribute('data-section-mappings'));
+ } catch (e) {
+ console.error('Error parsing section mappings:', e);
+ }
+
+ // Map the current section to its corresponding category
+ const currentCategory = sectionMappings[currentSection] || null;
+
+ // Get all category values from the tabs
const knownCategories = originalTabs.map(tab => tab.getAttribute('data-tab'));
// Create and prepend the "All" tab
@@ -31,6 +56,8 @@ document.addEventListener('DOMContentLoaded', function() {
// Function to activate a tab and filter cards
function activateTabAndFilter(selectedCategory) {
+ console.log('Filtering by category:', selectedCategory);
+
// Update active state for all tabs
document.querySelectorAll('#tabs .tab').forEach(t => {
if (t.getAttribute('data-tab') === selectedCategory) {
@@ -41,20 +68,30 @@ document.addEventListener('DOMContentLoaded', function() {
});
// Filter cards
+ let visibleCount = 0;
allCards.forEach(card => {
if (selectedCategory === 'all') {
card.style.display = '';
+ visibleCount++;
} else {
const cardCategory = card.getAttribute('data-category');
- card.style.display = (cardCategory === selectedCategory) ? '' : 'none';
+ console.log('Card category:', cardCategory, 'Selected:', selectedCategory);
+ const isVisible = (cardCategory === selectedCategory);
+ card.style.display = isVisible ? '' : 'none';
+ if (isVisible) visibleCount++;
}
});
+ console.log('Visible cards after filtering:', visibleCount);
}
// Determine initial category to display
let initialCategoryToDisplay = 'all';
- if (currentSectionTitle && knownCategories.includes(currentSectionTitle)) {
- initialCategoryToDisplay = currentSectionTitle;
+
+ // If we're on a section page and we have a mapping for this section,
+ // use the corresponding category
+ if (currentSection && currentCategory && knownCategories.includes(currentCategory)) {
+ initialCategoryToDisplay = currentCategory;
+ console.log('Initial category set to', initialCategoryToDisplay, 'based on section', currentSection);
}
// Attach click listeners to all tabs (including the new "All" tab)