12,883
edits
No edit summary |
(Add Purge link to page tools) |
||
(31 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(); }); | |||
} | } | ||
function initWikiAppSidebar() { | function initWikiAppSidebar() { | ||
if (navigator.userAgent.indexOf('gonative melvorwiki') > -1) { | |||
var isLoggedIn = isUserLoggedIn(); | |||
var myFavs = { | |||
url: 'https://wiki.melvoridle.com/w/Special:Favoritelist', | |||
label: 'My Favourite Pages', | |||
subLinks: [], | |||
icon: 'fas fa-star' | |||
}; | |||
var signIn = { | |||
label: 'Sign In / Register', | |||
url: 'https://wiki.melvoridle.com/index.php?title=Special:UserLogin&returnto=Main+Page', | |||
subLinks: [] | |||
}; | |||
var accountManagement = { | |||
label: 'Account Management', | |||
url: '', | |||
isGrouping: true, | |||
subLinks: [ | |||
{ label: 'Preferences', url: 'https://wiki.melvoridle.com/w/Special:Preferences', subLinks: [] }, | |||
{ label: 'Logout', url: 'https://wiki.melvoridle.com/index.php?title=Special:UserLogout&returnto=Main+Page', subLinks: [] } | |||
], | |||
icon: 'fas fa-user-gear' | |||
}; | |||
var items = [ | |||
{ url: 'https://wiki.melvoridle.com/w/Main_Page', label: 'Home', subLinks: [], icon: 'fas fa-house' } | |||
]; | |||
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: '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: 'Mod Creation', url: 'https://wiki.melvoridle.com/w/Mod_Creation', icon: 'fas fa-hammer', subLinks: [] } | |||
); | |||
if (isLoggedIn) { | |||
items.push(accountManagement); | |||
} | |||
items.push({ | |||
label: 'Special Tools', | |||
url: '', | |||
isGrouping: true, | |||
subLinks: [ | |||
{ 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' } | |||
], | |||
icon: 'fas fa-gear' | |||
}); | |||
items.push({ | |||
label: 'Support Melvor Idle', | |||
url: '', | |||
isGrouping: true, | |||
subLinks: [ | |||
{ label: 'Buy Melvor Idle', url: 'https://wiki.melvoridle.com/w/Full_Version', subLinks: [] }, | |||
{ label: 'Buy Throne of the Herald', url: 'https://wiki.melvoridle.com/w/Throne_of_the_Herald_Expansion', subLinks: [] }, | |||
{ 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 | |||
}); | |||
items.push({ | |||
label: 'Melvor Idle Socials', | |||
url: '', | |||
isGrouping: true, | |||
subLinks: [ | |||
{ label: 'Discord', url: 'https://discord.gg/melvoridle', subLinks: [], icon: 'fab fa-discord' }, | |||
{ label: 'Reddit', url: 'https://reddit.com/r/MelvorIdle', icon: 'custom icon-reddit-alien', 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 }); | |||
} | |||
} | } | ||
Line 842: | 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() { | |||
var shouldShowDownload = /iPhone|iPad|iPod/i.test(window.navigator.userAgent) && window.navigator.userAgent.indexOf('gonative melvorwiki') === -1; | |||
if (shouldShowDownload) { | |||
$('.ios-app-download').removeClass('d-none'); | |||
} else { | |||
$('.ios-app-download').addClass('d-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 847: | 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(); | ||
// Show iOS App download link | |||
showIOSAppDownloadLink(); | |||
// Show Android App download link | |||
showAndroidAppDownloadLink(); | |||
// Add links to Page Tools navigation | |||
addToPageTools(); | |||
}); | }); |