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

Mpuj (discussió | contribucions)
Afegir mes funcions
removing displayTimer code due to security concerns: If you still need this functionality, please import w:c:dev:displayTimer
 
(19 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) *************************************
/** Dynamic Navigation Bars (experimental) *************************************
   *
   *
   *  Description: See [[Wikipedia:NavFrame]].
   *  Description: See [[Wikipedia:NavFrame]].
Línia 218: Línia 224:
   }
   }
   
   
   // adds show/hide-button to navigation bars
// *****************************************************
   function createNavigationBarToggleButton()
// * Experimental javascript countdown timer (Splarka) *
   {
// * Version 0.0.3                                    *
    var indexNavigationBar = 0;
// *****************************************************
    // iterate over all < div >-elements
//
    var divs = document.getElementsByTagName("div");
// Usage example:
    for(
//  <span class="countdown" style="display:none;">
            var i=0;  
//  Only <span class="countdowndate">January 01 2007 00:00:00 PST</span> until New years.
            NavFrame = divs[i];  
//  </span>
            i++
//  <span class="nocountdown">Javascript disabled.</span>
        ) {
 
        // if found a navigation bar
function updatetimer(i) {
        if (hasClass(NavFrame, "NavFrame")) {
  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;
}
   
   
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
   
   
            var NavToggleText = document.createTextNode(NavigationBarHide);
editLink.removeAttribute('href', 0);
            NavToggle.appendChild(NavToggleText);
editLink.removeAttribute('title', 0);
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
editLink.style.color = 'gray';
            for(
editLink.innerHTML = 'Archived';
              var j=0;
              j < NavFrame.childNodes.length;
              j++
            ) {
              if (hasClass(NavFrame.childNodes[j], "NavHead")) {
                NavFrame.childNodes[j].appendChild(NavToggle);
              }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
    // if more Navigation Bars found than Default: hide all
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(
                var i=1;  
                i<=indexNavigationBar;
                i++
        ) {
            toggleNavigationBar(i);
        }
    }
   
   
  }
$('span.editsection-upper').remove();
  addOnloadHook( createNavigationBarToggleButton );
   
   
}
addOnloadHook( disableOldForumEdit );
}
/** *************************************
/** *************************************
/Dynamic Navigation Bars (experimental)  
/Dynamic Navigation Bars (experimental)  
Línia 316: Línia 395:
     }
     }
}
}
/****************************/
/* [[Plantilla:Nom usuari]] */
/****************************/
   
   
// adds show/hide-button to navigation bars
function UserNameReplace(){
function createNavigationBarToggleButton()
  if (wgUserName){
{
     var spans = getElementsByClassName(document, "span", "insertusername");
    var indexNavigationBar = 0;
    // iterate over all < div >-elements
    var divs = document.getElementsByTagName("div");
     for (var i = 0; NavFrame = divs[i]; i++) {
        // if found a navigation bar
        if (hasClass(NavFrame, "NavFrame")) {
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
            var isCollapsed = hasClass( NavFrame, "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 (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                    if ( NavChild.style.display == 'none' ) {
                        isCollapsed = true;
                    }
                }
            }
            if (isCollapsed) {
                for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
                    if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, '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 i = 0; i < spans.length; i++){
            for(var j=0; j < NavFrame.childNodes.length; j++) {
      spans[i].innerHTML = wgUserName;
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
                    NavFrame.childNodes[j].appendChild(NavToggle);
                }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
     }
     }
  }
}
}
   
   
addOnloadHook( createNavigationBarToggleButton );
addOnloadHook(UserNameReplace);


// ************************************************************
// ************************************************************