MediaWiki:Common.js: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 172: Line 172:
         });
         });
     }  
     }  
   


      
     // Function to check if filters are cleared for given selectors and update visibility of corresponding community elements
// Function to check if filters are cleared and update visibility of community elements
    function updateCommunityElementsVisibility(selectors, communityElements) {
function checkFiltersCleared(selector, communityElement) {
        selectors.forEach((selector, index) => {
    var checkedFilters = $(selector + ' .filtered-value-option input[type="checkbox"]:checked');
            var checkedFilters = $(selector + ' .filtered-value-option input[type="checkbox"]:checked');
    console.log("Checked filters count in " + selector + ":", checkedFilters.length);
            console.log(`Checked filters count in ${selector}:`, checkedFilters.length);
    if (checkedFilters.length === 0) {
        console.log("All filters are cleared in " + selector);
        communityElement.show();
    } else {
        console.log("Some filters are still active in " + selector);
        communityElement.hide(); // Hide the element if any filters are active
    }
}


    // Event delegation for filter changes in block, list views, and their variations
            // If no filters are checked, show the community element associated with this selector
    $('#list, #list-list, #list-block-1, #list-block-2, #list-block-3, #list-list-1, #list-list-2, #list-list-3').on('change', '.filtered-value-option input[type="checkbox"]', function() {
            if (checkedFilters.length === 0) {
        // Determine the closest list, list-list, or their variations to identify the context
                console.log(`All filters are cleared in ${selector}`);
        var closestContext = $(this).closest('#list, #list-list, #list-block-1, #list-block-2, #list-block-3, #list-list-1, #list-list-2, #list-list-3');
                communityElements[index].show();
        var contextId = closestContext.attr('id'); // Get the id of the closest context
            } else {
                console.log(`Some filters are still active in ${selector}`);
                communityElements[index].hide(); // Hide the community element if any filters are active
            }
        });
    }


        // Call the checkFiltersCleared function with the appropriate context and communityFeatured element
    // Initial checks
        checkFiltersCleared('#' + contextId, communityFeatured);
    var selectors = [
    });
    '#list',
    '#list-list',
    '#list-block-1',
    '#list-block-2',
    '#list-block-3',
    '#list-list-1',
    '#list-list-2',
    '#list-list-3'
];
var communityElements = [
    $('#community-featured'),
    $('#community-featured-block-1'),
    $('#community-featured-block-2'),
    $('#community-featured-block-3'),
    $('#community-featured-list-1'),
    $('#community-featured-list-2'),
    $('#community-featured-list-3')
];


    // Call the function to initially set the visibility based on filters
    updateCommunityElementsVisibility(selectors, communityElements);


     // Initial checks
     // You can also call this function in response to filter changes or page events where filters might be modified
     var selectors = ['#list', '#list-list'];
     $('#list, #list-block-1, #list-block-2, #list-block-3, #list-list-1, #list-list-2, #list-list-3').on('change', '.filtered-value-option input[type="checkbox"]', function() {
        updateCommunityElementsVisibility(selectors, communityElements);
    });


    // Iterate over the selectors and perform initial checks
    selectors.forEach(function(selector) {
        checkFiltersCleared(selector, communityFeatured);
    });


// Function to check if all filters are cleared and return boolean
function areFiltersCleared(selector) {
    var checkedFilters = $(selector + ' .filtered-value-option input[type="checkbox"]:checked');
    return checkedFilters.length === 0;
}
// Function to open the modal and adjust the list
// Function to open the modal and adjust the list
function openModal(cardElement, event) {
function openModal(cardElement, event) {
Line 414: Line 420:
}
}


// Function to check if all filters are cleared in block view
// Function to check if all filters are cleared in block view and its variations
function checkBlockFiltersCleared() {
    function checkBlockFiltersCleared() {
    var checkedFilters = $('#list .filtered-value-option input[type="checkbox"]:checked');
        var selectors = ['#list', '#list-block-1', '#list-block-2', '#list-block-3'];
    console.log("Checked filters count:", checkedFilters.length);
        selectors.forEach(selector => {
            var checkedFilters = $(selector + ' .filtered-value-option input[type="checkbox"]:checked');
    if (checkedFilters.length === 0) {
            console.log(`Checked filters count in ${selector}:`, checkedFilters.length);
        console.log("All filters are cleared in block view");
 
            $('[id^="community-featured"]').show();
            if (checkedFilters.length === 0) {
    } else {
                console.log(`All filters are cleared in ${selector}`);
        console.log("Some filters are still active in block view");
                // Show all community elements related to block views
    }
                $('#community-featured, #community-featured-block-1, #community-featured-block-2, #community-featured-block-3').show();
}
            } else {
                console.log(`Some filters are still active in ${selector}`);
// Function to check if all filters are cleared in list view
                // Hide all community elements related to block views
function checkListFiltersCleared() {
                $('#community-featured, #community-featured-block-1, #community-featured-block-2, #community-featured-block-3').hide();
    var checkedFilters = $('#list-list .filtered-value-option input[type="checkbox"]:checked');
            }
    console.log("Checked filters count:", checkedFilters.length);
        });
    }
    if (checkedFilters.length === 0) {
 
        console.log("All filters are cleared in list view");
    // Function to check if all filters are cleared in list view and its variations
        $('[id^="community-featured"]').show();
    function checkListFiltersCleared() {
    } else {
        var selectors = ['#list-list', '#list-list-1', '#list-list-2', '#list-list-3'];
        console.log("Some filters are still active in list view");
        selectors.forEach(selector => {
    }
            var checkedFilters = $(selector + ' .filtered-value-option input[type="checkbox"]:checked');
}
            console.log(`Checked filters count in ${selector}:`, checkedFilters.length);
 
            if (checkedFilters.length === 0) {
                console.log(`All filters are cleared in ${selector}`);
                // Show all community elements related to list views
                $('#community-featured, #community-featured-list-1, #community-featured-list-2, #community-featured-list-3').show();
            } else {
                console.log(`Some filters are still active in ${selector}`);
                // Hide all community elements related to list views
                $('#community-featured, #community-featured-list-1, #community-featured-list-2, #community-featured-list-3').hide();
            }
        });
    }
 
// closeModal function
// closeModal function

Navigation menu