MediaWiki:Common.js: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Tag: Manual revert
No edit summary
Line 153: Line 153:
     // Function to open the modal and adjust the list
     // Function to open the modal and adjust the list
    function openModal(cardElement) {
function openModal(cardElement) {
console.log('Clicked on card:', cardElement);
    console.log('Clicked on card:', cardElement);
        showArticleWrapper.css('display', 'block');
    var isRelatedArticle = $(cardElement).hasClass('related-article');
 
    showArticleWrapper.css('display', 'block');
        var wrapperWidth = showArticleWrapper.outerWidth(true);
var adjustment = 25; // Adjust this value as needed to close the gap
    var wrapperWidth = showArticleWrapper.outerWidth(true);
list.width(originalListWidth - wrapperWidth + adjustment).css('margin-right', (wrapperWidth - adjustment) + 'px');
    var adjustment = 25; // Adjust this value as needed to close the gap
listList.width(originalListListWidth - wrapperWidth + adjustment).css('margin-right', (wrapperWidth - adjustment) + 'px');
    list.width(originalListWidth - wrapperWidth + adjustment).css('margin-right', (wrapperWidth - adjustment) + 'px');
 
    listList.width(originalListListWidth - wrapperWidth + adjustment).css('margin-right', (wrapperWidth - adjustment) + 'px');
        // Adjust width of filtered-list-items in #list
        filteredListItems.css('width', 'calc(33.3% - 2px)');
    // Adjust width of filtered-list-items in #list
       
    filteredListItems.css('width', 'calc(33.3% - 2px)');
        // Hide communityFeatured
   
        communityFeatured.hide();
    // Hide communityFeatured
        communityListFeatured.hide();
    communityFeatured.hide();
       
    communityListFeatured.hide();
        // Extract and handle the information from the cardElement
        var cardImages = [];
    // Clear existing content in modal
        for (var i = 1; i <= 5; i++) {
    $('#article-title').empty();
            var imageClass = '.image' + i;
    $('#article-content').empty();
            var captionClass = '.caption-image' + i;
   
            var imageElem = $(cardElement).find(imageClass + ' img');
    if (isRelatedArticle) {
 
        // Handle related-article elements
            if (imageElem.length) {
        var entryNumber = $(cardElement).find('.related-article-entry-number').text();
                var captionText = $(cardElement).find(imageClass + ' ' + captionClass).text();
        var people = $(cardElement).find('.related-article-people').text();
                cardImages.push({
        var title = $(cardElement).find('.related-article-title').text();
                    link: $(cardElement).find(imageClass + ' a').attr('href'),
        var type = $(cardElement).find('.related-article-type').text();
                    src: imageElem.attr('src'),
                    alt: imageElem.attr('alt'),
        // Update modal content for related-article
                    caption: captionText,
        $('#article-title').html('<p class="article-entry-number">' + entryNumber + '</p>');
                    captionClass: 'caption-image' + i
        $('#article-content').html('<p class="article-people">' + people + '</p><p class="article-title">' + title + '</p><p class="article-type">' + type + '</p>');
                });
            }
    } else {
        }
        // Handle card elements (existing logic)
       
        var cardImages = [];
        if (cardImages.length > 1) {
        for (var i = 1; i <= 5; i++) {
            setupImageToggle(cardImages);
            var imageClass = '.image' + i;
        }
            var captionClass = '.caption-image' + i;
    var entryNumber = $(cardElement).find('.entry-number').text();
            var imageElem = $(cardElement).find(imageClass + ' img');
    var title = $(cardElement).find('.title').text();
    var peopleHtml = $(cardElement).find('.people').html();
            if (imageElem.length) {
    var typeHtml = $(cardElement).find('.type').html();      
                var captionText = $(cardElement).find(imageClass + ' ' + captionClass).text();
        var externalLinkURL = $(cardElement).find('.link a').attr('href');
                cardImages.push({
        var entity = $(cardElement).find('.entity').text();
                    link: $(cardElement).find(imageClass + ' a').attr('href'),
        var discipline = $(cardElement).find('.discipline').text();
                    src: imageElem.attr('src'),
        var subject = $(cardElement).find('.subject').text();
                    alt: imageElem.attr('alt'),
        var description = $(cardElement).find('.description').html();
                    caption: captionText,
        var reflection = $(cardElement).find('.reflection').html();
                    captionClass: 'caption-image' + i
        var quote = $(cardElement).find('.quote').text();
                });
        var modificationDate = $(cardElement).find('.modification-date').text();
            }
        var relatedArticlesHtml = $(cardElement).find('.related-articles').html();
        }
 
       
        $('#article-title').html('<p class="article-entry-number">' + entryNumber + '</p><p class="article-people">' + peopleHtml + '</p>');
        if (cardImages.length > 1) {
        var articleContentHtml = '<div class="article-title-link">';
            setupImageToggle(cardImages);
        articleContentHtml += '<p class="article-title">' + title + '</p>';
        }
        if (externalLinkURL) {
        var entryNumber = $(cardElement).find('.entry-number').text();
            articleContentHtml += '<a href="' + externalLinkURL + '" target="_blank" class="external-link-icon"><img src="/images/6/6d/Link-arrow-new.png" alt="Link"></a>';
        var title = $(cardElement).find('.title').text();
        }
        var peopleHtml = $(cardElement).find('.people').html();
        articleContentHtml += '</div>'; // Close the new div
        var typeHtml = $(cardElement).find('.type').html();       
 
        var externalLinkURL = $(cardElement).find('.link a').attr('href');
        // Append type, entity, discipline, and subject details
        var entity = $(cardElement).find('.entity').text();
        articleContentHtml += '<p class="article-type">' + typeHtml + '</p>' +
        var discipline = $(cardElement).find('.discipline').text();
        '<div class="article-metadata">' +
        var subject = $(cardElement).find('.subject').text();
            '<div class="article-metadata-column">' +
        var description = $(cardElement).find('.description').html();
                '<p class="article-metadata-label">Entity</p>' +
        var reflection = $(cardElement).find('.reflection').html();
                '<p class="article-metadata-value">' + entity + '</p>' +
        var quote = $(cardElement).find('.quote').text();
            '</div>' +
        var modificationDate = $(cardElement).find('.modification-date').text();
            '<div class="article-metadata-column">' +
        var relatedArticlesHtml = $(cardElement).find('.related-articles').html();
                '<p class="article-metadata-label">Discipline</p>' +
                '<p class="article-metadata-value">' + discipline + '</p>' +
        $('#article-title').html('<p class="article-entry-number">' + entryNumber + '</p><p class="article-people">' + peopleHtml + '</p>');
            '</div>' +
        var articleContentHtml = '<div class="article-title-link">';
            '<div class="article-metadata-column">' +
        articleContentHtml += '<p class="article-title">' + title + '</p>';
                '<p class="article-metadata-label">Subject(s)</p>' +
        if (externalLinkURL) {
                '<p class="article-metadata-value">' + subject + '</p>' +
            articleContentHtml += '<a href="' + externalLinkURL + '" target="_blank" class="external-link-icon"><img src="/images/6/6d/Link-arrow-new.png" alt="Link"></a>';
            '</div>' +
        }
        '</div>';
        articleContentHtml += '</div>'; // Close the new div
        // Add images if any
        if (cardImages.length > 0) {
        // Append type, entity, discipline, and subject details
            var initialImage = cardImages[0]; // Use the first image initially
        articleContentHtml += '<p class="article-type">' + typeHtml + '</p>' +
            articleContentHtml +=
        '<div class="article-metadata">' +
                '<div class="article-images">' +
            '<div class="article-metadata-column">' +
                    getImageHtml(initialImage, 0, cardImages.length) +
                '<p class="article-metadata-label">Entity</p>' +
                '</div>';
                '<p class="article-metadata-value">' + entity + '</p>' +
        }       
            '</div>' +
        // Add non-image content (description, reflection, etc.)
            '<div class="article-metadata-column">' +
        articleContentHtml +=  
                '<p class="article-metadata-label">Discipline</p>' +
        (description ? '<p class="article-label-description">Description</p>' +
                '<p class="article-metadata-value">' + discipline + '</p>' +
        '<div class="article-description">' + formatParagraphs(description) + '</div>' : '') +
            '</div>' +
        (reflection ? '<p class="article-label-reflection">Reflection</p>' +
            '<div class="article-metadata-column">' +
        '<div class="article-reflection">' + formatParagraphs(reflection) + '</div>' : '') +
                '<p class="article-metadata-label">Subject(s)</p>' +
        (quote ? '<p class="article-label-quote">Quote</p>' +
                '<p class="article-metadata-value">' + subject + '</p>' +
        '<div class="article-quote">“' + formatParagraphs(quote) + '”</div>' : '') +
            '</div>' +
        '<p class="article-label-modification-date">Added on</p>' +
        '</div>';
        '<div class="article-modification-date">' + formatSimpleDate(modificationDate) + '</div>'
        // Add images if any
 
        if (cardImages.length > 0) {
        $('#article-content').html(articleContentHtml);
            var initialImage = cardImages[0]; // Use the first image initially
        $('#related-articles').html(relatedArticlesHtml);
            articleContentHtml +=
 
                '<div class="article-images">' +
        if (relatedArticlesHtml && relatedArticlesHtml.trim().length > 0) {
                    getImageHtml(initialImage, 0, cardImages.length) +
            $('#related-articles').html('<div class="related-articles-label">Related Articles</div><div class="related-articles-container">' + relatedArticlesHtml + '</div>').show();
                '</div>';
        } else {
        }       
            $('#related-articles').html('<div class="related-articles-label">No related articles found.</div>').show();
        // Add non-image content (description, reflection, etc.)
        }
        articleContentHtml +=  
 
        (description ? '<p class="article-label-description">Description</p>' +
        function formatSimpleDate(inputDate) {
        '<div class="article-description">' + formatParagraphs(description) + '</div>' : '') +
            // Remove spaces from the date string
        (reflection ? '<p class="article-label-reflection">Reflection</p>' +
            var dateWithoutSpaces = inputDate.replace(/\s/g, '');
        '<div class="article-reflection">' + formatParagraphs(reflection) + '</div>' : '') +
       
        (quote ? '<p class="article-label-quote">Quote</p>' +
            // Assuming dateWithoutSpaces is in the format "XX XX XX"
        '<div class="article-quote">“' + formatParagraphs(quote) + '”</div>' : '') +
            var formattedDate = dateWithoutSpaces.slice(0, 2) + '.' + dateWithoutSpaces.slice(2, 4) + '.' + dateWithoutSpaces.slice(4);
        '<p class="article-label-modification-date">Added on</p>' +
       
        '<div class="article-modification-date">' + formatSimpleDate(modificationDate) + '</div>'
            return formattedDate;
        }
        $('#article-content').html(articleContentHtml);
 
        $('#related-articles').html(relatedArticlesHtml);
        // Apply the fade-out effect to both #list and #list-list elements
$('#list, #list-list').addClass('fade-out');
        if (relatedArticlesHtml && relatedArticlesHtml.trim().length > 0) {
 
            $('#related-articles').html('<div class="related-articles-label">Related Articles</div><div class="related-articles-container">' + relatedArticlesHtml + '</div>').show();
 
        } else {
        // Prevent further propagation to the document
            $('#related-articles').html('<div class="related-articles-label">No related articles found.</div>').show();
        event.stopPropagation();
        }
    }
    }
    function formatSimpleDate(inputDate) {
        // Remove spaces from the date string
        var dateWithoutSpaces = inputDate.replace(/\s/g, '');
   
        // Assuming dateWithoutSpaces is in the format "XX XX XX"
        var formattedDate = dateWithoutSpaces.slice(0, 2) + '.' + dateWithoutSpaces.slice(2, 4) + '.' + dateWithoutSpaces.slice(4);
   
        return formattedDate;
    }
    // Apply the fade-out effect to both #list and #list-list elements
    $('#list, #list-list').addClass('fade-out');
}


// Function to check if all filters are cleared in block view
// Function to check if all filters are cleared in block view
Line 340: Line 354:
});
});


$(document).on('click', '.related-article', function() {
    openModal(this);
});


     function setupImageToggle(images) {
     function setupImageToggle(images) {

Navigation menu