MediaWiki:Common.js: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
m refToolbar na enwiki přesunut (a konstrukce „načteme všem, ale uděláme gadget, kterým to jde vypnout“ mi přijde… podivná)
Update script to work with the new badges system. Please report any issues or questions at d:Wikidata:Contact the development team. Per [[MediaWiki talk:Common.js#Announced JavaScript change for badges implement…
Řádek 15: Řádek 15:
var language = languageMatch[1];
var language = languageMatch[1];
// zkusit najít odpovídající FA nebo GA element
// zkusit najít odpovídající FA nebo GA element
var falink = document.getElementById("fa-link-" + language);
var falink = document.getElementById("fa-link-" + language) && link.className.indexOf("badge-featuredarticle") === -1;
if (falink)
if (falink)
{
{
Řádek 21: Řádek 21:
link.title = "Tento článek patří mezi nejlepší";
link.title = "Tento článek patří mezi nejlepší";
} else {
} else {
var galink = document.getElementById("ga-link-" + language);
var galink = document.getElementById("ga-link-" + language) && link.className.indexOf("badge-goodarticle") === -1;
if (galink)
if (galink)
{
{

Verze z 27. 8. 2014, 21:51

/*<source lang="javascript">*/
 
/* hvězdičky pro featured+good articles v jiných jazycích */
function LinkFA() 
{
    var langbox = document.getElementById("p-lang");
    if (!langbox) return;
    var interwiki = langbox.getElementsByTagName("li");
    // iterace přes všechny mezijazykové odkazy
    for (var i = 0; i < interwiki.length; ++i)
    {
        var link = interwiki[i];
        var languageMatch = /\binterwiki-([a-z-]+)\b/.exec(link.className);
        if (!languageMatch) continue;
        var language = languageMatch[1];
        // zkusit najít odpovídající FA nebo GA element
        var falink = document.getElementById("fa-link-" + language) && link.className.indexOf("badge-featuredarticle") === -1;
        if (falink)
        {
            link.className += " featured";
            link.title = "Tento článek patří mezi nejlepší";
        } else {
            var galink = document.getElementById("ga-link-" + language) && link.className.indexOf("badge-goodarticle") === -1;
            if (galink)
            {
                link.className += " good";
                link.title = "Tento článek patří mezi dobré";
            }
        }
    }
}

/*******************************\
|*     Podpora pro navboxy     *|
\*******************************/

/* Pro další informace vizte [[:en:Help:Collapsing]]. */

var autoCollapse = 2;
var collapseCaption = "skrýt";
var expandCaption = "zobrazit";
 
function collapseTable( tableIndex )
{
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
    if ( !Table || !Button ) {
        return false;
    }
 
    var Rows = Table.rows;
 
    if ( Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
    }
}
 
function createCollapseButtons()
{
    var tableIndex = 0;
    var NavigationBoxes = new Object();
    var Tables = document.getElementsByTagName( "table" );
 
    for ( var i = 0; i < Tables.length; i++ ) {
        if ( hasClass( Tables[i], "collapsible" ) ) {
 
            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
            if (!HeaderRow) continue;
            var Header = HeaderRow.getElementsByTagName( "th" )[0];
            if (!Header) continue;
 
            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
 
            var Button     = document.createElement( "span" );
            var ButtonLink = document.createElement( "a" );
            var ButtonText = document.createTextNode( collapseCaption );
 
            Button.className = "collapseButton";  //Styles are declared in Common.css
 
            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
            ButtonLink.appendChild( ButtonText );
 
            Button.appendChild( document.createTextNode( "[" ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( "]" ) );
 
            Header.insertBefore( Button, Header.childNodes[0] );
            tableIndex++;
        }
    }
 
    for ( var i = 0;  i < tableIndex; i++ ) {
        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
            collapseTable( i );
        } 
        else if ( hasClass( NavigationBoxes[i], "innercollapse" ) ) {
            var element = NavigationBoxes[i];
            while (element = element.parentNode) {
                if ( hasClass( element, "outercollapse" ) ) {
                    collapseTable ( i );
                    break;
                }
            }
        }
    }
} 
 

/* Test if an element has a certain class *
 *
 * Převzato z [[:en:MediaWiki:Common.js]]
 */
 
var hasClass = (function () {
    var reCache = {};
    return function (element, className) {
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
    };
})();


/**********************\
|* Změna názvu článku *|
|* vytvořil Danny B.  *|
\**********************/
function SpravnyNazev ()
  {
  if (mw.config.get('wgNamespaceNumber') === 0) return;

  var nodSpravnyNazev = document.getElementById ("Sablona__Nazev_Spravny-nazev");

  if (nodSpravnyNazev)
    {
    var nodSablonaNazev = document.getElementById ("Sablona__Nazev");
    var nodNadpis = document.getElementsByTagName ("h1") [0];
    var anodNadpisObsah = nodNadpis.getElementsByTagName("span");
    var nodPuvodniNazev = null;
    for (var i = 0; i < anodNadpisObsah.length; ++i)
      {
      var n = anodNadpisObsah[i];
      if (n.className != "editsection")
        {
        nodPuvodniNazev = n;
        break;
        }
      }
    if (nodPuvodniNazev == null) return;
    nodNadpis.replaceChild (nodSpravnyNazev, nodPuvodniNazev);
    nodSablonaNazev.parentNode.removeChild (nodSablonaNazev);
    }
  }


/****************************************************************************\
|* Přidá položku "Vypsat pahýly" do seznamu nástrojů na stránkách kategorií *|
|* vytvořil Danny B.                                                        *|
\****************************************************************************/
function addToolListStubs() {
  	
  var nodDivTb = document.getElementById( "p-tb" );
  
  if( !nodDivTb || wgNamespaceNumber != 14 && wgNamespaceNumber != 15 ) return;
  
  var nodAListStubs = document.createElement( "a" );
  nodAListStubs.href = "http://toolserver.org/~danny_b/powersearch/pahyly-v-kategorii.php?kategorie=" + encodeURIComponent( wgTitle );
  nodAListStubs.title = "Zobrazit seznam všech pahýlů v této kategorii";
  nodAListStubs.appendChild( document.createTextNode( "Vypsat pahýly" ) );
  
  var nodLiListStubs = document.createElement( "li" );
  nodLiListStubs.id = "t-liststubs";
  nodLiListStubs.appendChild( nodAListStubs );
  
  var nodUlTb = nodDivTb.getElementsByTagName( "ul" )[0];
  nodUlTb.appendChild( nodLiListStubs );
  
}


/*****************\
|*  csWikipedia  *|
|* customization *|
\*****************/
 
function CustomizeCsWikipedia ()
  {
  LinkFA();
  SpravnyNazev();
  addToolListStubs();
  createCollapseButtons ();
  }
 
if (window.addEventListener)
  {
  window.addEventListener ("load", CustomizeCsWikipedia, false)
  }
else if (window.attachEvent)
  {
  window.attachEvent ("onload", CustomizeCsWikipedia)
  };
 
/*</source>*/

/*************************\
|* české řazení dle ÚJČ AV ČR (prirucka.ujc.cas.cz/?id=900) *|
|* vytvořil Littledogboy                                    *|
\*************************/
mw.config.set( 'tableSorterCollation', {'á':'a','č':'cÑÑ','ď':'d','é':'e','ě':'e','í':'i','ň':'n','ó':'o','ř':'rÑÑ','š':'sÑÑ','ť':'t','ú':'u','ů':'u','ý':'y','ž':'zÑÑ','Á':'A','Č':'CÑÑ','Ď':'D','É':'E','Ě':'E','Í':'I','Ň':'N','Ó':'O','Ř':'RÑÑ','Š':'SÑÑ','Ť':'T','Ú':'U','Ů':'U','Ý':'Y','Ž':'ZÑÑ'} );

/************************************************************************************************************\
|* Panel referencí - RefToolbar                                                                             *|
|*  Informace na [[Wikipedie:Panel referencí]], chyby hlašte na [[Diskuse k Wikipedii:Panel referencí]]     *|
|*  Nechcete-li nástroj používat, můžete jej odstranit ze svého editačního rozhraní následujícím kódem:     *|
|*     refToolbarInstalled = 'bypass';                                                                      *|
|*  ...který vložíte na [[Special:Mypage/vector.js]] (případně monobook.js)                                 *|
|*  Autor původní anglické verze: [[:en:User:Mr.Z-man]]                                                      *|
|*  Na cs.wiki přenesl a nástroj udržuje [[Wikipedista:Michal Bělka]]                                       *|
|*  Na zprovoznení české verze se podíleli [[Wikipedista:Reaperman]] a [[Wikipedista:Vojtech.dostal]]       *|
\************************************************************************************************************/
 
function initializeRefTools() {
    if ( window.refToolbarInstalled === undefined ) {
        importScriptURI('//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-refToolbarBase.js&action=raw&ctype=text/javascript');
 
        if( mw.user.options.get('usebetatoolbar') && mw.user.options.get('usebetatoolbar-cgd') ) {
            // Enhanced editing toolbar is on with dialogs. Load standard refToolbar.
            mw.loader.using( 'ext.wikiEditor.toolbar', function () {
                importScript('MediaWiki:RefToolbar.js');
            });
        } else if( mw.user.options.get('usebetatoolbar') ) { if (navigator.appName != "Microsoft Internet Explorer") {
            // Dialogs are off. Load refToolbar 2.0 without dialogs.
            mw.loader.using( 'ext.wikiEditor.toolbar', function () {
            importScript('MediaWiki:RefToolbarNoDialogs.js');
            });
        }} else { if (navigator.appName != "Microsoft Internet Explorer") {
            // Enhanced editing toolbar is off. Load legacy refToolbar 1.0.
            importScript('MediaWiki:RefToolbarLegacy.js');
        }}
        window.refToolbarInstalled = true;
    }
}
 
$( initializeRefTools );

// Results from Wikidata
// [[File:Wdsearch_script_screenshot.png]]
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search' ||  ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgCanonicalSpecialPageName' ) === false ) ) {
	importScriptURI("//en.wikipedia.org/w/index.php?title=MediaWiki:Wdsearch.js&action=raw&ctype=text/javascript");
}

// vyvolání stylu klikatelných tlačítek
mw.hook( 'wikipage.content' ).add( function() {
    if ( ( mw.loader.getState( 'mediawiki.ui.button' ) === 'registered'  ) && (  $( '.mw-ui-button' ).length ) ) {
        mw.loader.load('mediawiki.ui.button');
    }
} );