Erohusat systemadieđáhusa «Common.js» veršuvnnaid gaskkas

Sisdoallu sihkkojuvvon Sisdoallu biddjon
Jeblad (ságastallan | rievdadusat)
double check this
Jeblad (ságastallan | rievdadusat)
legger tilbake
Gurgadas 1:
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* Check if external link targets exists **************************************
*
* Description: Make external iw-links red through styling and make them blue again if they exists
* Maintainers: [[User:Jeblad]]
*/
(function(mw, $, undefined){
 
if (!mw.config.get( 'wgIsArticle' )) return;
if (mw.config.get( 'wgNamespaceNumber' ) != 0) return;
if (!/^(view)$/.test(mw.config.get( 'wgAction' ))) return;
 
var found = 0;
for (var x in mw.config.get('wgCategories')) {
if (mw.config.get('wgCategories')[x] == 'IW-check' && ++found) break;
}
if (!found) return;
 
var api = '//%%.wikipedia.org/w/api.php';
var languages = { 'nn' : {}, 'no' : {}, 'sv' : {}, 'da' : {} };
//var lang = 'se';
var numtitles = 50;
var maxtitles = 2000;
var query = {
'action': 'query',
'prop' : 'info',
'format': 'json',
'maxage': 15*60,
'smaxage': 24*60*60
};
 
$(function(){
var iwcheck = $('.iwcheck').find('a.extiw');
if (!iwcheck || !iwcheck.length) return;
for (var x in languages) {
languages[x].titles = {},
languages[x].found = 0;
}
iwcheck.each(function(i, el){
if (el.title) {
var matches = el.title.match(/^(.*?):(.*)$/);
if (matches.length == 3 && languages[matches[1]] != undefined) {
languages[matches[1]].titles[matches[2]] = true;
languages[matches[1]].found++;
}
}
});
var plang = $('#p-lang');
for (var x in languages) {
if (!languages[x].found) continue;
if (x === mw.config.get('wgLanguageCode')) continue;
var a = [];
for (var y in languages[x].titles)
if (languages[x].titles[y]) a.push(y);
var a = a.slice(0, maxtitles);
for (var i = 0; i < a.length; i+=numtitles) {
var titles = a.slice(i, (i+numtitles<a.length ? i+numtitles : a.length)).join('|');
$.ajax({
url: api.replace(/%%/, x),
dataType: 'jsonp',
data: jQuery.extend({'titles': titles, requestid: x}, query),
cache: true,
context: document.body,
success: function(data, textStatus){
 
if (textStatus === null && textStatus != 'success') {
alert('Success, but with "' + textStatus + '"');
return;
}
 
// this shouldn't happen
if (!languages[data.requestid] && !languages[data.requestid].found) return;
 
var a = [];
for (var x in data.query.pages) {
if (x<0) continue;
if (languages[data.requestid].titles[data.query.pages[x].title])
a.push('[title="' + data.requestid + ':' + data.query.pages[x].title + '"]');
}
iwcheck.filter(a.join(',')).addClass('exist');
}
});
}
}
});
})(mediaWiki, jQuery);
 
 
/* Adapt a list structure and use it as a navigational aid **************************************
*
* Description: Gives a list some additional structuring and a collapse/expand functionality
* Maintainers: [[User:Jeblad]]
*/
// build an opaque function object
(function(mw, $, undefined){
// get the locally stored objects, clear out the objects on errors
var max = 128;
var values = {};
try {
values = $.parseJSON( window.localStorage.getItem("navbox-items-value") || '{}' );
}
catch (e) {
window.localStorage.setItem("navbox-items-value", '{}' );
}
// private method for local storage
function store(key, idx, state) {
// only check whats the state
if (state === undefined)
return (values[key] ? values[key][idx] : null);
// build a copy where we start with our value and skip any later duplicates
var obj = {};
obj[key] = [];
obj[key][idx] = state;
var count = 0;
for (var x in values) {
if (x === key) {
if (!obj[x]) obj[x] = [];
for (var y in values[x])
if (!obj[x][y])
obj[x][y]=values[x][y];
}
else
obj[x]=values[x];
if (max<count++)
continue;
}
values = obj;
// rebuild indexes for local storage
var a = [];
for (var x in values) {
var b = [];
for (var y in values[x])
b.push('"'+values[x][y]+'"');
a.push('"'+x+'":['+b.join(',')+']');
}
window.localStorage.setItem("navbox-items-value", '{'+a.join(',')+'}' );
// return our set state
return state;
}
// worker process
$(function() {
// cache our navboxes
var navbox = $('div.statbox');
// we're running so remove no-script class
navbox
.removeClass('no-script');
// identify lead ins
navbox
.find('dd')
.find('ul,ol')
.each(function(i, el) {
var obj = el.previousSibling;
while (obj && !/\S/.test(obj.nodeValue))
obj = obj.previousSibling;
if (obj)
$(el)
.addClass('lead-in');
});
// is collapsible navigation enabled?
if (mw.config.get('wgVectorEnabledModules') && mw.config.get('wgVectorEnabledModules')['collapsiblenav']) {
// identify collapsible navigations
navbox
.addClass('collapsible');
// identify collapsed state and set up handlers
navbox
.find('dt')
.each(function(i, el){
var obj = el.nextSibling;
while (obj && obj.nodeType != 1)
obj = obj.nextSibling;
if (obj && obj.nodeName) {
$(el)
.addClass(function(index, currentClass){
var matches = $(el).closest('.navbox').attr('class').match(/navbox-([-\w]+)/);
var idx = $(this).closest('dl').prevAll('dl').length; // not sure
if (matches && 1<matches.length && store(matches[1], idx) == 'expanded') {
$(el)
.nextUntil('dt')
.css('display', 'block');
return 'expanded';
}
else return 'collapsed';
})
.wrapInner('<span class="title"/>')
.click(function(){
var matches = $(this).closest('.navbox').attr('class').match(/navbox-([-\w]+)/);
var idx = $(this).closest('dl').prevAll('dl').length; // not sure
$(this)
.closest('dt')
.toggleClass('collapsed expanded')
.each(function(i, el){
if (matches && 1<matches.length)
store(matches[1], idx, $(el).hasClass('collapsed') ? 'collapsed' : 'expanded');
})
.nextUntil('dt')
.slideToggle();
});
}
});
}
});
})(mediaWiki, jQuery);
 
 
// dynamic linkage to sami giellatekno
importScript('MediaWiki:Giellatekno.js');
/**
* Description: Modify parts of the toolbar to better suit this projects needs
* Maintainer:
*/
(function(mw, $, undefined) {
 
// function to build complete labels, just to get rid of some pesky errors
var label = function (msg, txt, before, after) {
var str = '';
if (before === undefined ? true : before) str += "{" + "{";
str += msg;
if (after === undefined ? true : after) str += "}" + "}";
if (txt) str += " – " + txt;
return str;
};
// function to build pre-parts of the templates, just to get rid of some pesky errors
var pre = function (msg, txt, before) {
var str = '';
if (before === undefined ? true : before) str += "{" + "{";
str += msg;
if (txt) str += txt;
return str;
};
// function to build peri-parts of the templates, just to get rid of some pesky errors
var peri = function (msg, txt, before, after) {
var str = '';
if (before === undefined ? true : before) str += "{" + "{";
str += msg;
if (txt) str += txt;
if (after === undefined ? true : after) str += "}" + "}";
return str;
};
// get timestamp for templates
var now = new Date();
var timestamp = now.getUTCFullYear()
+ '-' + (now.getUTCMonth()<9 ? '0' : '') + (now.getUTCMonth()+1)
+ '-' + (now.getUTCDate()<9 ? '0' : '') + now.getUTCDate();
// customization for the beta toolbar
var customizeBetaToolbar = function () {
 
// add quote signs to the format group in the main section
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'group': 'format',
'tools': {
'quote': {
label: 'Aisttonmearka',
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/a/ac/Norwegian_quote_sign.png',
action: {
type: 'encapsulate',
options: {
pre: "«",
peri: "«»",
post: "»"
}
}
}
}
} );
 
// add quote signs to the format group in the main section
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'group': 'format',
'tools': {
'link': {
label: 'Liŋkaruođut',
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/b/ba/Norwegian_link_sign.png',
action: {
type: 'encapsulate',
options: {
pre: "[[",
peri: "[[]]",
post: "]]"
}
}
}
}
} );
 
