×
Create a new article
Write your page title here:
We currently have 245 articles on The Vault @ The EERIE Files. Type your article name above or click on one of the titles below and start writing!



The Vault @ The EERIE Files

MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
Line 35: Line 35:
     var $article = $('#cosmos-pageBody-content');
     var $article = $('#cosmos-pageBody-content');
     var $container = $('#bodyContent');
     var $container = $('#bodyContent');
     if ($article.length && $container.length && !$('#vault-sidebar').length) {
     if (!$article.length || !$container.length || $('#vault-sidebar').length) {
         $container.append(
         return;
            '<aside id="vault-sidebar"><div class="vault-sidebar-placeholder">Sidebar<br><small>Add widgets here later</small></div></aside>'
        );
     }
     }
    var $rail = $('<aside id="vault-sidebar"></aside>').appendTo($container);
    /* --- Recently Filed module (5 newest pages, live via API) --- */
    var $recentModule = $(
        '<div class="vault-sidebar-module">' +
            '<div class="vault-sidebar-module-header">Recently Filed</div>' +
            '<ul class="vault-sidebar-list"><li class="vault-sidebar-loading">Loading&hellip;</li></ul>' +
        '</div>'
    ).appendTo($rail);
    $.getJSON(mw.util.wikiScript('api'), {
        action: 'query',
        list: 'recentchanges',
        rcnamespace: 0,
        rctype: 'new',
        rclimit: 5,
        rcprop: 'title',
        format: 'json'
    }).done(function (data) {
        var pages = (data.query && data.query.recentchanges) || [];
        var $list = $recentModule.find('.vault-sidebar-list').empty();
        if (!pages.length) {
            $list.append('<li>No recent entries.</li>');
            return;
        }
        pages.forEach(function (p) {
            $list.append(
                $('<li>').append(
                    $('<a>').attr('href', mw.util.getUrl(p.title)).text(p.title)
                )
            );
        });
    }).fail(function () {
        $recentModule.find('.vault-sidebar-list').html('<li>Could not load recent entries.</li>');
    });
});
});

Revision as of 21:07, 12 August 2026

/* Any JavaScript here will be loaded for all users on every page load. */

$(function () {

    $('a[href*="index.php?title="]').each(function () {

        var link = $(this);
        var url = new URL(link.attr('href'), window.location.origin);
        var title = url.searchParams.get('title');

        if (title) {

            var params = new URLSearchParams(url.search);
            params.delete('title');

            var newUrl = mw.config.get('wgArticlePath')
                .replace('$1', title);

            if (params.toString()) {
                newUrl += '?' + params.toString();
            }

            link.attr('href', newUrl);
        }

    });

});


/* ===== Vault sidebar rail (container only, content TBD) =====
   Injects an empty sidebar placeholder next to the article body
   on every page. Paired with layout CSS in MediaWiki:Cosmos.css. */
$(function () {
    var $article = $('#cosmos-pageBody-content');
    var $container = $('#bodyContent');
    if (!$article.length || !$container.length || $('#vault-sidebar').length) {
        return;
    }

    var $rail = $('<aside id="vault-sidebar"></aside>').appendTo($container);

    /* --- Recently Filed module (5 newest pages, live via API) --- */
    var $recentModule = $(
        '<div class="vault-sidebar-module">' +
            '<div class="vault-sidebar-module-header">Recently Filed</div>' +
            '<ul class="vault-sidebar-list"><li class="vault-sidebar-loading">Loading&hellip;</li></ul>' +
        '</div>'
    ).appendTo($rail);

    $.getJSON(mw.util.wikiScript('api'), {
        action: 'query',
        list: 'recentchanges',
        rcnamespace: 0,
        rctype: 'new',
        rclimit: 5,
        rcprop: 'title',
        format: 'json'
    }).done(function (data) {
        var pages = (data.query && data.query.recentchanges) || [];
        var $list = $recentModule.find('.vault-sidebar-list').empty();
        if (!pages.length) {
            $list.append('<li>No recent entries.</li>');
            return;
        }
        pages.forEach(function (p) {
            $list.append(
                $('<li>').append(
                    $('<a>').attr('href', mw.util.getUrl(p.title)).text(p.title)
                )
            );
        });
    }).fail(function () {
        $recentModule.find('.vault-sidebar-list').html('<li>Could not load recent entries.</li>');
    });
});