MediaWiki:Disclaimer.js

Z Enviwiki
Skočit na navigaci Skočit na vyhledávání

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)
  • Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
  • Opera: Stiskněte Ctrl-F5.
/* ============== DISCLAIMER =================================
   autor:       Petr Kajzar [[Uživatel:Slepi]]
   datum:       03/2016
   dokumentace: [[MediaWiki:Disclaimer.js/dokumentace]]
   popis:       vyloučení odpovědnosti ve WS
   ==========================================================
*/

var disclaimerCreator = {

  xmlhttpDiscText : "",
  urlText : wgServer + wgScript + "/MediaWiki:Disclaimer-text?action=raw",
  discText : "",
  registrText : "<b>Zaregistrovat a již neupozorňovat</b>",
  souhlasText : "Pokračovat bez registrace",
  nesouhlasText : "Zpět",
  urlPrihlasit : "http://www.wikiskripta.eu/index.php/Speci%C3%A1ln%C3%AD:P%C5%99ihl%C3%A1sit",
  urlRegistrovat : "http://www.wikiskripta.eu/index.php?title=Speciáln%C3%AD:Přihlásit&type=signup",
  jmenoUdelatka : "Nezobrazovat upozornění o vyloučení odpovědnosti",

  install : function () {
    if($(window).width() < 800) return false;

    // test cookies
    var cookiePos = document.cookie.indexOf("ws_disc=1");
    if (cookiePos > -1) return false;

    // přidání CSS stylu
    importStylesheet("MediaWiki:Disclaimer.css");

    // vytvoření divu pro overlay
    overlayDiv = document.createElement("div");
    overlayDiv.className = "overlay_div";
    overlayDiv.id = "overlay_div";

    // přidání divu na stránku
    document.body.appendChild(overlayDiv);

    // blok s textem
    contentDiv = document.createElement("div");
    contentDiv.className = "content_div";
    contentDiv.id = "content_div";

    // přidání bloku na stránku
    document.body.appendChild(contentDiv);

    // text disclaimeru
    getXMLHttpRequest("disclaimerCreator.xmlhttpDiscText", disclaimerCreator.urlText, "disclaimerCreator.getText");
  },

  getText : function() {
    if (disclaimerCreator.xmlhttpDiscText.readyState==4) {// 4 = "loaded"
      if (disclaimerCreator.xmlhttpDiscText.status==200) {// 200 = OK
         disclaimerCreator.discText = disclaimerCreator.xmlhttpDiscText.responseText; // odpoved serveru
         disclaimerCreator.showText();
      }
    }
  },

  showText : function() {

    // přidání textu na stránku
    contentDiv.innerHTML = "<h2>Upozornění</h2>"
      + "<p>"
      + disclaimerCreator.discText
      + "<br /></p>";

    // přidání tlačítek
    contentDiv.innerHTML += '<form action="">'
      + '<button onclick="return disclaimerCreator.closeDisclaimer(2);">'
      + disclaimerCreator.registrText
      + '</button>'
      + '<button onclick="return disclaimerCreator.closeDisclaimer(1);">'
      + disclaimerCreator.souhlasText
      + '</button>'
      + '<button onclick="return disclaimerCreator.closeDisclaimer(0);">'
      + disclaimerCreator.nesouhlasText
      + '</button></form>';

    // info o vypnutí disclaimeru
    contentDiv.innerHTML += '<p><br /><br /><small>'
      + '<a href="' + disclaimerCreator.urlPrihlasit + '">Přihlášeným uživatelům</a> '
      + 'se toto upozornění již nezobrazuje.</small><p>';

    // ukázání disclaimeru
    overlayDiv.style.display = "block";
    contentDiv.style.display = "block";
  },

  writeCookies : function() {
     document.cookie = "ws_disc=1";
  },

  closeDisclaimer : function(a) {
    if (a==1) {
      document.getElementById('overlay_div').style.display = 'none';
      document.getElementById('content_div').style.display = 'none';
      disclaimerCreator.writeCookies();
      return false;
    } else if (a==2) {
      window.location = disclaimerCreator.urlRegistrovat;
      return false;
    } else if (a==0) {
      history.back();
      return false;
    }
  }

}

if (mw.config.get("wgAction") == "view" && mw.config.get("wgPageName") != "Home" && mw.config.get("wgNamespaceNumber") == 0) {
  if (mw.config.get("wgUserName") == null) {   // pouze u nepřihlášených uživatelů
    $(function() { disclaimerCreator.install(); });
  }
}