// add quote signs to the format group in the main section
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'váldo',
'group': 'hábmi',
'tools': {
'link': {
label: 'Málleruođut',
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/4/4a/Norwegian_template_sign.png',
action: {
type: 'encapsulate',
options: {
pre: "{{",
peri: "{{}}",
post: "}}"
}
}
}
}
} );
// add quote signs to the format group in the main section
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'group': 'format',
'tools': {
'link': {
label: 'Mininalta-málle',
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/6/6c/Wiki_letter_w.svg',
action: {
type: 'encapsulate',
options: {
pre: "",
peri: "{{Mininalta}}",
post: ""
}
}
}
}
} );
// add quote signs to the format group in the main section
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'group': 'format',
'tools': {
'link': {
label: 'Nalta-málle',
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/6/6c/Wiki_letter_w.svg',
action: {
type: 'encapsulate',
options: {
pre: "",
peri: "{{Nalta}}",
post: ""
}
}
}
}
} );
// add a article mark menu in the advanced section
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'advanced',
groups: {
'bajilčála': {
tools: {
'bajilčála': {
label: 'Merke',
type: 'select',
list: {
'template-neutral' : {
label: label('Neutralitehta', 'artihkal ii leat bealatkeahtes'),
action: {
type: 'encapsulate',
options: {
pre: pre('Neutralitehta', '|ts=' + timestamp + '|'),
post: '}}',
ownline: false
}
}
},
'template-accuracy' : {
label: label('Dárkilvuohta', 'artihkal ii leat čállon dárkilvuođain'),
action: {
type: 'encapsulate',
options: {
pre: ('Dárkilvuohta', '|ts=' + timestamp + '|'),
post: '}}',
ownline: false
}
}
},
'template-nowrap' : {
label: label('Dutkan', 'artihkkalis lea ođđa dutkama'),
action: {
type: 'encapsulate',
options: {
pre: pre('Dutkan', '|ts=' + timestamp + '|'),
post: '}}',
ownline: false
}
}
},
'template-spelling' : {
label: '{{Gielladikšun}} – artihkkala giela galgá divvut',
action: {
type: 'encapsulate',
options: {
pre: '{{Gielladikšun|ts=' + timestamp + '|',
post: '}}',
ownline: false
}
}
},
'template-format' : {
label: '{{Wikifiseren}} – artihkal gáibida wikifiserema',
action: {
type: 'encapsulate',
options: {
pre: '{{Wikifiseren|ts=' + timestamp + '|',
post: '}}',
ownline: false
}
}
},
'template-workinprogress' : {
label: '{{Bargamin}} – artihkal lea barggu vuolde',
action: {
type: 'encapsulate',
options: {
pre: '{{Bargamin|ts=' + timestamp + '|',
post: '}}',
ownline: false
}
}
}
}
}
}
}
}
} );
 
 
 
