MediaWiki:Common.js

Notă: După publicare, trebuie să treceți peste memoria cache a navigatorului pentru a putea vedea modificările:

  • Firefox / Safari: Țineți apăsat pe Shift în timp ce faceți clic pe Reîncărcare ori apăsați Ctrl-F5 sau Ctrl-R (⌘-R pe un sistem Mac);
  • Google Chrome: Apăsați Ctrl-Shift-R (⌘-Shift-R pe un sistem Mac);
  • Internet Explorer / Edge: Țineți apăsat pe Ctrl în timp ce faceți clic pe Reîmprosptare sau apăsați Ctrl-F5;
  • Opera: Apăsați Ctrl-F5.
// import scripts for Interwiki Transclusion from //wikisource.org/wiki/Wikisource:Shared_Scripts
mw.loader.load('//wikisource.org/w/index.php?title=MediaWiki:Base.js&action=raw&ctype=text/javascript');
mw.loader.load('//wikisource.org/w/index.php?title=MediaWiki:InterWikiTransclusion.js&action=raw&ctype=text/javascript');

var customizeToolbar = function() {
        $('#wpTextbox1').on('wikiEditor-toolbar-buildSection-characters', function (event, section) {
                section.pages.ro_cyrillic = {
                        'layout': 'characters',
                        'label': 'Chirilic român',
                        'characters': ['А', 'а', 'Б', 'Б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Є', 'є', 'Ж', 'ж', 'Ѕ', 'ѕ', 'З', 'з', 'И', 'и', 'І', 'і', 'К', 'к', 'Λ', 'ʌ', 'Л', 'л', 'М', 'м', 'N', 'ɴ', 'Ѻ', 'Ѻ', 'О', 'o', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'Ѹ', 'ѹ', 'Ѹ', 'Ȣ', 'У', 'Ȣ', 'Ф', 'ф', 'Х', 'х', 'Ѡ', 'ѡ', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ', 'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Ѣ', 'ѣ', 'Ю', 'ю', 'Ѩ', 'ѩ', 'Ѥ', 'ѥ', 'Ѧ', 'ѧ', 'Ѫ', 'ѫ', 'Ѯ', 'ѯ', 'Ѱ', 'ѱ', 'Ѳ', 'ѳ', 'Ѵ', 'ѵ', 'Ꙟ', 'ꙟ', 'Џ', 'џ']
                };
        });
};
 
/* Check if we are in edit mode and the required modules are available and then customize the toolbar */
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
        mw.loader.using( 'user.options', function () {
                if ( mw.user.options.get('usebetatoolbar') ) {
                        mw.loader.using( 'ext.wikiEditor', function () {
                                $(document).ready( customizeToolbar );
                        } );
                }
        } );
}

function interwikiExtra() 
{
   // iterate over all <span>-elements
   for(var i=0; a = document.getElementsByTagName("span")[i]; i++) {
      // if found a linkInfo span
      if(a.className == "interwiki-info") {
         // iterate over all <li>-elements
         var count=0;
         
         for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
            if(b.className == "interwiki-" + a.id) {
               b.innerHTML = b.innerHTML + " "+a.title;
               if(a.title == "(vo)") { b.title = "Texte original"; }
            }
         else if(b.className == "interwiki-" + a.id.substr(0,a.id.length-1)) {
               count = count+1;
               if(a.id.charAt(a.id.length-1) == count) {
                  b.innerHTML = b.innerHTML + " "+a.title;
               }
            }
         }
      }
   }
}

jQuery(document).ready(interwikiExtra);


/*********************
Quality indicators
Author: ThomasV
*********************/
function icon_src(t){
	var src='';
	switch(t){
		case "0%": src='//upload.wikimedia.org/wikipedia/commons/8/8f/00%25.png'; break;
		case "25%": src='//upload.wikimedia.org/wikipedia/commons/5/5b/25%25.png'; break;
		case "50%": src='//upload.wikimedia.org/wikipedia/commons/3/3a/50%25.png'; break;
		case "75%": src='//upload.wikimedia.org/wikipedia/commons/c/cd/75%25.png'; break;
		case "100%": src='//upload.wikimedia.org/wikipedia/commons/6/64/100%25.png'; break;
	} 
	return src;
}

