Benutzer:PerfektesChaos/js/xtoolsPageinfo.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/// [[meta:User:Hedonil/XTools]] 2014-07-04
/*jshint  curly:true, latedef:true, laxbreak:true, strict:true,
          trailing:true, undef:true                                    */
/*global  window:false                                                 */
( function ( mw, $ ) {
   "use strict";
   var mwWG = mw.config.get( [ "wgAction",
                               "wgArticleId",
                               "wgCurRevisionId",
                               "wgRevisionId" ] ),
       loadinganimation, $loading, $result;



   function blink() {
      var s;
      switch ( $loading.html() ) {
         case ".  " :
            s = " . ";
            break;
         case " . " :
            s = "  .";
            break;
         default :
            s = ".  ";
      }
      $loading.html( s );
   }



   function execute() {
      var wg = mw.config.get( [ "wgContentLanguage",
                                "wgDBname",
                                "wgPageName",        // ??
                                "wgSiteName" ] ),    // ??
          $div = $( "<div>" );
      $div.attr( { id: "xtools" } );
      $div.css( { "font-size":   "84%",
                  "line-height": "1.2em",
                  "margin":      "0 0 0.4em 0.2em",
                  "width":       "auto" } );
      $loading = $( "<span>" );
      $loading.attr( { id: "xtoolsloading" } );
      $result = $( "<span>" );
      $result.attr( { id: "xtoolsresult" } );
      $div.append( $loading );
      $div.append( $result );
      $div.insertBefore( "#contentSub" );
      loadinganimation = window.setInterval( blink, 300 );
      mw.libs.xtoolsPageinfo = { };
      mw.libs.xtoolsPageinfo.resultloaded = resultloaded;
      window.xpagehistory = { };   // ?? TEMP server migration only
      window.xpagehistory.resultloaded = resultloaded;    // ??
      mw.loader.load( "//tools.wmflabs.org/xtools/api.php"
                      + "?db=" + wg.wgDBname
                      + "&pageid=" + mwWG.wgArticleId
                      + "&site=" + wg.wgSiteName // ??
                      + "&pagetitle="
                              + encodeURIComponent( wg.wgPageName ) // ??
                      + "&obj=mw.libs.xtoolsPageinfo" // ??
                      + "&uselang=" + wg.wgContentLanguage );
   }



   function resultloaded( res ) {
      window.clearInterval( loadinganimation );
      if ( $loading ) {
         $loading.remove();
      }
      $result.html( res );
      if ( typeof( window.xpagehistory ) === "object" ) {   // legacy
         delete window.xpagehistory;
      }
   }



   if ( mwWG.wgArticleId  &&   // no deleted or special pages
        mwWG.wgCurRevisionId === mwWG.wgRevisionId  &&   // current only
        mwWG.wgAction === "view" ) {
      $( execute );
   }
}( window.mediaWiki, window.jQuery ) );