// add a template menu in the advanced section
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'advanced',
groups: {
'heading': {
tools: {
'heading': {
label: 'Mállet',
type: 'select',
list: {
'template-nowrap' : {
label: '{{nowrap|…}} – hindre linjeskift i tekst og tall',
action: {
type: 'encapsulate',
options: {
pre: '{{nowrap|',
post: '}}',
ownline: false
}
}
},
'template-formatnum' : {
label: '{{formatnum:…}} – tall med mellomrom og desimalkomma',
action: {
type: 'encapsulate',
options: {
pre: '{{formatnum:',
post: '}}',
ownline: false
}
}
},
'template-defaultsort' : {
label: '{{DEFAULTSORT:…}} – olmmošartihkkaliid sirren goarggu mielde',
action: {
type: 'encapsulate',
options: {
pre: '{{DEFAULTSORT:',
post: '}}',
ownline: false
}
}
}
}
}
}
}
}
} );
 
// add a titles menu in the advanced section
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'advanced',
groups: {
'heading': {
tools: {
'heading': {
label: 'Titlet',
type: 'select',
list: {
'titles-links' : {
label: '== Liŋkkat == – liŋkkat olggoldas neahttasiidduide',
action: {
type: 'encapsulate',
options: {
pre: '==Liŋkkat==',
ownline: true
}
}
},
'titles-see-also' : {
label: '== Geahča maid == – liŋkkat {{grammar:illativ|{{SITENAME}}}} dahje eará Wikimedia prošeavttaide',
action: {
type: 'encapsulate',
options: {
pre: '== Geahča maid ==',
ownline: true
}
}
},
'titles-sources' : {
label: '== Gáldut == – listu artihkkala gálduin',
action: {
type: 'encapsulate',
options: {
pre: '==Gáldut==',
post: "\n<references />",
ownline: true
}
}
},
'titles-sources' : {
label: '== Čujuheamit == – čujuheamit artihkkala gálduide',
action: {
type: 'encapsulate',
options: {
pre: '== Čujuheamit ==',
post: "\n<references />",
ownline: true
}
}
}
}
}
}
}
}
});
};
/* 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.toolbar', function () {
$(customizeBetaToolbar);
});
}
});
}
})(mediaWiki, jQuery);
 
/** Microsigns: endrer plassering av de små skiltene ******************** */
 