function pageQuality() {

	var a = document.getElementById("ca-nstab-main");
	if(mw.config.get('wgCanonicalNamespace') == "Page") a = document.getElementById("ca-nstab-page");
	if(!a) return;

	var q = document.getElementById("textquality")
	if( q ) {
		var new_img = document.createElement("img");
		new_img.setAttribute("src", icon_src(q.className));
		a.firstChild.appendChild(new_img);
	}

	for(
		var i=0; 
		spanElem = document.getElementsByTagName("span")[i]; 
		i++
	) {
	if (spanElem.className == "pagequality")  {
		var new_img = document.createElement("img");
		new_img.setAttribute("src", icon_src(spanElem.title));
 
		if(mw.config.get('wgCanonicalNamespace') == "Page") {
			a.firstChild.appendChild(new_img);
		}
		else {
			s1 = spanElem.parentNode.previousSibling;
			opttext = s1.firstChild.firstChild;
			img = opttext.firstChild.nextSibling.nextSibling.nextSibling;
			next = img.nextSibling;
			opttext.removeChild(img);
			opttext.insertBefore(new_img,next);
		}
	}
   }
}
 
$(pageQuality);


function BilingualLink() 
{
    if( document.body.className.indexOf("ns-0") < 0) return;
    var doc_url = document.URL;
    // Strip fragment before appending query vars
    var doc_hash = doc_url.indexOf("#");
    if( doc_hash != -1 ) doc_url = doc_url.substring(0, doc_hash);
    var url = '';
    // iterate over all <li>-elements
    for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
         if(b.className.substring(0,10) == "interwiki-" ) {
               var lang = b.className.substring(10,b.className.length);
               if( doc_url.indexOf('?title=') != -1 ) { 
                   var qm  = doc_url.indexOf('&match=');
                   if( qm != -1 ) url = doc_url.substring(0,qm)+"&match="+lang;
                   else url = doc_url+"&match="+lang;
               } else {
                   var qm  = doc_url.indexOf('?');
                   if( qm != -1 ) url = doc_url.substring(0,qm)+"?match="+lang;
                   else url = doc_url+"?match="+lang;
               }
               b.innerHTML = b.innerHTML+
               "<a href='"+url+"'> &hArr;</a>";
             }
         }
}

jQuery(document).ready(BilingualLink);

/* add menu for selecting subsets of secial characters */
   /* must match MediaWiki:Edittools */
   function addCharSubsetMenu() {
      var specialchars = document.getElementById('specialchars');

      if (specialchars) {
         var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
         menu += "<option>Select</option>";
         menu += "<option>Ligatures and symbols</option>";
         menu += "<option>Accents</option>";
         menu += "<option>Tildes</option>";
         menu += "<option>Cedillas</option>";
         menu += "<option>Diareses</option>";
         menu += "<option>Circumflexes</option>";
         menu += "<option>Macrons</option>";
         menu += "<option>Other diacritics</option>";
         menu += "<option>Greek</option>";
         menu += "<option>Hebrew</option>";
         menu += "<option>Cyrillic</option>";
      /* This choice is experimental
         menu += "<option>Templates</option>"; */
         menu += "</select>";
         specialchars.innerHTML = menu + specialchars.innerHTML.replace(/_newline_/gm, "\n");

         /* default subset - try to use a cookie some day */
         chooseCharSubset(0);
      }
   }

   /* select subsection of special characters */
   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';
      }
   }

jQuery(document).ready(addCharSubsetMenu);


