Hoppa till innehållet

MediaWiki:Common.js: Skillnad mellan sidversioner

Från Wikipedia
Innehåll som raderades Innehåll som lades till
Hack för att få sorterbara tabeller att sortera korrekt med komma som decimalseparator och punkt som tusentalsseparator.
fix så att rätt namespace-namn visas i stället för det kanoniska namespacenamnet
Rad 37: Rad 37:
// if the namespace prefix is there, remove it on our verification copy. If it isn't there, add it to the original realValue copy.
// if the namespace prefix is there, remove it on our verification copy. If it isn't there, add it to the original realValue copy.
if (wgNamespaceNumber != 0) {
if (wgNamespaceNumber != 0) {
var namespace = wgPageName.substring(0, wgPageName.indexOf(":"));
if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1);
if (namespace == verifyTitle.substr(0, namespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
verifyTitle = verifyTitle.substr(namespace.length + 1);
} else {
} else {
realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText;
realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
realTitleText = namespace.replace(/_/g, " ") + ":" + realTitleText;
realTitleHTML = namespace.replace(/_/g, " ") + ":" + realTitleHTML;
}
}
}
}

Versionen från 18 februari 2007 kl. 20.39

 /* JavaScript som skrivs här körs varje gång en användare laddar en sida. 
  * Se [[MediaWiki:Monobook.js]], som körs enbart för användare som använder defaultskinnet, "Monobook" */

 /** "Tekniska restriktioner" titelfix *****************************************
  *  Fixar artiklartitlar som till exempel börjar med liten begynnelsebokstav.
  *  Kopierat från [[:en:MediaWiki:Common.js]]. Se [[Mall:Liten begynnelsebokstav]].
  *  
  *  Maintainers på enwiki: [[:en:User:Interiot]], [[:en:User:Mets501]]
  */
 
 // For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
 //	(for instance [[iPod]]'s title is updated.  <nowiki>But [[C#]] is not an equivalent wikilink, so [[C Sharp]] doesn't have its main title changed)</nowiki>
 //
 // The function looks for a banner like this: <nowiki>
 // <div id="RealTitleBanner">    <!-- div that gets hidden -->
 //   <span id="RealTitle">title</span>
 // </div>
 // </nowiki>An element with id=DisableRealTitle disables the function.
 var disableRealTitle = 0;		// users can disable this by making this true from their monobook.js
 if (wgIsArticle) {			// don't display the RealTitle when editing, since it is apparently inconsistent (doesn't show when editing sections, doesn't show when not previewing)
     addOnloadHook(function() {
 	try {
 		var realTitleBanner = document.getElementById("RealTitleBanner");
 		if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
 			var realTitle = document.getElementById("RealTitle");
 			if (realTitle) {
 				var realTitleHTML = realTitle.innerHTML;
 				realTitleText = pickUpText(realTitle);
 
 				var isPasteable = 0;
 				//var containsHTML = /</.test(realTitleHTML);	// contains ANY HTML
 				var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
 				// calculate whether the title is pasteable
 				var verifyTitle = realTitleText.replace(/^ +/, "");		// trim left spaces
 				verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);	// uppercase first character
 
 				// if the namespace prefix is there, remove it on our verification copy.  If it isn't there, add it to the original realValue copy.
 				if (wgNamespaceNumber != 0) {
                                        var namespace = wgPageName.substring(0, wgPageName.indexOf(":"));
                                        if (namespace == verifyTitle.substr(0, namespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
                                                verifyTitle = verifyTitle.substr(namespace.length + 1);
                                        } else {
                                                realTitleText = namespace.replace(/_/g, " ") + ":" + realTitleText;
                                                realTitleHTML = namespace.replace(/_/g, " ") + ":" + realTitleHTML;
                                        }
 				}
 
 				// verify whether wgTitle matches
 				verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, "");		// trim left and right spaces
 				verifyTitle = verifyTitle.replace(/_/g, " ");		// underscores to spaces
 				verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);	// uppercase first character
 				isPasteable = (verifyTitle == wgTitle);
 
 				var h1 = document.getElementsByTagName("h1")[0];
 				if (h1 && isPasteable) {
 					h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
 					if (!containsTooMuchHTML)
 						realTitleBanner.style.display = "none";
 				}
 				document.title = realTitleText + " - Wikipedia, den fria encyklopedin";
 			}
 		}
 	} catch (e) {
 		/* Something went wrong. */
 	}
     });
 }
 
 
 // similar to innerHTML, but only returns the text portions of the insides, excludes HTML
 function pickUpText(aParentElement) {
   var str = "";
 
   function pickUpTextInternal(aElement) {
     var child = aElement.firstChild;
     while (child) {
       if (child.nodeType == 1)		// ELEMENT_NODE 
         pickUpTextInternal(child);
       else if (child.nodeType == 3)	// TEXT_NODE
         str += child.nodeValue;
 
       child = child.nextSibling;
     }
   }
 
   pickUpTextInternal(aParentElement);
 
   return str;
 }

 /** Tabellsorteringsfix
  * Hack för att få sorterbara tabeller att sortera korrekt med komma som decimalseparator och
  * punkt som tusentalsseparator.
  * 
  * /[[Användare:Skagedal]]
  */
 function ts_parseFloat(num) {
        if (!num) return 0;
        num = num.replace(/\./g, "");
        num = num.replace(/,/, ".");
        num = parseFloat(num);
        return (isNaN(num) ? 0 : num);
 }