MediaWiki:Common.js: Difference between revisions
Appearance
Update favicon and remove requested footer links Tag: Manual revert |
Update favicon and remove requested footer links Tag: Manual revert |
||
| Line 44: | Line 44: | ||
var accept = document.createElement('button'); accept.type = 'button'; accept.textContent = 'Accept and continue'; | 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); | actions.append(link('Read the terms', terms), accept); bar.append(copy, actions); document.body.append(bar); | ||
var footer = document.querySelector('#footer'); | |||
var footer = document.querySelector('#footer' | |||
if (footer && mw.config.get('wgIsMainPage')) { | if (footer && mw.config.get('wgIsMainPage')) { | ||
var tools = document.createElement('div'); tools.className = 'wc-home-tools'; | var tools = document.createElement('div'); tools.className = 'wc-home-tools'; | ||
| Line 58: | Line 57: | ||
display(!accepted); | display(!accepted); | ||
new ResizeObserver(spacing).observe(bar); | new ResizeObserver(spacing).observe(bar); | ||
accept.addEventListener('click', function () { try { localStorage.setItem(key, 'accepted'); } catch (e) { /* Dismiss for this page. */ } display(false); | 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 */ | /* END WikiCyber corporate v1 */ | ||
Revision as of 20:33, 16 October 2026
/* 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');
if (footer && mw.config.get('wgIsMainPage')) {
var tools = document.createElement('div'); tools.className = 'wc-home-tools';
tools.append(link('Page history', mw.util.getUrl('Main Page', { action: 'history' })));
if (mw.config.get('wgIsProbablyEditable')) tools.append(link('Edit Main Page', mw.util.getUrl('Main Page', { action: 'edit' })));
footer.append(tools);
}
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 */