/* hide heading on [[main_page]] */
   var mpTitle = "Main Page";
   var isMainPage = (document.title.substr(0, document.title.lastIndexOf(" - ")) == mpTitle);
   var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));

   if (isMainPage && !isDiff) {
      mw.util.addCSS('#lastmod, #siteSub, #contentSub, h1.firstHeading { display: none !important; }');
   }


/*

===Display options ===
Voir [[:Template:Option]]. Author:ThomasV
*/


 function OptionText() {
   var indexNavigationBar = 0;
   // iterate over all < span >-elements until class "OptionText" is found
   for(
           var i=0; 
           SpanElem = document.getElementsByTagName("span")[i]; 
           i++
       ) {
       // if found an option span
       if (SpanElem.className == "OptionText") {
          //SpanElem.style.display = 'none';
          OptionTitle = SpanElem.title;
          OptionStyle = SpanElem.firstChild.getAttribute('style');

          //check if option was already encountered...
          if(!document.getElementById(OptionTitle)){

            //read cookie
            var DisplayOptionDefault = true;
            CookieDisplayOption = $.cookie("Display"+OptionTitle)
            if (CookieDisplayOption ) {
            if (CookieDisplayOption == "false") DisplayOptionDefault = false; }

            var PageDisplay = document.createElement("li");
            PageDisplay.setAttribute('id', OptionTitle);
            var PageDisplayLink = document.createElement("a");

            OptionText = document.createTextNode("Désactiver "+OptionTitle);
            PageDisplayLink.appendChild(OptionText);
            PageDisplayLink.setAttribute('href','javascript:displayOptionText("'+OptionTitle+'","' + OptionStyle +'", '+DisplayOptionDefault+');');
            PageDisplay.appendChild(PageDisplayLink);

            var optlist = document.getElementById("optlist");
            if(!optlist) {
               var displayOptions = document.createElement("div");
               displayOptions.style.marginTop = "0.7em";
               displayOptions.innerHTML = '<h5>display options<\/h5><div class="pBody"><ul id="optlist"></ul><\/div>';
               document.getElementById("p-tb").appendChild(displayOptions);
               optlist = document.getElementById("optlist");
            }
            optlist.appendChild(PageDisplay);

            displayOptionText(OptionTitle,OptionStyle,DisplayOptionDefault);
          }
       }
   }
 }

 function displayOptionText(optiontitle, optionstyle, bool) {
  
  $.cookie("Display"+optiontitle, bool);
  var PageDisplayLink =  document.getElementById(optiontitle).firstChild;;

   // iterate over all < span >-elements
   for(
           var i=0; 
           SpanElem = document.getElementsByTagName("span")[i]; 
           i++
       ) {
        // if found an option text
        if ((SpanElem.className == "OptionText") && (SpanElem.title == optiontitle)) {
          if(bool==true ) {
            SpanElem.setAttribute('style',optionstyle);
            PageDisplayLink.firstChild.data = (optiontitle);
            PageDisplayLink.setAttribute('href', 'javascript:displayOptionText("'+optiontitle+'","'+optionstyle+'", false);');
          }
          if(bool==false) {
            SpanElem.setAttribute('style','null');
            PageDisplayLink.firstChild.data = (optiontitle);
            PageDisplayLink.setAttribute('href', 'javascript:displayOptionText("'+optiontitle+'","'+optionstyle+'", true);');

         }        
      }
   }
 }

$(OptionText);


/*

===Quality buttons===
Author: ThomasV

*/


function addQuality(form,value){
   var text="";
   switch(value){
     case "0%": text = "În proiect"; break;
     case "25%": text = "În curs de modificare"; break;
     case "50%": text = "Lucrare completă"; break;
     case "75%": text = "Revizuit şi corectat"; break;
     case "100%": text = "Revizuit de către mai mulţi utilizatori"; break;
     } 

   form.elements["wpSummary"].value="/* "+text+" */";
   s = form.elements["wpTextbox1"].value;
   if(mw.config.get('wgPageName').substring(0,5) == "Page:") {
      prefix="Page";
      s = s.replace(/\{\{PageQuality\|(.*?)\}\}/gi,"")
   }
   else {
     prefix="Calitatea";
     s = s.replace(/\{\{Calitatealucrării\|(.*?)\}\}/gi,"")
   }
   form.elements["wpTextbox1"].value="{"+"{"+prefix+"lucrării|"+value+"}"+"}"+s;
}

