MediaWiki:Gadget-Touchdown.js

Aus Wiktionary, dem freien Wörterbuch
// begin namespace: foTouchdown
(function( _public, $, undefined ) {

var clockNode = null;

_public.init = function (){
  var ns = mw.config.get("wgNamespaceNumber");
  // namespace Einträge, Wiktionary und Verzeichnis
  // if (ns == 0 || ns == 4 || ns == 102) {
  var url = getServer() + mw.config.get("wgScriptPath") + "/api.php?" +
    "action=query&prop=revisions&format=json&rvprop=content&rvslots=main" +
    "&titles=Vorlage:Touchdown";

  $.get(url, handleResponse);
  // }
};


_public.top = function (){
  document.body.scrollTop = 0;
  document.documentElement.scrollTop = 0;
  return false;
};


_public.bottom = function () {
  document.body.scrollTop = 1000000;
  document.documentElement.scrollTop = 1000000;
  return false;
};


function handleResponse(data){

  if (data.query !== undefined && data.query.pages !== undefined) {

    var ka = Object.keys(data.query.pages);
    if (ka.length == 1) {
      var rev = data.query.pages[ka[0]];
      var m = rev.revisions["0"].slots.main["*"];

    //  Layout des Gadgets auf der Seite einblenden
    //  und Sprungziel am Ende der Seite festlegen
      var node = document.createElement("DIV");
      node.innerHTML = m;
      node.id = "myFooter";
      document.getElementById("content").appendChild(node);
      clockNode = document.getElementById("tdClock");
      timeTicker();
    }
  }

}


function timeTicker() {
  if ( clockNode ) {
    var now = new Date();
    var hh = now.getHours();
    var mm = now.getMinutes();
    clockNode.innerHTML = ( hh < 10 ? '0' + hh : hh ) + ':' + ( mm < 10 ? '0' + mm : mm );
    window.setTimeout(timeTicker, 999);
  }
}


function getServer() {
 var server = mw.config.get("wgServer");
 if (window.location.hostname.indexOf(".m.") >= 0) {  // mobile site
  if (server.indexOf(".m.") < 0) {
   return server.replace(".", ".m.");
  }
 }
 return server;
}


}( window.foTouchdown = window.foTouchdown || {}, jQuery ));

jQuery(document).ready(foTouchdown.init);