Mudanças entre as edições de "MediaWiki:Common.js"

De wiki.eliteSoft.com.br
Ir para: navegação, pesquisa
Linha 1: Linha 1:
 
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */
 
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */
/*jslint browser: true, white: true, regexp: true, plusplus: true*/
 
/*global $, mw, importScript, importStylesheet */
 
 
//Scripts para páginas e/ou domínios específicos
 
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ){
 
importScript( 'MediaWiki:Common.js/watchlist.js');
 
} else if ( mw.config.get( 'wgIsMainPage' ) ) {
 
/**
 
* Melhorias na página principal
 
* Adiciona um link a lista completa de Wikipédias em outras línguas
 
*
 
* @author: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
 
* @source: [[en:MediaWiki:Common.js]]
 
*/
 
$(function () {
 
mw.util.addPortletLink( 'p-lang', mw.util.wikiGetlink( 'Wikipédia:Wikipédia em outras línguas' ),
 
'Lista completa', 'interwiki-completelist', 'Lista completa de Wikipédias' );
 
});
 
} else if ( $.inArray( mw.config.get( 'wgPageName' ), [ 'Wikipédia:Esplanada/propostas', 'Wikipédia:Esplanada/geral' ] ) !== -1 ) {
 
/*
 
* Oculta botão editar da [[Wikipédia:Esplanada/propostas]] e da [[Wikipédia:Esplanada/geral]]
 
*/
 
$(function () {
 
var href = mw.util.wikiGetlink( mw.config.get( 'wgPageName' ) ) + '?action=edit&section=new&preload=Template:Esplanada2/Preload';
 
 
if ( mw.config.get( 'wgUserLanguage' ) !== 'pt' ) {
 
href += '/en';
 
}
 
 
$( '#ca-addsection a' ).attr( 'href', href );
 
 
if ( mw.config.get( 'skin' ) === 'vector' ) {
 
// Move o botão "editar" para o menu de ações
 
$( '#ca-edit' ).appendTo( '#p-cactions ul' );
 
}
 
});
 
}
 
 
if ( $.client.profile().name === 'msie' ) {
 
//scripts específicos para Internet Explorer
 
importScript( 'MediaWiki:Common.js/IEFixes.js' );
 
}
 
 
/**
 
* Manter no servidor seguro quem se loga pelo servidor seguro quando muda para outro projeto
 
* Sem este código, o usuário logado por https quando segue um interwiki, usa http e será deslogado (os logins são independentes).
 
*/
 
if ( mw.config.get( 'wgServer' ) === 'https://secure.wikimedia.org' ) {
 
importScript( 'MediaWiki:Common.js/secure.js' );
 
}
 
 
/** Parâmetros &withCSS= e &withJS= para a URL
 
* Permite que sejam testados scripts e folhas de estilos do domínio MediaWiki
 
* sem precisar editar páginas .css ou .js pessoais
 
*/
 
 
var extraJS  = mw.util.getParamValue( 'withJS' ),
 
extraCSS = mw.util.getParamValue( 'withCSS' );
 
 
if ( extraJS && extraJS.match( /^MediaWiki:[^&<>=%]*\.js$/ ) ) {
 
importScript( extraJS );
 
}
 
 
if ( extraCSS && extraCSS.match( /^MediaWiki:[^&<>=%]*\.css$/ ) ) {
 
importStylesheet( extraCSS );
 
}
 
 
/** Correlatos
 
* Adiciona links para os projetos correlatos no menu lateral, a partir da [[Predefinição:Correlatos]].
 
* TODO: Remover quando o [[bugzilla:708]] for resolvido
 
* @author: ???
 
*/
 
$(function() {
 
var cl, iProjectHTML, iProject, ptb;
 
iProjectHTML = document.getElementById( 'interProject' );
 
 
if ( iProjectHTML ) {
 
iProjectHTML = iProjectHTML.innerHTML;
 
iProject = document.createElement( 'div' );
 
 
if ( mw.config.get('skin') === 'vector' ) {
 
iProject.className = 'portal collapsed';
 
cl = 'body';
 
} else {
 
iProject.className = 'portlet';
 
cl = 'pBody';
 
}
 
 
iProject.innerHTML = '<h5>Correlatos<\/h5><div class="' + cl + '">' + iProjectHTML;
 
iProject.setAttribute( 'id', 'p-correlatos' );
 
iProject.id = 'p-correlatos';
 
 
ptb = document.getElementById( 'p-tb' );
 
ptb.parentNode.insertBefore( iProject, ptb.nextSibling );
 
}
 
});
 
  
 
/** Collapsible tables *********************************************************
 
/** Collapsible tables *********************************************************

Edição das 14h13min de 6 de julho de 2012

/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */

/** Collapsible tables *********************************************************
 *
 *  Description: Allows tables to be collapsed, showing only the header. See
 *                         http://www.mediawiki.org/wiki/Manual:Collapsible_tables.
 *  Maintainers: [[en:User:R. Koot]]
 */
 
var autoCollapse = 2;
var collapseCaption = 'hide';
var expandCaption = 'show';
 
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 [[MediaWiki: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;
                                }
                        }
                }
        }
}
 
addOnloadHook( createCollapseButtons );
 
/** Test if an element has a certain class **************************************
 *
 * Description: Uses regular expressions and caching for better performance.
 * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
 */
 
var hasClass = ( function() {
        var reCache = {};
        return function( element, className ) {
                return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( "(?:\\s|^)" + className + "(?:\\s|$)" ) ) ).test( element.className );
        };
})();