MediaWiki:InterProject.js

From radlines.org
Revision as of 19:13, 27 May 2018 by Admin (talk | contribs) (Created page with "// <nowiki> /** * Workaround for phabricator:T2708 via Template:InterProject. * Originally based on code from wikt:de:MediaWiki:Common.js by * [[wikt:de:User:M...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
// <nowiki>

/**
 * Workaround for [[phabricator:T2708]] via [[Template:InterProject]].
 * Originally based on code from [[wikt:de:MediaWiki:Common.js]] by
 * [[wikt:de:User:Melancholie]], cleaned up and modified for compatibility
 * with the Vector skin.
 *
 * This script is being used by several Wikimedia Wikis, not only Wikimedia
 * Commons.
 *
 * Maintainers: [[User:Krinkle]], [[User:Ilmari Karonen]]
 */
$( function () {
    // avoid double execution
    if ( document.getElementById('p-interproject') ) return;

    var interPr = document.getElementById('interProject');
    var sisterPr = document.getElementById('sisterProjects');
    if (!interPr) return;

    var toolBox = document.getElementById('p-tb');
    var legacyPanel;
    if (!toolBox) {
        // legacy skins
        var panelIds = ['mw-panel', 'panel', 'column-one', 'mw_portlets'];
        for (var i = 0; !legacyPanel && i < panelIds.length; i++) {
             legacyPanel = document.getElementById(panelIds[i]);
        }
        // can't find a place for the portlet, try to undo hiding
        if (!legacyPanel) {
            mw.util.addCSS('#interProject, #sisterProjects { display: block; }');
            return;
        }
    }

    mw.util.addCSS('#interProject, #sisterProjects { display: none; }');

    var interProject = document.createElement('div');
    interProject.id = 'p-interproject';

    interProject.className = (mw.config.get('skin') == 'vector' ? 'portal' : 'portlet');

    interProject.innerHTML =
        '<h3>' +
        (sisterPr && sisterPr.firstChild ? sisterPr.firstChild.innerHTML : 'Sister Projects') +
        '</h3><div class="' + (mw.config.get('skin') == 'vector' ? 'body' : 'pBody') +'">' +
        interPr.innerHTML + '</div>';

    if (legacyPanel) {
        legacyPanel.appendChild(interProject);
    } else {
        $(toolBox).after(interProject);
    }
} );