|
|
Línia 1: |
Línia 1: |
− | /**
| |
− | * Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
| |
− | * loaded for all users on every wiki page. If possible create a gadget that is
| |
− | * enabled by default instead of adding it here (since gadgets are fully
| |
− | * optimized ResourceLoader modules with possibility to add dependencies etc.)
| |
− | *
| |
− | * Since Common.js isn't a gadget, there is no place to declare its
| |
− | * dependencies, so we have to lazy load them with mw.loader.using on demand and
| |
− | * then execute the rest in the callback. In most cases these dependencies will
| |
− | * be loaded (or loading) already and the callback will not be delayed. In case a
| |
− | * dependency hasn't arrived yet it'll make sure those are loaded before this.
| |
− | */
| |
− |
| |
− | /*global mw, $, importScript*/
| |
− |
| |
− | mw.loader.using( ['mediawiki.user', 'mediawiki.util', 'mediawiki.notify', 'jquery.client'] ).done( function () {
| |
− | /* Begin of mw.loader.using callback */
| |
− |
| |
− | /* Workaround pel sitenotice, per Toniher, modificat per Joancreus */
| |
− | /**
| |
− | $(window).load(function(){
| |
− | setTimeout(function (){
| |
− | $("#wlm-banner a").attr("href", "http://www.wikilovesmonuments.cat");
| |
− | },400);
| |
− | $(document).on("click","#wlm-banner a",function () {
| |
− | if($(this).attr("href") != "http://www.wikilovesmonuments.cat") {
| |
− | $(this).attr("href", "http://www.wikilovesmonuments.cat");
| |
− | }
| |
− | });
| |
− | });
| |
− | */
| |
− |
| |
− | /*HERE STARTS THE WORKING-CODE OF "METABOXES"*/
| |
− |
| |
− | /* Funcionament de la Plantilla:Metacaixa
| |
− | Implementat per: Usuari:Peleguer.
| |
− | Actualitzat per Joanjoc seguint les indicacions d'en Martorell
| |
− | */
| |
− |
| |
− | function MetaCaixaInit(){
| |
− | //S'executa al carregar-se la pàgina, si hi ha metacaixes,
| |
− | // s'assignen els esdeveniments als botons
| |
− | //alert("MetaCaixaInit");
| |
− |
| |
− | var i=0; //Inicialitzem comptador de caixes
| |
− | for (i=0;i<=9;i++){
| |
− | var vMc = document.getElementById("mc"+i);
| |
− | if (!vMc) break;
| |
− | //alert("MetaCaixaInit, trobada Metacaixa mc"+i);
| |
− |
| |
− | var j=1; //Inicialitzem comptador de botons dins de la caixa
| |
− | var vPsIni = 0; //Pestanya visible inicial
| |
− | for (j=1;j<=9;j++){
| |
− | var vBt = document.getElementById("mc"+i+"bt"+j);
| |
− | if (!vBt) break;
| |
− | //alert("MetaCaixaInit, trobat botó mc"+i+"bt"+j);
| |
− | vBt.onclick = MetaCaixaMostraPestanya; //A cada botó assignem l'esdeveniment onclick
| |
− | //alert (vBt.className);
| |
− | if (vBt.className=="mcBotoSel") vPsIni=j; //Si tenim un botó seleccionat, en guardem l'index
| |
− | }
| |
− | //alert ("mc="+i+", ps="+j+", psini="+vPsIni );
| |
− | if (vPsIni === 0) { //Si no tenim cap botó seleccionat, n'agafem un aleatòriament
| |
− | vPsIni = 1+Math.floor((j-1)*Math.random()) ;
| |
− | //alert ("Activant Pestanya a l'atzar; _mc"+i+"bt"+vPsIni +"_");
| |
− | document.getElementById("mc"+i+"ps"+vPsIni).style.display = "block";
| |
− | document.getElementById("mc"+i+"ps"+vPsIni).style.visibility = "visible";
| |
− | document.getElementById("mc"+i+"bt"+vPsIni).className="mcBotoSel";
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | function MetaCaixaMostraPestanya(){
| |
− | //S'executa al clicar una pestanya,
| |
− | //aquella es fa visible i les altres s'oculten
| |
− | var vMcNom = this.id.substr(0,3); //A partir del nom del botó, deduïm el nom de la caixa
| |
− | var vIndex = this.id.substr(5,1); //I l'index
| |
− |
| |
− | var i=1;
| |
− | for (i=1;i<=9;i++){ //busquem totes les pestanyes d'aquella caixa
| |
− | //alert(vMcNom+"ps"+i);
| |
− | var vPsElem = document.getElementById(vMcNom+"ps"+i);
| |
− | if (!vPsElem) break;
| |
− | if (vIndex==i){ //Si és la pestanya bona la mostrem i canviem la classe de botó
| |
− | vPsElem.style.display = "block";
| |
− | vPsElem.style.visibility = "visible";
| |
− | document.getElementById(vMcNom+"bt"+i).className="mcBotoSel";
| |
− | } else { //Sinó, l'ocultem i canviem la classe de botó
| |
− | vPsElem.style.display = "none";
| |
− | vPsElem.style.visibility = "hidden";
| |
− | document.getElementById(vMcNom+"bt"+i).className="mcBoto";
| |
− | }
| |
− | }
| |
− | return false; //evitem la recàrrega de la pàgina
| |
− | }
| |
− |
| |
− | $( MetaCaixaInit );
| |
− |
| |
− | /*HERE FINISHES THE WORKING-CODE OF "METABOXES"*/
| |
− |
| |
− | function AvisAdminsVand()
| |
− | {
| |
− | var url_name = '//ca.wikipedia.org/w/index.php?alertavandalisme=esclar';
| |
− | var page_name = document.URL;
| |
− | var index = page_name.indexOf(url_name);
| |
− | if (index == -1)
| |
− | return;
| |
− | var text_area = document.editform.wpTextbox1;
| |
− | var comment = "Atenció! Passa\'t per la pàgina de [[Especial:Recentchanges|canvis recents]] per a jutjar alguns canvis que poden ésser considerats com a [[Viquipèdia:vandalisme|vandalisme]].--~~"+"~~";
| |
− | text_area.value = comment;
| |
− | document.editform.wpSummary.value="Avís de vandalisme en curs!!!";
| |
− | }
| |
− |
| |
− | $( AvisAdminsVand );
| |
− |
| |
− | /**
| |
− | * Enllaç de càrrega per defecte a la pàgina d'ajuda
| |
− | * Amb els ginys es pot eliminar i es pot afegir també un enllaç a Commons
| |
− | */
| |
− | var LienUpload = function () {
| |
− | var uploadLink = document.getElementById("t-upload");
| |
− | if (!uploadLink) return;
| |
− |
| |
− | var a = uploadLink.firstChild;
| |
− | a.setAttribute('href', '/wiki/Ajuda:Carregar_un_fitxer');
| |
− | };
| |
− | $(LienUpload);
| |
− |
| |
− | //**************************************************************
| |
− | // Permet configurar el joc de caràcters especials.
| |
− | // Adaptat de la versió anglesa
| |
− | // per ca:Usuari:Martorell, segona versió per ca:Usuari:Pasqual
| |
− | //
| |
− | // Afegida possibilitat de personalització (Vegeu [[Viquipèdia:Scripts]])
| |
− | // per ca:Usuari:Joanjoc
| |
− | //**************************************************************
| |
− |
| |
− | function addCharSubsetMenu()
| |
− | {
| |
− | addCharSubsetMenuVar(0);
| |
− | }
| |
− |
| |
− | /* Afegeix un menu per a seleccionar subconjunts de caràcters especials */
| |
− | /***** ha d'avenir-se amb MediaWiki:Edittools *****/
| |
− | function chooseCharSubset(s) {
| |
− | var l = document.getElementById('specialchars').getElementsByTagName('p');
| |
− | for (var i = 0; i < l.length ; i++) {
| |
− | l[i].style.display = i == s ? 'inline' : 'none';
| |
− | l[i].style.visibility = i == s ? 'visible' : 'hidden';
| |
− | }
| |
− | }
| |
− |
| |
− | function addCharSubsetMenuVar(s) {
| |
− | var copywarn = document.getElementById('specialchars');
| |
− |
| |
− | if (copywarn) {
| |
− | var aIdx = [];
| |
− | aIdx[s] = "selected=\"selected\"";
| |
− |
| |
− | var menu = "<span style=\"margin-top:1px 1px 1px 1px;border-width:1px;border-style:solid;border-color:#aaaaaa;padding:2px 2px 2px 2px;font-size:x-small;position:relative;\"><select id=\"charsetBox\" style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
| |
− | menu += "<option "+aIdx[0]+">matemàtiques</option>";
| |
− | menu += "<option "+aIdx[1]+">fonètica</option>";
| |
− | menu += "<option "+aIdx[2]+">diacrítiques</option>";
| |
− | menu += "<option "+aIdx[3]+">ciríl·lic</option>";
| |
− | menu += "<option "+aIdx[4]+">alemany</option>";
| |
− | menu += "<option "+aIdx[5]+">alt alemany antic</option>";
| |
− | menu += "<option "+aIdx[6]+">anglés antic</option>";
| |
− | menu += "<option "+aIdx[7]+">àrab</option>";
| |
− | menu += "<option "+aIdx[8]+">berber</option>";
| |
− | menu += "<option "+aIdx[9]+">bosni/serbocroata</option>";
| |
− | menu += "<option "+aIdx[10]+">castellà</option>";
| |
− | menu += "<option "+aIdx[11]+">escandinau</option>";
| |
− | menu += "<option "+aIdx[12]+">eslovac</option>";
| |
− | menu += "<option "+aIdx[13]+">esperanto</option>";
| |
− | menu += "<option "+aIdx[14]+">estonià</option>";
| |
− | menu += "<option "+aIdx[15]+">francés</option>";
| |
− | menu += "<option "+aIdx[16]+">gal·lés</option>";
| |
− | menu += "<option "+aIdx[17]+">grec</option>";
| |
− | menu += "<option "+aIdx[18]+">grec antic</option>";
| |
− | menu += "<option "+aIdx[19]+">hawaià</option>";
| |
− | menu += "<option "+aIdx[20]+">hebreu</option>";
| |
− | menu += "<option "+aIdx[21]+">holandés</option>";
| |
− | menu += "<option "+aIdx[22]+">hongarés</option>";
| |
− | menu += "<option "+aIdx[23]+">indoeuropeu</option>";
| |
− | menu += "<option "+aIdx[24]+">irlandés</option>";
| |
− | menu += "<option "+aIdx[25]+">islandés</option>";
| |
− | menu += "<option "+aIdx[26]+">italià</option>";
| |
− | menu += "<option "+aIdx[27]+">japonés (romanji)</option>";
| |
− | menu += "<option "+aIdx[28]+">jiddisch</option>";
| |
− | menu += "<option "+aIdx[29]+">letó</option>";
| |
− | menu += "<option "+aIdx[30]+">lituà</option>";
| |
− | menu += "<option "+aIdx[31]+">maltés</option>";
| |
− | menu += "<option "+aIdx[32]+">navajo i apatxe</option>";
| |
− | menu += "<option "+aIdx[33]+">pinyin</option>";
| |
− | menu += "<option "+aIdx[34]+">polonés</option>";
| |
− | menu += "<option "+aIdx[35]+">portugués</option>";
| |
− | menu += "<option "+aIdx[36]+">romanés</option>";
| |
− | menu += "<option "+aIdx[37]+">serbi</option>";
| |
− | menu += "<option "+aIdx[38]+">turc i ll. turqueses</option>";
| |
− | menu += "<option "+aIdx[39]+">txec</option>";
| |
− | menu += "<option "+aIdx[40]+">vietnamita</option>";
| |
− | menu += "</select></span>";
| |
− | copywarn.innerHTML = menu + copywarn.innerHTML;
| |
− |
| |
− | chooseCharSubset(s);
| |
− | }
| |
− | }
| |
− |
| |
− | $( addCharSubsetMenu );
| |
− |
| |
− | /**
| |
− | * WikiMiniAtlas
| |
− | *
| |
− | * Description: WikiMiniAtlas is a popup click and drag world map.
| |
− | * This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
| |
− | * The script itself is located on meta because it is used by many projects.
| |
− | * See [[Meta:WikiMiniAtlas]] for more information.
| |
− | * Maintainers: [[User:Dschwen]]
| |
− | */
| |
− | ( function () {
| |
− | var require_wikiminiatlas = false;
| |
− | var coord_filter = /geohack/;
| |
− | $( function() {
| |
− | $( 'a.external.text' ).each( function( key, link ) {
| |
− | if ( link.href && coord_filter.exec( link.href ) ) {
| |
− | require_wikiminiatlas = true;
| |
− | // break from loop
| |
− | return false;
| |
− | }
| |
− | } );
| |
− | if ( $( 'div.kmldata' ).length ) {
| |
− | require_wikiminiatlas = true;
| |
− | }
| |
− | if ( require_wikiminiatlas ) {
| |
− | mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript');
| |
− | }
| |
− | } );
| |
− | } )();
| |
− |
| |
− | /***** OpenStreetMap *****
| |
− | * vegeu Ajuda:OpenStreetMap
| |
− | */
| |
− | mw.config.set( 'osm_proj_map', 'mapa' ); //"map" in project language
| |
− | mw.config.set( 'osm_proj_lang', 'ca' ); //project language
| |
− | mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:OSM.js&action=raw&ctype=text/javascript');
| |
− |
| |
− | /**
| |
− | * Collapsible tables *********************************************************
| |
− | * https://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=554529999
| |
− | * Description: Allows tables to be collapsed, showing only the header. See
| |
− | * [[Wikipedia:NavFrame]].
| |
− | * Maintainers: [[User:R. Koot]]
| |
− | */
| |
− |
| |
− | var autoCollapse = 2;
| |
− | var collapseCaption = 'amaga';
| |
− | var expandCaption = 'mostra';
| |
− |
| |
− | window.collapseTable = function ( tableIndex ) {
| |
− | var Button = document.getElementById( 'collapseButton' + tableIndex );
| |
− | var Table = document.getElementById( 'collapsibleTable' + tableIndex );
| |
− |
| |
− | if ( !Table || !Button ) {
| |
− | return false;
| |
− | }
| |
− |
| |
− | var Rows = Table.rows;
| |
− | var i;
| |
− |
| |
− | if ( Button.firstChild.data === collapseCaption ) {
| |
− | for ( i = 1; i < Rows.length; i++ ) {
| |
− | Rows[i].style.display = 'none';
| |
− | }
| |
− | Button.firstChild.data = expandCaption;
| |
− | } else {
| |
− | for ( 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 = {};
| |
− | var Tables = document.getElementsByTagName( 'table' );
| |
− | var i;
| |
− |
| |
− | function handleButtonLink( index, e ) {
| |
− | window.collapseTable( index );
| |
− | e.preventDefault();
| |
− | }
| |
− |
| |
− | for ( i = 0; i < Tables.length; i++ ) {
| |
− | if ( $( Tables[i] ).hasClass( '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', '#' );
| |
− | $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
| |
− | ButtonLink.appendChild( ButtonText );
| |
− |
| |
− | Button.appendChild( document.createTextNode( '[' ) );
| |
− | Button.appendChild( ButtonLink );
| |
− | Button.appendChild( document.createTextNode( ']' ) );
| |
− |
| |
− | Header.insertBefore( Button, Header.firstChild );
| |
− | tableIndex++;
| |
− | }
| |
− | }
| |
− |
| |
− | for ( i = 0; i < tableIndex; i++ ) {
| |
− | if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
| |
− | window.collapseTable( i );
| |
− | }
| |
− | else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
| |
− | var element = NavigationBoxes[i];
| |
− | while ((element = element.parentNode)) {
| |
− | if ( $( element ).hasClass( 'outercollapse' ) ) {
| |
− | window.collapseTable ( i );
| |
− | break;
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | $( createCollapseButtons );
| |
− |
| |
− | /**
| |
− | * Dynamic Navigation Bars (experimental)
| |
− | * https://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=554529999
| |
− | * Description: See [[Wikipedia:NavFrame]].
| |
− | * Maintainers: UNMAINTAINED
| |
− | */
| |
− |
| |
− | /* set up the words in your language */
| |
− | var NavigationBarHide = '[' + collapseCaption + ']';
| |
− | var NavigationBarShow = '[' + expandCaption + ']';
| |
− |
| |
− | /**
| |
− | * Shows and hides content and picture (if available) of navigation bars
| |
− | * Parameters:
| |
− | * indexNavigationBar: the index of navigation bar to be toggled
| |
− | **/
| |
− | window.toggleNavigationBar = function ( indexNavigationBar, event ) {
| |
− | var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
| |
− | var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
| |
− | var NavChild;
| |
− |
| |
− | if ( !NavFrame || !NavToggle ) {
| |
− | return false;
| |
− | }
| |
− |
| |
− | /* if shown now */
| |
− | if ( NavToggle.firstChild.data === NavigationBarHide ) {
| |
− | for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {
| |
− | if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
| |
− | NavChild.style.display = 'none';
| |
− | }
| |
− | }
| |
− | NavToggle.firstChild.data = NavigationBarShow;
| |
− |
| |
− | /* if hidden now */
| |
− | } else if ( NavToggle.firstChild.data === NavigationBarShow ) {
| |
− | for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {
| |
− | if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
| |
− | NavChild.style.display = 'block';
| |
− | }
| |
− | }
| |
− | NavToggle.firstChild.data = NavigationBarHide;
| |
− | }
| |
− |
| |
− | event.preventDefault();
| |
− | };
| |
− |
| |
− | /* adds show/hide-button to navigation bars */
| |
− | function createNavigationBarToggleButton() {
| |
− | var indexNavigationBar = 0;
| |
− | var NavFrame;
| |
− | var NavChild;
| |
− | /* iterate over all < div >-elements */
| |
− | var divs = document.getElementsByTagName( 'div' );
| |
− | for ( var i = 0; (NavFrame = divs[i]); i++ ) {
| |
− | /* if found a navigation bar */
| |
− | if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {
| |
− |
| |
− | indexNavigationBar++;
| |
− | var NavToggle = document.createElement( 'a' );
| |
− | NavToggle.className = 'NavToggle';
| |
− | NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
| |
− | NavToggle.setAttribute( 'href', '#' );
| |
− | $( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );
| |
− |
| |
− | var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );
| |
− | /**
| |
− | * Check if any children are already hidden. This loop is here for backwards compatibility:
| |
− | * the old way of making NavFrames start out collapsed was to manually add style="display:none"
| |
− | * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make
| |
− | * the content visible without JavaScript support), the new recommended way is to add the class
| |
− | * "collapsed" to the NavFrame itself, just like with collapsible tables.
| |
− | */
| |
− | for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) {
| |
− | if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
| |
− | if ( NavChild.style.display === 'none' ) {
| |
− | isCollapsed = true;
| |
− | }
| |
− | }
| |
− | }
| |
− | if ( isCollapsed ) {
| |
− | for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
| |
− | if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
| |
− | NavChild.style.display = 'none';
| |
− | }
| |
− | }
| |
− | }
| |
− | var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : NavigationBarHide );
| |
− | NavToggle.appendChild( NavToggleText );
| |
− |
| |
− | /* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */
| |
− | for( var j = 0; j < NavFrame.childNodes.length; j++ ) {
| |
− | if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
| |
− | NavToggle.style.color = NavFrame.childNodes[j].style.color;
| |
− | NavFrame.childNodes[j].appendChild( NavToggle );
| |
− | }
| |
− | }
| |
− | NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | $( createNavigationBarToggleButton );
| |
− |
| |
− | /**
| |
− | * Diverses fonctions manipulant les classes
| |
− | * Utilise des expressions régulières et un cache pour de meilleures perfs
| |
− | * isClass et whichClass depuis http://fr.wikibooks.org/w/index.php?title=MediaWiki:Common.js&oldid=140211
| |
− | * hasClass, addClass, removeClass et eregReplace depuis http://drupal.org.in/doc/misc/drupal.js.source.html
| |
− | * surveiller l'implémentation de .classList http://www.w3.org/TR/2008/WD-html5-diff-20080122/#htmlelement-extensions
| |
− | */
| |
− | function isClass(element, classe) {
| |
− | return hasClass(element, classe);
| |
− | }
| |
− |
| |
− | function whichClass(element, classes) {
| |
− | var s=" "+element.className+" ";
| |
− | for(var i=0;i<classes.length;i++)
| |
− | if (s.indexOf(" "+classes[i]+" ")>=0) return i;
| |
− | return -1;
| |
− | }
| |
− |
| |
− | function hasClass(node, className) {
| |
− | if (node.className == className) {
| |
− | return true;
| |
− | }
| |
− | var reg = new RegExp('(^| )'+ className +'($| )');
| |
− | if (reg.test(node.className)) {
| |
− | return true;
| |
− | }
| |
− | return false;
| |
− | }
| |
− |
| |
− | function addClass(node, className) {
| |
− | if (hasClass(node, className)) {
| |
− | return false;
| |
− | }
| |
− | node.className += ' '+ className;
| |
− | return true;
| |
− | }
| |
− |
| |
− | function removeClass(node, className) {
| |
− | if (!hasClass(node, className)) {
| |
− | return false;
| |
− | }
| |
− | node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
| |
− | return true;
| |
− | }
| |
− |
| |
− | function eregReplace(search, replace, subject) {
| |
− | return subject.replace(new RegExp(search,'g'), replace);
| |
− | }
| |
− |
| |
− | /**
| |
− | * Test if an element has a certain class
| |
− | *
| |
− | * @deprecated: Use $(element).hasClass() instead.
| |
− | */
| |
− | mw.log.deprecate( window, 'hasClass', function ( element, className ) {
| |
− | return $( element ).hasClass( className );
| |
− | }, 'Use jQuery.hasClass() instead' );
| |
− |
| |
− | /**
| |
− | * Interwiki links to featured articles ***************************************
| |
− | *
| |
− | * Description: Highlights interwiki links to featured articles (or
| |
− | * equivalents) by changing the bullet before the interwiki link
| |
− | * into a star.
| |
− | * Adaptat de la versió anglesa en correspondència amb Plantilla:Enllaç AD i Enllaç AB
| |
− | */
| |
− | function LinkFA() {
| |
− | if ( document.getElementById( 'p-lang' ) ) {
| |
− | var InterwikiLinks = document.getElementById( 'p-lang' ).getElementsByTagName( 'li' );
| |
− |
| |
− | for ( var i = 0; i < InterwikiLinks.length; i++ ) {
| |
− | var className = InterwikiLinks[i].className.match(/interwiki-[-\w]+/);
| |
− | if ( document.getElementById( 'AdQ-' + className ) && InterwikiLinks[i].className.indexOf( 'badge-featuredarticle' ) === -1 ) {
| |
− | InterwikiLinks[i].className += ' AdQ';
| |
− | InterwikiLinks[i].title = 'Aquest és un article destacat en aquesta llengua.';
| |
− | } else if ( document.getElementById( 'AB-' + className ) && InterwikiLinks[i].className.indexOf( 'badge-goodarticle' ) === -1 ) {
| |
− | InterwikiLinks[i].className += ' AB';
| |
− | InterwikiLinks[i].title = 'Aquest és un article bo en aquesta llengua.';
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | mw.hook( 'wikipage.content' ).add( LinkFA );
| |
− |
| |
− | //###### comença codi per a plantilla de diapositives (grups d'imatges) #####
| |
− | /* actualitzat 28-11-13 de [[de:MediaWiki:Common.js]] s'empra amb la plantilla:Galeria dinàmica d'imatges */
| |
− | /** Skript für [[Vorlage:Galerie]] */
| |
− | $(function() {
| |
− | if (document.URL.match(/printable/g)) return;
| |
− |
| |
− | function toggleImageFunction(group, remindex, shwindex) {
| |
− | return function() {
| |
− | document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style.display = "none";
| |
− | document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style.display = "block";
| |
− | return false;
| |
− | };
| |
− | }
| |
− |
| |
− | var divs = document.getElementsByTagName("div");
| |
− | var i = 0, j = 0;
| |
− | var units, search;
| |
− | var currentimage;
| |
− | var UnitNode;
| |
− | for (i = 0; i < divs.length; i++) {
| |
− | if (divs[i].className !== "ImageGroup") { continue; }
| |
− | UnitNode = undefined;
| |
− | search = divs[i].getElementsByTagName("div");
| |
− | for (j = 0; j < search.length; j++) {
| |
− | if (search[j].className !== "ImageGroupUnits") { continue; }
| |
− | UnitNode=search[j];
| |
− | break;
| |
− | }
| |
− | if (UnitNode === undefined) { continue; }
| |
− | units = [];
| |
− | for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
| |
− | var temp = UnitNode.childNodes[j];
| |
− | if (temp.className === "center") { units.push(temp); }
| |
− | }
| |
− | var rightlink;
| |
− | var commentText;
| |
− | for (j = 0; j < units.length; j++) {
| |
− | currentimage = units[j];
| |
− | currentimage.id = "ImageGroupsGr" + i + "Im" + j;
| |
− | var leftlink = document.createElement("a");
| |
− | if (commentText !== undefined) {
| |
− | leftlink.setAttribute("title", commentText);
| |
− | }
| |
− | var comment;
| |
− | if (typeof(currentimage.getAttribute("title")) !== "string") {
| |
− | commentText = (j+1) + "/" + units.length;
| |
− | comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")"));
| |
− | } else {
| |
− | commentText = currentimage.getAttribute("title");
| |
− | comment = document.createElement("span").appendChild(document.createTextNode(commentText));
| |
− | currentimage.removeAttribute("title");
| |
− | }
| |
− | if(rightlink !== undefined) {
| |
− | rightlink.setAttribute("title", commentText);
| |
− | }
| |
− | var imghead = document.createElement("div");
| |
− | rightlink = document.createElement("a");
| |
− | if (j !== 0) {
| |
− | leftlink.href = "#";
| |
− | leftlink.onclick = toggleImageFunction(i, j, j-1);
| |
− | leftlink.appendChild(document.createTextNode("◀"));
| |
− | }
| |
− | if (j !== units.length - 1) {
| |
− | rightlink.href = "#";
| |
− | rightlink.onclick = toggleImageFunction(i, j, j+1);
| |
− | rightlink.appendChild(document.createTextNode("▶"));
| |
− | }
| |
− | imghead.style.fontSize = "110%";
| |
− | imghead.style.fontweight = "bold";
| |
− | imghead.appendChild(leftlink);
| |
− | imghead.appendChild(document.createTextNode("\xA0"));
| |
− | imghead.appendChild(comment);
| |
− | imghead.appendChild(document.createTextNode("\xA0"));
| |
− | imghead.appendChild(rightlink);
| |
− | if (units.length > 1) {
| |
− | currentimage.insertBefore(imghead,currentimage.childNodes[0]);
| |
− | }
| |
− | if (j !== 0) {
| |
− | currentimage.style.display = "none";
| |
− | }
| |
− | }
| |
− | }
| |
− | });
| |
− |
| |
− | //###### finalitza codi per a plantilla de diapositives #####
| |
− |
| |
− | //================================================================================
| |
− | //*** force the loading of another JavaScript file (copiat de [[Commons:Common.js]])
| |
− | // Local Maintainer: [[Commons:User:Dschwen]]
| |
− | mw.log.deprecate( window, 'includePage', importScript,
| |
− | 'Use importScript instead' );
| |
− |
| |
− | /**
| |
− | * Transformar certes pàgines en pàgines de discussió amb la plantilla:pàgina de discussió
| |
− | * copiat de https://fr.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=98220897
| |
− | * abans function TransformeEnDiscussion()
| |
− | */
| |
− | $( function() {
| |
− | if( document.getElementById('transformeEnPageDeDiscussion') ) {
| |
− | removeClass(document.body, 'ns-subject');
| |
− | addClass(document.body, 'ns-talk');
| |
− | }
| |
− | } );
| |
− |
| |
− | /** Magic editintros ****************************************************
| |
− | *
| |
− | * Description: Adds editintros on (disambiguation pages and) BLP pages.
| |
− | * Maintainers: [[User:RockMFR]]
| |
− | */
| |
− |
| |
− | function addEditIntro( name ) {
| |
− | $( '.mw-editsection, #ca-edit' ).find( 'a' ).each( function( i, el ) {
| |
− | el.href = $(this).attr("href") + '&editintro=' + name;
| |
− | });
| |
− | }
| |
− |
| |
− | if (mw.config.get('wgNamespaceNumber') === 0) {
| |
− | $(function(){
| |
− | var cats = mw.config.get('wgCategories');
| |
− | if (!cats) {
| |
− | return;
| |
− | }
| |
− | if ( $.inArray( 'Persones vives', cats ) !== -1 ) {
| |
− | addEditIntro( "Plantilla:Avís_d'edició_BPV" );
| |
− | }
| |
− | });
| |
− | }
| |
− |
| |
− | /**
| |
− | * Inserció de nous botons en la barra d'eines d'edició
| |
− | */
| |
− | var addExtraButtons = function(){
| |
− | mw.toolbar.addButtons(
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png',
| |
− | speedTip: 'Taula',
| |
− | tagOpen: '{|\n|-\n|\n|\n|}',
| |
− | tagClose: '',
| |
− | sampleText: '',
| |
− | imageId: 'mw-editbutton-array'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png',
| |
− | speedTip: 'Enumeració',
| |
− | tagOpen: '\n# element 1\n# element 2\n# element 3',
| |
− | tagClose: '',
| |
− | sampleText: '',
| |
− | imageId: 'mw-editbutton-enum'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/1/11/Btn_toolbar_liste.png',
| |
− | speedTip: 'Llista',
| |
− | tagOpen: '\n* element A\n* element B\n* element C',
| |
− | tagClose: '',
| |
− | sampleText: '',
| |
− | imageId: 'mw-editbutton-liste'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/9/9e/Btn_toolbar_gallery.png',
| |
− | speedTip: 'Galeria d\'imatges',
| |
− | tagOpen: '\n<gallery>\nFitxer:Exemple.jpg|Descripció\nFitxer:Exemple1.jpg|Descripció 1\nFitxer:Exemple2.jpg|Descripció 2\n</gallery>\n',
| |
− | tagClose: '',
| |
− | sampleText: '',
| |
− | imageId: 'mw-editbutton-gallery'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png',
| |
− | speedTip: 'Comentari',
| |
− | tagOpen: '<!--',
| |
− | tagClose: '-->',
| |
− | sampleText: '',
| |
− | imageId: 'mw-editbutton-comment'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/4/47/Button_redir.png',
| |
− | speedTip: 'Redirecció',
| |
− | tagOpen: '#REDIRECT[[',
| |
− | tagClose: ']]',
| |
− | sampleText: 'pàgina destinació',
| |
− | imageId: 'mw-editbutton-redir'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png',
| |
− | speedTip: 'Categoria',
| |
− | tagOpen: '[[Categoria:',
| |
− | tagClose: ']]',
| |
− | sampleText: 'nom de la categoria',
| |
− | imageId: 'mw-editbutton-category'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/3/3b/Button_template_alt.png',
| |
− | speedTip: 'Plantilla',
| |
− | tagOpen: '{{',
| |
− | tagClose: '}}',
| |
− | sampleText: 'plantilla o pàgina a incloure',
| |
− | imageId: 'mw-editbutton-template'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/c/c4/Button_ref.png',
| |
− | speedTip: 'Referència',
| |
− | tagOpen: '<ref>',
| |
− | tagClose: '</ref>',
| |
− | sampleText: 'referència, citació o enllaç',
| |
− | imageId: 'mw-editbutton-ref'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/6/64/Buttonrefvs8.png',
| |
− | speedTip: 'Índex de referències',
| |
− | tagOpen: '== Referències ==\n{{referències}}',
| |
− | tagClose: '',
| |
− | sampleText: '',
| |
− | imageId: 'mw-editbutton-references'
| |
− | },
| |
− | {
| |
− | imageFile: '//upload.wikimedia.org/wikipedia/commons/b/bb/Seealso.png',
| |
− | speedTip: 'Seccions annexes',
| |
− | tagOpen: '== Referències ==\n' +
| |
− | '{{referències}}\n\n' +
| |
− | '== Vegeu també ==\n' +
| |
− | '* [[A omplir]]\n\n' +
| |
− | '== Enllaços externs ==\n' +
| |
− | '*\n\n',
| |
− | tagClose: '',
| |
− | sampleText: '',
| |
− | imageId: 'mw-editbutton-voiraussi'
| |
− | }
| |
− | );
| |
− | };
| |
− |
| |
− | if( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
| |
− | mw.loader.using( 'user.options', function () {
| |
− | if ( ! mw.user.options.get( 'usebetatoolbar' ) && mw.user.options.get( 'showtoolbar' ) ) {
| |
− | $.when(
| |
− | mw.loader.using( 'mediawiki.toolbar' ),
| |
− | $.ready
| |
− | ).then( addExtraButtons );
| |
− | }
| |
− | } );
| |
− | }
| |
− | /**
| |
− | * Import more specific scripts if necessary
| |
− | */
| |
− | if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
| |
− | /* watchlist scripts */
| |
− | importScript( 'MediaWiki:Common.js/watchlist.js' );
| |
− | }
| |
− |
| |
− | /**
| |
− | * Redirect User:Name/skin.js and skin.css to the current skin's pages
| |
− | * (unless the 'skin' page really exists).
| |
− | *
| |
− | * Dependencies: mediawiki.util
| |
− | *
| |
− | * @source www.mediawiki.org/wiki/Snippets/Redirect_skin.js
| |
− | * @revision 2014-05-19
| |
− | */
| |
− | if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
| |
− | var titleParts = mw.config.get( 'wgPageName' ).split( '/' );
| |
− | // Make sure there was a part before and after the slash
| |
− | // And that the latter is 'skin.js' or 'skin.css'
| |
− | if ( titleParts.length == 2 ) {
| |
− | var userSkinPage = titleParts[0] + '/' + mw.config.get( 'skin' );
| |
− | if ( titleParts[1] === 'skin.js' ) {
| |
− | location.href = mw.util.getUrl( userSkinPage + '.js' );
| |
− | } else if ( titleParts[1] === 'skin.css' ) {
| |
− | location.href = mw.util.getUrl( userSkinPage + '.css' );
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | /**
| |
− | * afegeix un enllaç "nova secció" en l'últim encapçalament de pàgines de discussió
| |
− | * copiat de https://de.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=153954208
| |
− | */
| |
− | mw.loader.using( [ 'jquery.accessKeyLabel' ], function() { $( function() {
| |
− | var newSectionLink = $( '#ca-addsection a' );
| |
− | if( newSectionLink.length ) {
| |
− | var link = newSectionLink.clone(); //create a copy
| |
− | //avoid duplicate accesskey
| |
− | link.removeAttr( 'accesskey' ).updateTooltipAccessKeys();
| |
− | // passem "Nova secció" a minúscules per coherència
| |
− | link.css( {
| |
− | "text-transform" : "lowercase"
| |
− | } );
| |
− | //add it wihin the brackets
| |
− | var lastEditsectionLink = $( 'span.mw-editsection:last a:last' );
| |
− | lastEditsectionLink.after( link );
| |
− | lastEditsectionLink.after( ' | ' ); //see [[MediaWiki:Pipe-separator]]
| |
− | }
| |
− | })});
| |
− |
| |
− | /**
| |
− | * Description: Stay on the secure server as much as possible
| |
− | * Copiat de https://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=525198410
| |
− | */
| |
− | if ( document.location && document.location.protocol && document.location.protocol == 'https:' ) {
| |
− | /* New secure servers */
| |
− | importScript( 'MediaWiki:Common.js/secure.js' );
| |
− | }
| |
− |
| |
− | /**
| |
− | * Ticker: vegeu [[plantilla:ticker]]
| |
− | * Adaptat de https://en.wikinews.org/w/index.php?title=MediaWiki:Ticker2.js&oldid=1384515
| |
− | */
| |
− | $(function () {if ((window.disable_ticker2 !== true) && (document.getElementById("singleTickerForPage") || document.getElementById('enableTickers')))
| |
− | mw.loader.load('//en.wikinews.org/w/index.php?title=MediaWiki:ticker2.js&action=raw&ctype=text/javascript');});
| |
− |
| |
− | /**
| |
− | * Simulació d'una pàgina de diferències
| |
− | * Necessàri per [[VP:BUS]]. TODO: Afegir a Ajuda:Diferències
| |
− | */
| |
− | if ( mw.config.get( 'wgPageName' ) === 'Viquipèdia:Bus_turístic/Earth/4/Diff' ) {
| |
− | mw.loader.load( 'mediawiki.action.history.diff' );
| |
− | }
| |
− |
| |
− | /** Ajusta el ordenamiento alfabético en las tablas "sortable" */
| |
− | /** https://es.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=90238839 */
| |
− | (function() {
| |
− | var letras = [["áàâäãāăåą", "a"], ["æ", "ae"], ["ćĉčç", "c"], ["ďḑđð", "d"], ["éèêëẽěēĕę", "e"],
| |
− | ["ĝḡğģǥ", "g"], ["ĥḧḩħ", "h"], ["íìÎîïĩīĭįı", "i"], ["ĵ", "j"], ["ķ", "k"],
| |
− | ["ĺľļł", "l"], ["ńňņ", "n"], ["ñ", "n~"], ["óòôöõōŏǫőø", "o"], ["œ", "oe"],
| |
− | ["ŕřŗ", "r"], ["śŝšş", "s"], ["ß", "ss"], ["ťţŧ", "t"], ["úùûüũūŭůųű", "u"], ["ṽ", "v"],
| |
− | ["ŵẅ", "w"], ["ẍ", "x"], ["ýŷÿỹ", "y"], ["źẑžƶ", "z"], ["·", ""], ["'", " "]];
| |
− | var hash = {};
| |
− | for (var i = 0; i < letras.length; i++) {
| |
− | var arr = letras[i][0].split("");
| |
− | var dest = letras[i][1];
| |
− | for (var j = 0; j < arr.length; j++) {
| |
− | hash[arr[j]] = dest;
| |
− | }
| |
− | }
| |
− | mw.config.set('tableSorterCollation', hash);
| |
− | })();
| |
− |
| |
− | /* End of mw.loader.using callback */
| |
− | } );
| |
− | /* DO NOT ADD CODE BELOW THIS LINE */
| |
| /* Es carregarà per a tots els usuaris, i per a qualsevol pàgina, el codi JavaScript que hi haja després d'aquesta línia. */ | | /* Es carregarà per a tots els usuaris, i per a qualsevol pàgina, el codi JavaScript que hi haja després d'aquesta línia. */ |
| importScript('MediaWiki:Infocarrer.js'); | | importScript('MediaWiki:Infocarrer.js'); |