if (wgArticleId) {
try {
addOnloadHook( function() {
var arr = Array();
$('.microsign').each(function(i, el) { arr.push(el); });
$('#bodyContent').append('<div id="microsigns"/>');
var content = document.getElementById('microsigns');
for (var x in arr) { content.appendChild(arr[x]); }
});
}
catch (e) { /* just go away */ }
}
 
if (wgUserName && wgArticleId) {
importScriptURI('//commons.wikimedia.org/w/index.php?title=MediaWiki:Gadget-HotCat.js&action=raw&ctype=text/javascript&dontcountme=s');
}
 
/**
* Description: Clean up the list of templates during ordinary article editing for base templates,
* that is those with a leading dollar ($) sign in the name
* Maintainers: [[User:Jeblad]]
*/
(function(mw, $) {
if (mw.config.get( 'wgNamespaceNumber' ) != 10 && (mw.config.get( 'wgAction' ) == "edit" || mw.config.get( 'wgAction' ) == "submit")) {
try {
$(function() {
var used = $('.templatesUsed');
var expl = $('.mw-templatesUsedExplanation');
var links = used.find('> ul > li > a').filter('[href*=":$"], [href*="MediaWiki:"]');
if (links.length === 0) return;
links.parent().css('display', 'none');
expl.find('p').append(' (<a class="show-base-templates" href="#">Vis grunnmaler</a><a class="hide-base-templates" href="#">Skjul grunnmaler</a>)');
expl.find('a.hide-base-templates').css('display', 'none');
expl.find('a.show-base-templates').click(function(){
links.parent().css('display', 'list-item');
$(this).css('display', 'none');
$(this).parentsUntil('.mw-templatesUsedExplanation').find('.hide-base-templates').css('display', 'inline');
return false;
});
expl.find('a.hide-base-templates').click(function(){
links.parent().css('display', 'none');
$(this).css('display', 'none');
$(this).parentsUntil('.mw-templatesUsedExplanation').find('.show-base-templates').css('display', 'inline');
return false;
});
});
}
catch (e) {
// Woopsie, die without a notice
}
}
})(mediaWiki, jQuery);
 
(function(mw, $, undefined) {
var css = {
'Láskkodiehtolista' : {
'class' : 'horizontal-data-list'
}
}
var categories = mw.config.get("wgCategories");
for (var x in categories) {
if (css[categories[x]]) {
if (css[categories[x]].class)
$('body').addClass(css[categories[x]].class);
if (css[categories[x]].style)
console.log('not implemented: failed attempt to set style');
}
}
})(mediaWiki, jQuery);