MediaWiki:Common.js: Difference between revisions
No edit summary Tag: Manual revert |
No edit summary |
||
| Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
/ | |||
/* Force main menu to be pinned on desktop */ | |||
if (window.innerWidth >= 1024) { | if (window.innerWidth >= 1024) { | ||
var pinnedContainer = document.getElementById('vector-main-menu-pinned-container'); | |||
var unpinnedContainer = document.getElementById('vector-main-menu-unpinned-container'); | |||
var mainMenu = document.getElementById('vector-main-menu'); | |||
if (unpinnedContainer && mainMenu) { | if (unpinnedContainer && mainMenu) { | ||
if (pinnedContainer && !pinnedContainer.contains(mainMenu)) { | if (pinnedContainer && !pinnedContainer.contains(mainMenu)) { | ||
pinnedContainer.appendChild(mainMenu); | pinnedContainer.appendChild(mainMenu); | ||
} | } | ||
} | } | ||
var pinButton = document.querySelector('.vector-pinnable-header-pin-button'); | var pinButton = document.querySelector('.vector-pinnable-header-pin-button'); | ||
if (pinButton) { | if (pinButton) { | ||
| Line 20: | Line 20: | ||
} | } | ||
} | } | ||
/* Google Translate Widget */ | |||
/* Google Translate Widget */ | |||
var translateHtml = | var translateHtml = | ||
'<div class="mw-portlet vector-menu" id="p-translate | '<div class="mw-portlet vector-menu" id="p-translate">' + | ||
'<div class="vector-menu-heading | '<div class="vector-menu-heading">Translate</div>' + | ||
'<div class="vector-menu-content">' + | '<div class="vector-menu-content">' + | ||
'<div id="google_translate_element"></div>' + | '<div id="google_translate_element"></div>' + | ||
'</div>' + | '</div>' + | ||
'</div>'; | '</div>'; | ||
// | // Try multiple selectors to find Main Menu portlet | ||
var mainMenuPortlet = document.querySelector('#p-Main_Menu | var mainMenuPortlet = document.querySelector('#p-Main_Menu') || | ||
document.querySelector('.mw-portlet-Main_Menu') || | |||
document.querySelector('[id*="Main_Menu"]') || | |||
document.querySelector('[id*="main-menu"]'); | |||
if (mainMenuPortlet) { | if (mainMenuPortlet) { | ||
mainMenuPortlet.insertAdjacentHTML('afterend', translateHtml); | mainMenuPortlet.insertAdjacentHTML('afterend', translateHtml); | ||
} else { | } else { | ||
var | // Fallback - append to sidebar | ||
if ( | var sidebar = document.querySelector('#mw-panel, .vector-sidebar'); | ||
if (sidebar) { | |||
sidebar.insertAdjacentHTML('beforeend', translateHtml); | |||
} | } | ||
} | } | ||
/* Load Google Translate script */ | |||
var script = document.createElement('script'); | var script = document.createElement('script'); | ||
script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; | script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; | ||
document.body.appendChild(script); | document.body.appendChild(script); | ||
}); | |||
}); /* end document.ready */ | |||
function googleTranslateElementInit() { | function googleTranslateElementInit() { | ||