Jump to content

MediaWiki:Common.js: Difference between revisions

From WikiCyber
Deploy approved WikiCyber corporate theme
Restore default Vector styling; preserve branded emails
 
(5 intermediate revisions by the same user not shown)
Line 5: Line 5:
   restore it from this page's history if the extension is ever disabled. */
   restore it from this page's history if the extension is ever disabled. */


/* BEGIN WikiCyber corporate v1 */
/* Native CC BY-SA footer badge: repair an empty configured image source. */
/* WikiCyber theme enhancements. Native MediaWiki editors/permissions stay intact. */
$(function () {
mw.loader.using('mediawiki.util').then(function () {
     var badge = document.querySelector('#footer-copyrightico img');
  $(function () {
    if (badge && !badge.getAttribute('src')) badge.src = '/resources/assets/licenses/cc-by-sa.png';
    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 reset = document.createElement('button'); reset.type = 'button'; reset.className = 'wc-terms-reset'; reset.textContent = 'Terms & cookies';
    var footer = document.querySelector('#footer'); if (footer) footer.append(reset);
    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); reset.focus({ preventScroll: true }); });
    reset.addEventListener('click', function () { try { localStorage.removeItem(key); } catch (e) { /* Storage optional. */ } display(true); accept.focus({ preventScroll: true }); });
  });
});
});
/* END WikiCyber corporate v1 */

Latest revision as of 04:25, 17 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. */

/* Native CC BY-SA footer badge: repair an empty configured image source. */
$(function () {
    var badge = document.querySelector('#footer-copyrightico img');
    if (badge && !badge.getAttribute('src')) badge.src = '/resources/assets/licenses/cc-by-sa.png';
});