MediaWiki:Common.js: diferència entre les revisions

Mpuj (discussió | contribucions)
Afegir una nova funció
removing displayTimer code due to security concerns: If you still need this functionality, please import w:c:dev:displayTimer
 
(20 revisions intermèdies per 2 usuaris que no es mostren)
Línia 1: Línia 1:
/* 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. */
importArticles({
type: "script",
articles: [
"MediaWiki:Common.js/navlinks.js", /* Afegeix el link "Nosaltres" al menu "On the Wiki" */
]
});
 
// **************************************************
// **************************************************
// BOTONS ADDICIONALS a la caixa d'edició
// BOTONS ADDICIONALS a la caixa d'edició
Línia 7: Línia 13:
   
   
   mwCustomEditButtons[mwCustomEditButtons.length] = {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://images.wikia.com/inciclopedia/images/8/83/Bot%C3%B3n_C%C3%B3digofuente.png",
     "imageFile": "https://images.wikia.nocookie.net/inciclopedia/images/8/83/Bot%C3%B3n_C%C3%B3digofuente.png",
     "speedTip": "Codi font",
     "speedTip": "Codi font",
     "tagOpen": "<code><nowiki>",
     "tagOpen": "<code><nowiki>",
Línia 14: Línia 20:


   mwCustomEditButtons[mwCustomEditButtons.length] = {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://images.wikia.com/inciclopedia/images/4/49/Bot%C3%B3n_plantilla.png",
     "imageFile": "https://images.wikia.nocookie.net/inciclopedia/images/4/49/Bot%C3%B3n_plantilla.png",
     "speedTip": "Plantilles",
     "speedTip": "Plantilles",
     "tagOpen": "{{",
     "tagOpen": "{{",
Línia 21: Línia 27:
   
   
   mwCustomEditButtons[mwCustomEditButtons.length] = {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://images.wikia.com/inciclopedia/images/4/43/Enlace_a_usuario.png",
     "imageFile": "https://images.wikia.nocookie.net/inciclopedia/images/4/43/Enlace_a_usuario.png",
     "speedTip": "Enllaç a usuari",
     "speedTip": "Enllaç a usuari",
     "tagOpen": "[[user:",
     "tagOpen": "[[user:",
Línia 28: Línia 34:
   
   
   mwCustomEditButtons[mwCustomEditButtons.length] = {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://images.wikia.com/inciclopedia/images/6/64/Bot%C3%B3n_categor%C3%ADa.png",
     "imageFile": "https://images.wikia.nocookie.net/inciclopedia/images/6/64/Bot%C3%B3n_categor%C3%ADa.png",
     "speedTip": "Categoria",
     "speedTip": "Categoria",
     "tagOpen": "[[Category:",
     "tagOpen": "[[Category:",
Línia 35: Línia 41:
   
   
   mwCustomEditButtons[mwCustomEditButtons.length] = {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://images1.wikia.nocookie.net/__cb20100417162729/es.gta/images/c/c2/Enobras.png",
     "imageFile": "https://images.wikia.nocookie.net/__cb20100417162729/es.gta/images/c/c2/Enobras.png",
     "speedTip": "Advertir que s'està editant l'article",
     "speedTip": "Advertir que s'està editant l'article",
     "tagOpen": "{{Article_sense_acabar|",
     "tagOpen": "{{Article_sense_acabar|",
Línia 49: Línia 55:


   mwCustomEditButtons[mwCustomEditButtons.length] = {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://images4.wikia.nocookie.net/__cb20111227131921/onepiece-cat/ca/images/3/33/Article_incomplet.png",
     "imageFile": "https://images.wikia.nocookie.net/__cb20111227131921/onepiece-cat/ca/images/3/33/Article_incomplet.png",
     "speedTip": "Indicar l'article com a Esbós",
     "speedTip": "Indicar l'article com a Esbós",
     "tagOpen": "{{Esbós}}",
     "tagOpen": "{{Esbós}}",
Línia 155: Línia 161:
  addOnloadHook( createCollapseButtons );
  addOnloadHook( createCollapseButtons );
   
   
/** Dynamic Navigation Bars (experimental) *************************************
  *
  *  Description: See [[Wikipedia:NavFrame]].
  *  Maintainers: UNMAINTAINED
  */
  // set up the words in your language
  var NavigationBarHide = '[' + collapseCaption + ']';
  var NavigationBarShow = '[' + expandCaption + ']';
  // set up max count of Navigation Bars on page,
  // if there are more, all will be hidden
  // NavigationBarShowDefault = 0; // all bars will be hidden
  // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
  var NavigationBarShowDefault = autoCollapse;
  // shows and hides content and picture (if available) of navigation bars
  // Parameters:
  //    indexNavigationBar: the index of navigation bar to be toggled
  function toggleNavigationBar(indexNavigationBar)
  {
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
    if (!NavFrame || !NavToggle) {
        return false;
    }
    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if ( hasClass( NavChild, 'NavPic' ) ) {
                NavChild.style.display = 'none';
            }
            if ( hasClass( NavChild, 'NavContent') ) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'block';
            }
            if (hasClass(NavChild, 'NavContent')) {
                NavChild.style.display = 'block';
            }
        }
    NavToggle.firstChild.data = NavigationBarHide;
    }
  }
// *****************************************************
// * Experimental javascript countdown timer (Splarka) *
// * Version 0.0.3                                    *
// *****************************************************
//
// Usage example:
//  <span class="countdown" style="display:none;">
//  Only <span class="countdowndate">January 01 2007 00:00:00 PST</span> until New years.
//  </span>
//  <span class="nocountdown">Javascript disabled.</span>
function updatetimer(i) {
  var now = new Date();
  var then = timers[i].eventdate;
  var diff = count=Math.floor((then.getTime()-now.getTime())/1000);
  // catch bad date strings
  if(isNaN(diff)) {
    timers[i].firstChild.nodeValue = '** ' + timers[i].eventdate + ' **' ;
    return;
  }
  // determine plus/minus
  if(diff<0) {
    diff = -diff;
    var tpm = '';
  } else {
    var tpm = '';
  }
  // calcuate the diff
  var left = (diff%60) + ' segons';
    diff=Math.floor(diff/60);
  if(diff > 0) left = (diff%60) + ' minuts ' + left;
    diff=Math.floor(diff/60);
  if(diff > 0) left = (diff%24) + ' hores ' + left;
    diff=Math.floor(diff/24);
  if(diff > 0) left = diff + ' dies ' + left
  timers[i].firstChild.nodeValue = tpm + left;
  // a setInterval() is more efficient, but calling setTimeout()
  // makes errors break the script rather than infinitely recurse
  timeouts[i] = setTimeout('updatetimer(' + i + ')',1000);
}
function checktimers() {
  //hide 'nocountdown' and show 'countdown'
  var nocountdowns = getElementsByClassName(document, 'span', 'nocountdown');
  for(var i in nocountdowns) nocountdowns[i].style.display = 'none'
  var countdowns = getElementsByClassName(document, 'span', 'countdown');
  for(var i in countdowns) countdowns[i].style.display = 'inline'
  //set up global objects timers and timeouts.
  timers = getElementsByClassName(document, 'span', 'countdowndate');  //global
  timeouts = new Array(); // generic holder for the timeouts, global
  if(timers.length == 0) return;
  for(var i in timers) {
    timers[i].eventdate = new Date(timers[i].firstChild.nodeValue);
    updatetimer(i);  //start it up
  }
}
addOnloadHook(checktimers);
// **************************************************
//  - end -  Experimental javascript countdown timer
// **************************************************
/** Archive edit tab disabling *************************************
* Disables the edit tab on old forum topic pages to stop new people bumping old topics.
* Page can still be edited by going via the edit tab on the history etc, or by
* typing the edit address manually.
* By [[User:Spang|Spang]]
* Monaco support by [[User:Uberfuzzy|Uberfuzzy]]
* Oasis support by [[User:Uberfuzzy|Uberfuzzy]]
*/
if(wgNamespaceNumber == 110) {
function disableOldForumEdit() {
if( typeof( enableOldForumEdit ) != 'undefined' && enableOldForumEdit ) {
return;
}
if( !document.getElementById('old-forum-warning') ) {
return;
}
if( skin == 'oasis' )
{
$("#WikiaPageHeader .wikia-menu-button li a:first").html('Archived').removeAttr('href' );
$('#WikiaPageHeader .wikia-button').html('Archived').removeAttr('href');
return;
}
if( !document.getElementById('ca-edit') ) {
return;
}
var editLink = null;
if( skin == 'monaco' )
{
editLink = document.getElementById('ca-edit');
}
else if( skin == 'monobook' )
{
editLink = document.getElementById('ca-edit').firstChild;
}
else
{
return;
}
editLink.removeAttribute('href', 0);
editLink.removeAttribute('title', 0);
editLink.style.color = 'gray';
editLink.innerHTML = 'Archived';
$('span.editsection-upper').remove();
}
addOnloadHook( disableOldForumEdit );
}
/** *************************************
/Dynamic Navigation Bars (experimental)
/****************************************
*
*  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
function toggleNavigationBar(indexNavigationBar)
{
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
    if (!NavFrame || !NavToggle) {
        return false;
    }
    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if ( hasClass( NavChild, 'NavPic' ) ) {
                NavChild.style.display = 'none';
            }
            if ( hasClass( NavChild, 'NavContent') ) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'block';
            }
            if (hasClass(NavChild, 'NavContent')) {
                NavChild.style.display = 'block';
            }
        }
        NavToggle.firstChild.data = NavigationBarHide;
    }
}
/****************************/
/* [[Plantilla:Nom usuari]] */
/****************************/
function UserNameReplace(){
  if (wgUserName){
    var spans = getElementsByClassName(document, "span", "insertusername");
    for (var i = 0; i < spans.length; i++){
      spans[i].innerHTML = wgUserName;
    }
  }
}
addOnloadHook(UserNameReplace);
// ************************************************************
// ************************************************************
// Resums d'edició
// Resums d'edició