MediaWiki:Common.js: Difference between revisions

Add Purge link to page tools
No edit summary
(Add Purge link to page tools)
(16 intermediate revisions by 2 users not shown)
Line 550: Line 550:
if (!isOverflown) {
if (!isOverflown) {
var headElem = document.getElementById('mw-header-container');
var headElem = document.getElementById('mw-header-container');
if (headElem !== undefined) {
if ((headElem !== undefined) && (headElem !== null)) {
var headStyles = getComputedStyle(headElem);
var headStyles = getComputedStyle(headElem);
if ((headStyles !== undefined) && (headStyles.position !== 'static')) {
if ((headStyles !== undefined) && (headStyles.position !== 'static')) {
Line 671: Line 671:
});
});
}
}
}
function initCollapsibleElements() {
/* 2024-02-18 Allow collapsing of elements with class 'mw-collapsible', in line
* with desktop view behaviour. Extension:MobileFrontend disables this, but
* it is still desirable for our use case
*/
mw.loader.using('jquery.makeCollapsible').then(function () { $('.mw-collapsible').makeCollapsible(); });
}
}


Line 698: Line 706:
         };
         };
         var items = [
         var items = [
             { url: 'https://wiki.melvoridle.com/w/Main_Page', label: 'Home', subLinks: [], icon: 'fas fa-house' },
             { url: 'https://wiki.melvoridle.com/w/Main_Page', label: 'Home', subLinks: [], icon: 'fas fa-house' }
             isLoggedIn ? myFavs : signIn,
        ];
 
        if (isLoggedIn) {
             items.push(myFavs);
        } else {
            items.push(signIn);
        }
 
        items.push(
             { label: 'Guides', url: 'https://wiki.melvoridle.com/w/Guides', icon: 'fas fa-book', subLinks: [] },
             { label: 'Guides', url: 'https://wiki.melvoridle.com/w/Guides', icon: 'fas fa-book', subLinks: [] },
             { label: 'FAQ', url: 'https://wiki.melvoridle.com/w/FAQ', icon: 'fas fa-circle-question', subLinks: [] },
             { label: 'FAQ', url: 'https://wiki.melvoridle.com/w/FAQ', icon: 'fas fa-circle-question', subLinks: [] },
             { label: 'Changelog', url: 'https://wiki.melvoridle.com/w/Changelog', icon: 'fas fa-book-open', subLinks: [] },
             { label: 'Changelog', url: 'https://wiki.melvoridle.com/w/Changelog', icon: 'fas fa-book-open', subLinks: [] },
             { label: 'Mod Creation', url: 'https://wiki.melvoridle.com/w/Mod_Creation', icon: 'fas fa-hammer', subLinks: [] }
             { label: 'Mod Creation', url: 'https://wiki.melvoridle.com/w/Mod_Creation', icon: 'fas fa-hammer', subLinks: [] }
         ];
         );
 
         if (isLoggedIn) {
         if (isLoggedIn) {
             items.push(accountManagement);
             items.push(accountManagement);
         }
         }
         items.push(...[
 
             {
         items.push({
                label: 'Special Tools',
             label: 'Special Tools',
                url: '',
            url: '',
                isGrouping: true,
            isGrouping: true,
                subLinks: [
            subLinks: [
                    { label: 'Upload Files', url: 'https://wiki.melvoridle.com/w/Special:Upload', subLinks: [], icon: 'fas fa-upload' },
                { label: 'Upload Files', url: 'https://wiki.melvoridle.com/w/Special:Upload', subLinks: [], icon: 'fas fa-upload' },
                    { label: 'Special Pages', url: 'https://wiki.melvoridle.com/w/Special:SpecialPages', subLinks: [], icon: 'fas fa-file-powerpoint' }
                { label: 'Special Pages', url: 'https://wiki.melvoridle.com/w/Special:SpecialPages', subLinks: [], icon: 'fas fa-file-powerpoint' }
                ],
            ],
                icon: 'fas fa-gear'
            icon: 'fas fa-gear'
            },
        });
            {
 
                label: 'Support Melvor Idle',
        items.push({
                url: '',
            label: 'Support Melvor Idle',
                isGrouping: true,
            url: '',
                subLinks: [
            isGrouping: true,
                    { label: 'Buy Melvor Idle', url: 'https://wiki.melvoridle.com/w/Full_Version', subLinks: [] },
            subLinks: [
                    { label: 'Buy Throne of the Herald', url: 'https://wiki.melvoridle.com/w/Throne_of_the_Herald_Expansion', subLinks: [] },
                { label: 'Buy Melvor Idle', url: 'https://wiki.melvoridle.com/w/Full_Version', subLinks: [] },
                    { label: 'Buy Atlas of Discovery', url: 'httpshttps://wiki.melvoridle.com/w/Atlas_of_Discovery_Expansion://', subLinks: [] },
                { label: 'Buy Throne of the Herald', url: 'https://wiki.melvoridle.com/w/Throne_of_the_Herald_Expansion', subLinks: [] },
                    { label: 'Patreon', url: 'https://patreon.com/MelvorIdle', subLinks: [], icon: 'fab fa-patreon' }
                { label: 'Buy Atlas of Discovery', url: 'https://wiki.melvoridle.com/w/Atlas_of_Discovery_Expansion', subLinks: [] },
                ],
                { label: 'Patreon', url: 'https://patreon.com/MelvorIdle', subLinks: [], icon: 'fab fa-patreon' }
                icon: null
            ],
            },
            icon: null
            {
        });
                label: 'Melvor Idle Socials',
 
                url: '',
        items.push({
                isGrouping: true,
            label: 'Melvor Idle Socials',
                subLinks: [
            url: '',
                    { label: 'Discord', url: 'https://discord.gg/melvoridle', subLinks: [], icon: 'fab fa-discord' },
            isGrouping: true,
                    { label: 'Reddit', url: 'https://reddit.com/r/MelvorIdle', icon: 'custom icon-reddit-alien', subLinks: [] },
            subLinks: [
                    { label: 'Twitter', url: 'https://twitter.com/melvoridle', icon: 'custom icon-twitter', subLinks: [] },
                { label: 'Discord', url: 'https://discord.gg/melvoridle', subLinks: [], icon: 'fab fa-discord' },
                    { label: 'Facebook', url: 'https://facebook.com/melvoridle', icon: 'custom icon-facebook', subLinks: [] },
                { label: 'Reddit', url: 'https://reddit.com/r/MelvorIdle', icon: 'custom icon-reddit-alien', subLinks: [] },
                    { label: 'Instagram', url: 'https://instagram.com/melvoridle', icon: 'custom icon-instagram', subLinks: [] }
                { label: 'Twitter', url: 'https://twitter.com/melvoridle', icon: 'custom icon-twitter', subLinks: [] },
                ]
                { label: 'Facebook', url: 'https://facebook.com/melvoridle', icon: 'custom icon-facebook', subLinks: [] },
            }
                { label: 'Instagram', url: 'https://instagram.com/melvoridle', icon: 'custom icon-instagram', subLinks: [] }
        ]);
            ]
        });
         median.sidebar.setItems({ "items": items, "enabled": true, "persist": false });
         median.sidebar.setItems({ "items": items, "enabled": true, "persist": false });
     }
     }
