User:DodoMan/common.js: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
Installing User:Rafdodo/qualitybutton.js (script-installer) |
mNo edit summary |
||
(86 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
var whitelist = ["DodoMan"]; |
|||
mw.loader.load('/index.php?title=User:Saint/common.css&action=raw&ctype=text/css', 'text/css'); |
|||
if (mw.config.get('wgUserName') && whitelist.indexOf(mw.config.get('wgUserName')) === -1) { |
|||
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]] |
|||
alert("Please remove User:DodoMan/common.js in your common.js!There are scripts in test period.And remove all m’y user scripts in your js common."); |
|||
throw new Error(); |
|||
} |
|||
// Ne pas afficher la différence pas défaut |
|||
var wikEdDiffPreset = false; |
|||
// disable loading for IE, not needed, but might save a few milliseconds |
|||
if (navigator.appName != 'Microsoft Internet Explorer') { |
|||
// install [[:en:User:Cacycle/wikEd]] in-browser text editor |
|||
document.write('<script type="text/javascript" src="' |
|||
+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js' |
|||
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); |
|||
} |
|||
//<nowiki> |
|||
/** |
/** |
||
* Ajoute des liens après les catégories pour rapidement |
|||
* PageCreatorInfo.js |
|||
* supprimer / modifier / ajouter une catégorie sur un article. |
|||
* Developer: Saroj |
|||
* Utilise Ajax et l'api MediaWiki pour rechercher une catégorie. |
|||
* Date: 2023-12-26 |
|||
* Version adaptée pour WP:fr de [[:commons:MediaWiki:HotCat.js]] |
|||
* |
* |
||
* Auteur original : Magnus Manske |
|||
* This script fetches and displays the name of the creator of a MediaWiki page along with |
|||
* Adaptation pour WP:fr : Zelda |
|||
* their total number of edits on the site. It is designed for MediaWiki environments. |
|||
* [[Catégorie:MediaWiki:Fonction Monobook en JavaScript]] |
|||
*/ |
*/ |
||
// VARIABLES PERSONNALISABLES |
|||
$(document).ready(function() { |
|||
// Only execute in view mode |
|||
if (mw.config.get('wgAction') === "view") { |
|||
var apiURL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php'; |
|||
var wikiURL = mw.util.getUrl(''); |
|||
// Suggestion delay in ms |
|||
// Fetches the creator of the current page |
|||
var hotcat_suggestion_delay = 200; |
|||
function fetchPageCreator() { |
|||
$.ajax({ |
|||
// Taille de la liste déroulante (en items) |
|||
url: apiURL, |
|||
var hotcat_list_size = 10; |
|||
data: { |
|||
action: 'query', |
|||
// Nombre de categories suggérées lors de la recherche |
|||
format: 'json', |
|||
var hotcat_list_items = 50; |
|||
titles: mw.config.get('wgPageName'), |
|||
prop: 'revisions', |
|||
// Permet d'enregistrer automatiquement la modif sans repasser par la fenêtre d'édition |
|||
rvlimit: 1, |
|||
// var hotcat_autocommit = false; |
|||
rvdir: 'newer', |
|||
rvprop: 'user' |
|||
// Permet d'afficher la liste de suggestion vers le bas |
|||
}, |
|||
// var hotcat_list_down = false; |
|||
dataType: 'json', |
|||
success: function(response) { |
|||
// FIN DE LA PERSONNALISATION DES VARIABLES |
|||
var pageId = Object.keys(response.query.pages)[0]; |
|||
fetchUserEditCount(response.query.pages[pageId].revisions[0].user); |
|||
var hotcat_running = 0 ; |
|||
} |
|||
var hotcat_last_v = "" ; |
|||
}); |
|||
var hotcat_exists_yes = "http://upload.wikimedia.org/wikipedia/commons/thumb/b/be/P_yes.svg/20px-P_yes.svg.png" ; |
|||
} |
|||
var hotcat_exists_no = "http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/P_no.svg/20px-P_no.svg.png" ; |
|||
if( wgNamespaceNumber%2 == 0 && document.URL.indexOf("printable=yes")==-1) addOnloadHook ( hotcat ) ; |
|||
function hotcat () { |
|||
if ( hotcat_check_action() ) return ; // Edited page, reloading anyway |
|||
var catlinks = document.getElementById("catlinks"); |
|||
if (! catlinks) { // all except discussion |
|||
// let's create a fake one |
|||
var bodyC = document.getElementById("bodyContent"); |
|||
catlinks = document.createElement("div"); |
|||
catlinks.id = "catlinks"; |
|||
catlinks.className = "catlinks"; |
|||
catlinks = bodyC.appendChild(catlinks); |
|||
} |
|||
var catline = document.getElementById ('mw-normal-catlinks'); // Since MW 1.13alpha |
|||
if( !catline ) { |
|||
catline = catlinks.insertBefore(document.createElement("div"), catlinks.firstChild); |
|||
catline.id = "mw-normal-catlinks"; |
|||
} |
|||
if ( catline == null || typeof catline == 'undefined' ) return ; |
|||
hotcat_modify_existing ( catline ) ; |
|||
hotcat_append_add_span ( catline ) ; |
|||
} |
|||
var hotcat_edit_id_map=[]; |
|||
function hotcatGetEditId(ob) |
|||
{ |
|||
var i; |
|||
for(i=0;i<hotcat_edit_id_map.length;i++) |
|||
if (hotcat_edit_id_map[i]===ob) return i; |
|||
i=hotcat_edit_id_map.length; |
|||
hotcat_edit_id_map.push(ob); |
|||
return i; |
|||
} |
|||
function hotcat_append_add_span ( catline ) { |
|||
var span_add = document.createElement ( "span" ) ; |
|||
var span_sep = document.createTextNode ( " | " ) ; |
|||
if ( catline.firstChild ) catline.appendChild ( span_sep ) ; |
|||
else { |
|||
var a = document.createElement('a'); |
|||
a.href = '/wiki/Catégorie:Accueil'; |
|||
a.title = 'Catégorie:Accueil'; |
|||
a.appendChild(document.createTextNode('Catégories')); |
|||
catline.appendChild(a); |
|||
catline.appendChild(document.createTextNode(' : ')); |
|||
} |
|||
catline.appendChild ( span_add ) ; |
|||
hotcat_create_span ( span_add ) ; |
|||
} |
|||
String.prototype.ucFirst = function () { |
|||
return this.substr(0,1).toUpperCase() + this.substr(1,this.length); |
|||
} |
|||
function hotcat_modify_span ( span ) { |
|||
var cat_title = span.firstChild.getAttribute ( "title" ) ; |
|||
// Removing leading Category: |
|||
cat_title = cat_title.substr(cat_title.indexOf(":") + 1); |
|||
var sep1 = document.createTextNode ( " " ) ; |
|||
var a1 = document.createTextNode ( "(–)" ) ; |
|||
var remove_link = document.createElement ( "a" ) ; |
|||
remove_link.href = "javascript:hotcat_remove(\"" + cat_title + "\");" ; |
|||
remove_link.appendChild ( a1 ) ; |
|||
span.appendChild ( sep1 ) ; |
|||
span.appendChild ( remove_link ) ; |
|||
var i=hotcatGetEditId(span); |
|||
var mod_id = "hotcat_modify_" + i ; |
|||
var sep2 = document.createTextNode ( " " ) ; |
|||
var a2 = document.createTextNode ( "(±)" ) ; |
|||
var modify_link = document.createElement ( "a" ) ; |
|||
modify_link.id = mod_id ; |
|||
modify_link.href = "javascript:hotcat_modify(\"" + mod_id + "\");" ; |
|||
modify_link.appendChild ( a2 ) ; |
|||
span.appendChild ( sep2 ) ; |
|||
span.appendChild ( modify_link ) ; |
|||
} |
|||
function hotcat_modify_existing ( catline ) { |
|||
var spans = catline.getElementsByTagName ( "span" ) ; |
|||
for ( var i = 0 ; i < spans.length ; i++ ) { |
|||
hotcat_modify_span ( spans[i] ) ; |
|||
} |
|||
} |
|||
function hotcat_remove ( cat_title ) { |
|||
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href; |
|||
if (window.confirm("Voulez-vous vraiment supprimer la catégorie '" + cat_title + "' ?")) { |
|||
document.location = editlk + '&hotcat_removecat=' + encodeURIComponent(cat_title) ; |
|||
} |
|||
} |
|||
function hotcatGetParamValue(paramName, h) { |
|||
// Fetches the edit count of the creator |
|||
if (typeof h == 'undefined' ) { h = document.location.href; } |
|||
function fetchUserEditCount(username) { |
|||
var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)'); |
|||
$.ajax({ |
|||
var m=cmdRe.exec(h); |
|||
if (m) { |
|||
try { |
|||
return decodeURIComponent(m[1]); |
|||
} catch (someError) {} |
|||
ususers: username, |
|||
usprop: 'editcount' |
|||
}, |
|||
dataType: 'json', |
|||
success: function(response) { |
|||
displayCreator(username, response.query.users[0].editcount); |
|||
} |
|||
}); |
|||
} |
} |
||
return null; |
|||
} |
|||
function hotcat_check_action () { |
|||
// Displays creator info below the title bar |
|||
var ret = 0 ; |
|||
function displayCreator(creator, editCount) { |
|||
if ( wgAction != "edit" ) return ret ; // Not an edit page, so no business... |
|||
var creatorInfo = $('<div>') |
|||
var summary = new Array () ; |
|||
.append('Page created by: ') |
|||
var t = document.editform.wpTextbox1.value ; |
|||
.append($('<a>').attr('href', wikiURL + 'User:' + encodeURIComponent(creator)).text(creator).css({'color': '#0645ad'})) |
|||
var prevent_autocommit = 1 ; |
|||
.append(' (') |
|||
if ( typeof hotcat_autocommit != 'undefined' && hotcat_autocommit ) prevent_autocommit = 0 ; |
|||
.append($('<a>').attr('href', wikiURL + 'Special:Contributions/' + encodeURIComponent(creator)).text(editCount + ' edits').css({'color': '#0645ad'})) |
|||
.append(')') |
|||
.css({'font-size': '84%', 'color': '#666', 'margin-top': '5px'}); |
|||
// Remove existing category? |
|||
$('#bodyContent').prepend(creatorInfo); |
|||
var hrc = hotcatGetParamValue('hotcat_removecat') ; |
|||
// Add new category? |
|||
var hnc = hotcatGetParamValue('hotcat_newcat') ; |
|||
if ( typeof hrc != "undefined" && hrc != null && hrc != "" ) { |
|||
var hcre = new RegExp("(\\s*)\\[\\[ *(?:Catégorie|Category) *: *" + hrc.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + " *(\\|[^\\]]*)?\\]\\]", "gi"); |
|||
var matches = t.match(hcre); |
|||
if (matches != null && matches.length == 1) { // Found one occurrence of the category - good! |
|||
if ( typeof hnc != "undefined" && hnc != null && hnc != "" ) { |
|||
t = t.replace(hcre, "$1[[Catégorie:" + hnc + "$2]]"); |
|||
summary.push ( "modification de [[Catégorie:" + hrc + "]] → [[Catégorie:" + hnc + "]]" ) ; |
|||
} else { |
|||
t = t.replace(hcre, ""); |
|||
summary.push ( "retrait de [[Catégorie:" + hrc + "]]" ) ; |
|||
} |
|||
ret = 1 ; |
|||
} else { |
|||
alert ( "Impossible de trouver une occurrence unique de \"" + hrc + "\" - elle est peut-être incluse via un modèle" ) ; |
|||
prevent_autocommit = 1 ; |
|||
} |
|||
} else { |
|||
// Only adding? |
|||
if ( typeof hnc != "undefined" && hnc != null && hnc != "" ) { |
|||
// Looking for last cat |
|||
var re = /\[\[(?:Catégorie|Category):[^\]]+\]\]/ig |
|||
var index = -1; |
|||
while (re.exec(t) != null) index = re.lastIndex; |
|||
var txt = "[[Catégorie:" + hnc + "]]" ; |
|||
if (index < 0) { |
|||
t = t + '\n' + txt ; |
|||
} else { |
|||
t = t.substring(0, index) + '\n' + txt + t.substring(index); |
|||
} |
|||
summary.push ( "ajout de [[Catégorie:" + hnc + "]]" ) ; |
|||
ret = 1 ; |
|||
} |
|||
} |
|||
if ( ret ) { |
|||
document.editform.wpTextbox1.value = t ; |
|||
document.editform.wpSummary.value = summary.join( " ; " ) ; |
|||
document.editform.wpMinoredit.checked = true ; |
|||
if ( !prevent_autocommit ) { |
|||
document.getElementById("bodyContent").style.display = "none" ; // Hiding the entire edit section so as not to tempt the user into editing... |
|||
document.editform.wpSave.click(); |
|||
} |
|||
} |
|||
// This is the end, my friend, the end... |
|||
return ret ; |
|||
} |
|||
function hotcat_clear_span ( span_add ) { |
|||
while ( span_add.firstChild ) span_add.removeChild ( span_add.firstChild ) ; |
|||
} |
|||
function hotcat_create_span ( span_add ) { |
|||
hotcat_clear_span ( span_add ) ; |
|||
var a_add = document.createElement ( "a" ) ; |
|||
var a_text = document.createTextNode ( "(+)" ) ; |
|||
span_add.id = "hotcat_add" ; |
|||
a_add.href = "javascript:hotcat_add_new()" ; |
|||
a_add.appendChild ( a_text ) ; |
|||
span_add.appendChild ( a_add ) ; |
|||
} |
|||
function hotcat_modify ( link_id ) { |
|||
var link = document.getElementById ( link_id ) ; |
|||
var span = link.parentNode ; |
|||
var catname = span.firstChild.firstChild.data ; |
|||
while ( span.firstChild.nextSibling ) span.removeChild ( span.firstChild.nextSibling ) ; |
|||
span.firstChild.style.display = "none" ; |
|||
hotcat_create_new_span ( span , catname ) ; |
|||
hotcat_last_v = "" ; |
|||
hotcat_text_changed () ; // Update icon |
|||
} |
|||
function hotcat_add_new () { |
|||
var span_add = document.getElementById ( "hotcat_add" ) ; |
|||
hotcat_clear_span ( span_add ) ; |
|||
hotcat_last_v = "" ; |
|||
hotcat_create_new_span ( span_add , "" ) ; |
|||
} |
|||
function hotcat_create_new_span ( thespan , init_text ) { |
|||
var form = document.createElement ( "form" ) ; |
|||
form.method = "post" ; |
|||
form.onsubmit = function () { hotcat_ok(); return false; } ; |
|||
form.id = "hotcat_form" ; |
|||
form.style.display = "inline" ; |
|||
var list = document.createElement ( "select" ) ; |
|||
list.id = "hotcat_list" ; |
|||
list.onclick = function () { document.getElementById("hotcat_text").value = document.getElementById("hotcat_list").value ; hotcat_text_changed() ; } ; |
|||
list.ondblclick = function () { document.getElementById("hotcat_text").value = document.getElementById("hotcat_list").value ; hotcat_text_changed() ; hotcat_ok(); } ; |
|||
list.style.display = "none" ; |
|||
var text = document.createElement ( "input" ) ; |
|||
text.size = 40 ; |
|||
text.id = "hotcat_text" ; |
|||
text.type = "text" ; |
|||
text.value = init_text ; |
|||
text.onkeyup = function () { window.setTimeout("hotcat_text_changed();", hotcat_suggestion_delay ); } ; |
|||
var exists = document.createElement ( "img" ) ; |
|||
exists.id = "hotcat_exists" ; |
|||
exists.src = hotcat_exists_no ; |
|||
var OK = document.createElement ( "input" ) ; |
|||
OK.type = "button" ; |
|||
OK.value = "OK" ; |
|||
OK.onclick = hotcat_ok ; |
|||
var cancel = document.createElement ( "input" ) ; |
|||
cancel.type = "button" ; |
|||
cancel.value = "Annuler" ; |
|||
cancel.onclick = hotcat_cancel ; |
|||
form.appendChild ( list ) ; |
|||
form.appendChild ( text ) ; |
|||
form.appendChild ( exists ) ; |
|||
form.appendChild ( OK ) ; |
|||
form.appendChild ( cancel ) ; |
|||
thespan.appendChild ( form ) ; |
|||
text.focus () ; |
|||
} |
|||
function hotcat_ok () { |
|||
var text = document.getElementById ( "hotcat_text" ) ; |
|||
var v = text.value ; |
|||
// Empty category ? |
|||
if ( v == "" ) { |
|||
hotcat_cancel() ; |
|||
return ; |
|||
} |
|||
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href; |
|||
var url = editlk + '&hotcat_newcat=' + encodeURIComponent( v ) ; |
|||
// Editing existing? |
|||
var span = text.parentNode.parentNode ; // span.form.text |
|||
if ( span.id != "hotcat_add" ) { // Not plain "addition" |
|||
var cat_title = span.firstChild.innerHTML ; |
|||
// Removing leading Category: |
|||
cat_title = cat_title.substr(cat_title.indexOf(":") + 1); |
|||
url += '&hotcat_removecat=' + encodeURIComponent( cat_title ) ; |
|||
} |
|||
document.location = url ; |
|||
} |
|||
function hotcat_cancel () { |
|||
var span = document.getElementById("hotcat_form").parentNode ; |
|||
if ( span.id == "hotcat_add" ) { |
|||
hotcat_create_span ( span ) ; |
|||
} else { |
|||
while ( span.firstChild.nextSibling ) span.removeChild ( span.firstChild.nextSibling ) ; |
|||
span.firstChild.style.display = "" ; |
|||
hotcat_modify_span ( span ) ; |
|||
} |
|||
} |
|||
function hotcat_text_changed () { |
|||
if ( hotcat_running ) return ; |
|||
var text = document.getElementById ( "hotcat_text" ) ; |
|||
var v = text.value.ucFirst() ; |
|||
if ( hotcat_last_v == v ) return ; // Nothing's changed... |
|||
hotcat_running = 1 ; |
|||
hotcat_last_v = v ; |
|||
if ( v != "" ) { |
|||
var url = wgServer + "/" + wgScriptPath + "/api.php?format=xml&action=query&list=allpages&apnamespace=14&apfrom=" + encodeURIComponent( v ) + "&aplimit=" + encodeURIComponent( hotcat_list_items ); |
|||
if ( typeof ( hotcat_xmlhttp ) != "undefined" ) hotcat_xmlhttp.abort() ; // Just to make sure... |
|||
hotcat_xmlhttp = new sajax_init_object() ; |
|||
hotcat_xmlhttp.open('GET', url, true); |
|||
hotcat_xmlhttp.onreadystatechange = function () { |
|||
if ( typeof hotcat_xmlhttp == "undefined" ) return ; |
|||
if (hotcat_xmlhttp.readyState == 4) { |
|||
var xml = hotcat_xmlhttp.responseXML ; |
|||
if ( xml == null ) return ; |
|||
var pages = xml.getElementsByTagName( "p" ) ; |
|||
var titles = new Array () ; |
|||
for ( var i = 0 ; i < pages.length ; i++ ) { |
|||
var s = pages[i].getAttribute("title"); |
|||
// Removing leading "Category:" |
|||
s = s.substr(s.indexOf(":") + 1); |
|||
if ( s.substr ( 0 , hotcat_last_v.length ) != hotcat_last_v ) break ; |
|||
titles.push ( s ) ; |
|||
} |
|||
hotcat_show_suggestions ( titles ) ; |
|||
} |
|||
}; |
|||
hotcat_xmlhttp.send(null); |
|||
} else { |
|||
var titles = new Array () ; |
|||
hotcat_show_suggestions ( titles ) ; |
|||
} |
|||
hotcat_running = 0 ; |
|||
} |
|||
function hotcat_show_suggestions ( titles ) { |
|||
var text = document.getElementById ( "hotcat_text" ) ; |
|||
var list = document.getElementById ( "hotcat_list" ) ; |
|||
var icon = document.getElementById ( "hotcat_exists" ) ; |
|||
if ( titles.length == 0 ) { |
|||
list.style.display = "none" ; |
|||
icon.src = hotcat_exists_no ; |
|||
return ; |
|||
} |
|||
var listh = hotcat_list_size * 20 ; |
|||
if (titles.length < hotcat_list_size) { |
|||
listh = titles.length * 20 ; |
|||
} |
|||
var nl = parseInt ( text.parentNode.offsetLeft ) - 1 ; |
|||
var nt = parseInt(text.offsetTop) - listh ; |
|||
// Parameter to show suggestion list beneath categories instead of above |
|||
if (typeof hotcat_list_down != "undefined" && hotcat_list_down) { |
|||
nt = text.offsetTop + text.offsetHeight; |
|||
} |
|||
list.size = 5 ; |
|||
list.style.align = "left" ; |
|||
list.style.zIndex = 5 ; |
|||
list.style.position = "absolute" ; |
|||
list.style.top = nt + "px" ; |
|||
list.style.width = text.offsetWidth + "px" ; |
|||
list.style.height = listh + "px" ; |
|||
list.style.left = nl + "px" ; |
|||
while ( list.firstChild ) list.removeChild ( list.firstChild ) ; |
|||
for ( var i = 0 ; i < titles.length ; i++ ) { |
|||
var opt = document.createElement ( "option" ) ; |
|||
var ot = document.createTextNode ( titles[i] ) ; |
|||
opt.appendChild ( ot ) ; |
|||
opt.setAttribute( "value", titles[i] ); |
|||
list.appendChild ( opt ) ; |
|||
} |
|||
list.style.display = "block" ; |
|||
icon.src = hotcat_exists_yes ; |
|||
var first_title = titles.shift () ; |
|||
if ( first_title == hotcat_last_v ) return ; |
|||
var suggestion = first_title; |
|||
text.value = suggestion ; |
|||
if (text.createTextRange) { |
|||
// IE |
|||
var ra = text.createTextRange(); |
|||
ra.moveStart("character", hotcat_last_v.length); |
|||
ra.moveEnd("character", suggestion.length); |
|||
ra.select(); |
|||
} else if( is_khtml ) { |
|||
text.setSelectionRange( hotcat_last_v.length, suggestion.length ); |
|||
} else { |
|||
text.selectionStart = hotcat_last_v.length ; |
|||
text.selectionEnd = suggestion.length ; |
|||
} |
|||
} |
|||
//</nowiki> |
|||
/* Code source de Vivi-1 */ |
|||
/** |
|||
* |
|||
* Affiche un nouveau Menu à gauche avec quelques liens pratiques |
|||
* Toutes modifications devraient se faire sur la page du menu |
|||
* |
|||
**/ |
|||
function getHTTPObject() { |
|||
var xmlhttp = false; |
|||
/* on essaie de créer l'objet si ce n'est pas déjà fait */ |
|||
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { |
|||
try { |
|||
xmlhttp = new XMLHttpRequest(); |
|||
} catch (e) { |
|||
xmlhttp = false; |
|||
} |
|||
} |
|||
return xmlhttp; |
|||
} |
|||
function AddMenu() { |
|||
var contenu = 'Erreur d\'affichage'; |
|||
var HTTPMenu = new getHTTPObject(); |
|||
if (HTTPMenu) {// requête au serveur |
|||
//le ligne suivante entraine un bug, la recherche ne fait plus de propositions automatiques |
|||
HTTPMenu.open('GET', '//fr.vikidia.org/wiki/MediaWiki:Gadget-MenuAdmin/Menu?action=render', false); |
|||
HTTPMenu.onreadystatechange = function () { |
|||
if (HTTPMenu.readyState == 4) { |
|||
var reponse = HTTPMenu.responseText; |
|||
var deb = '<div id="OuvreMenu"></div>'; |
|||
var ideb = reponse.indexOf(deb)+deb.length; |
|||
var fin = '<div id="FermeMenu"></div>'; |
|||
var ifin = reponse.indexOf(fin); |
|||
contenu = reponse.substring(ideb,ifin); |
|||
if (skin == "monobook"){ |
|||
var l = document.getElementById("column-one"); |
|||
if (l) { |
|||
l.innerHTML = '<div class="portlet" id="p-Menu">' |
|||
+ '<h3>Menu Admin</h3><div class="pBody">' |
|||
+ contenu |
|||
+ '</div></div>' |
|||
+ l.innerHTML; |
|||
} |
|||
var menu_class = ""; |
|||
} else if (skin == "vector"){ |
|||
var l= document.getElementById("mw-panel"); |
|||
if (l) { |
|||
l.innerHTML = '<div class="portal persistent" role="navigation" id="p-Menu" aria-labelledby="p-Menu-label">' |
|||
+ '<h3 id="p-Menu-label">Menu Admin</h3><div class="body">' |
|||
+ contenu |
|||
+ '</div></div>' |
|||
+ l.innerHTML; |
|||
} |
|||
} |
} |
||
} |
|||
}// fin gestion onreadystatechange |
|||
HTTPMenu.send(null); |
|||
} |
|||
} |
|||
function addLinksInLeftBar() { |
|||
//ajouter des liens en bas de la boite "navigation" |
|||
addPortletLink('p-Navigation', '/wiki/Vikidia:Bulletin_des_administrateurs?action=purge', 'Bulletin des admins', 'n-buladm'); |
|||
addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux administrateurs?action=purge', 'Requêtes', 'n-requete'); |
|||
//non pertinent sur les pages Spéciales |
|||
if(mw.config.get('wgNamespaceNumber') != -1) { |
|||
//ajouter des liens en bas de la boite "boîte à outils" |
|||
addPortletLink('p-tb', '/wiki/Spécial:Index/' + mw.config.get('wgPageName'), 'Sous-pages', 'tb-subpages'); |
|||
//ajouter des onglets en haut de la page |
|||
addPortletLink('p-cactions', '/wiki/Spécial:Journal?page=' + mw.config.get('wgPageName'), 'Journal', 'p-log'); |
|||
addPortletLink('p-cactions', '/wiki/' + mw.config.get('wgPageName') +'?action=purge', 'Purge', 'p-purge'); |
|||
} |
|||
} |
|||
addOnloadHook(addLinksInLeftBar) |
|||
// common.js de Rififi |
|||
//Création de la todolist |
|||
var elAP = document.createElement("div"); |
|||
elAP.setAttribute("class", "portal"); |
|||
elAP.setAttribute("id", "todolist"); |
|||
elAP.innerHTML = '<h3>Todo</h3><div class="body"><ul id="todolist"></ul></div>'; |
|||
document.getElementById("mw-panel").appendChild(elAP); |
|||
//indication de la todo list |
|||
var elAssomPage = document.createElement("li"); |
|||
elAssomPage.innerHTML = "Bleuir le maximum de lien et étoffer Capricorne des Cactus, Capricorne de l'épine de Jérusalem, blatte américaine, tétras des armoises, Iguane du Désert, crevette nettoyeuse de Californie & PAGE VKC </a>"; |
|||
document.getElementById("todolist").appendChild(elAssomPage); |
|||
/* common.js de Eliastik - possibilité de reprendre le code (http://www.pokepedia.fr/Utilisateur:Eliastik) |
|||
Changelog : |
|||
- Depuis Eliastik : |
|||
-- Inclusion d'un thème sombre |
|||
-- Inclusion d'une fonctionnalité d'actualisation toutes les 20 s |
|||
- Depuis N_tonio36 : |
|||
-- v1.2.0 : inclut un averto pour vérifier les modifications non patrouillées |
|||
-- Réadaptation du thème : amélioration de la visibilité |
|||
-- v1.3.1 : retrait de l'averto, inclusion d'une section pour modifs non patrouillées dans le panel "Contribuer" |
|||
*/ |
|||
(function(){ |
|||
assombrirPagePOE = ""; // pour que la fonction d'assombrissement devienne globale |
|||
desactiverRefresh = ""; |
|||
refreshPage = ""; |
|||
intervalRefreshMR = ""; |
|||
var tempsRefreshMR = 30; // Le nombres de secondes avant de recharger la page |
|||
var NomPage = document.location.href.substring(document.location.href.lastIndexOf( "/" )+1 ); |
|||
// Crée une liste d'outils personnels |
|||
var elAP = document.createElement("div"); |
|||
elAP.setAttribute("class", "portal"); |
|||
elAP.setAttribute("id", "panel-outils-personnels"); |
|||
elAP.innerHTML = '<h3>Outils personnels</h3><div class="body"><ul id="outilsPersoList"></ul></div>'; |
|||
document.getElementById("mw-panel").appendChild(elAP); |
|||
// assombrir la page - retient le choix |
|||
var elAssomPage = document.createElement("li"); |
|||
elAssomPage.setAttribute("id", "panel-OP-assombrirPage"); |
|||
elAssomPage.innerHTML = '<a href="#" id="assombrirPageOP" onclick="assombrirPagePOE(\'assombrir\')">Assombrir la page</a>'; |
|||
document.getElementById("outilsPersoList").appendChild(elAssomPage); |
|||
// fonction de cookies pour faire fonctionner l'option "Assombrir la page" |
|||
function createCookie(name,value,days) { |
|||
if (days) { |
|||
var date = new Date(); |
|||
date.setTime(date.getTime()+(days*24*60*60*1000)); |
|||
var expires = "; expires="+date.toGMTString(); |
|||
} |
|||
else var expires = ""; |
|||
document.cookie = name+"="+value+expires+"; path=/"; |
|||
} |
|||
function readCookie(name) { |
|||
var nameEQ = name + "="; |
|||
var ca = document.cookie.split(';'); |
|||
for(var i=0;i < ca.length;i++) { |
|||
var c = ca[i]; |
|||
while (c.charAt(0)==' ') c = c.substring(1,c.length); |
|||
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); |
|||
} |
|||
return null; |
|||
} |
|||
function eraseCookie(name) { |
|||
createCookie(name,"",-1); |
|||
} |
|||
// Rafraîchissement des Modifications récentes |
|||
elIndicRefresh = document.createElement("span"); |
|||
elIndicRefresh.style.fontWeight = 'bold'; |
|||
elIndicRefresh.setAttribute("id", "labelModRecR"); |
|||
document.getElementById("contentSub").appendChild(elIndicRefresh); |
|||
refreshPage = function() { |
|||
if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1) { |
|||
elIndicRefresh.innerHTML = 'Les modifications sont rechargées.<a href="#" onclick="desactiverRefresh()">Désactiver</a>.'; |
|||
intervalRefreshMR = setInterval(function(){ location.reload() }, tempsRefreshMR * 1000); |
|||
createCookie("stopRefreshMR", "Non", 3600); |
|||
} |
|||
} |
|||
desactiverRefresh = function() { |
|||
if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1) { |
|||
createCookie("stopRefreshMR", "Oui", 3600); |
|||
elIndicRefresh.innerHTML = 'Les modifications ne sont pas rechargées.<a href="#" onclick="refreshPage()">Réactiver</a>.'; |
|||
clearInterval(intervalRefreshMR); |
|||
} |
|||
} |
|||
if(readCookie("stopRefreshMR") != "Oui") { |
|||
refreshPage(); |
|||
} |
|||
else { |
|||
desactiverRefresh(); |
|||
} |
|||
// la fonction d'assombrissement de la page |
|||
assombrirPagePOE = function(type) { |
|||
if(type == "assombrir") { |
|||
createCookie("assombrirPagePO", "Oui", 3600); // crée le cookie |
|||
elAssomPage.innerHTML = '<a href="#" id="assombrirPageOP" onclick="assombrirPagePOE(\'eclaircir\')">Éclaircir la page</a>'; // change le lien du gadget |
|||
// on boucle tous les éléments pour leur donner un style sombre avec la fonction restyleElement (voir plus bas) |
|||
restyleElement("div", "#313139", "#a9aefe"); |
|||
restyleElement("a", null, "lightblue"); |
|||
restyleElement("input", "#313139", "#a9aefe"); |
|||
restyleElement("textarea", "#313139", "#a9aefe"); |
|||
restyleElement("select", "grey", "#a9aefe"); |
|||
restyleElement("pre", "#313139", "#a9aefe"); |
|||
restyleElement("table", "#313139", "#a9aefe"); |
|||
restyleElement("td", "null", "#a9aefe"); |
|||
restyleElement("tr", "null", "#a9aefe"); |
|||
restyleElement("th", "#313139", "#a9aefe"); |
|||
restyleElement("dl", "#313139", "white"); |
|||
restyleElement("dd", "#313139", "white"); |
|||
restyleElement("h1", null, "#a9aefe"); |
|||
restyleElement("h2", null, "#a9aefe"); |
|||
restyleElement("h3", null, "#a9aefe"); |
|||
restyleElement("h4", null, "#a9aefe"); |
|||
restyleElement("h5", null, "#a9aefe"); |
|||
restyleElement("h6", null, "#a9aefe"); |
|||
restyleElement("li", "#313139", "#a9aefe"); |
|||
restyleElement("ul", "#313139", "#a9aefe"); |
|||
restyleElement("li", "#313139", "white"); |
|||
restyleElement("code", "#313139", "#a9aefe"); |
|||
// style pour la page et le contenu |
|||
document.body.style.cssText = "background-color: #313139; color: #a9aefe;"; |
|||
document.getElementById("content").style.cssText = "background-color: #313139; color: #a9aefe;"; |
|||
jQuery( function() { $( 'div.vectorTabs span, #p-cactions, div.menu a' ).css( 'background', '#313139' ); } ); |
|||
jQuery( function() { $( 'div.vectorTabs li.selected span, div.menu li.selected a' ).css( 'background', 'grey' ); } ) |
|||
var aNewPageNb = document.getElementsByClassName("new"); |
|||
if(aNewPageNb !== null) { |
|||
for (i=0;i<aNewPageNb.length;i++) |
|||
{ |
|||
aNewPageNb[i].style.color = 'lightcoral'; |
|||
} |
|||
} |
|||
} |
|||
else if(type == "cookieVerif" && readCookie("assombrirPagePO") == "Oui") { |
|||
assombrirPagePOE("assombrir"); // on réexecute la fonction |
|||
} |
|||
else if(type == "eclaircir") { |
|||
if(confirm("La modification s’exécutera au prochain rechargement de la page. Continuer ?")) { |
|||
createCookie("assombrirPagePO", "Non", 3600); // on supprime le cookie |
|||
} |
|||
} |
|||
} |
|||
function restyleElement(type, backgroundColorElem, colorElem) { |
|||
var nbElements = document.getElementsByTagName(type); |
|||
if(nbElements !== null) { |
|||
for (i=0;i<nbElements.length;i++) |
|||
{ |
|||
if(backgroundColorElem !== null) { |
|||
nbElements[i].style.backgroundColor = backgroundColorElem; |
|||
} |
|||
if(colorElem !== null) { |
|||
nbElements[i].style.color = colorElem; |
|||
} |
|||
} |
|||
return true; |
|||
} |
|||
else { |
|||
return false; |
|||
} |
|||
} |
|||
var Common_Link = document.createElement("a"); |
|||
Common_Link.href = "https://fr.vikidia.org/wiki/Utilisateur:Kiminou/common.js"; |
|||
Common_Link.accesskey = "s"; |
|||
Common_Link.title = "Votre script"; |
|||
Common_Link.innerHTML = "Common.js"; |
|||
var LI = document.createElement("LI"); |
|||
LI.class = "active"; |
|||
LI.id = "pt-userscript"; |
|||
LI.appendChild(Common_Link); |
|||
$("div#p-personal ul").append(LI); |
|||
$("span[dir='auto']").prop("id","PageName"); |
|||
var Common_Link = document.createElement("a"); |
|||
Common_Link.href = "https://fr.vikidia.org/wiki/Vikidia:Articles à créer"; |
|||
Common_Link.accesskey = "s"; |
|||
Common_Link.title = "Articles à créer"; |
|||
Common_Link.innerHTML = "Articles à créer"; |
|||
var LI = document.createElement("LI"); |
|||
LI.class = "active"; |
|||
LI.id = "pt-userscript"; |
|||
LI.appendChild(Common_Link); |
|||
$("div#p-personal ul").append(LI); |
|||
$("span[dir='auto']").prop("id","PageName"); |
|||
var Common_Link = document.createElement("a"); |
|||
Common_Link.href = "https://fr.vikidia.org/wiki/Utilisateur:Kiminou/Bac à Sable"; |
|||
Common_Link.accesskey = "s"; |
|||
Common_Link.title = "Mon labo"; |
|||
Common_Link.innerHTML = "Mon labo"; |
|||
var LI = document.createElement("LI"); |
|||
LI.class = "active"; |
|||
LI.id = "pt-userscript"; |
|||
LI.appendChild(Common_Link); |
|||
$("div#p-personal ul").append(LI); |
|||
$("span[dir='auto']").prop("id","PageName"); |
|||
var Common_Link = document.createElement("a"); |
|||
Common_Link.href = "http://kiwiirc.com/client/irc.freenode.net/#vikidia,#vikidia-fr"; |
|||
Common_Link.accesskey = "s"; |
|||
Common_Link.title = "Connection à IRC"; |
|||
Common_Link.innerHTML = "Se connecter à IRC"; |
|||
var LI = document.createElement("LI"); |
|||
LI.class = "active"; |
|||
LI.id = "pt-userscript"; |
|||
LI.appendChild(Common_Link); |
|||
$("div#p-personal ul").append(LI); |
|||
$("span[dir='auto']").prop("id","PageName"); |
|||
var Unseen = document.createElement("a"); |
|||
Unseen.href = "http://fr.vikidia.org/wiki/Projet:Maintenance"; |
|||
Unseen.innerHTML = "Maintenance générale"; |
|||
var UnseenLI = document.createElement("LI"); |
|||
UnseenLI.appendChild(Unseen); |
|||
$("#p-Contribuer .body ul").append(UnseenLI); |
|||
$("#wpSummary").prop("autocomplete","off"); |
|||
}()); |
|||
assombrirPagePOE("cookieVerif"); // vérification du cookie |
|||
/** |
|||
* Outils pour réverter |
|||
* |
|||
* fournit des liens dans les pages de diff pour révoquer facilement une modification et avertir son auteur |
|||
* |
|||
* Auteurs : Lorian (en), Chphe (fr) |
|||
* Dernière révision : 27 décembre 2013 — séparation des annulations et révocations |
|||
* {{Projet:JavaScript/Script|RevertDiff}} |
|||
*/ |
|||
//<nowiki> |
|||
var RevertDiffParams = new Object(); |
|||
RevertDiffParams.Text = new Object(); |
|||
RevertDiffParams.Text.Annul = "Restaurer"; |
|||
RevertDiffParams.Text.AnnulResume = 'Restauration'; |
|||
RevertDiffParams.Text.Message = "Message"; |
|||
RevertDiffParams.Text.MessageAlert = 'Raison:'; |
|||
RevertDiffParams.Text.Revert = "Révoquer"; |
|||
RevertDiffParams.Text.RevertResume = 'Révocation des modifications de [[Special:Contributions/$2|$2]], retour à la version de [[Special:Contributions/$1|$1]]'; |
|||
RevertDiffParams.Text.Warn = "Avertir"; |
|||
RevertDiffParams.Warn = [ |
|||
{urlparam:"warn=01", text:"Averto-0", template:'{{subst:Averto-0}}~~~~'}, |
|||
{urlparam:"warn=02", text:"Averto-1", template:'{{subst:Averto-1}}~~~~'}, |
|||
{urlparam:"warn=06", text:"Spam0", template:'{{subst:Averto-spam-0}}~~~~'}, |
|||
{urlparam:"warn=07", text:"Spam1", template:'{{subst:Averto-spam-1}}~~~~'}, |
|||
{urlparam:"warn=08", text:"Bienvenue", template:'{{Bienvenue}}~~~~'}, |
|||
{urlparam:"warn=09", text:"BienvenueIP", template:'{{Bienvenue IP}}~~~~'}, |
|||
{urlparam:"warn=10", text:"MerciIP", template:'{{MerciIP}}~~~~'}, |
|||
{urlparam:"warn=10", text:"Bac à sable", template:'{{SUBST:Utilisateur:Rififi2}}~~~~'} |
|||
]; |
|||
function getURLParameters(x) { |
|||
var questionMark = x.indexOf('?'); |
|||
if (questionMark == -1) return {} |
|||
var fieldsArray = x.substr(questionMark + 1).split('&'); |
|||
var fields = {} |
|||
for (var i = 0; i < fieldsArray.length; i++) { |
|||
var field = fieldsArray[i]; |
|||
var equal = field.indexOf('='); |
|||
if (equal == -1) { |
|||
fields[decodeURIComponent(field)] = ''; |
|||
} else { |
|||
fields[decodeURIComponent(field.substr(0, equal))] = |
|||
decodeURIComponent(field.substr(equal + 1)); |
|||
} |
|||
} |
|||
return fields; |
|||
} |
|||
_GET = getURLParameters(location.href); |
|||
function getMessage (chemin, where, user1, user2) { |
|||
var message = prompt (RevertDiffParams.Text.MessageAlert, ''); |
|||
if (message) { |
|||
window.location = chemin + '&'+where+'=2&user1='+user1+'&user2='+user2+'&message='+message; |
|||
} |
|||
} |
|||
$(document).ready(function (){ |
|||
if (location.href.match(/diff=/)) { |
|||
// Get username of submitter |
|||
var user1TD = $('td.diff-otitle')[0]; |
|||
var user2TD = $('td.diff-ntitle')[0]; |
|||
if(!user1TD || !user2TD) return; |
|||
// Récupération du chemin vers la version à rétablir |
|||
var chemin = encodeURI(user1TD.getElementsByTagName('a')[1].href); |
|||
var user1 = $(user1TD).find('a.mw-userlink')[0].innerHTML; |
|||
var user2 = $(user2TD).find('a.mw-userlink')[0].innerHTML; |
|||
var Annul = '(' |
|||
+ '<a href="'+chemin+'&annul=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Annul+'</a>' |
|||
+ ' / ' |
|||
+ '<a href="javascript:getMessage(\''+chemin+'\',\'annul\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>' |
|||
+ ')'; |
|||
var Revert = '(' |
|||
+ '<a href="'+chemin+'&revert=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Revert+'</a>' |
|||
+ ' / ' |
|||
+ '<a href="javascript:getMessage(\''+chemin+'\',\'revert\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>' |
|||
+ ')'; |
|||
var Warn = '('+RevertDiffParams.Text.Warn+' : '; |
|||
var SiteURL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title='; |
|||
for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){ |
|||
if(a!=0) Warn += ' / '; |
|||
Warn += '<a href="'+SiteURL+'User_talk:'+user2+'&action=edit§ion=new' |
|||
+ '&'+RevertDiffParams.Warn[a].urlparam+'" ' |
|||
+ 'title="'+RevertDiffParams.Warn[a].template+'" ' |
|||
+ '>'+RevertDiffParams.Warn[a].text+'</a>'; |
|||
} |
|||
Warn += ')'; |
|||
document.getElementById('contentSub').innerHTML = Annul + " " + Revert + " " + Warn; |
|||
}else if (location.href.match(/annul=1/)) { |
|||
document.getElementById('wpSummary').value = RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']); |
|||
document.getElementById('editform').submit(); |
|||
}else if (location.href.match(/annul=2/)) { |
|||
document.getElementById('wpSummary').value = |
|||
RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message']; |
|||
document.getElementById('editform').submit(); |
|||
}else if (location.href.match(/revert=1/)) { |
|||
document.getElementById('wpSummary').value = RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']); |
|||
document.getElementById('editform').submit(); |
|||
}else if (location.href.match(/revert=2/)) { |
|||
document.getElementById('wpSummary').value = |
|||
RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message']; |
|||
document.getElementById('editform').submit(); |
|||
}else{ |
|||
for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){ |
|||
var Warn = RevertDiffParams.Warn[a]; |
|||
if (location.href.match(new RegExp(Warn.urlparam))) { |
|||
var Template = Warn.template; |
|||
Template = Template.split('$page').join(''); // mw.config.get('wgPageName').replace(/_/g, " ")); |
|||
Template = Template.split('$user').join(mw.config.get('wgUserName')); |
|||
document.getElementById('wpTextbox1').value = Template; |
|||
document.getElementById('editform').submit(); |
|||
} |
|||
} |
|||
} |
|||
}); |
|||
//</nowiki> |
|||
/* |
|||
fetchPageCreator(); |
|||
* Résumé Deluxe |
|||
* |
|||
* Ajoute des commentaires de modification prédéfinis |
|||
* |
|||
* Auteur : Dake |
|||
* Contributions : Pabix, Tieno, Ltrlg |
|||
* Date de dernière révision : 3 janvier 2014 |
|||
* |
|||
* Dépendances : |
|||
* — les habituelles implicites 'mediawiki' & 'jquery' ; |
|||
* — 'user' (chargement du common.js). |
|||
* |
|||
* {{Projet:JavaScript/Script|ResumeDeluxe}} |
|||
*/ |
|||
var |
|||
/* |
|||
* Vérifier la présence d’un titre de section _ou_ de la chaîne |
|||
* 'Introduction : ' ; cette dernière est ajoutée par |
|||
* [[MediaWiki:Gadget-EditZeroth.js]] (avec quelques variations possibles |
|||
* pour ceux qui le retaperaient à la main). |
|||
* Cela permet de n’ajouter un séparateur ' ; ' entre deux résumés que si |
|||
* nécessaire. |
|||
* Note : on ne vérifie que le fait que le motif est en fin de chaîne, pas |
|||
* en début. |
|||
*/ |
|||
sansPointVirgule = /(\*\/\s*|Introduction\s?:\s?)$/, |
|||
/* |
|||
* La liste des liens qui seront affichés. |
|||
* Les éléments du tableau sont d’une des deux formes suivantes : |
|||
* — [ 'lien' , 'resume' ] |
|||
* — 'texte' |
|||
* où 'lien' représente l’intitulé du lien, 'resume' le résumé d’édition |
|||
* inséré par le lien et 'texte' les deux à la fois. |
|||
*/ |
|||
listeLiens = [], |
|||
/* |
|||
* Liens affichés par défaut, même format que listeLiens. |
|||
*/ |
|||
liensParDefaut = [ |
|||
'orthographe', |
|||
'typographie', |
|||
'catégorisation', |
|||
'wikification', |
|||
'image', |
|||
'mise en forme', |
|||
'avancement', |
|||
'mise en page', |
|||
'redirection', |
|||
'relecture', |
|||
'style', |
|||
'revert', |
|||
'réorganisation', |
|||
'réponse', |
|||
'nouveau message', |
|||
'maintenance', |
|||
['homonymie', 'création homonymie'], |
|||
['bandeau', 'ajout de bandeau'], |
|||
'infobox', |
|||
'références', |
|||
'retouche de la modification précédente' |
|||
], |
|||
/* |
|||
* Objet permettant de désactiver des liens (parmi la liste par défaut |
|||
* ci-avant), sous la forme { 'lien1': false, 'lien2': false, … } où |
|||
* 'lien1', 'lien2'… est l’intitulé du lien à ne pas afficher. |
|||
*/ |
|||
liensAffiches = window.ResumeDeluxe_affiches || {}, |
|||
/* |
|||
* Objet jQuery contenant l’<input> ou le <textarea> constituant le résumé |
|||
*/ |
|||
$resume, |
|||
/* |
|||
* Objet jQuery contenant la liste de liens |
|||
*/ |
|||
$liste; |
|||
/* |
|||
* Fonction renvoyant l’intitulé d’un lien à partir de sa représentation sous |
|||
* forme de tableau ou de chaîne. |
|||
*/ |
|||
function texteDuLien( definition ) { |
|||
if ( $.isArray( definition ) ) { |
|||
return definition[0]; |
|||
} else { |
|||
// Soyons sûr d’avoir une chaîne de caractères |
|||
return definition.toString(); |
|||
} |
|||
} |
|||
/* |
|||
* Fonction renvoyant le texte ajouté par un lien à partir de sa représentation |
|||
* sous forme de tableau ou de chaîne. |
|||
*/ |
|||
function resumeAInserer( definition ) { |
|||
if ( $.isArray( definition ) ) { |
|||
return definition[1]; |
|||
} else { |
|||
// Soyons sûr d’avoir une chaîne de caractères. |
|||
return definition.toString(); |
|||
} |
|||
} |
|||
/* |
|||
* Procédure transformant l’ancien format de configuration pour la |
|||
* compatibilité. |
|||
*/ |
|||
function transformerAncienneConfiguration() { |
|||
var i; |
|||
if ( |
|||
// Appliqué seulement si le nouveau format n’existe pas |
|||
! $.isArray( window.ResumeDeluxe_liens ) && |
|||
// Les deux tableaux doivent exister |
|||
$.isArray( window.resumedeluxeTitles ) && |
|||
$.isArray( window.resumedeluxeInputs ) && |
|||
// Les deux tableaux doivent avoir la même longueur |
|||
window.resumedeluxeTitles.length == window.resumedeluxeInputs.length |
|||
) { |
|||
window.ResumeDeluxe_liens = []; |
|||
for ( i = 0; i < window.resumedeluxeTitles.length; i++ ) { |
|||
window.ResumeDeluxe_liens.push( [ |
|||
window.resumedeluxeTitles[i].replace( /^.\s+/, '' ), |
|||
window.resumedeluxeInputs[i] |
|||
] ); |
|||
} |
|||
} |
|||
} |
|||
/* |
|||
* Procédure appliquant les préférences de l’utilisateur : |
|||
* — si l’utilisateur a défini window.ResumeDeluxe_liens, celui-ci est utilisé |
|||
* à la place de la liste par défaut liensParDefaut ; |
|||
* — sinon si l’utilisateur a défini window.ResumeDeluxe_affiches, les règles |
|||
* de désactivation sont appliquées ; |
|||
* — sinon liensAffiches est un objet vide, donc la liste par défaut est |
|||
* utilisée. |
|||
*/ |
|||
function appliquerConfiguration() { |
|||
var i, cle; |
|||
if ( $.isArray( window.ResumeDeluxe_liens ) ) { |
|||
listeLiens = window.ResumeDeluxe_liens; |
|||
} else { |
|||
for ( i = 0; i < liensParDefaut.length; i++ ) { |
|||
cle = texteDuLien( liensParDefaut[i] ); |
|||
if ( liensAffiches[cle] !== false ) { |
|||
listeLiens.push( liensParDefaut[i] ); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
/* |
|||
* Procedure effectuant l’ajout d’une chaîne au résumé d’édition, avec un |
|||
* séparateur si besoin |
|||
*/ |
|||
function ajouterAuResume( chaine ) { |
|||
var resumeActuel = $resume.val(); |
|||
if ( resumeActuel === '' ) { |
|||
$resume.val( chaine ); |
|||
} else if ( sansPointVirgule.test( resumeActuel ) ) { |
|||
$resume.val( resumeActuel + chaine ); |
|||
} else { |
|||
$resume.val( resumeActuel + ' ; ' + chaine ); |
|||
} |
|||
// L’ÉditeurVisuel ne se base plus sur le contenu mais sur l’évènement |
|||
$resume.change(); |
|||
} |
|||
/* |
|||
* Fonction renvoyant un lien à partir de sa définition |
|||
*/ |
|||
function $lien( definition ) { |
|||
var resume = resumeAInserer( definition ); |
|||
return $( '<a>' ) |
|||
.text( texteDuLien( definition ) ) |
|||
.attr( { |
|||
href: '#', |
|||
title: 'Ajouter «\xA0' + resume + '\xA0» au résumé de modification' |
|||
} ) |
|||
.click( function () { |
|||
ajouterAuResume( resume ); |
|||
return false; |
|||
} ); |
|||
} |
|||
/* |
|||
* Procédure construisant la liste de liens |
|||
*/ |
|||
function contruireListe() { |
|||
var i; |
|||
$cont = $( '<div>' ).attr( 'id', 'ResumeDeluxe' ) |
|||
.text( 'Messages prédéfinis\xA0: ' ) |
|||
.append( $lien( listeLiens[0] ) ); |
|||
for( i = 1; i < listeLiens.length; i++ ) { |
|||
$cont |
|||
.append( document.createTextNode( '\xA0• ' ) ) |
|||
.append( $lien( listeLiens[i] ) ); |
|||
} |
|||
} |
|||
/* |
|||
* Procédure initialisant $resume et insérant la liste de liens dans le cas de |
|||
* l’éditeur de wikicode, quand les nœuds nécessaires sont en place. |
|||
*/ |
|||
function demarrer_wikicode() { |
|||
$( document ).ready( function () { |
|||
$( '#wpSummaryLabel' ).before( $cont ); |
|||
$resume = $( '#wpSummary' ); |
|||
}); |
|||
} |
|||
/* |
|||
* Procédure initialisant $resume et insérant la liste de liens dans le cas de |
|||
* l’ÉditeurVisuel, quand les nœuds nécessaires sont en place. |
|||
*/ |
|||
function demarrer_EditeurVisuel() { |
|||
mw.hook( 've.saveDialog.stateChanged' ).add( function () { |
|||
/* |
|||
* Traitement : si le dialogue a été recréé, on y remet ce qu’il faut. |
|||
* TODO Vérifier si cette vérification est encore nécessaire. |
|||
*/ |
|||
if ( $( '#ResumeDeluxe' ).size() < 1 ) { |
|||
$( '#MediaWiki-summary' ).after( $cont ); |
|||
$resume = $( '.ve-ui-mwSaveDialog-summary textarea' ); |
|||
} |
|||
}); |
|||
} |
|||
/* |
|||
* Procédure qui détermine quel éditeur peut être utilisé et démarre le gadget |
|||
* selon le résultat. |
|||
*/ |
|||
function demarrer() { |
|||
switch( mw.config.get( 'wgAction' ) ) { |
|||
case 'edit': |
|||
case 'submit': |
|||
// Désactivé pour la création de sections |
|||
if ( ! /(\?|&)section=new(&|$)/.test( document.location.search ) ) { |
|||
demarrer_wikicode(); |
|||
} |
|||
break; |
|||
case 'view': |
|||
demarrer_EditeurVisuel(); |
|||
break; |
|||
} |
|||
} |
|||
/* |
|||
* Démarrage du tout |
|||
*/ |
|||
// Compatibilité avec l’ancien format de configuration |
|||
transformerAncienneConfiguration(); |
|||
// Lecture des préférences |
|||
appliquerConfiguration(); |
|||
// Construction de la liste des liens |
|||
contruireListe(); |
|||
// Insère la liste dans l’arbre des nœuds et cherche le nœud contenant le résumé |
|||
demarrer(); |
|||
importScript('Utilisateur:Linedwell/HotCatsMulti.js') |
|||
importScript('Utilisateur:Linedwell/quickeditcounter.js'); //affiche sur la PU des utilisateurs leur nombre d'éditions |
|||
//============================================================ |
|||
// |
|||
// Divers |
|||
// |
|||
//============================================================ |
|||
/** |
|||
* Références vers les expressions mathématiques, avec {{ligne math}} et {{ref math}} |
|||
*/ |
|||
function reinit_ref_math(ligne){ |
|||
// Annule l’effet de mise en évidence de {{ligne_math||n}} |
|||
ligne.style.borderRadius="0"; |
|||
ligne.style.backgroundColor="transparent"; |
|||
ligne.style.opacity="1"; |
|||
ligne.style.boxShadow="none"; |
|||
ligne.setAttribute("onclick",""); |
|||
} |
|||
function retour_ref_math(n){ |
|||
// Met en évidence l’expression mathématique {{ligne math}} correspondant au nombre n |
|||
var ligne = document.getElementById('ligneMath-'+n); |
|||
ligne.style.borderRadius="12px"; |
|||
ligne.style.backgroundColor="white"; |
|||
ligne.style.opacity="0.75"; |
|||
ligne.style.boxShadow="1px 1px 12px #555"; |
|||
// Prévoir la disparition de l’effet de mise en valeur : |
|||
ligne.setAttribute("onclick","reinit_ref_math(this)"); |
|||
} |
|||
function gestion_ref_math(){ |
|||
var spans = document.getElementsByTagName("span"); |
|||
var rgx = /#ligneMath-(\d+)$/; |
|||
for(var i=0;i<spans.length;i++){ |
|||
if(spans[i].className=="lienRefMath"){ |
|||
spans[i].setAttribute("onclick",'retour_ref_math("'+(rgx.exec(spans[i].firstElementChild.href)[1])+'");'); |
|||
} |
} |
||
} |
|||
} |
|||
addLoadEvent(gestion_ref_math); |
|||
//============================================================ |
|||
// Modèles de vote |
|||
//============================================================ |
|||
addCustomButton('http://download.vikidia.org/vikidia/fr/images/9/95/No_trash_icon.png','Conserver',"# {{Conserver}} Motivation + Signature"); |
|||
addCustomButton('http://download.vikidia.org/vikidia/fr/images/8/8f/Nuvola_gnome-fs-trash-full.png','Supprimer',"# {{Supprimer}} Motivation + Signature"); |
|||
addCustomButton('http://download.vikidia.org/vikidia/fr/images/a/ab/Symbole_vote_pour.png','Pour',"# {{Pour}} Motivation + Signature"); |
|||
addCustomButton('http://download.vikidia.org/vikidia/fr/images/f/fa/Symbole_vote_plut%C3%B4t_pour.svg','Plutôt pour',"# {{Plutôt pour}} Motivation + Signature"); |
|||
addCustomButton('http://download.vikidia.org/vikidia/fr/images/3/31/Symbole_vote_plut%C3%B4t_contre.png','Plutôt contre',"# {{Plutôt contre}} Motivation + Signature"); |
|||
addCustomButton('http://download.vikidia.org/vikidia/fr/images/b/be/Symbole_vote_contre.png','Contre',"# {{Contre}} Motivation + Signature"); |
|||
addCustomButton('http://download.vikidia.org/vikidia/fr/images/b/b2/Symbole_vote_neutre.png','Neutre',"# {{Neutre}} Motivation + Signature"); |
|||
//============================================================ |
|||
// |
|||
// Caractères spéciaux |
|||
// |
|||
//============================================================ |
|||
/** |
|||
* Ajoutez le menu pour choisir des sous-ensembles de caractères spéciaux |
|||
* @note L'ordre de cette liste doit correspondre a celui de MediaWiki:Edittools ! |
|||
*/ |
|||
function addCharSubsetMenu() { |
|||
var specialchars = document.getElementById('specialchars'); |
|||
if (specialchars) { |
|||
var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">"; |
|||
menu += "<option>Wiki</option>"; |
|||
menu += "</select>"; |
|||
specialchars.innerHTML = menu + specialchars.innerHTML; |
|||
/* 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'; |
|||
} |
|||
} |
|||
addOnloadHook(addCharSubsetMenu); |
|||
//mw.loader.load('Utilisateur:Linedwell/quickeditcounter.js'); //affiche sur la PU des utilisateurs leur nombre d'éditions |
|||
$(document).ready(function addLinksInLeftBar() { |
|||
//ajouter des liens en bas de la boite "navigation" |
|||
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Bulletin_des_administrateurs', 'Bulletin des admins', 'n-buladm'); |
|||
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux administrateurs', 'Requêtes aux administrateurs', 'n-dadm'); |
|||
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux bureaucrates', 'Requêtes aux bureaucrates', 'n-dbubu'); |
|||
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux développeurs', 'Requêtes aux développeurs', 'n-ddev'); |
|||
//non pertinent sur les pages Spéciales |
|||
if(mw.config.get('wgNamespaceNumber') != -1) { |
|||
//ajouter des liens en bas de la boite "boîte à outils" |
|||
mw.util.addPortletLink('p-tb', '/wiki/Spécial:Index/' + mw.config.get('wgPageName'), 'Sous-pages', 'tb-subpages'); |
|||
//ajouter des onglets en haut de la page |
|||
mw.util.addPortletLink('p-cactions', '/wiki/Spécial:Journal?page=' + mw.config.get('wgPageName'), 'Journal', 'p-log'); |
|||
mw.util.addPortletLink('p-cactions', '/wiki/' + mw.config.get('wgPageName') +'?action=purge', 'Purge', 'p-purge'); |
|||
} |
|||
}); |
}); |
||
mw.loader.load('/index.php?title=User:Username/common.css&action=raw&ctype=text/css', 'text/css'); |
|||
mw.loader.load("//en.wikipedia.org/w/index.php?title=User:Eizen/PageCreator.js&action=raw&ctype=text/javascript"); |
|||
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]] |
|||
importScript('User:Euphoria/नेपालीकरण.js'); // Backlink: [[User:Euphoria/नेपालीकरण.js]] |
importScript('User:Euphoria/नेपालीकरण.js'); // Backlink: [[User:Euphoria/नेपालीकरण.js]] |
||
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]] |
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]] |
||
importScript('User:X/common.js'); // Backlink: [[User:X/common.js]] |
importScript('User:X/common.js'); // Backlink: [[User:X/common.js]] |
||
importScript('User: |
importScript('User:DodoMan/confirmlogout.js'); // Backlink: [[User:DodoMan/confirmlogout.js]] |
||
importScript('User: |
importScript('User:DodoMan/livenotifs.js'); // Backlink: [[User:DodoMan/livenotifs.js]] |
||
importScript('User: |
importScript('User:DodoMan/revertdiff.js'); // Backlink: [[User:DodoMan/revertdiff.js]] |
||
importScript('User:Rafdodo/revertdiff.js'); // Backlink: [[User:Rafdodo/revertdiff.js]] |
|||
importScript('User:Drummingman/common.js'); // Backlink: [[User:Drummingman/common.js]] |
importScript('User:Drummingman/common.js'); // Backlink: [[User:Drummingman/common.js]] |
||
importScript('User: |
importScript('User:DodoMan/blockanddiscuss.js'); // Backlink: [[User:DodoMan/blockanddiscuss.js]] |
||
importScript('User: |
importScript('User:DodoMan/subpages.js'); // Backlink: [[User:DodoMan/subpages.js]] |
||
importScript('User: |
importScript('User:DodoMan/changecategory.js'); // Backlink: [[User:DodoMan/changecategory.js]] |
||
importScript('User:3PPYB6/redwarnConfig.js'); // Backlink: [[User:3PPYB6/redwarnConfig.js]] |
importScript('User:3PPYB6/redwarnConfig.js'); // Backlink: [[User:3PPYB6/redwarnConfig.js]] |
||
importScript('User:JJBullet/common.js'); // Backlink: [[User:JJBullet/common.js]] |
importScript('User:JJBullet/common.js'); // Backlink: [[User:JJBullet/common.js]] |
||
importScript('User:MacFan4000/grantAdmin.js'); // Backlink: [[User:MacFan4000/grantAdmin.js]] |
|||
importScript('User:Saint/common.js'); // Backlink: [[User:Saint/common.js]] |
|||
importScript('User:Ahecht/useridentifier.js'); // Backlink: [[User:Ahecht/useridentifier.js]] |
importScript('User:Ahecht/useridentifier.js'); // Backlink: [[User:Ahecht/useridentifier.js]] |
||
importScript('User:Ahecht/common.js'); // Backlink: [[User:Ahecht/common.js]] |
importScript('User:Ahecht/common.js'); // Backlink: [[User:Ahecht/common.js]] |
||
importScript('User: |
importScript('User:DodoMan/qualitybutton.js'); // Backlink: [[User:DodoMan/qualitybutton.js]] |
||
importScript('User:DodoMan/modifysection.js'); // Backlink: [[User:DodoMan/modifysection.js]] |
|||
importScript('User:DodoMan/grantadmin.js'); // Backlink: [[User:DodoMan/grantadmin.js]] |
|||
importScript('User:DodoMan/snowflake.js'); // Backlink: [[User:DodoMan/snowflake.js]] |
|||
importScript('User:DodoMan/common2.js'); // Backlink: [[User:DodoMan/common2.js]] |
|||
importScript('User:3PPYB6/common.js'); // Backlink: [[User:3PPYB6/common.js]] |
|||
importScript('User:DodoMan/test2.js'); // Backlink: [[User:DodoMan/test2.js]] |
|||
importScript('User:ZhuofanWu/common.js'); // Backlink: [[User:ZhuofanWu/common.js]] |
|||
importScript('User:DodoMan/smartpatrol.js'); // Backlink: [[User:DodoMan/smartpatrol.js]] |
|||
importScript('User:Justarandomamerican/common.js'); // Backlink: [[User:Justarandomamerican/common.js]] |
|||
importScript('User:DodoMan/revertdiff.js'); // Backlink: [[User:DodoMan/revertdiff.js]] |
|||
importScript('User:MacFan4000/grantAdmin.js'); // Backlink: [[User:MacFan4000/grantAdmin.js]] |
|||
importScript('User:Kiteretsu/js/all-in-one.js'); // Backlink: [[User:Kiteretsu/js/all-in-one.js]] |
|||
importScript('User:DodoMan/justatest.js'); // Backlink: [[User:DodoMan/justatest.js]] |
|||
importScript('User:DR/UserInfoEN.js'); // Backlink: [[User:DR/UserInfoEN.js]] |
|||
importScript('User:Kiteretsu/collabs/dodoman/twinkle.js'); // Backlink: [[User:Kiteretsu/collabs/dodoman/twinkle.js]] |
|||
importScript('User:DodoBot/grantbureaucrat.js'); // Backlink: [[User:DodoBot/grantbureaucrat.js]] |
|||
importScript('User:TheAstorPastor/common.js'); // Backlink: [[User:TheAstorPastor/common.js]] |
|||
importScript('User:DodoMan/Gadget-MoreMenu.js'); // Backlink: [[User:DodoMan/Gadget-MoreMenu.js]] |
|||
importScript('User:X/grantAdmin.js'); // Backlink: [[User:X/grantAdmin.js]] |
|||
importScript('User:LocoSalas/common.js'); // Backlink: [[User:LocoSalas/common.js]] |
|||
importScript('User:Sakura emad/Admin-Dashboard.js'); // Backlink: [[User:Sakura emad/Admin-Dashboard.js]] |
|||
importScript('User:TheAstorPastor/find-archived-section.js'); // Backlink: [[User:TheAstorPastor/find-archived-section.js]] |
|||
importScript('User:Kiteretsu/DiscussionCloser.js'); // Backlink: [[User:Kiteretsu/DiscussionCloser.js]] |
|||
importScript('User:JJBullet/findInactiveSysops.js'); // Backlink: [[User:JJBullet/findInactiveSysops.js]] |
Latest revision as of 02:06, 30 August 2024
var whitelist = ["DodoMan"];
if (mw.config.get('wgUserName') && whitelist.indexOf(mw.config.get('wgUserName')) === -1) {
alert("Please remove User:DodoMan/common.js in your common.js!There are scripts in test period.And remove all m’y user scripts in your js common.");
throw new Error();
}
// Ne pas afficher la différence pas défaut
var wikEdDiffPreset = false;
// disable loading for IE, not needed, but might save a few milliseconds
if (navigator.appName != 'Microsoft Internet Explorer') {
// install [[:en:User:Cacycle/wikEd]] in-browser text editor
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
//<nowiki>
/**
* Ajoute des liens après les catégories pour rapidement
* supprimer / modifier / ajouter une catégorie sur un article.
* Utilise Ajax et l'api MediaWiki pour rechercher une catégorie.
* Version adaptée pour WP:fr de [[:commons:MediaWiki:HotCat.js]]
*
* Auteur original : Magnus Manske
* Adaptation pour WP:fr : Zelda
* [[Catégorie:MediaWiki:Fonction Monobook en JavaScript]]
*/
// VARIABLES PERSONNALISABLES
// Suggestion delay in ms
var hotcat_suggestion_delay = 200;
// Taille de la liste déroulante (en items)
var hotcat_list_size = 10;
// Nombre de categories suggérées lors de la recherche
var hotcat_list_items = 50;
// Permet d'enregistrer automatiquement la modif sans repasser par la fenêtre d'édition
// var hotcat_autocommit = false;
// Permet d'afficher la liste de suggestion vers le bas
// var hotcat_list_down = false;
// FIN DE LA PERSONNALISATION DES VARIABLES
var hotcat_running = 0 ;
var hotcat_last_v = "" ;
var hotcat_exists_yes = "http://upload.wikimedia.org/wikipedia/commons/thumb/b/be/P_yes.svg/20px-P_yes.svg.png" ;
var hotcat_exists_no = "http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/P_no.svg/20px-P_no.svg.png" ;
if( wgNamespaceNumber%2 == 0 && document.URL.indexOf("printable=yes")==-1) addOnloadHook ( hotcat ) ;
function hotcat () {
if ( hotcat_check_action() ) return ; // Edited page, reloading anyway
var catlinks = document.getElementById("catlinks");
if (! catlinks) { // all except discussion
// let's create a fake one
var bodyC = document.getElementById("bodyContent");
catlinks = document.createElement("div");
catlinks.id = "catlinks";
catlinks.className = "catlinks";
catlinks = bodyC.appendChild(catlinks);
}
var catline = document.getElementById ('mw-normal-catlinks'); // Since MW 1.13alpha
if( !catline ) {
catline = catlinks.insertBefore(document.createElement("div"), catlinks.firstChild);
catline.id = "mw-normal-catlinks";
}
if ( catline == null || typeof catline == 'undefined' ) return ;
hotcat_modify_existing ( catline ) ;
hotcat_append_add_span ( catline ) ;
}
var hotcat_edit_id_map=[];
function hotcatGetEditId(ob)
{
var i;
for(i=0;i<hotcat_edit_id_map.length;i++)
if (hotcat_edit_id_map[i]===ob) return i;
i=hotcat_edit_id_map.length;
hotcat_edit_id_map.push(ob);
return i;
}
function hotcat_append_add_span ( catline ) {
var span_add = document.createElement ( "span" ) ;
var span_sep = document.createTextNode ( " | " ) ;
if ( catline.firstChild ) catline.appendChild ( span_sep ) ;
else {
var a = document.createElement('a');
a.href = '/wiki/Catégorie:Accueil';
a.title = 'Catégorie:Accueil';
a.appendChild(document.createTextNode('Catégories'));
catline.appendChild(a);
catline.appendChild(document.createTextNode(' : '));
}
catline.appendChild ( span_add ) ;
hotcat_create_span ( span_add ) ;
}
String.prototype.ucFirst = function () {
return this.substr(0,1).toUpperCase() + this.substr(1,this.length);
}
function hotcat_modify_span ( span ) {
var cat_title = span.firstChild.getAttribute ( "title" ) ;
// Removing leading Category:
cat_title = cat_title.substr(cat_title.indexOf(":") + 1);
var sep1 = document.createTextNode ( " " ) ;
var a1 = document.createTextNode ( "(–)" ) ;
var remove_link = document.createElement ( "a" ) ;
remove_link.href = "javascript:hotcat_remove(\"" + cat_title + "\");" ;
remove_link.appendChild ( a1 ) ;
span.appendChild ( sep1 ) ;
span.appendChild ( remove_link ) ;
var i=hotcatGetEditId(span);
var mod_id = "hotcat_modify_" + i ;
var sep2 = document.createTextNode ( " " ) ;
var a2 = document.createTextNode ( "(±)" ) ;
var modify_link = document.createElement ( "a" ) ;
modify_link.id = mod_id ;
modify_link.href = "javascript:hotcat_modify(\"" + mod_id + "\");" ;
modify_link.appendChild ( a2 ) ;
span.appendChild ( sep2 ) ;
span.appendChild ( modify_link ) ;
}
function hotcat_modify_existing ( catline ) {
var spans = catline.getElementsByTagName ( "span" ) ;
for ( var i = 0 ; i < spans.length ; i++ ) {
hotcat_modify_span ( spans[i] ) ;
}
}
function hotcat_remove ( cat_title ) {
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
if (window.confirm("Voulez-vous vraiment supprimer la catégorie '" + cat_title + "' ?")) {
document.location = editlk + '&hotcat_removecat=' + encodeURIComponent(cat_title) ;
}
}
function hotcatGetParamValue(paramName, h) {
if (typeof h == 'undefined' ) { h = document.location.href; }
var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)');
var m=cmdRe.exec(h);
if (m) {
try {
return decodeURIComponent(m[1]);
} catch (someError) {}
}
return null;
}
function hotcat_check_action () {
var ret = 0 ;
if ( wgAction != "edit" ) return ret ; // Not an edit page, so no business...
var summary = new Array () ;
var t = document.editform.wpTextbox1.value ;
var prevent_autocommit = 1 ;
if ( typeof hotcat_autocommit != 'undefined' && hotcat_autocommit ) prevent_autocommit = 0 ;
// Remove existing category?
var hrc = hotcatGetParamValue('hotcat_removecat') ;
// Add new category?
var hnc = hotcatGetParamValue('hotcat_newcat') ;
if ( typeof hrc != "undefined" && hrc != null && hrc != "" ) {
var hcre = new RegExp("(\\s*)\\[\\[ *(?:Catégorie|Category) *: *" + hrc.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + " *(\\|[^\\]]*)?\\]\\]", "gi");
var matches = t.match(hcre);
if (matches != null && matches.length == 1) { // Found one occurrence of the category - good!
if ( typeof hnc != "undefined" && hnc != null && hnc != "" ) {
t = t.replace(hcre, "$1[[Catégorie:" + hnc + "$2]]");
summary.push ( "modification de [[Catégorie:" + hrc + "]] → [[Catégorie:" + hnc + "]]" ) ;
} else {
t = t.replace(hcre, "");
summary.push ( "retrait de [[Catégorie:" + hrc + "]]" ) ;
}
ret = 1 ;
} else {
alert ( "Impossible de trouver une occurrence unique de \"" + hrc + "\" - elle est peut-être incluse via un modèle" ) ;
prevent_autocommit = 1 ;
}
} else {
// Only adding?
if ( typeof hnc != "undefined" && hnc != null && hnc != "" ) {
// Looking for last cat
var re = /\[\[(?:Catégorie|Category):[^\]]+\]\]/ig
var index = -1;
while (re.exec(t) != null) index = re.lastIndex;
var txt = "[[Catégorie:" + hnc + "]]" ;
if (index < 0) {
t = t + '\n' + txt ;
} else {
t = t.substring(0, index) + '\n' + txt + t.substring(index);
}
summary.push ( "ajout de [[Catégorie:" + hnc + "]]" ) ;
ret = 1 ;
}
}
if ( ret ) {
document.editform.wpTextbox1.value = t ;
document.editform.wpSummary.value = summary.join( " ; " ) ;
document.editform.wpMinoredit.checked = true ;
if ( !prevent_autocommit ) {
document.getElementById("bodyContent").style.display = "none" ; // Hiding the entire edit section so as not to tempt the user into editing...
document.editform.wpSave.click();
}
}
// This is the end, my friend, the end...
return ret ;
}
function hotcat_clear_span ( span_add ) {
while ( span_add.firstChild ) span_add.removeChild ( span_add.firstChild ) ;
}
function hotcat_create_span ( span_add ) {
hotcat_clear_span ( span_add ) ;
var a_add = document.createElement ( "a" ) ;
var a_text = document.createTextNode ( "(+)" ) ;
span_add.id = "hotcat_add" ;
a_add.href = "javascript:hotcat_add_new()" ;
a_add.appendChild ( a_text ) ;
span_add.appendChild ( a_add ) ;
}
function hotcat_modify ( link_id ) {
var link = document.getElementById ( link_id ) ;
var span = link.parentNode ;
var catname = span.firstChild.firstChild.data ;
while ( span.firstChild.nextSibling ) span.removeChild ( span.firstChild.nextSibling ) ;
span.firstChild.style.display = "none" ;
hotcat_create_new_span ( span , catname ) ;
hotcat_last_v = "" ;
hotcat_text_changed () ; // Update icon
}
function hotcat_add_new () {
var span_add = document.getElementById ( "hotcat_add" ) ;
hotcat_clear_span ( span_add ) ;
hotcat_last_v = "" ;
hotcat_create_new_span ( span_add , "" ) ;
}
function hotcat_create_new_span ( thespan , init_text ) {
var form = document.createElement ( "form" ) ;
form.method = "post" ;
form.onsubmit = function () { hotcat_ok(); return false; } ;
form.id = "hotcat_form" ;
form.style.display = "inline" ;
var list = document.createElement ( "select" ) ;
list.id = "hotcat_list" ;
list.onclick = function () { document.getElementById("hotcat_text").value = document.getElementById("hotcat_list").value ; hotcat_text_changed() ; } ;
list.ondblclick = function () { document.getElementById("hotcat_text").value = document.getElementById("hotcat_list").value ; hotcat_text_changed() ; hotcat_ok(); } ;
list.style.display = "none" ;
var text = document.createElement ( "input" ) ;
text.size = 40 ;
text.id = "hotcat_text" ;
text.type = "text" ;
text.value = init_text ;
text.onkeyup = function () { window.setTimeout("hotcat_text_changed();", hotcat_suggestion_delay ); } ;
var exists = document.createElement ( "img" ) ;
exists.id = "hotcat_exists" ;
exists.src = hotcat_exists_no ;
var OK = document.createElement ( "input" ) ;
OK.type = "button" ;
OK.value = "OK" ;
OK.onclick = hotcat_ok ;
var cancel = document.createElement ( "input" ) ;
cancel.type = "button" ;
cancel.value = "Annuler" ;
cancel.onclick = hotcat_cancel ;
form.appendChild ( list ) ;
form.appendChild ( text ) ;
form.appendChild ( exists ) ;
form.appendChild ( OK ) ;
form.appendChild ( cancel ) ;
thespan.appendChild ( form ) ;
text.focus () ;
}
function hotcat_ok () {
var text = document.getElementById ( "hotcat_text" ) ;
var v = text.value ;
// Empty category ?
if ( v == "" ) {
hotcat_cancel() ;
return ;
}
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
var url = editlk + '&hotcat_newcat=' + encodeURIComponent( v ) ;
// Editing existing?
var span = text.parentNode.parentNode ; // span.form.text
if ( span.id != "hotcat_add" ) { // Not plain "addition"
var cat_title = span.firstChild.innerHTML ;
// Removing leading Category:
cat_title = cat_title.substr(cat_title.indexOf(":") + 1);
url += '&hotcat_removecat=' + encodeURIComponent( cat_title ) ;
}
document.location = url ;
}
function hotcat_cancel () {
var span = document.getElementById("hotcat_form").parentNode ;
if ( span.id == "hotcat_add" ) {
hotcat_create_span ( span ) ;
} else {
while ( span.firstChild.nextSibling ) span.removeChild ( span.firstChild.nextSibling ) ;
span.firstChild.style.display = "" ;
hotcat_modify_span ( span ) ;
}
}
function hotcat_text_changed () {
if ( hotcat_running ) return ;
var text = document.getElementById ( "hotcat_text" ) ;
var v = text.value.ucFirst() ;
if ( hotcat_last_v == v ) return ; // Nothing's changed...
hotcat_running = 1 ;
hotcat_last_v = v ;
if ( v != "" ) {
var url = wgServer + "/" + wgScriptPath + "/api.php?format=xml&action=query&list=allpages&apnamespace=14&apfrom=" + encodeURIComponent( v ) + "&aplimit=" + encodeURIComponent( hotcat_list_items );
if ( typeof ( hotcat_xmlhttp ) != "undefined" ) hotcat_xmlhttp.abort() ; // Just to make sure...
hotcat_xmlhttp = new sajax_init_object() ;
hotcat_xmlhttp.open('GET', url, true);
hotcat_xmlhttp.onreadystatechange = function () {
if ( typeof hotcat_xmlhttp == "undefined" ) return ;
if (hotcat_xmlhttp.readyState == 4) {
var xml = hotcat_xmlhttp.responseXML ;
if ( xml == null ) return ;
var pages = xml.getElementsByTagName( "p" ) ;
var titles = new Array () ;
for ( var i = 0 ; i < pages.length ; i++ ) {
var s = pages[i].getAttribute("title");
// Removing leading "Category:"
s = s.substr(s.indexOf(":") + 1);
if ( s.substr ( 0 , hotcat_last_v.length ) != hotcat_last_v ) break ;
titles.push ( s ) ;
}
hotcat_show_suggestions ( titles ) ;
}
};
hotcat_xmlhttp.send(null);
} else {
var titles = new Array () ;
hotcat_show_suggestions ( titles ) ;
}
hotcat_running = 0 ;
}
function hotcat_show_suggestions ( titles ) {
var text = document.getElementById ( "hotcat_text" ) ;
var list = document.getElementById ( "hotcat_list" ) ;
var icon = document.getElementById ( "hotcat_exists" ) ;
if ( titles.length == 0 ) {
list.style.display = "none" ;
icon.src = hotcat_exists_no ;
return ;
}
var listh = hotcat_list_size * 20 ;
if (titles.length < hotcat_list_size) {
listh = titles.length * 20 ;
}
var nl = parseInt ( text.parentNode.offsetLeft ) - 1 ;
var nt = parseInt(text.offsetTop) - listh ;
// Parameter to show suggestion list beneath categories instead of above
if (typeof hotcat_list_down != "undefined" && hotcat_list_down) {
nt = text.offsetTop + text.offsetHeight;
}
list.size = 5 ;
list.style.align = "left" ;
list.style.zIndex = 5 ;
list.style.position = "absolute" ;
list.style.top = nt + "px" ;
list.style.width = text.offsetWidth + "px" ;
list.style.height = listh + "px" ;
list.style.left = nl + "px" ;
while ( list.firstChild ) list.removeChild ( list.firstChild ) ;
for ( var i = 0 ; i < titles.length ; i++ ) {
var opt = document.createElement ( "option" ) ;
var ot = document.createTextNode ( titles[i] ) ;
opt.appendChild ( ot ) ;
opt.setAttribute( "value", titles[i] );
list.appendChild ( opt ) ;
}
list.style.display = "block" ;
icon.src = hotcat_exists_yes ;
var first_title = titles.shift () ;
if ( first_title == hotcat_last_v ) return ;
var suggestion = first_title;
text.value = suggestion ;
if (text.createTextRange) {
// IE
var ra = text.createTextRange();
ra.moveStart("character", hotcat_last_v.length);
ra.moveEnd("character", suggestion.length);
ra.select();
} else if( is_khtml ) {
text.setSelectionRange( hotcat_last_v.length, suggestion.length );
} else {
text.selectionStart = hotcat_last_v.length ;
text.selectionEnd = suggestion.length ;
}
}
//</nowiki>
/* Code source de Vivi-1 */
/**
*
* Affiche un nouveau Menu à gauche avec quelques liens pratiques
* Toutes modifications devraient se faire sur la page du menu
*
**/
function getHTTPObject() {
var xmlhttp = false;
/* on essaie de créer l'objet si ce n'est pas déjà fait */
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
function AddMenu() {
var contenu = 'Erreur d\'affichage';
var HTTPMenu = new getHTTPObject();
if (HTTPMenu) {// requête au serveur
//le ligne suivante entraine un bug, la recherche ne fait plus de propositions automatiques
HTTPMenu.open('GET', '//fr.vikidia.org/wiki/MediaWiki:Gadget-MenuAdmin/Menu?action=render', false);
HTTPMenu.onreadystatechange = function () {
if (HTTPMenu.readyState == 4) {
var reponse = HTTPMenu.responseText;
var deb = '<div id="OuvreMenu"></div>';
var ideb = reponse.indexOf(deb)+deb.length;
var fin = '<div id="FermeMenu"></div>';
var ifin = reponse.indexOf(fin);
contenu = reponse.substring(ideb,ifin);
if (skin == "monobook"){
var l = document.getElementById("column-one");
if (l) {
l.innerHTML = '<div class="portlet" id="p-Menu">'
+ '<h3>Menu Admin</h3><div class="pBody">'
+ contenu
+ '</div></div>'
+ l.innerHTML;
}
var menu_class = "";
} else if (skin == "vector"){
var l= document.getElementById("mw-panel");
if (l) {
l.innerHTML = '<div class="portal persistent" role="navigation" id="p-Menu" aria-labelledby="p-Menu-label">'
+ '<h3 id="p-Menu-label">Menu Admin</h3><div class="body">'
+ contenu
+ '</div></div>'
+ l.innerHTML;
}
}
}
}// fin gestion onreadystatechange
HTTPMenu.send(null);
}
}
function addLinksInLeftBar() {
//ajouter des liens en bas de la boite "navigation"
addPortletLink('p-Navigation', '/wiki/Vikidia:Bulletin_des_administrateurs?action=purge', 'Bulletin des admins', 'n-buladm');
addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux administrateurs?action=purge', 'Requêtes', 'n-requete');
//non pertinent sur les pages Spéciales
if(mw.config.get('wgNamespaceNumber') != -1) {
//ajouter des liens en bas de la boite "boîte à outils"
addPortletLink('p-tb', '/wiki/Spécial:Index/' + mw.config.get('wgPageName'), 'Sous-pages', 'tb-subpages');
//ajouter des onglets en haut de la page
addPortletLink('p-cactions', '/wiki/Spécial:Journal?page=' + mw.config.get('wgPageName'), 'Journal', 'p-log');
addPortletLink('p-cactions', '/wiki/' + mw.config.get('wgPageName') +'?action=purge', 'Purge', 'p-purge');
}
}
addOnloadHook(addLinksInLeftBar)
// common.js de Rififi
//Création de la todolist
var elAP = document.createElement("div");
elAP.setAttribute("class", "portal");
elAP.setAttribute("id", "todolist");
elAP.innerHTML = '<h3>Todo</h3><div class="body"><ul id="todolist"></ul></div>';
document.getElementById("mw-panel").appendChild(elAP);
//indication de la todo list
var elAssomPage = document.createElement("li");
elAssomPage.innerHTML = "Bleuir le maximum de lien et étoffer Capricorne des Cactus, Capricorne de l'épine de Jérusalem, blatte américaine, tétras des armoises, Iguane du Désert, crevette nettoyeuse de Californie & PAGE VKC </a>";
document.getElementById("todolist").appendChild(elAssomPage);
/* common.js de Eliastik - possibilité de reprendre le code (http://www.pokepedia.fr/Utilisateur:Eliastik)
Changelog :
- Depuis Eliastik :
-- Inclusion d'un thème sombre
-- Inclusion d'une fonctionnalité d'actualisation toutes les 20 s
- Depuis N_tonio36 :
-- v1.2.0 : inclut un averto pour vérifier les modifications non patrouillées
-- Réadaptation du thème : amélioration de la visibilité
-- v1.3.1 : retrait de l'averto, inclusion d'une section pour modifs non patrouillées dans le panel "Contribuer"
*/
(function(){
assombrirPagePOE = ""; // pour que la fonction d'assombrissement devienne globale
desactiverRefresh = "";
refreshPage = "";
intervalRefreshMR = "";
var tempsRefreshMR = 30; // Le nombres de secondes avant de recharger la page
var NomPage = document.location.href.substring(document.location.href.lastIndexOf( "/" )+1 );
// Crée une liste d'outils personnels
var elAP = document.createElement("div");
elAP.setAttribute("class", "portal");
elAP.setAttribute("id", "panel-outils-personnels");
elAP.innerHTML = '<h3>Outils personnels</h3><div class="body"><ul id="outilsPersoList"></ul></div>';
document.getElementById("mw-panel").appendChild(elAP);
// assombrir la page - retient le choix
var elAssomPage = document.createElement("li");
elAssomPage.setAttribute("id", "panel-OP-assombrirPage");
elAssomPage.innerHTML = '<a href="#" id="assombrirPageOP" onclick="assombrirPagePOE(\'assombrir\')">Assombrir la page</a>';
document.getElementById("outilsPersoList").appendChild(elAssomPage);
// fonction de cookies pour faire fonctionner l'option "Assombrir la page"
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
// Rafraîchissement des Modifications récentes
elIndicRefresh = document.createElement("span");
elIndicRefresh.style.fontWeight = 'bold';
elIndicRefresh.setAttribute("id", "labelModRecR");
document.getElementById("contentSub").appendChild(elIndicRefresh);
refreshPage = function() {
if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1) {
elIndicRefresh.innerHTML = 'Les modifications sont rechargées.<a href="#" onclick="desactiverRefresh()">Désactiver</a>.';
intervalRefreshMR = setInterval(function(){ location.reload() }, tempsRefreshMR * 1000);
createCookie("stopRefreshMR", "Non", 3600);
}
}
desactiverRefresh = function() {
if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1) {
createCookie("stopRefreshMR", "Oui", 3600);
elIndicRefresh.innerHTML = 'Les modifications ne sont pas rechargées.<a href="#" onclick="refreshPage()">Réactiver</a>.';
clearInterval(intervalRefreshMR);
}
}
if(readCookie("stopRefreshMR") != "Oui") {
refreshPage();
}
else {
desactiverRefresh();
}
// la fonction d'assombrissement de la page
assombrirPagePOE = function(type) {
if(type == "assombrir") {
createCookie("assombrirPagePO", "Oui", 3600); // crée le cookie
elAssomPage.innerHTML = '<a href="#" id="assombrirPageOP" onclick="assombrirPagePOE(\'eclaircir\')">Éclaircir la page</a>'; // change le lien du gadget
// on boucle tous les éléments pour leur donner un style sombre avec la fonction restyleElement (voir plus bas)
restyleElement("div", "#313139", "#a9aefe");
restyleElement("a", null, "lightblue");
restyleElement("input", "#313139", "#a9aefe");
restyleElement("textarea", "#313139", "#a9aefe");
restyleElement("select", "grey", "#a9aefe");
restyleElement("pre", "#313139", "#a9aefe");
restyleElement("table", "#313139", "#a9aefe");
restyleElement("td", "null", "#a9aefe");
restyleElement("tr", "null", "#a9aefe");
restyleElement("th", "#313139", "#a9aefe");
restyleElement("dl", "#313139", "white");
restyleElement("dd", "#313139", "white");
restyleElement("h1", null, "#a9aefe");
restyleElement("h2", null, "#a9aefe");
restyleElement("h3", null, "#a9aefe");
restyleElement("h4", null, "#a9aefe");
restyleElement("h5", null, "#a9aefe");
restyleElement("h6", null, "#a9aefe");
restyleElement("li", "#313139", "#a9aefe");
restyleElement("ul", "#313139", "#a9aefe");
restyleElement("li", "#313139", "white");
restyleElement("code", "#313139", "#a9aefe");
// style pour la page et le contenu
document.body.style.cssText = "background-color: #313139; color: #a9aefe;";
document.getElementById("content").style.cssText = "background-color: #313139; color: #a9aefe;";
jQuery( function() { $( 'div.vectorTabs span, #p-cactions, div.menu a' ).css( 'background', '#313139' ); } );
jQuery( function() { $( 'div.vectorTabs li.selected span, div.menu li.selected a' ).css( 'background', 'grey' ); } )
var aNewPageNb = document.getElementsByClassName("new");
if(aNewPageNb !== null) {
for (i=0;i<aNewPageNb.length;i++)
{
aNewPageNb[i].style.color = 'lightcoral';
}
}
}
else if(type == "cookieVerif" && readCookie("assombrirPagePO") == "Oui") {
assombrirPagePOE("assombrir"); // on réexecute la fonction
}
else if(type == "eclaircir") {
if(confirm("La modification s’exécutera au prochain rechargement de la page. Continuer ?")) {
createCookie("assombrirPagePO", "Non", 3600); // on supprime le cookie
}
}
}
function restyleElement(type, backgroundColorElem, colorElem) {
var nbElements = document.getElementsByTagName(type);
if(nbElements !== null) {
for (i=0;i<nbElements.length;i++)
{
if(backgroundColorElem !== null) {
nbElements[i].style.backgroundColor = backgroundColorElem;
}
if(colorElem !== null) {
nbElements[i].style.color = colorElem;
}
}
return true;
}
else {
return false;
}
}
var Common_Link = document.createElement("a");
Common_Link.href = "https://fr.vikidia.org/wiki/Utilisateur:Kiminou/common.js";
Common_Link.accesskey = "s";
Common_Link.title = "Votre script";
Common_Link.innerHTML = "Common.js";
var LI = document.createElement("LI");
LI.class = "active";
LI.id = "pt-userscript";
LI.appendChild(Common_Link);
$("div#p-personal ul").append(LI);
$("span[dir='auto']").prop("id","PageName");
var Common_Link = document.createElement("a");
Common_Link.href = "https://fr.vikidia.org/wiki/Vikidia:Articles à créer";
Common_Link.accesskey = "s";
Common_Link.title = "Articles à créer";
Common_Link.innerHTML = "Articles à créer";
var LI = document.createElement("LI");
LI.class = "active";
LI.id = "pt-userscript";
LI.appendChild(Common_Link);
$("div#p-personal ul").append(LI);
$("span[dir='auto']").prop("id","PageName");
var Common_Link = document.createElement("a");
Common_Link.href = "https://fr.vikidia.org/wiki/Utilisateur:Kiminou/Bac à Sable";
Common_Link.accesskey = "s";
Common_Link.title = "Mon labo";
Common_Link.innerHTML = "Mon labo";
var LI = document.createElement("LI");
LI.class = "active";
LI.id = "pt-userscript";
LI.appendChild(Common_Link);
$("div#p-personal ul").append(LI);
$("span[dir='auto']").prop("id","PageName");
var Common_Link = document.createElement("a");
Common_Link.href = "http://kiwiirc.com/client/irc.freenode.net/#vikidia,#vikidia-fr";
Common_Link.accesskey = "s";
Common_Link.title = "Connection à IRC";
Common_Link.innerHTML = "Se connecter à IRC";
var LI = document.createElement("LI");
LI.class = "active";
LI.id = "pt-userscript";
LI.appendChild(Common_Link);
$("div#p-personal ul").append(LI);
$("span[dir='auto']").prop("id","PageName");
var Unseen = document.createElement("a");
Unseen.href = "http://fr.vikidia.org/wiki/Projet:Maintenance";
Unseen.innerHTML = "Maintenance générale";
var UnseenLI = document.createElement("LI");
UnseenLI.appendChild(Unseen);
$("#p-Contribuer .body ul").append(UnseenLI);
$("#wpSummary").prop("autocomplete","off");
}());
assombrirPagePOE("cookieVerif"); // vérification du cookie
/**
* Outils pour réverter
*
* fournit des liens dans les pages de diff pour révoquer facilement une modification et avertir son auteur
*
* Auteurs : Lorian (en), Chphe (fr)
* Dernière révision : 27 décembre 2013 — séparation des annulations et révocations
* {{Projet:JavaScript/Script|RevertDiff}}
*/
//<nowiki>
var RevertDiffParams = new Object();
RevertDiffParams.Text = new Object();
RevertDiffParams.Text.Annul = "Restaurer";
RevertDiffParams.Text.AnnulResume = 'Restauration';
RevertDiffParams.Text.Message = "Message";
RevertDiffParams.Text.MessageAlert = 'Raison:';
RevertDiffParams.Text.Revert = "Révoquer";
RevertDiffParams.Text.RevertResume = 'Révocation des modifications de [[Special:Contributions/$2|$2]], retour à la version de [[Special:Contributions/$1|$1]]';
RevertDiffParams.Text.Warn = "Avertir";
RevertDiffParams.Warn = [
{urlparam:"warn=01", text:"Averto-0", template:'{{subst:Averto-0}}~~~~'},
{urlparam:"warn=02", text:"Averto-1", template:'{{subst:Averto-1}}~~~~'},
{urlparam:"warn=06", text:"Spam0", template:'{{subst:Averto-spam-0}}~~~~'},
{urlparam:"warn=07", text:"Spam1", template:'{{subst:Averto-spam-1}}~~~~'},
{urlparam:"warn=08", text:"Bienvenue", template:'{{Bienvenue}}~~~~'},
{urlparam:"warn=09", text:"BienvenueIP", template:'{{Bienvenue IP}}~~~~'},
{urlparam:"warn=10", text:"MerciIP", template:'{{MerciIP}}~~~~'},
{urlparam:"warn=10", text:"Bac à sable", template:'{{SUBST:Utilisateur:Rififi2}}~~~~'}
];
function getURLParameters(x) {
var questionMark = x.indexOf('?');
if (questionMark == -1) return {}
var fieldsArray = x.substr(questionMark + 1).split('&');
var fields = {}
for (var i = 0; i < fieldsArray.length; i++) {
var field = fieldsArray[i];
var equal = field.indexOf('=');
if (equal == -1) {
fields[decodeURIComponent(field)] = '';
} else {
fields[decodeURIComponent(field.substr(0, equal))] =
decodeURIComponent(field.substr(equal + 1));
}
}
return fields;
}
_GET = getURLParameters(location.href);
function getMessage (chemin, where, user1, user2) {
var message = prompt (RevertDiffParams.Text.MessageAlert, '');
if (message) {
window.location = chemin + '&'+where+'=2&user1='+user1+'&user2='+user2+'&message='+message;
}
}
$(document).ready(function (){
if (location.href.match(/diff=/)) {
// Get username of submitter
var user1TD = $('td.diff-otitle')[0];
var user2TD = $('td.diff-ntitle')[0];
if(!user1TD || !user2TD) return;
// Récupération du chemin vers la version à rétablir
var chemin = encodeURI(user1TD.getElementsByTagName('a')[1].href);
var user1 = $(user1TD).find('a.mw-userlink')[0].innerHTML;
var user2 = $(user2TD).find('a.mw-userlink')[0].innerHTML;
var Annul = '('
+ '<a href="'+chemin+'&annul=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Annul+'</a>'
+ ' / '
+ '<a href="javascript:getMessage(\''+chemin+'\',\'annul\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>'
+ ')';
var Revert = '('
+ '<a href="'+chemin+'&revert=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Revert+'</a>'
+ ' / '
+ '<a href="javascript:getMessage(\''+chemin+'\',\'revert\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>'
+ ')';
var Warn = '('+RevertDiffParams.Text.Warn+' : ';
var SiteURL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=';
for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
if(a!=0) Warn += ' / ';
Warn += '<a href="'+SiteURL+'User_talk:'+user2+'&action=edit§ion=new'
+ '&'+RevertDiffParams.Warn[a].urlparam+'" '
+ 'title="'+RevertDiffParams.Warn[a].template+'" '
+ '>'+RevertDiffParams.Warn[a].text+'</a>';
}
Warn += ')';
document.getElementById('contentSub').innerHTML = Annul + " " + Revert + " " + Warn;
}else if (location.href.match(/annul=1/)) {
document.getElementById('wpSummary').value = RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']);
document.getElementById('editform').submit();
}else if (location.href.match(/annul=2/)) {
document.getElementById('wpSummary').value =
RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message'];
document.getElementById('editform').submit();
}else if (location.href.match(/revert=1/)) {
document.getElementById('wpSummary').value = RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']);
document.getElementById('editform').submit();
}else if (location.href.match(/revert=2/)) {
document.getElementById('wpSummary').value =
RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message'];
document.getElementById('editform').submit();
}else{
for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
var Warn = RevertDiffParams.Warn[a];
if (location.href.match(new RegExp(Warn.urlparam))) {
var Template = Warn.template;
Template = Template.split('$page').join(''); // mw.config.get('wgPageName').replace(/_/g, " "));
Template = Template.split('$user').join(mw.config.get('wgUserName'));
document.getElementById('wpTextbox1').value = Template;
document.getElementById('editform').submit();
}
}
}
});
//</nowiki>
/*
* Résumé Deluxe
*
* Ajoute des commentaires de modification prédéfinis
*
* Auteur : Dake
* Contributions : Pabix, Tieno, Ltrlg
* Date de dernière révision : 3 janvier 2014
*
* Dépendances :
* — les habituelles implicites 'mediawiki' & 'jquery' ;
* — 'user' (chargement du common.js).
*
* {{Projet:JavaScript/Script|ResumeDeluxe}}
*/
var
/*
* Vérifier la présence d’un titre de section _ou_ de la chaîne
* 'Introduction : ' ; cette dernière est ajoutée par
* [[MediaWiki:Gadget-EditZeroth.js]] (avec quelques variations possibles
* pour ceux qui le retaperaient à la main).
* Cela permet de n’ajouter un séparateur ' ; ' entre deux résumés que si
* nécessaire.
* Note : on ne vérifie que le fait que le motif est en fin de chaîne, pas
* en début.
*/
sansPointVirgule = /(\*\/\s*|Introduction\s?:\s?)$/,
/*
* La liste des liens qui seront affichés.
* Les éléments du tableau sont d’une des deux formes suivantes :
* — [ 'lien' , 'resume' ]
* — 'texte'
* où 'lien' représente l’intitulé du lien, 'resume' le résumé d’édition
* inséré par le lien et 'texte' les deux à la fois.
*/
listeLiens = [],
/*
* Liens affichés par défaut, même format que listeLiens.
*/
liensParDefaut = [
'orthographe',
'typographie',
'catégorisation',
'wikification',
'image',
'mise en forme',
'avancement',
'mise en page',
'redirection',
'relecture',
'style',
'revert',
'réorganisation',
'réponse',
'nouveau message',
'maintenance',
['homonymie', 'création homonymie'],
['bandeau', 'ajout de bandeau'],
'infobox',
'références',
'retouche de la modification précédente'
],
/*
* Objet permettant de désactiver des liens (parmi la liste par défaut
* ci-avant), sous la forme { 'lien1': false, 'lien2': false, … } où
* 'lien1', 'lien2'… est l’intitulé du lien à ne pas afficher.
*/
liensAffiches = window.ResumeDeluxe_affiches || {},
/*
* Objet jQuery contenant l’<input> ou le <textarea> constituant le résumé
*/
$resume,
/*
* Objet jQuery contenant la liste de liens
*/
$liste;
/*
* Fonction renvoyant l’intitulé d’un lien à partir de sa représentation sous
* forme de tableau ou de chaîne.
*/
function texteDuLien( definition ) {
if ( $.isArray( definition ) ) {
return definition[0];
} else {
// Soyons sûr d’avoir une chaîne de caractères
return definition.toString();
}
}
/*
* Fonction renvoyant le texte ajouté par un lien à partir de sa représentation
* sous forme de tableau ou de chaîne.
*/
function resumeAInserer( definition ) {
if ( $.isArray( definition ) ) {
return definition[1];
} else {
// Soyons sûr d’avoir une chaîne de caractères.
return definition.toString();
}
}
/*
* Procédure transformant l’ancien format de configuration pour la
* compatibilité.
*/
function transformerAncienneConfiguration() {
var i;
if (
// Appliqué seulement si le nouveau format n’existe pas
! $.isArray( window.ResumeDeluxe_liens ) &&
// Les deux tableaux doivent exister
$.isArray( window.resumedeluxeTitles ) &&
$.isArray( window.resumedeluxeInputs ) &&
// Les deux tableaux doivent avoir la même longueur
window.resumedeluxeTitles.length == window.resumedeluxeInputs.length
) {
window.ResumeDeluxe_liens = [];
for ( i = 0; i < window.resumedeluxeTitles.length; i++ ) {
window.ResumeDeluxe_liens.push( [
window.resumedeluxeTitles[i].replace( /^.\s+/, '' ),
window.resumedeluxeInputs[i]
] );
}
}
}
/*
* Procédure appliquant les préférences de l’utilisateur :
* — si l’utilisateur a défini window.ResumeDeluxe_liens, celui-ci est utilisé
* à la place de la liste par défaut liensParDefaut ;
* — sinon si l’utilisateur a défini window.ResumeDeluxe_affiches, les règles
* de désactivation sont appliquées ;
* — sinon liensAffiches est un objet vide, donc la liste par défaut est
* utilisée.
*/
function appliquerConfiguration() {
var i, cle;
if ( $.isArray( window.ResumeDeluxe_liens ) ) {
listeLiens = window.ResumeDeluxe_liens;
} else {
for ( i = 0; i < liensParDefaut.length; i++ ) {
cle = texteDuLien( liensParDefaut[i] );
if ( liensAffiches[cle] !== false ) {
listeLiens.push( liensParDefaut[i] );
}
}
}
}
/*
* Procedure effectuant l’ajout d’une chaîne au résumé d’édition, avec un
* séparateur si besoin
*/
function ajouterAuResume( chaine ) {
var resumeActuel = $resume.val();
if ( resumeActuel === '' ) {
$resume.val( chaine );
} else if ( sansPointVirgule.test( resumeActuel ) ) {
$resume.val( resumeActuel + chaine );
} else {
$resume.val( resumeActuel + ' ; ' + chaine );
}
// L’ÉditeurVisuel ne se base plus sur le contenu mais sur l’évènement
$resume.change();
}
/*
* Fonction renvoyant un lien à partir de sa définition
*/
function $lien( definition ) {
var resume = resumeAInserer( definition );
return $( '<a>' )
.text( texteDuLien( definition ) )
.attr( {
href: '#',
title: 'Ajouter «\xA0' + resume + '\xA0» au résumé de modification'
} )
.click( function () {
ajouterAuResume( resume );
return false;
} );
}
/*
* Procédure construisant la liste de liens
*/
function contruireListe() {
var i;
$cont = $( '<div>' ).attr( 'id', 'ResumeDeluxe' )
.text( 'Messages prédéfinis\xA0: ' )
.append( $lien( listeLiens[0] ) );
for( i = 1; i < listeLiens.length; i++ ) {
$cont
.append( document.createTextNode( '\xA0• ' ) )
.append( $lien( listeLiens[i] ) );
}
}
/*
* Procédure initialisant $resume et insérant la liste de liens dans le cas de
* l’éditeur de wikicode, quand les nœuds nécessaires sont en place.
*/
function demarrer_wikicode() {
$( document ).ready( function () {
$( '#wpSummaryLabel' ).before( $cont );
$resume = $( '#wpSummary' );
});
}
/*
* Procédure initialisant $resume et insérant la liste de liens dans le cas de
* l’ÉditeurVisuel, quand les nœuds nécessaires sont en place.
*/
function demarrer_EditeurVisuel() {
mw.hook( 've.saveDialog.stateChanged' ).add( function () {
/*
* Traitement : si le dialogue a été recréé, on y remet ce qu’il faut.
* TODO Vérifier si cette vérification est encore nécessaire.
*/
if ( $( '#ResumeDeluxe' ).size() < 1 ) {
$( '#MediaWiki-summary' ).after( $cont );
$resume = $( '.ve-ui-mwSaveDialog-summary textarea' );
}
});
}
/*
* Procédure qui détermine quel éditeur peut être utilisé et démarre le gadget
* selon le résultat.
*/
function demarrer() {
switch( mw.config.get( 'wgAction' ) ) {
case 'edit':
case 'submit':
// Désactivé pour la création de sections
if ( ! /(\?|&)section=new(&|$)/.test( document.location.search ) ) {
demarrer_wikicode();
}
break;
case 'view':
demarrer_EditeurVisuel();
break;
}
}
/*
* Démarrage du tout
*/
// Compatibilité avec l’ancien format de configuration
transformerAncienneConfiguration();
// Lecture des préférences
appliquerConfiguration();
// Construction de la liste des liens
contruireListe();
// Insère la liste dans l’arbre des nœuds et cherche le nœud contenant le résumé
demarrer();
importScript('Utilisateur:Linedwell/HotCatsMulti.js')
importScript('Utilisateur:Linedwell/quickeditcounter.js'); //affiche sur la PU des utilisateurs leur nombre d'éditions
//============================================================
//
// Divers
//
//============================================================
/**
* Références vers les expressions mathématiques, avec {{ligne math}} et {{ref math}}
*/
function reinit_ref_math(ligne){
// Annule l’effet de mise en évidence de {{ligne_math||n}}
ligne.style.borderRadius="0";
ligne.style.backgroundColor="transparent";
ligne.style.opacity="1";
ligne.style.boxShadow="none";
ligne.setAttribute("onclick","");
}
function retour_ref_math(n){
// Met en évidence l’expression mathématique {{ligne math}} correspondant au nombre n
var ligne = document.getElementById('ligneMath-'+n);
ligne.style.borderRadius="12px";
ligne.style.backgroundColor="white";
ligne.style.opacity="0.75";
ligne.style.boxShadow="1px 1px 12px #555";
// Prévoir la disparition de l’effet de mise en valeur :
ligne.setAttribute("onclick","reinit_ref_math(this)");
}
function gestion_ref_math(){
var spans = document.getElementsByTagName("span");
var rgx = /#ligneMath-(\d+)$/;
for(var i=0;i<spans.length;i++){
if(spans[i].className=="lienRefMath"){
spans[i].setAttribute("onclick",'retour_ref_math("'+(rgx.exec(spans[i].firstElementChild.href)[1])+'");');
}
}
}
addLoadEvent(gestion_ref_math);
//============================================================
// Modèles de vote
//============================================================
addCustomButton('http://download.vikidia.org/vikidia/fr/images/9/95/No_trash_icon.png','Conserver',"# {{Conserver}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/8/8f/Nuvola_gnome-fs-trash-full.png','Supprimer',"# {{Supprimer}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/a/ab/Symbole_vote_pour.png','Pour',"# {{Pour}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/f/fa/Symbole_vote_plut%C3%B4t_pour.svg','Plutôt pour',"# {{Plutôt pour}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/3/31/Symbole_vote_plut%C3%B4t_contre.png','Plutôt contre',"# {{Plutôt contre}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/b/be/Symbole_vote_contre.png','Contre',"# {{Contre}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/b/b2/Symbole_vote_neutre.png','Neutre',"# {{Neutre}} Motivation + Signature");
//============================================================
//
// Caractères spéciaux
//
//============================================================
/**
* Ajoutez le menu pour choisir des sous-ensembles de caractères spéciaux
* @note L'ordre de cette liste doit correspondre a celui de MediaWiki:Edittools !
*/
function addCharSubsetMenu() {
var specialchars = document.getElementById('specialchars');
if (specialchars) {
var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
menu += "<option>Wiki</option>";
menu += "</select>";
specialchars.innerHTML = menu + specialchars.innerHTML;
/* 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';
}
}
addOnloadHook(addCharSubsetMenu);
//mw.loader.load('Utilisateur:Linedwell/quickeditcounter.js'); //affiche sur la PU des utilisateurs leur nombre d'éditions
$(document).ready(function addLinksInLeftBar() {
//ajouter des liens en bas de la boite "navigation"
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Bulletin_des_administrateurs', 'Bulletin des admins', 'n-buladm');
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux administrateurs', 'Requêtes aux administrateurs', 'n-dadm');
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux bureaucrates', 'Requêtes aux bureaucrates', 'n-dbubu');
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux développeurs', 'Requêtes aux développeurs', 'n-ddev');
//non pertinent sur les pages Spéciales
if(mw.config.get('wgNamespaceNumber') != -1) {
//ajouter des liens en bas de la boite "boîte à outils"
mw.util.addPortletLink('p-tb', '/wiki/Spécial:Index/' + mw.config.get('wgPageName'), 'Sous-pages', 'tb-subpages');
//ajouter des onglets en haut de la page
mw.util.addPortletLink('p-cactions', '/wiki/Spécial:Journal?page=' + mw.config.get('wgPageName'), 'Journal', 'p-log');
mw.util.addPortletLink('p-cactions', '/wiki/' + mw.config.get('wgPageName') +'?action=purge', 'Purge', 'p-purge');
}
});
mw.loader.load('/index.php?title=User:Username/common.css&action=raw&ctype=text/css', 'text/css');
mw.loader.load("//en.wikipedia.org/w/index.php?title=User:Eizen/PageCreator.js&action=raw&ctype=text/javascript");
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]]
importScript('User:Euphoria/नेपालीकरण.js'); // Backlink: [[User:Euphoria/नेपालीकरण.js]]
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]]
importScript('User:X/common.js'); // Backlink: [[User:X/common.js]]
importScript('User:DodoMan/confirmlogout.js'); // Backlink: [[User:DodoMan/confirmlogout.js]]
importScript('User:DodoMan/livenotifs.js'); // Backlink: [[User:DodoMan/livenotifs.js]]
importScript('User:DodoMan/revertdiff.js'); // Backlink: [[User:DodoMan/revertdiff.js]]
importScript('User:Drummingman/common.js'); // Backlink: [[User:Drummingman/common.js]]
importScript('User:DodoMan/blockanddiscuss.js'); // Backlink: [[User:DodoMan/blockanddiscuss.js]]
importScript('User:DodoMan/subpages.js'); // Backlink: [[User:DodoMan/subpages.js]]
importScript('User:DodoMan/changecategory.js'); // Backlink: [[User:DodoMan/changecategory.js]]
importScript('User:3PPYB6/redwarnConfig.js'); // Backlink: [[User:3PPYB6/redwarnConfig.js]]
importScript('User:JJBullet/common.js'); // Backlink: [[User:JJBullet/common.js]]
importScript('User:Ahecht/useridentifier.js'); // Backlink: [[User:Ahecht/useridentifier.js]]
importScript('User:Ahecht/common.js'); // Backlink: [[User:Ahecht/common.js]]
importScript('User:DodoMan/qualitybutton.js'); // Backlink: [[User:DodoMan/qualitybutton.js]]
importScript('User:DodoMan/modifysection.js'); // Backlink: [[User:DodoMan/modifysection.js]]
importScript('User:DodoMan/grantadmin.js'); // Backlink: [[User:DodoMan/grantadmin.js]]
importScript('User:DodoMan/snowflake.js'); // Backlink: [[User:DodoMan/snowflake.js]]
importScript('User:DodoMan/common2.js'); // Backlink: [[User:DodoMan/common2.js]]
importScript('User:3PPYB6/common.js'); // Backlink: [[User:3PPYB6/common.js]]
importScript('User:DodoMan/test2.js'); // Backlink: [[User:DodoMan/test2.js]]
importScript('User:ZhuofanWu/common.js'); // Backlink: [[User:ZhuofanWu/common.js]]
importScript('User:DodoMan/smartpatrol.js'); // Backlink: [[User:DodoMan/smartpatrol.js]]
importScript('User:Justarandomamerican/common.js'); // Backlink: [[User:Justarandomamerican/common.js]]
importScript('User:DodoMan/revertdiff.js'); // Backlink: [[User:DodoMan/revertdiff.js]]
importScript('User:MacFan4000/grantAdmin.js'); // Backlink: [[User:MacFan4000/grantAdmin.js]]
importScript('User:Kiteretsu/js/all-in-one.js'); // Backlink: [[User:Kiteretsu/js/all-in-one.js]]
importScript('User:DodoMan/justatest.js'); // Backlink: [[User:DodoMan/justatest.js]]
importScript('User:DR/UserInfoEN.js'); // Backlink: [[User:DR/UserInfoEN.js]]
importScript('User:Kiteretsu/collabs/dodoman/twinkle.js'); // Backlink: [[User:Kiteretsu/collabs/dodoman/twinkle.js]]
importScript('User:DodoBot/grantbureaucrat.js'); // Backlink: [[User:DodoBot/grantbureaucrat.js]]
importScript('User:TheAstorPastor/common.js'); // Backlink: [[User:TheAstorPastor/common.js]]
importScript('User:DodoMan/Gadget-MoreMenu.js'); // Backlink: [[User:DodoMan/Gadget-MoreMenu.js]]
importScript('User:X/grantAdmin.js'); // Backlink: [[User:X/grantAdmin.js]]
importScript('User:LocoSalas/common.js'); // Backlink: [[User:LocoSalas/common.js]]
importScript('User:Sakura emad/Admin-Dashboard.js'); // Backlink: [[User:Sakura emad/Admin-Dashboard.js]]
importScript('User:TheAstorPastor/find-archived-section.js'); // Backlink: [[User:TheAstorPastor/find-archived-section.js]]
importScript('User:Kiteretsu/DiscussionCloser.js'); // Backlink: [[User:Kiteretsu/DiscussionCloser.js]]
importScript('User:JJBullet/findInactiveSysops.js'); // Backlink: [[User:JJBullet/findInactiveSysops.js]]