MediaWiki:Common.js
Appearance
Note: After publishing, 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)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
/* The personal-menu "Sandbox" link (with icon) is now added server-side by the SandboxAccess extension.
The previous JavaScript version (Special:MyPage/sandbox via mw.util.addPortletLink) was removed to avoid a duplicate link;
restore it from this page's history if the extension is ever disabled. */
/* BEGIN WikiCyber corporate v1 */
/* WikiCyber theme enhancements. Native MediaWiki editors/permissions stay intact. */
mw.loader.using('mediawiki.util').then(function () {
$(function () {
if (!document.body.classList.contains('skin-vector-2022')) return;
var base = mw.util.getUrl('Main Page');
var terms = mw.util.getUrl('WikiCyber:Terms of Use');
var logo = document.querySelector('.mw-logo-container');
if (logo && !logo.querySelector('.wc-slogan')) {
var slogan = document.createElement('span'); slogan.className = 'wc-slogan';
slogan.textContent = 'Knowledge for a safer digital world'; logo.append(slogan);
}
function link(label, href) { var a = document.createElement('a'); a.textContent = label; a.href = href; return a; }
var header = document.querySelector('.vector-header-start');
if (header) {
var nav = document.createElement('nav'); nav.className = 'wc-header-nav'; nav.setAttribute('aria-label', 'Primary');
nav.append(link('Knowledge base', base + '#topics'), link('Resources', mw.util.getUrl('Special:AllPages')), link('Contribute', mw.util.getUrl('Help:Your first article')));
header.after(nav);
}
var icons = document.querySelector('#footer-icons');
if (icons) {
var li = icons.querySelector('#footer-shorerogerico') || document.createElement('li');
li.replaceChildren();
var sre = link('', 'https://kirillshore.com'); sre.className = 'wc-sre-logo';
var image = document.createElement('img'); image.src = '/images/branding/theme-v1/shore-roger-logo.svg'; image.alt = 'Shore-Roger Enterprises'; image.width = 124; image.height = 48;
sre.append(image); li.append(sre); icons.append(li);
var cc = icons.querySelector('#footer-copyrightico img');
if (cc && !cc.getAttribute('src')) cc.src = '/resources/assets/licenses/cc-by-sa.png';
}
// This acknowledgement is browser-local; it does not gate access or create a legal audit record.
var key = 'wikicyber-terms-revision-253', bar = document.createElement('section');
bar.className = 'wc-terms-bar'; bar.setAttribute('aria-labelledby', 'wc-terms-heading');
var copy = document.createElement('div'), heading = document.createElement('h2'), description = document.createElement('p');
heading.id = 'wc-terms-heading'; heading.textContent = 'Terms of Use & cookies';
description.append('By selecting “Accept and continue,” you agree to the ', link('Terms of Use', terms), '. Essential cookies only.');
copy.append(heading, description);
var actions = document.createElement('div'); actions.className = 'wc-terms-actions';
var accept = document.createElement('button'); accept.type = 'button'; accept.textContent = 'Accept and continue';
actions.append(link('Read the terms', terms), accept); bar.append(copy, actions); document.body.append(bar);
var footer = document.querySelector('#footer');
var originalPadding = document.body.style.paddingBottom;
function spacing() { document.body.style.paddingBottom = bar.hidden ? originalPadding : bar.offsetHeight + 16 + 'px'; }
function display(show) { bar.hidden = !show; spacing(); }
var accepted = false; try { accepted = localStorage.getItem(key) === 'accepted'; } catch (e) { /* Storage optional. */ }
display(!accepted);
new ResizeObserver(spacing).observe(bar);
accept.addEventListener('click', function () { try { localStorage.setItem(key, 'accepted'); } catch (e) { /* Dismiss for this page. */ } display(false); var content = document.getElementById('content'); if (content) { content.setAttribute('tabindex', '-1'); content.focus({ preventScroll: true }); } });
});
});
/* END WikiCyber corporate v1 */