Line 754: Line 772:
     return true;
     return true;
   }
   }
}
function addToPageTools() {
if (isUserLoggedIn()) {
$.when(mw.loader.using(['mediawiki.util']), $.ready).then( function() {
mw.util.addPortletLink(
'p-cactions',
mw.util.getUrl() + '?action=purge',
'Purge',
't-purgecache',
'Purge the cache for this page',
null,
null
);
});
}
}
}


function showIOSAppDownloadLink() {
function showIOSAppDownloadLink() {
     var shouldShowDownload = /iPhone|iPad|iPod/i.test(window.navigator.userAgent) && window.navigator.userAgent.indexOf('gonative melvorwiki') === -1;
     var shouldShowDownload = /iPhone|iPad|iPod/i.test(window.navigator.userAgent) && window.navigator.userAgent.indexOf('gonative melvorwiki') === -1;
     var els = document.getElementsByClassName('ios-app-download');
     if (shouldShowDownload) {
     for (var i = 0; i < els.length; i++) {
    $('.ios-app-download').removeClass('d-none');
        if (shouldShowDownload) {
    } else {
            els[i].style.display = 'block';
    $('.ios-app-download').addClass('d-none');
        } else {
     }
            els[i].style.display = 'none';
}
        }
 
function showAndroidAppDownloadLink() {
    var shouldShowDownload = /Android/i.test(window.navigator.userAgent) && window.navigator.userAgent.indexOf('gonative melvorwiki') === -1;
    if (shouldShowDownload) {
    $('.android-app-download').removeClass('d-none');
    } else {
    $('.android-app-download').addClass('d-none');
     }
     }
}
}
Line 771: Line 811:
// Table sticky headers
// Table sticky headers
initStickyHeaders();
initStickyHeaders();
// Collapsible elements (for Extension:MobileFrontend)
initCollapsibleElements();
// Wiki app native navigation
// Wiki app native navigation
initWikiAppSidebar();
initWikiAppSidebar();
});
document.addEventListener("DOMContentLoaded", function() {
// Show iOS App download link
// Show iOS App download link
showIOSAppDownloadLink();
showIOSAppDownloadLink();
// Show Android App download link
showAndroidAppDownloadLink();
// Add links to Page Tools navigation
addToPageTools();
});
});