MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (39 intermediate revisions by 3 users not shown) | |||
| Line 145: | Line 145: | ||
tags[i] ) ); | tags[i] ) ); | ||
} ); | } ); | ||
/* ===== BEGIN Pilot 12-step case study (cs12) — safe to remove as a block ===== */ | |||
(function () { | |||
// Only on pages in the Pilot: namespace — never touches existing | |||
// Case Study / Case Description pages or any other namespace. | |||
if (!document.body.classList.contains('ns-116')) return; | |||
var title = mw.config.get('wgTitle'); // page title, namespace stripped, spaces not underscores | |||
if (!title) return; | |||
// Adjust this path if the wizard ever moves to a different location. | |||
var wizardUrl = '/aquapedia/pilot-wizard.html?edit=' + encodeURIComponent(title); | |||
function redirectEditLinks() { | |||
// Top "Edit source" tab — id varies slightly by skin/config, so check both. | |||
var topEdit = document.getElementById('ca-edit') || document.getElementById('ca-editsource'); | |||
if (topEdit) { | |||
var topLink = topEdit.querySelector('a'); | |||
if (topLink) topLink.setAttribute('href', wizardUrl); | |||
} | |||
// Every per-section "[edit source]" link next to a heading. | |||
document.querySelectorAll('.mw-editsection a').forEach(function (a) { | |||
a.setAttribute('href', wizardUrl); | |||
}); | |||
} | |||
redirectEditLinks(); | |||
})(); | |||
/* ===== END Pilot 12-step case study (cs12) ===== */ | |||
Latest revision as of 06:17, 4 August 2026
/* Any JavaScript here will be loaded for all users on every page load. */
(function($){var trailing_whitespace=true;$.fn.truncate=function(options){var opts=$.extend({},$.fn.truncate.defaults,options);$(this).each(function(){var content_length=$.trim(squeeze($(this).text())).length;if(content_length<=opts.max_length)
return;var actual_max_length=opts.max_length-opts.more.length-3;var truncated_node=recursivelyTruncate(this,actual_max_length);var full_node=$(this).hide();truncated_node.insertAfter(full_node);findNodeForMore(truncated_node).append(' (<a href="#show more content">'+opts.more+'</a>)');findNodeForLess(full_node).append(' (<a href="#show less content">'+opts.less+'</a>)');truncated_node.find('a:last').click(function(){truncated_node.hide();full_node.show();return false;});full_node.find('a:last').click(function(){truncated_node.show();full_node.hide();return false;});});}
$.fn.truncate.defaults={max_length:100,more:'…more',less:'less'};function recursivelyTruncate(node,max_length){return(node.nodeType==3)?truncateText(node,max_length):truncateNode(node,max_length);}
function truncateNode(node,max_length){var node=$(node);var new_node=node.clone().empty();var truncatedChild;node.contents().each(function(){var remaining_length=max_length-new_node.text().length;if(remaining_length==0)return;truncatedChild=recursivelyTruncate(this,remaining_length);if(truncatedChild)new_node.append(truncatedChild);});return new_node;}
function truncateText(node,max_length){var text=squeeze(node.data);if(trailing_whitespace)
text=text.replace(/^ /,'');trailing_whitespace=!!text.match(/ $/);var text=text.slice(0,max_length);text=$('<div/>').text(text).html();return text;}
function squeeze(string){return string.replace(/\s+/g,' ');}
function findNodeForMore(node){var $node=$(node);var last_child=$node.children(":last");if(!last_child)return node;var display=last_child.css('display');if(!display||display=='inline')return $node;return findNodeForMore(last_child);};function findNodeForLess(node){var $node=$(node);var last_child=$node.children(":last");if(last_child&&last_child.is('p'))return last_child;return node;};})(jQuery);var is={ie:navigator.appName=='Microsoft Internet Explorer',java:navigator.javaEnabled(),ns:navigator.appName=='Netscape',ua:navigator.userAgent.toLowerCase(),version:parseFloat(navigator.appVersion.substr(21))||parseFloat(navigator.appVersion),win:navigator.platform=='Win32'}
is.mac=is.ua.indexOf('mac')>=0;if(is.ua.indexOf('opera')>=0){is.ie=is.ns=false;is.opera=true;}
if(is.ua.indexOf('gecko')>=0){is.ie=is.ns=false;is.gecko=true;}
/* Inserts text at the cursor location in a textarea html element */
$.fn.extend({
insertAtCaret: function(myValue){
var obj;
if( typeof this[0].name !='undefined' ) obj = this[0];
else obj = this;
if ($.browser.msie) {
obj.focus();
sel = document.selection.createRange();
sel.text = myValue;
obj.focus();
}
else if ($.browser.mozilla || $.browser.webkit) {
var startPos = obj.selectionStart;
var endPos = obj.selectionEnd;
var scrollTop = obj.scrollTop;
obj.value = obj.value.substring(0, startPos)+myValue+obj.value.substring(endPos,obj.value.length);
obj.focus();
obj.selectionStart = startPos + myValue.length;
obj.selectionEnd = startPos + myValue.length;
obj.scrollTop = scrollTop;
} else {
obj.value += myValue;
obj.focus();
}
}
})
function ModifySidebar(action, section, name, link) {
try {
switch (section) {
case "languages":
var target = "p-lang";
break;
case "toolbox":
var target = "p-tb";
break;
case "navigation":
var target = "p-navigation";
break;
default:
var target = "p-" + section;
break;
}
if (action == "add") {
var node = document.getElementById(target)
.getElementsByTagName('div')[0]
.getElementsByTagName('ul')[0];
var aNode = document.createElement('a');
var liNode = document.createElement('li');
aNode.appendChild(document.createTextNode(name));
aNode.setAttribute('href', link);
liNode.appendChild(aNode);
liNode.className='plainlinks';
node.appendChild(liNode);
}
if (action == "remove") {
var list = document.getElementById(target)
.getElementsByTagName('div')[0]
.getElementsByTagName('ul')[0];
var listelements = list.getElementsByTagName('li');
for (var i = 0; i < listelements.length; i++) {
if (listelements[i].getElementsByTagName('a')[0].innerHTML == name ||
listelements[i].getElementsByTagName('a')[0].href == link) {
list.removeChild(listelements[i]);
}
}
}
} catch(e) {
// lets just ignore what's happened
return;
}
}
function CustomizeModificationsOfSidebar() {
//to add to toolbox: ModifySidebar("add", "toolbox", "...","http://..");
//removes [[Special:SpecialPages]] from toolbox
//ModifySidebar("remove", "toolbox", "Special Pages", "http://aquapedia.waterdiplomacy.org/wiki/index.php?title=Special:SpecialPages");
ModifySidebar("remove", "toolbox", "Related Changes", "http://aquapedia.waterdiplomacy.org/wiki/index.php?title=Special:RecentChangesLinked/");
}
addOnloadHook(CustomizeModificationsOfSidebar);
jQuery(document).ready(function() {
jQuery(".expSectionBody").hide();
//toggle the component with class msg_body
jQuery(".expSectionHeader").click( function() {
jQuery(this).next(".expSectionBody").slideToggle(700);
if (jQuery(this).hasClass('open')) {
jQuery(this).removeClass('open').addClass('closed');
} else if (jQuery(this).hasClass('closed')) {
jQuery(this).removeClass('closed').addClass('open');
} else {
jQuery(this).addClass('open');
}
});
jQuery(".ASI.expSectionHeader").mouseover(function () {
jQuery(this).css("text-decoration","underline");
});
jQuery(".ASI.expSectionHeader").mouseout(function () {
jQuery(this).css("text-decoration","none");
});
});
/** Popup links -- Use <span class="pops">[[Homepage|Home]]</span> **/
addOnloadHook( function() {
var pops = function( elems ) {
for (var i=0; i<elems.length; i++) {
if ( !(' '+elems[i].className+' ').match( / pops / ) )
continue;
var anchs = elems[i].getElementsByTagName('a');
for (var j=0; j<anchs.length; j++) anchs[j].target = '_blank';
}
};
var bc = document.getElementById('bodyContent');
var tags = ['span', 'div', 'table', 'td', 'th'];
for (var i=0; i<tags.length; i++) pops( bc.getElementsByTagName(
tags[i] ) );
} );
/* ===== BEGIN Pilot 12-step case study (cs12) — safe to remove as a block ===== */
(function () {
// Only on pages in the Pilot: namespace — never touches existing
// Case Study / Case Description pages or any other namespace.
if (!document.body.classList.contains('ns-116')) return;
var title = mw.config.get('wgTitle'); // page title, namespace stripped, spaces not underscores
if (!title) return;
// Adjust this path if the wizard ever moves to a different location.
var wizardUrl = '/aquapedia/pilot-wizard.html?edit=' + encodeURIComponent(title);
function redirectEditLinks() {
// Top "Edit source" tab — id varies slightly by skin/config, so check both.
var topEdit = document.getElementById('ca-edit') || document.getElementById('ca-editsource');
if (topEdit) {
var topLink = topEdit.querySelector('a');
if (topLink) topLink.setAttribute('href', wizardUrl);
}
// Every per-section "[edit source]" link next to a heading.
document.querySelectorAll('.mw-editsection a').forEach(function (a) {
a.setAttribute('href', wizardUrl);
});
}
redirectEditLinks();
})();
/* ===== END Pilot 12-step case study (cs12) ===== */