function addQualityButtons(){
   if( mw.config.get( 'wgNamespaceNumber' ) != 104 && mw.config.get( 'wgNamespaceNumber' ) != 0) return;
   var ig  = document.getElementById("wpWatchthis"); 
   if(ig) {
            var f = document.createElement("span");
            f.innerHTML = ' <input type="radio" name="quality" value="25%" onclick="addQuality(this.form,this.value)"><img src = "/wiki/Special:Filepath/25%25.png">'+'<input type="radio" name="quality" value="50%" onclick="addQuality(this.form,this.value)"><img src = "/wiki/Special:Filepath/50%25.png">'+'<input type="radio" name="quality" value="75%" onclick="addQuality(this.form,this.value)"><img src = "/wiki/Special:Filepath/75%25.png">'+'<input type="radio" name="quality" value="100%" onclick="addQuality(this.form,this.value)"><img src = "/wiki/Special:Filepath/100%25.png"> Nivelul calităţii';
           ig.parentNode.insertBefore(f,ig.nextSibling.nextSibling.nextSibling)
          }
}

$(addQualityButtons);


/*

==SetFooter==

Automatically generates a footer from the previous/next links of
{{[[Template:header|header]]}}.

*/

function SetFooter()
{

    if(document.getElementById)
	{

	    nofooter = document.getElementById('nofooter');
	    hp = document.getElementById('headerprevious');
	    hn = document.getElementById('headernext');
	    content = document.getElementById('bodyContent');
	    catlinks = document.getElementById('catlinks');
	    footer = document.createElement('table');

	    if((!((hp) && (hn) && (content) && (footer))) ||
	       (nofooter))
		return;

	    footer.setAttribute('class', 'headertemplate');

	    /* Begin footer HTML code */

	    tr = document.createElement('tr');
	    td = document.createElement('td');
	    td.setAttribute('align', 'left');
	    td.setAttribute('width', '33%');

	    fp = hp.cloneNode(true);
	    fp.setAttribute('id', 'footerprevious');
	    td.appendChild(fp);

	    tr.appendChild(td);

	    td = document.createElement('td');
	    td.setAttribute('align', 'center');
	    td.setAttribute('width', '34%');
	    a = document.createElement('a');
	    a.setAttribute('href', '#top');
	    text = document.createTextNode('Return to the top of the page.');
	    a.appendChild(text);
	    td.appendChild(a);
	    tr.appendChild(td);

	    td = document.createElement('td');
	    td.setAttribute('align', 'right');
	    td.setAttribute('width', '33%');

	    fn = hn.cloneNode(true);
	    fn.setAttribute('id', 'footernext');
	    td.appendChild(fn);

	    tr.appendChild(td);

	    footer.appendChild(tr);

	    /* End footer HTML code */

	    if(catlinks) // place footer before category box
		content.insertBefore(footer, catlinks);
	    else
		content.appendChild(footer);
	
	}

}

$(SetFooter);

/** Administrare afișare diacritice. Vedeți [[w:Wikipedia:Corectarea diacriticelor]] */

importScript('MediaWiki:Diacritice.js');

/** End administrare diacritice *************/

mw.loader.load('//wikisource.org/w/index.php?title=MediaWiki:MatchSplit.js&action=raw&ctype=text/javascript');
var old_wgserver = '//wikisource.org';
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Base.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:OCR.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Hocr.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:PageNumbers.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Corrections.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:DisplayFooter.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:InterWikiTransclusion.js&action=raw&ctype=text/javascript'); 
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:IndexForm.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Dictionary.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:RegexpButton.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:DoubleWiki.js&action=raw&ctype=text/javascript');