MediaWiki:Common.js

Z Wiki JU

Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.

  • Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
  • Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
  • Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5.
/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky */

$(function () {
  // Zruš jQuery UI vzhled tlačítka
  $('.articleFeedbackv5-submit').button('destroy');
});

document.addEventListener('DOMContentLoaded', function () {
  document.querySelectorAll('.extern-download').forEach(el => {
    el.style.cursor = 'pointer';
    el.style.color = '#0645AD';
    el.style.textDecoration = 'underline';
    el.addEventListener('click', () => {
      const a = document.createElement('a');
      a.href = el.getAttribute('data-url');
      a.setAttribute('download', '');
      a.style.display = 'none';
      document.body.appendChild(a);
      a.click();
      document.body.removeChild(a);
    });
  });
});

(function () {
  var NOTE_ID = 'af5-note';
  var NOTE_HTML =
    '<div id="' + NOTE_ID + '" class="articleFeedbackv5-note">' +
      'Tento formulář slouží pouze jako zpětná vazba pro tuto stránku. ' +
      'Řešíte-li nějaký problém, podívejte se na ' +
      '<a href="/wiki/Kontakty_služeb">seznam e-mailových adres</a>.' +
    '</div>';

  function injectNote(root) {
    var $ui = (root ? $(root) : $(document))
      .find('.articleFeedbackv5-ui-inner')
      .first();

    if (!$ui.length) return false;            // UI ještě není
    if (document.getElementById(NOTE_ID)) return true; // už vloženo

    $ui.append(NOTE_HTML);                    // vložit pod tlačítka
    return true;
  }

  // Zkus hned (pro případ, že už je UI na stránce)
  if (injectNote()) return;

  // Sleduj DOM a přidej, jakmile se UI objeví
  var obs = new MutationObserver(function (mutations) {
    for (var m of mutations) {
      if (injectNote(m.target)) {
        obs.disconnect();
        break;
      }
    }
  });

  obs.observe(document.body, { childList: true, subtree: true });

  // Bezpečnostní záloha – po 5 s to zkus naposledy
  setTimeout(function () { injectNote(); obs.disconnect(); }, 5000);
})();