|
|
Ligne 1 : |
Ligne 1 : |
| /**
| | mw.loader.load('//fr.wikipedia.org/w/index.php?title=Mediawiki:Gadget-HotCatsMulti.js&action=raw&ctype=text/javascript'); |
| * 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
| |
| * Adaptation édition multiple : Dr Brains
| |
| *
| |
| * {{Catégorisation JS|HotCatsMulti}}
| |
| */
| |
| | |
| //<source lang=javascript><pre><nowiki>
| |
| ///////////////////////// VARIABLES ////////////////////////////////////////////////////////
| |
| | |
| //// PARAMÈTRES PERSONNALISABLES ////
| |
| | |
| // Délai avant les suggestions, en ms
| |
| window.hotcat_suggestion_delay = 200;
| |
| | |
| // Taille de la liste déroulante (en items)
| |
| window.hotcat_list_size = 10;
| |
| | |
| // Nombre de catégories suggérées lors de la recherche (maximum autorisé : 4999 pour les sysop et les bots, 499 pour les autres utilisateurs)
| |
| window.hotcat_list_items = 50;
| |
| | |
| // Permet d'afficher la liste de suggestion vers le bas
| |
| window.hotcat_list_down = false;
| |
| | |
| // Permet d'enregistrer automatiquement la modification
| |
| window.hotcat_autocommit = true;
| |
| | |
| // Modification mineure ( -1 = défaut ; 0 = jamais ; 1 = toujours )
| |
| window.hotcat_Minoredit = 1;
| |
| | |
| // Suivre la page modifiée ( -1 = défaut ; 0 = jamais ; 1 = toujours )
| |
| window.hotcat_Watchthis = -1;
| |
| | |
| // Activation automatique du mode "multi"
| |
| window.hotcat_AutoMulti = false;
| |
| | |
| // Afficher de la légende
| |
| window.hotcat_ShowLegend = true;
| |
| | |
| // Afficher sur une seule ligne
| |
| window.hotcat_ShowInline = false;
| |
| | |
| // Ne pas confirmer la suppression
| |
| window.hotcat_SkipConfirm = false;
| |
| | |
| // Ne pas afficher le récapitulatif
| |
| window.hotcat_SkipRecap = false;
| |
| | |
| // Afficher le bouton pour suggérer les catégories-mères
| |
| window.hotcat_ParentButton = true;
| |
| | |
| // Afficher le bouton pour suggérer les catégories-filles
| |
| window.hotcat_DaughterButton = true;
| |
| | |
| // Icônes pour signifier l'existence ou non de la catégorie choisie
| |
| window.hotcat_exists_size = 20;
| |
| window.hotcat_exists_yes = "//upload.wikimedia.org/wikipedia/commons/thumb/b/be/P_yes.svg/20px-P_yes.svg.png" ;
| |
| window.hotcat_exists_no = "//upload.wikimedia.org/wikipedia/commons/thumb/4/42/P_no.svg/20px-P_no.svg.png" ;
| |
| | |
| // Lien vers la documentation
| |
| window.hotcat_docURL = "//fr.wikipedia.org/wiki/Projet:JavaScript/Notices/HotCatsMulti#Fonctionnement";
| |
| | |
| // ID du lien pour les catégories cachées
| |
| window.hotcat_HiddenCatsLinkID = "mw-hidden-cats-link";
| |
| | |
| // Titre de catégorie sensible à la casse de la première lettre
| |
| window.hotcat_CaseSensitive = false;
| |
| | |
| // Mode débuggage
| |
| window.hotcat_DebugMode = false;
| |
| | |
| // Groupe nécessaire pour appliquer une balise
| |
| window.hotcat_TagGroup = "user";
| |
| | |
| //// TEXTES ////
| |
| | |
| window.hotcat_text_MultiLinkText = "(±)";
| |
| window.hotcat_text_MultiLinkTitle = "Modifier plusieurs catégories";
| |
| window.hotcat_text_MultiInputOK = "Valider";
| |
| window.hotcat_text_MultiInputCancel = "Annuler";
| |
| | |
| window.hotcat_text_Minoredit = "Édition mineure : $1";
| |
| window.hotcat_text_Watchthis = "Suivre cette page : $1";
| |
| window.hotcat_text_RadioDefault = "Défaut";
| |
| window.hotcat_text_RadioYes = "Oui";
| |
| window.hotcat_text_RadioNo = "Non";
| |
| | |
| window.hotcat_text_LabelText = "Légende :";
| |
| window.hotcat_text_LabelTitle = "Voir la page d\'aide (nouvelle fenêtre)";
| |
| | |
| window.hotcat_text_DefaultSortText = "(D)";
| |
| window.hotcat_text_DefaultSortTitle = "Ajouter/modifier/supprimer la clef de tri principale";
| |
| | |
| window.hotcat_text_RemoveLinkText = "(–)";
| |
| window.hotcat_text_RemoveLinkTitle = "Supprimer la catégorie « $1 »";
| |
| window.hotcat_text_RemoveConfirm = "Voulez-vous vraiment supprimer la catégorie « $1 » ?";
| |
| window.hotcat_text_ModifyLinkText = "(±)";
| |
| window.hotcat_text_ModifyLinkTitle = "Modifier la catégorie « $1 »";
| |
| window.hotcat_text_AddLinkText = "(+)";
| |
| window.hotcat_text_AddLinkTitle = "Ajouter une catégorie";
| |
| | |
| window.hotcat_text_Exists_YesTitle = "Cette catégorie existe.";
| |
| window.hotcat_text_Exists_NoTitle = "Cette catégorie n'existe pas.";
| |
| window.hotcat_text_ParentTitle = "Suggérer les catégories-mères";
| |
| window.hotcat_text_ParentText = "↑";
| |
| window.hotcat_text_DaughterTitle = "Suggérer les catégories-filles";
| |
| window.hotcat_text_DaughterText = "↓";
| |
| window.hotcat_text_InputOK = "OK";
| |
| window.hotcat_text_InputCancel = "Annuler";
| |
| | |
| window.hotcat_text_RecapTitle = 'Récapitulatif :';
| |
| window.hotcat_text_RecapRemove = 'Catégories à supprimer';
| |
| window.hotcat_text_RecapModify = 'Catégories à modifier';
| |
| window.hotcat_text_RecapAdd = 'Catégories à ajouter';
| |
| window.hotcat_text_RecapSort = 'Clef de tri globale';
| |
| | |
| window.hotcat_text_AlertProblem1 = "Impossible de trouver la catégorie « $1 » - elle est peut-être incluse via un modèle.";
| |
| window.hotcat_text_AlertProblem2 = "La catégorie « $1 » est déjà présente.";
| |
| window.hotcat_text_AlertProblem3 = "Plusieurs occurrences de la catégorie « $1 » trouvées.";
| |
| | |
| | |
| window.hotcat_text_ResumeScript = "[[Projet:JavaScript/Notices/HotCatsMulti|HotCatsMulti]] : ";
| |
| | |
| window.hotcat_text_NoCatTemplate = "à catégoriser";
| |
| | |
| window.hotcat_text_HotCatTag = "";
| |
| if(mw.config.get( 'wgServer' ) == '//fr.wikipedia.org') window.hotcat_text_HotCatTag = "HotCats";
| |
| | |
| | |
| //// VARIABLES NON PERSONNALISABLES ////
| |
| | |
| window.hotcat_text_SystemMessage = {
| |
| "red-link-title" : false,
| |
| "pagecategorieslink" : false,
| |
| "categories" : false,
| |
| "pagecategories" : false
| |
| };
| |
| | |
| | |
| window.hotcat_Multi_Edit = false ;
| |
| window.hotcat_suggest_running = 0 ;
| |
| window.hotcat_running = 0 ;
| |
| window.hotcat_last_v = "" ;
| |
| window.hotcat_last_key = "";
| |
| window.hotcat_OldDefaultSort = "";
| |
| window.hotcat_OldPageContent = false;
| |
| window.hotcat_Form_Index = 1000;
| |
| window.hotcat_NewCatsIndex = 2000;
| |
| window.hotcat_CatNamespace = mw.config.get('wgFormattedNamespaces')[14]+':';
| |
| window.hotcat_DefaultsortAliases = [];
| |
| window.hotcat_Multi_IsEditPage = ((mw.config.get('wgAction')=="edit")||(mw.config.get('wgAction')=="submit")) ;
| |
| window.hotcat_Multi_IsSection = false ;
| |
| | |
| window.hotcat_SpanMatrix = [];
| |
| window.hotcat_CatLinkMatrix = [];
| |
| window.hotcat_CatLinkIsRedMatrix = [];
| |
| window.hotcat_RemoveLinkMatrix = [];
| |
| window.hotcat_ModifyLinkMatrix = [];
| |
| window.hotcat_FormMatrix = [];
| |
| window.hotcat_TextMatrix = [];
| |
| window.hotcat_ListMatrix = [];
| |
| window.hotcat_ExistMatrix = [];
| |
| window.hotcat_CatNameMatrix = [];
| |
| window.hotcat_SortMatrix = [];
| |
| | |
| ///////////////////////// AJAX ////////////////////////////////////////////////////////
| |
| | |
| window.hotcat_ajax = {
| |
| http: function(bundle) {
| |
| var xmlhttp;
| |
| try {
| |
| xmlhttp = new XMLHttpRequest();
| |
| } catch(e) {
| |
| try {
| |
| xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
| |
| } catch (e) {
| |
| try {
| |
| xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
| |
| } catch (e) {
| |
| xmlhttp = false;
| |
| }
| |
| }
| |
| }
| |
| if (xmlhttp) {
| |
| xmlhttp.onreadystatechange = function() {
| |
| if (xmlhttp.readyState == 4)
| |
| hotcat_ajax.httpComplete(xmlhttp,bundle);
| |
| };
| |
| xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async === false ? false : true);
| |
| if (bundle.headers) {
| |
| for (var field in bundle.headers)
| |
| try {
| |
| xmlhttp.setRequestHeader(field,bundle.headers[field]);
| |
| } catch(err) { }
| |
| }
| |
| xmlhttp.send(bundle.data ? bundle.data : null);
| |
| }
| |
| return xmlhttp;
| |
| },
| |
| httpComplete: function(xmlhttp,bundle) {
| |
| if (xmlhttp.status == 200 || xmlhttp.status == 302) {
| |
| if (bundle.onSuccess) bundle.onSuccess(xmlhttp,bundle);
| |
| } else if (bundle.onFailure) {
| |
| bundle.onFailure(xmlhttp,bundle);
| |
| }
| |
| }
| |
| };
| |
| | |
| | |
| ///////////////////////// REQUÊTES PRÉLIMINAIRES ////////////////////////////////////////////////////////
| |
| | |
| | |
| // RÉCUPÉRATION ALIAS DE LA CLEF DE TRI GLOBALE ET DES MESSAGES SYSTEME
| |
| | |
| // Mise à jour du cookie
| |
| | |
| window.hotcat_SetCookie = function(cookieName, cookieValue) {
| |
| var now = new Date();
| |
| var nextYear = new Date(now.getTime() + 1000 * 60 * 60 * 24 * 365 );
| |
| return jQuery.cookie(cookieName, cookieValue, {expires:nextYear, path:"/"});
| |
| };
| |
| | |
| // Interrogation du cookie
| |
| | |
| window.hotcat_GetCookie = function(cookieName) {
| |
| return jQuery.cookie(cookieName);
| |
| };
| |
| | |
| window.hotcat_getDefaultsortAliasesAndMessages = function(Mode){
| |
| var meta = [];
| |
| var otherparams = {};
| |
| var missingmessages = [];
| |
| var CookieMessages = hotcat_GetCookie("hotcatmessages");
| |
| if(CookieMessages){
| |
| CookieMessages = CookieMessages.split("||");
| |
| for(var Message in hotcat_text_SystemMessage){
| |
| var found = false;
| |
| for(var a=0,l=CookieMessages.length;a<l;a++){
| |
| if(CookieMessages[a].indexOf(Message+"::") !== 0) continue;
| |
| found = true;
| |
| hotcat_text_SystemMessage[Message] = CookieMessages[a].split("::")[1];
| |
| }
| |
| if(!found) missingmessages.push(Message);
| |
| }
| |
| | |
| }else{
| |
| for(var Message in hotcat_text_SystemMessage){
| |
| missingmessages.push(Message);
| |
| }
| |
| }
| |
| if(missingmessages.length > 0){
| |
| meta.push("allmessages");
| |
| otherparams["ammessages"] = missingmessages.join("|");
| |
| }
| |
| var CookieDefaultsortAliases = hotcat_GetCookie("hotcatdefaultsortaliases");
| |
| if(CookieDefaultsortAliases){
| |
| hotcat_DefaultsortAliases = CookieDefaultsortAliases.split("||");
| |
| }
| |
| if(hotcat_DefaultsortAliases.length === 0){
| |
| meta.push("siteinfo");
| |
| otherparams["siprop"] = "magicwords";
| |
| }
| |
| if(meta.length === 0){
| |
| hotcat_getOldPageContent();
| |
| return;
| |
| }
| |
| var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&meta=' + meta.join("|");
| |
| for(var paramname in otherparams){
| |
| URL += "&" + paramname + "=" + otherparams[paramname];
| |
| }
| |
| hotcat_ajax.http({url : URL,
| |
| onSuccess : hotcat_receiveDefaultsortAliasesAndMessages,
| |
| nextcallback : hotcat_getOldPageContent
| |
| });
| |
| };
| |
| | |
| window.hotcat_receiveDefaultsortAliasesAndMessages = function(Req, data){
| |
| var Response = Req.responseXML;
| |
| var MagicWords = Response.getElementsByTagName('magicword');
| |
| if(MagicWords.length > 0){
| |
| for(var a=0;a<MagicWords.length;a++){
| |
| var MagicWordName = MagicWords[a].getAttribute('name');
| |
| if(MagicWordName=="defaultsort"){
| |
| var Aliases = MagicWords[a].getElementsByTagName('alias');
| |
| for(var b=0;b<Aliases.length;b++){
| |
| var ThisAlias = Aliases[b].firstChild.nodeValue;
| |
| ThisAlias = ThisAlias.replace(/:/g, "");
| |
| if(hotcat_DefaultsortAliases.indexOf(ThisAlias)==-1) hotcat_DefaultsortAliases.push(ThisAlias);
| |
| }
| |
| }
| |
| }
| |
| hotcat_SetCookie("hotcatdefaultsortaliases", hotcat_DefaultsortAliases.join("||"));
| |
| }
| |
| var Messages = Response.getElementsByTagName('message');
| |
| if(Messages.length > 0){
| |
| var cookievalue = [];
| |
| for(var a=0;a<Messages.length;a++){
| |
| var MessageName = Messages[a].getAttribute('name');
| |
| var MessageContent = (Messages[a].firstChild ? Messages[a].firstChild.nodeValue : "");
| |
| for(var Message in hotcat_text_SystemMessage){
| |
| if(MessageName == Message){
| |
| hotcat_text_SystemMessage[Message] = MessageContent;
| |
| cookievalue.push(Message+"::"+MessageContent);
| |
| }
| |
| }
| |
| }
| |
| hotcat_SetCookie("hotcatmessages", cookievalue.join("||"));
| |
| }
| |
| if(typeof(data.nextcallback) === "function") data.nextcallback(data);
| |
| };
| |
| | |
| // RÉCUPÉRATION DU CONTENU ACTUEL DE LA PAGE (asynchrone ou synchrone)
| |
| | |
| window.hotcat_getOldPageContent = function(){
| |
| var URL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&action=raw&oldid=' + mw.config.get('wgCurRevisionId');
| |
| hotcat_ajax.http({url : URL, onSuccess : hotcat_receiveOldPageContent });
| |
| };
| |
| | |
| window.hotcat_receiveOldPageContent = function(Req, data){
| |
| hotcat_OldPageContent = Req.responseText;
| |
| hotcat();
| |
| };
| |
| | |
| window.hotcat_gettag = function(){
| |
| if(!hotcat_text_HotCatTag || !hotcat_TagGroup) return false;
| |
| var UserGroups = mw.config.get('wgUserGroups');
| |
| if(UserGroups === null) UserGroups = ["*"];
| |
| if(UserGroups.indexOf(hotcat_TagGroup) !== -1) return hotcat_text_HotCatTag;
| |
| return false;
| |
| };
| |
| | |
| | |
| // FONCTION DE TRANSFORMATION INITIALE
| |
| | |
| window.hotcat = function() {
| |
| if(hotcat_running!==0) return;
| |
| hotcat_running = 1;
| |
| var catlinks = document.getElementById("catlinks");
| |
| var hotcatStop = hotcat_getSectionNumber();
| |
| if(hotcatStop){
| |
| if(catlinks) catlinks.parentNode.removeChild(catlinks);
| |
| return;
| |
| }
| |
| if (! catlinks) {
| |
| var bodyC = document.getElementById("bodyContent"); // Monobook, Chick, Simple, Mymw.config.get('skin'), Vector
| |
| if(!bodyC) bodyC = document.getElementById("article"); // Cologneblue, Nostalgia, Standard
| |
| if(!bodyC) bodyC = document.getElementById("mw_contentholder"); // Modern
| |
| if(!bodyC) return;
| |
| catlinks = document.createElement("div");
| |
| catlinks.id = "catlinks";
| |
| catlinks.className = "catlinks";
| |
| catlinks = bodyC.appendChild(catlinks);
| |
| }else{
| |
| $(catlinks).removeClass("catlinks-allhidden");
| |
| }
| |
| if(typeof(hotcat_LangCustom)=="function") hotcat_LangCustom();
| |
| if(typeof(hotcat_SiteCustom)=="function") hotcat_SiteCustom();
| |
| if(typeof(hotcat_UserCustom)=="function") hotcat_UserCustom();
| |
| if(mw.config.get('wgAction')=="edit") hotcat_list_down = true;
| |
| var catline = document.getElementById ('mw-normal-catlinks');
| |
| if ( !catline || catline === null || typeof catline == 'undefined' ){
| |
| catline = catlinks.insertBefore(document.createElement("div"), catlinks.firstChild);
| |
| catline.id = "mw-normal-catlinks";
| |
| }
| |
| hotcat_append_firstlink(catline);
| |
| hotcat_modify_existing(catline);
| |
| hotcat_append_add_span(catline);
| |
| hotcat_append_multiedit_span(catline);
| |
| if(hotcat_Multi_IsEditPage){
| |
| var CatLine = document.getElementById("catlinks");
| |
| var PreviewWindow = document.getElementById("wikiPreview");
| |
| if((CatLine)&&(PreviewWindow)){
| |
| CatLine.parentNode.removeChild(CatLine);
| |
| PreviewWindow.parentNode.insertBefore(CatLine, PreviewWindow.nextSibling);
| |
| hotcat_update_existing();
| |
| }
| |
| }
| |
| };
| |
| | |
| // DÉTERMINATION DE LA SECTION ÉDITÉE (si section et section != dernière ou section == new : arrêt hotCats)
| |
| | |
| window.hotcat_getSectionNumber = function(){
| |
| if(!hotcat_Multi_IsEditPage) return false;
| |
| var SectionNumber = document.editform.wpSection.value;
| |
| if(SectionNumber==="") return false;
| |
| hotcat_Multi_IsSection = SectionNumber;
| |
| if(SectionNumber==="new") return true;
| |
| SectionNumber = parseInt(SectionNumber);
| |
| hotcat_Multi_IsSection = SectionNumber;
| |
| var SectionRegExp = new RegExp("[^=\\|\\{\n]*={1,6}[^=\n]+={1,6}\n", "ig");
| |
| var Sections = hotcat_OldPageContent.match(SectionRegExp);
| |
| if(Sections===null) return false;
| |
| if(Sections.length === SectionNumber) return false;
| |
| return true;
| |
| };
| |
| | |
| // CRÉATION DU LIEN "CATÉGORIES"
| |
| | |
| window.hotcat_append_firstlink = function( catline, plural) {
| |
| if(!hotcat_text_SystemMessage.pagecategorieslink||!hotcat_text_SystemMessage.categories||!hotcat_text_SystemMessage.pagecategories){
| |
| hotcat_GetMessages(false);
| |
| }
| |
| if (!catline.firstChild ){
| |
| var a = document.createElement('a');
| |
| a.href = mw.config.get('wgServer')+mw.config.get('wgArticlePath').split('$1').join(hotcat_text_SystemMessage.pagecategorieslink);
| |
| a.title = hotcat_text_SystemMessage.categories;
| |
| a.appendChild(document.createTextNode(hotcat_PLURAL(hotcat_text_SystemMessage.pagecategories, plural)));
| |
| catline.appendChild(a);
| |
| catline.appendChild(document.createTextNode(' : '));
| |
| }else{
| |
| catline.firstChild.title = hotcat_text_SystemMessage.categories;
| |
| }
| |
| };
| |
| | |
| // MODIFICATION DE LA BARRE DE CATÉGORIES
| |
| | |
| window.hotcat_modify_existing = function(catline) {
| |
| var ul = catline.getElementsByTagName("ul")[0];
| |
| if(!ul){ // ( Mediawiki < 1.18 )
| |
| var spans = catline.getElementsByTagName("span");
| |
| for(var i=0,l=spans.length;i<l;i++){
| |
| hotcat_modify_span ( spans[i], i ) ;
| |
| }
| |
| return;
| |
| }
| |
| var lis = ul.getElementsByTagName("li");
| |
| for(var i=0,l=lis.length;i<l;i++){
| |
| var li = lis[i];
| |
| var cat_link = li.getElementsByTagName('a')[0];
| |
| var span = document.createElement('span');
| |
| li.appendChild(span);
| |
| span.appendChild(cat_link);
| |
| hotcat_modify_span ( span, i ) ;
| |
| }
| |
| };
| |
| | |
| // AJOUT DES LIENS (–) ET (±)
| |
| | |
| window.hotcat_modify_span = function( span, i ) {
| |
| if(!hotcat_text_SystemMessage["red-link-title"]) hotcat_GetMessages(false);
| |
| var cat_link = span.getElementsByTagName('a')[0];
| |
| if(!cat_link) return;
| |
| cat_link.id = "CatLink_"+i;
| |
| var cat_title = cat_link.title;
| |
| if(!cat_title) return;
| |
| cat_title = cat_title.split(hotcat_CatNamespace).join('');
| |
| cat_title = cat_title.replace(hotcat_text_SystemMessage["red-link-title"].split('$1').join(''), "");
| |
| var sep1 = document.createTextNode ( " " ) ;
| |
| span.id = "hotcat_Span_" + i ;
| |
| var a1 = document.createTextNode ( "(–)" ) ;
| |
| var remove_link = document.createElement ( "a" ) ;
| |
| var remove_id = "hotcat_remove_" + i ;
| |
| remove_link.id = remove_id;
| |
| remove_link.href = "javascript:hotcat_remove(\"" + cat_title + "\","+i+");" ;
| |
| remove_link.title = hotcat_text_RemoveLinkTitle.split("$1").join(cat_title);
| |
| remove_link.appendChild ( a1 ) ;
| |
| span.appendChild ( sep1 ) ;
| |
| span.appendChild ( remove_link ) ;
| |
| 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(\""+cat_title+"\"," + i + ");" ;
| |
| modify_link.title = hotcat_text_ModifyLinkTitle.split("$1").join(cat_title);
| |
| modify_link.appendChild ( a2 ) ;
| |
| span.appendChild ( sep2 ) ;
| |
| span.appendChild ( modify_link ) ;
| |
| hotcat_SpanMatrix[i] = span;
| |
| hotcat_CatLinkMatrix[i] = cat_link;
| |
| hotcat_CatLinkIsRedMatrix[i] = !!($(cat_link).hasClass("new"));
| |
| hotcat_CatNameMatrix[i] = cat_title;
| |
| hotcat_RemoveLinkMatrix[i] = remove_link;
| |
| hotcat_ModifyLinkMatrix[i] = modify_link;
| |
| };
| |
| | |
| // AJOUT DU LIEN (+)
| |
| | |
| window.hotcat_append_add_span = function(catline) {
| |
| var Spans = catline.getElementsByTagName('span');
| |
| var span_add = document.createElement('span');
| |
| var a_add = document.createElement ( "a" ) ;
| |
| var a_text = document.createTextNode ( hotcat_text_AddLinkText ) ;
| |
| span_add.id = "hotcat_add" ;
| |
| a_add.id = "hotcat_addlink" ;
| |
| a_add.href = "javascript:hotcat_add_new("+hotcat_Form_Index+")" ;
| |
| a_add.title = hotcat_text_AddLinkTitle ;
| |
| a_add.appendChild( a_text ) ;
| |
| span_add.appendChild( a_add ) ;
| |
| if(Spans[0]) catline.appendChild(document.createTextNode(' | '));
| |
| catline.appendChild(span_add);
| |
| hotcat_SpanMatrix[hotcat_Form_Index] = span_add;
| |
| hotcat_Form_Index++;
| |
| };
| |
| | |
| ///////////////////////// ÉDITION SIMPLE ////////////////////////////////////////////////////////
| |
| | |
| // FONCTION DE RETRAIT D'UNE CATÉGORIE
| |
| | |
| window.hotcat_remove = function( cat_title, Index ) {
| |
| if(!hotcat_Multi_Edit){
| |
| var RemovedCategories = [];
| |
| var ModifiedCategories_from = [];
| |
| var ModifiedCategories_to = [];
| |
| var AddedCategories = [];
| |
| RemovedCategories.push(cat_title);
| |
| if (hotcat_SkipConfirm || confirm(hotcat_text_RemoveConfirm.split("$1").join(cat_title))){
| |
| hotcat_Edit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, hotcat_OldDefaultSort);
| |
| }
| |
| }else{
| |
| var Span = hotcat_SpanMatrix[Index];
| |
| if($(Span).hasClass("AddedCatSpan")){
| |
| Span.parentNode.removeChild(Span);
| |
| }else{
| |
| var FirstLink = hotcat_CatLinkMatrix[Index];
| |
| var OldCat = hotcat_CatNameMatrix[Index];
| |
| FirstLink.innerHTML = OldCat;
| |
| FirstLink.title = hotcat_CatNamespace+OldCat;
| |
| FirstLink.href = mw.config.get('wgServer')+mw.config.get('wgArticlePath').split('$1').join(hotcat_CatNamespace+OldCat);
| |
| $(FirstLink).addClass('RemovedCategory');
| |
| $(FirstLink).removeClass("ModifiedCategory");
| |
| if(hotcat_CatLinkIsRedMatrix[Index]){
| |
| if(!$(FirstLink).hasClass("new")) $(FirstLink).addClass("new");
| |
| }else{
| |
| $(FirstLink).removeClass("new");
| |
| }
| |
| }
| |
| hotcat_Multi_CheckForChanges();
| |
| }
| |
| };
| |
| | |
| // MODIFICATION D'UNE CATÉGORIE
| |
| | |
| window.hotcat_modify = function( catname, Index ) {
| |
| var link = hotcat_CatLinkMatrix[Index] ;
| |
| var span = hotcat_SpanMatrix[Index] ;
| |
| var Links = span.getElementsByTagName('a');
| |
| for(a=0;a<Links.length;a++){
| |
| Links[a].style.display = "none";
| |
| }
| |
| span.firstChild.style.display = "none" ;
| |
| hotcat_create_new_span ( span , catname, Index ) ;
| |
| hotcat_text_changed(Index);
| |
| };
| |
| | |
| // AJOUT D'UNE CATÉGORIE
| |
| | |
| window.hotcat_add_new = function(Index) {
| |
| var span_add = document.getElementById( "hotcat_add" ) ;
| |
| span_add.getElementsByTagName('a')[0].style.display = "none";
| |
| hotcat_create_new_span ( span_add , "", Index ) ;
| |
| };
| |
| | |
| // CRÉATION DU FORMULAIRE DE MODIFICATION OU D'AJOUT D'UNE CATÉGORIE
| |
| | |
| window.hotcat_create_new_span = function( thespan , init_text, Index ) {
| |
| var DefaultSort = hotcat_defaultSort_getOneOld(init_text);
| |
| if($(thespan).hasClass("AddedCatSpan" )) DefaultSort = hotcat_SortMatrix[Index];
| |
| hotcat_CatNameMatrix[Index] = init_text;
| |
| var form = document.createElement ( "form" ) ;
| |
| form.id = "hotcat_form" + Index;
| |
| form.method = "post" ;
| |
| form.onsubmit = function () {
| |
| var FormIndex = hotcat_getIndex(this);
| |
| hotcat_ok(FormIndex);
| |
| return false;
| |
| } ;
| |
| form.style.display = "inline" ;
| |
| var text = document.createElement ( "input" ) ;
| |
| text.size = 40 ;
| |
| text.id = "hotcat_text" + Index ;
| |
| text.type = "text" ;
| |
| text.value = init_text + DefaultSort ;
| |
| text.onkeyup = function () {
| |
| var FormIndex = hotcat_getIndex(this);
| |
| window.setTimeout("hotcat_text_changed("+FormIndex+");", hotcat_suggestion_delay );
| |
| } ;
| |
| var list = document.createElement ( "select" ) ;
| |
| list.id = "hotcat_list" + Index ;
| |
| list.style.display = "none" ;
| |
| list.onclick = function () {
| |
| var FormIndex = hotcat_getIndex(this);
| |
| hotcat_text_replace(FormIndex);
| |
| } ;
| |
| var exists = document.createElement ( "img" ) ;
| |
| exists.id = "hotcat_exists" + Index ;
| |
| exists.height = hotcat_exists_size ;
| |
| exists.width = hotcat_exists_size ;
| |
| exists.title = hotcat_text_Exists_NoTitle;
| |
| exists.src = hotcat_exists_no ;
| |
| var ParentCats = document.createElement ( "input" ) ;
| |
| ParentCats.id = "hotcat_parents" + Index ;
| |
| ParentCats.type = "button" ;
| |
| ParentCats.value = hotcat_text_ParentText ;
| |
| ParentCats.title = hotcat_text_ParentTitle ;
| |
| ParentCats.onclick = function(){
| |
| var FormIndex = hotcat_getIndex(this);
| |
| hotcat_text_changed(FormIndex, "UP");
| |
| };
| |
| var DaughterCats = document.createElement ( "input" ) ;
| |
| DaughterCats.id = "hotcat_daughters" + Index ;
| |
| DaughterCats.type = "button" ;
| |
| DaughterCats.value = hotcat_text_DaughterText ;
| |
| DaughterCats.title = hotcat_text_DaughterTitle ;
| |
| DaughterCats.onclick = function(){
| |
| var FormIndex = hotcat_getIndex(this);
| |
| hotcat_text_changed(FormIndex, "DOWN");
| |
| };
| |
| var OK = document.createElement ( "input" ) ;
| |
| OK.id = "hotcat_OK" + Index ;
| |
| OK.type = "button" ;
| |
| OK.value = hotcat_text_InputOK ;
| |
| OK.onclick = function(){
| |
| var FormIndex = hotcat_getIndex(this);
| |
| hotcat_ok(FormIndex) ;
| |
| };
| |
| var cancel = document.createElement ( "input" ) ;
| |
| cancel.id = "hotcat_cancel" + Index ;
| |
| cancel.type = "button" ;
| |
| cancel.value = hotcat_text_InputCancel ;
| |
| cancel.onclick = function(){
| |
| var FormIndex = hotcat_getIndex(this);
| |
| hotcat_cancel(FormIndex) ;
| |
| };
| |
| form.appendChild ( text ) ;
| |
| form.appendChild ( list ) ;
| |
| form.appendChild ( exists ) ;
| |
| if ( hotcat_ParentButton ) {
| |
| form.appendChild ( ParentCats ) ;
| |
| }
| |
| if ( hotcat_DaughterButton ) {
| |
| form.appendChild ( DaughterCats ) ;
| |
| }
| |
| form.appendChild ( OK ) ;
| |
| form.appendChild ( cancel ) ;
| |
| thespan.appendChild ( form ) ;
| |
| text.focus () ;
| |
| hotcat_upDate_FormPositions();
| |
| hotcat_FormMatrix[Index] = form;
| |
| hotcat_TextMatrix[Index] = text;
| |
| hotcat_ListMatrix[Index] = list;
| |
| hotcat_ExistMatrix[Index] = exists;
| |
| };
| |
| | |
| // VALIDATION DU FORMULAIRE
| |
| | |
| window.hotcat_ok = function(Index) {
| |
| var Form = hotcat_FormMatrix[Index];
| |
| var Input = hotcat_TextMatrix[Index];
| |
| var TheSpan = hotcat_SpanMatrix[Index] ;
| |
| var CatLink = hotcat_CatLinkMatrix[Index];
| |
| var IfExist = hotcat_ExistMatrix[Index];
| |
| var OldCatName = hotcat_CatNameMatrix[Index];
| |
| var OldDefaultSort = hotcat_defaultSort_getOneOld(OldCatName);
| |
| var NewCatName = Input.value.ucFirst().replace(/\|.*/, "") ;
| |
| var NewDefaultSort = Input.value.ucFirst().split(NewCatName).join("");
| |
| hotcat_SortMatrix[Index] = NewDefaultSort;
| |
| if ( NewCatName == "" ) {
| |
| hotcat_cancel(Index) ;
| |
| return ;
| |
| }
| |
| if(hotcat_Multi_Edit==false){
| |
| if((OldCatName+OldDefaultSort)==(NewCatName+NewDefaultSort)) return;
| |
| var RemovedCategories = [];
| |
| var ModifiedCategories_from = [];
| |
| var ModifiedCategories_to = [];
| |
| var AddedCategories = [];
| |
| if ( TheSpan.id != "hotcat_add" ) {
| |
| ModifiedCategories_from.push(OldCatName+OldDefaultSort);
| |
| ModifiedCategories_to.push(NewCatName+NewDefaultSort);
| |
| }else{
| |
| AddedCategories.push(NewCatName+NewDefaultSort);
| |
| }
| |
| hotcat_Edit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, hotcat_OldDefaultSort);
| |
| }else{
| |
| var Exist = (IfExist.title == hotcat_text_Exists_YesTitle);
| |
| if(TheSpan.id!="hotcat_add"){
| |
| CatLink.innerHTML = NewCatName;
| |
| CatLink.title = hotcat_CatNamespace+NewCatName;
| |
| CatLink.href = mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(hotcat_CatNamespace+NewCatName);
| |
| if((!$(CatLink).hasClass("AddedCategory"))&&(!$(CatLink).hasClass("ModifiedCategory"))) $(CatLink).addClass("ModifiedCategory");
| |
| if((OldCatName+OldDefaultSort)==(NewCatName+NewDefaultSort)){
| |
| $(CatLink).removeClass("ModifiedCategory");
| |
| }
| |
| $(CatLink).removeClass("RemovedCategory");
| |
| }else{
| |
| hotcat_NewCatsIndex++
| |
| hotcat_CatNameMatrix[hotcat_NewCatsIndex] = NewCatName;
| |
| hotcat_SortMatrix[hotcat_NewCatsIndex] = NewDefaultSort;
| |
| var NewSpan = document.createElement('span');
| |
| NewSpan.id = "hotcat_Span_"+hotcat_NewCatsIndex;
| |
| NewSpan.className = "AddedCatSpan";
| |
| CatLink = document.createElement('a');
| |
| CatLink.id = "CatLink_"+hotcat_NewCatsIndex;
| |
| CatLink.innerHTML = NewCatName;
| |
| CatLink.title = hotcat_CatNamespace+NewCatName;
| |
| CatLink.href = mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(hotcat_CatNamespace+NewCatName);
| |
| $(CatLink).addClass("AddedCategory");
| |
| var RemoveLink = document.createElement('a');
| |
| RemoveLink.innerHTML = hotcat_text_RemoveLinkText;
| |
| RemoveLink.id = "hotcat_remove_"+hotcat_NewCatsIndex;
| |
| RemoveLink.title = hotcat_text_RemoveLinkTitle.split("$1").join(NewCatName);
| |
| RemoveLink.href = "javascript:hotcat_remove(\"" + NewCatName+ "\","+hotcat_NewCatsIndex+");";
| |
| var ModifyLink = document.createElement('a');
| |
| ModifyLink.innerHTML = hotcat_text_ModifyLinkText;
| |
| ModifyLink.id = "hotcat_modify_"+hotcat_NewCatsIndex;
| |
| ModifyLink.title = hotcat_text_ModifyLinkTitle.split("$1").join(NewCatName);
| |
| ModifyLink.href = "javascript:hotcat_modify(\""+NewCatName+"\","+hotcat_NewCatsIndex+ ")";
| |
| NewSpan.appendChild(CatLink);
| |
| NewSpan.appendChild(document.createTextNode(" "));
| |
| NewSpan.appendChild(RemoveLink);
| |
| NewSpan.appendChild(document.createTextNode(" "));
| |
| NewSpan.appendChild(ModifyLink);
| |
| NewSpan.appendChild(document.createTextNode(" | "));
| |
| TheSpan.parentNode.insertBefore(NewSpan, TheSpan);
| |
| hotcat_SpanMatrix[hotcat_NewCatsIndex] = NewSpan;
| |
| hotcat_CatLinkMatrix[hotcat_NewCatsIndex] = CatLink;
| |
| hotcat_RemoveLinkMatrix[hotcat_NewCatsIndex] = RemoveLink;
| |
| hotcat_ModifyLinkMatrix.push[hotcat_NewCatsIndex] = ModifyLink;
| |
| }
| |
| if(!Exist){
| |
| $(CatLink).addClass("new");
| |
| }else{
| |
| $(CatLink).removeClass("new");
| |
| }
| |
| var Links = TheSpan.getElementsByTagName('a');
| |
| for(var a=0;a<Links.length;a++){
| |
| Links[a].style.display = "";
| |
| }
| |
| TheSpan.removeChild(Form);
| |
| hotcat_Multi_CheckForChanges();
| |
| hotcat_upDate_FormPositions();
| |
| if(TheSpan.id!="hotcat_add"){
| |
| document.getElementById("hotcat_modify_"+Index).focus();
| |
| }else{
| |
| document.getElementById("hotcat_addlink").focus();
| |
| }
| |
| }
| |
| };
| |
| | |
| // ANNULATION DU FORMULAIRE
| |
| | |
| window.hotcat_cancel = function(Index) {
| |
| var Form = hotcat_FormMatrix[Index];
| |
| var Input = hotcat_TextMatrix[Index];
| |
| var TheSpan = hotcat_SpanMatrix[Index] ;
| |
| var CatLink = hotcat_CatLinkMatrix[Index];
| |
| var IfExist = hotcat_ExistMatrix[Index];
| |
| var OldCatLink = hotcat_RemoveLinkMatrix[Index];
| |
| TheSpan.removeChild ( Form ) ;
| |
| var Links = TheSpan.getElementsByTagName('a');
| |
| for(a=0;a<Links.length;a++){
| |
| Links[a].style.display = "";
| |
| }
| |
| TheSpan.firstChild.style.display = "" ;
| |
| hotcat_Multi_CheckForChanges();
| |
| hotcat_upDate_FormPositions();
| |
| if(TheSpan.id!="hotcat_add"){
| |
| document.getElementById("hotcat_modify_"+Index).focus();
| |
| }else{
| |
| document.getElementById("hotcat_addlink").focus();
| |
| }
| |
| };
| |
| | |
| ///////////////////////// ÉDITION MULTIPLE ////////////////////////////////////////////////////////
| |
| | |
| // AJOUT DU LIEN (±)
| |
| | |
| window.hotcat_append_multiedit_span = function( CatLine ){
| |
| var FirstLink = CatLine.getElementsByTagName('a')[0];
| |
| var Span = document.createElement('span');
| |
| Span.id ='hotcat_modify_multi_span';
| |
| var Link = document.createElement('a');
| |
| Link.id = "hotcat_modify_multi_Link";
| |
| Link.innerHTML = hotcat_text_MultiLinkText;
| |
| Link.title = hotcat_text_MultiLinkTitle;
| |
| Link.href = "javascript:hotcat_multiedit_createForm();";
| |
| Span.appendChild(Link);
| |
| FirstLink.parentNode.insertBefore(Span, FirstLink.nextSibling);
| |
| FirstLink.parentNode.insertBefore(document.createTextNode(" "), FirstLink.nextSibling);
| |
| var DefaultSortSpan = document.createElement('span');
| |
| DefaultSortSpan.id ='hotcat_DefaultSort_span';
| |
| var DefaultSortLink = document.createElement('a');
| |
| DefaultSortLink.id = "hotcat_DefaultSort_Link";
| |
| DefaultSortLink.innerHTML = hotcat_text_DefaultSortText;
| |
| DefaultSortLink.title = hotcat_text_DefaultSortTitle;
| |
| DefaultSortLink.href = "javascript:hotcat_defaultSort_createForm();";
| |
| DefaultSortSpan.appendChild(DefaultSortLink);
| |
| var OldDefaultSortSpan = document.createElement('span');
| |
| OldDefaultSortSpan.style.display = "none";
| |
| OldDefaultSortSpan.id = "OldDefaultSortSpan";
| |
| DefaultSortSpan.appendChild(OldDefaultSortSpan);
| |
| Span.parentNode.insertBefore(DefaultSortSpan, Span.nextSibling);
| |
| Span.parentNode.insertBefore(document.createTextNode(" "), Span.nextSibling);
| |
| if(hotcat_AutoMulti) hotcat_multiedit_createForm();
| |
| };
| |
| | |
| // CREATION DU FORMULAIRE "MULTI"
| |
| | |
| window.hotcat_multiedit_createForm = function(){
| |
| var OldForms = document.getElementById('mw-normal-catlinks').getElementsByTagName('form');
| |
| while(OldForms[0]) OldForms[0].parentNode.removeChild(OldForms[0]);
| |
| var OldLinks = document.getElementById('mw-normal-catlinks').getElementsByTagName('a');
| |
| for(var a=0;a<OldLinks.length;a++){
| |
| OldLinks[a].style.display="";
| |
| }
| |
| for(var a=0;a<hotcat_CatLinkMatrix.length;a++){
| |
| if(!hotcat_CatLinkMatrix[a]) continue;
| |
| if(hotcat_CatLinkIsRedMatrix[a]){
| |
| if(!$(hotcat_CatLinkMatrix[a]).hasClass("new")) $(hotcat_CatLinkMatrix[a]).addClass("new");
| |
| }else{
| |
| $(hotcat_CatLinkMatrix[a]).removeClass("new");
| |
| }
| |
| }
| |
| var OldSpans = document.getElementById('mw-normal-catlinks').getElementsByTagName('span');
| |
| for(var a=0;a<OldSpans.length;a++){
| |
| if(OldSpans[a].id != 'OldDefaultSortSpan') OldSpans[a].style.display="";
| |
| }
| |
| if(!document.getElementById("hotcat_addlink")) hotcat_add_new ( document.getElementById("hotcat_add") );
| |
| var Legend = "";
| |
| if(hotcat_ShowLegend){
| |
| Legend = '<small>'
| |
| + '<a href="'+hotcat_docURL+'" title="'+hotcat_text_LabelTitle+'" target="_blank" '
| |
| + 'style="color:#002BB8;padding:0.2em;margin-left:'+(hotcat_ShowInline ? 5 :100 )+'px;">'
| |
| + ' <b>'+hotcat_text_LabelText+'</b>'
| |
| + ' <span class="RemovedCategory">'+hotcat_text_RecapRemove+'</span>'
| |
| + ' <span class="ModifiedCategory">'+hotcat_text_RecapModify+'</span>'
| |
| + ' <span class="AddedCategory">'+hotcat_text_RecapAdd+'</span>'
| |
| + '</a>'
| |
| + '</small>';
| |
| }
| |
| var BR = "";
| |
| if(!hotcat_ShowInline) BR = "<br />";
| |
| | |
| var RadioBoxes = "";
| |
| if(!hotcat_Multi_IsEditPage){
| |
| var MinorOneChecked = ( (hotcat_Minoredit==-1) ? 'checked="checked" ' : '' );
| |
| var MinorTwoChecked = ( (hotcat_Minoredit==0) ? 'checked="checked" ' : '' );
| |
| var MinorThreeChecked = ( (hotcat_Minoredit==1) ? 'checked="checked" ' : '' );
| |
| var WatchOneChecked = ( (hotcat_Watchthis==-1) ? 'checked="checked" ' : '' );
| |
| var WatchTwoChecked = ( (hotcat_Watchthis==0) ? 'checked="checked" ' : '' );
| |
| var WatchThreeChecked = ( (hotcat_Watchthis==1) ? 'checked="checked" ' : '' );
| |
| RadioBoxes = '<span id="hotcat_RadioBoxes">'
| |
| + ' <span style="border:1px dotted silver;padding:0.1em;">'
| |
| + '<input id="Minor" type="radio" name="Minor" '+MinorOneChecked+' style="cursor:pointer;" '
| |
| + 'title="'+hotcat_text_Minoredit.split("$1").join(hotcat_text_RadioDefault)+'" />'
| |
| + '<input id="Minor_0" type="radio" name="Minor" '+MinorTwoChecked+' style="cursor:pointer;" '
| |
| + 'title="'+hotcat_text_Minoredit.split("$1").join(hotcat_text_RadioNo)+'" />'
| |
| + '<input id="Minor-1" type="radio" name="Minor" '+MinorThreeChecked+' style="cursor:pointer;" '
| |
| + 'title="'+hotcat_text_Minoredit.split("$1").join(hotcat_text_RadioYes)+'" />'
| |
| + '</span> <span style="border:1px dotted silver;padding:0.1em;">'
| |
| + '<input id="Watch" type="radio" name="Watch" '+WatchOneChecked+' style="cursor:pointer;" '
| |
| + 'title="'+hotcat_text_Watchthis.split("$1").join(hotcat_text_RadioDefault)+'" />'
| |
| + '<input id="Watch0" type="radio" name="Watch" '+WatchTwoChecked+' style="cursor:pointer;" '
| |
| + 'title="'+hotcat_text_Watchthis.split("$1").join(hotcat_text_RadioNo)+'" />'
| |
| + '<input id="Watch1" type="radio" name="Watch" '+WatchThreeChecked+' style="cursor:pointer;" '
| |
| + 'title="'+hotcat_text_Watchthis.split("$1").join(hotcat_text_RadioYes)+'" />'
| |
| + '</span>'
| |
| + '</span>';
| |
| }
| |
| | |
| var Link = document.getElementById('hotcat_modify_multi_Link');
| |
| var Span = Link.parentNode;
| |
| var Form = document.createElement('form');
| |
| Form.id = "hotcat_modify_multi_form";
| |
| Form.style.display = "inline";
| |
| Form.innerHTML = ''
| |
| + Legend
| |
| + BR
| |
| + '<input id="hotcat_modify_multi_InputOK" type="button" disabled="disabled" '
| |
| + 'value="'+hotcat_text_MultiInputOK+'" '
| |
| + 'onclick="hotcat_multiedit_FormOK()" onselect="hotcat_multiedit_FormOK()" />'
| |
| + '<input id="hotcat_modify_multi_InputCancel" type="button" '
| |
| + 'value="'+hotcat_text_MultiInputCancel+'" '
| |
| + 'onclick="hotcat_multiedit_CancelForm()" onselect="hotcat_multiedit_CancelForm()" />'
| |
| + RadioBoxes
| |
| + BR;
| |
| Span.appendChild(Form);
| |
| Link.style.display = "none";
| |
| hotcat_Multi_Edit = true;
| |
| if(!hotcat_AutoMulti) document.getElementById("hotcat_modify_multi_InputCancel").focus();
| |
| };
| |
| | |
| // ANNULATION DU FORMULAIRE "MULTI" + MODIFICATION DES LIENS, FONCTIONS ET IDS DE LA BARRE DE CATÉGORIES
| |
| | |
| window.hotcat_multiedit_CancelForm = function(){
| |
| var Link = document.getElementById('hotcat_modify_multi_Link');
| |
| var Form = document.getElementById('hotcat_modify_multi_form');
| |
| if(Link) Link.style.display = "inline";
| |
| var CatForms = document.getElementById('mw-normal-catlinks').getElementsByTagName('form');
| |
| while(CatForms[0]){
| |
| CatForms[0].parentNode.removeChild(CatForms[0]);
| |
| }
| |
| var CatSpans = document.getElementById('mw-normal-catlinks').getElementsByTagName('span');
| |
| var SpanToRemove = [];
| |
| for(var a=1;a<CatSpans.length;a++){
| |
| if($(CatSpans[a]).hasClass("AddedCatSpan")) SpanToRemove.push(CatSpans[a]);
| |
| }
| |
| for(var a=0;a<SpanToRemove.length;a++){
| |
| SpanToRemove[a].parentNode.removeChild(SpanToRemove[a]);
| |
| }
| |
| var CatLinks = document.getElementById('mw-normal-catlinks').getElementsByTagName('a');
| |
| for(var a=0;a<CatLinks.length;a++){
| |
| CatLinks[a].style.display = "inline";
| |
| $(CatLinks[a]).removeClass("RemovedCategory");
| |
| if($(CatLinks[a]).hasClass("ModifiedCategory")){
| |
| var Index = hotcat_getIndex( CatLinks[a] );
| |
| var Parent = CatLinks[a].parentNode;
| |
| var OldCatName = hotcat_CatNameMatrix[Index];
| |
| var OldDefaultSort = hotcat_defaultSort_getOneOld(OldCatName);
| |
| hotcat_SortMatrix[Index] = OldDefaultSort;
| |
| CatLinks[a].innerHTML = OldCatName;
| |
| CatLinks[a].title = hotcat_CatNamespace+OldCatName;
| |
| CatLinks[a].href = mw.config.get('wgServer')+mw.config.get('wgArticlePath').split('$1').join(hotcat_CatNamespace+OldCatName);
| |
| $(CatLinks[a]).removeClass("ModifiedCategory");
| |
| }
| |
| if($(CatLinks[a]).hasClass("ModifiedDefaultSort")){
| |
| var DefaultSortSpan = document.getElementById("OldDefaultSortSpan");
| |
| DefaultSortSpan.innerHTML = hotcat_OldDefaultSort;
| |
| $(CatLinks[a]).removeClass("ModifiedDefaultSort");
| |
| }
| |
| }
| |
| for(var a=0;a<hotcat_CatLinkMatrix.length;a++){
| |
| if(!hotcat_CatLinkMatrix[a]) continue;
| |
| if(hotcat_CatLinkIsRedMatrix[a]){
| |
| if(!$(hotcat_CatLinkMatrix[a]).hasClass("new")) $(hotcat_CatLinkMatrix[a]).addClass("new");
| |
| }else{
| |
| $(hotcat_CatLinkMatrix[a]).removeClass("new");
| |
| }
| |
| }
| |
| hotcat_Multi_Edit = false;
| |
| Link.focus();
| |
| };
| |
| | |
| // VALIDATION DU FORMULAIRE "MULTI" + LISTING DES CATÉGORIES À ENLEVER/MODIFIER/AJOUTER
| |
| | |
| window.hotcat_multiedit_FormOK = function(){
| |
| var RemovedCategories = [];
| |
| var ModifiedCategories_from = [];
| |
| var ModifiedCategories_to = [];
| |
| var AddedCategories = [];
| |
| var DefaultSort = hotcat_OldDefaultSort;
| |
| var CatLinks = document.getElementById('mw-normal-catlinks').getElementsByTagName('a');
| |
| for(var a=0;a<CatLinks.length;a++){
| |
| var Link = CatLinks[a];
| |
| var Index = hotcat_getIndex( Link );
| |
| if($(Link).hasClass("RemovedCategory")){
| |
| RemovedCategories.push(Link.innerHTML.ucFirst());
| |
| }
| |
| if($(Link).hasClass("ModifiedCategory")){
| |
| var NewCatName = Link.innerHTML.ucFirst();
| |
| var OldCatName = hotcat_CatNameMatrix[Index];
| |
| var OldDefaultSort = hotcat_defaultSort_getOneOld(OldCatName);
| |
| var NewDefaultSort = hotcat_SortMatrix[Index];
| |
| if((OldCatName+OldDefaultSort)!=(NewCatName+NewDefaultSort)){
| |
| ModifiedCategories_from.push((OldCatName+OldDefaultSort));
| |
| ModifiedCategories_to.push((NewCatName+NewDefaultSort));
| |
| }
| |
| }
| |
| if($(Link).hasClass("AddedCategory")){
| |
| var NewDefaultSort = hotcat_SortMatrix[Index];
| |
| AddedCategories.push(Link.innerHTML.ucFirst()+NewDefaultSort);
| |
| }
| |
| if($(Link).hasClass("ModifiedDefaultSort")){
| |
| var DefaultSortSpan = document.getElementById("OldDefaultSortSpan");
| |
| DefaultSort = DefaultSortSpan.innerHTML;
| |
| }
| |
| }
| |
| var RadioBoxesSpan = document.getElementById("hotcat_RadioBoxes");
| |
| var RecapMinor = '';
| |
| var RecapWatch = '';
| |
| var Newhotcat_Minoredit = false;
| |
| var Newhotcat_Watchthis = false;
| |
| if(RadioBoxesSpan){
| |
| var RadioBoxes = RadioBoxesSpan.getElementsByTagName('input');
| |
| for(var a=0;a<RadioBoxes.length;a++){
| |
| if(RadioBoxes[a].type!="radio") continue;
| |
| if(!RadioBoxes[a].checked) continue;
| |
| var BoxName = RadioBoxes[a].name;
| |
| var Number = hotcat_getIndex(RadioBoxes[a]);
| |
| if(BoxName=="Minor"){
| |
| var Minor = -1;
| |
| var TextMinor = hotcat_text_RadioDefault;
| |
| if(Number==0){
| |
| Minor = Number;
| |
| TextMinor = hotcat_text_RadioNo;
| |
| }else if(Number==1){
| |
| Minor = Number;
| |
| TextMinor = hotcat_text_RadioYes;
| |
| }
| |
| Newhotcat_Minoredit = Minor;
| |
| RecapMinor += hotcat_text_Minoredit.split("$1").join(TextMinor)+ '\n';
| |
| }else if(BoxName=="Watch"){
| |
| var Watch = -1;
| |
| var TextWatch = hotcat_text_RadioDefault;
| |
| if(Number==0){
| |
| Watch = Number;
| |
| TextWatch = hotcat_text_RadioNo;
| |
| }else if(Number==1){
| |
| Watch = Number;
| |
| TextWatch = hotcat_text_RadioYes;
| |
| }
| |
| Newhotcat_Watchthis = Watch;
| |
| RecapWatch += hotcat_text_Watchthis.split("$1").join(TextWatch)+ '\n';
| |
| }
| |
| }
| |
| }
| |
| var TextrecapTitle = hotcat_text_RecapTitle+'\n\n';
| |
| var TextRecap = TextrecapTitle;
| |
| if(RemovedCategories[0]){
| |
| TextRecap += hotcat_text_RecapRemove+' :\n';
| |
| for(var a=0;a<RemovedCategories.length;a++){
| |
| TextRecap += '* « '+RemovedCategories[a]+' »\n';
| |
| }
| |
| }
| |
| if(ModifiedCategories_to[0]){
| |
| TextRecap += hotcat_text_RecapModify+' :\n';
| |
| for(var a=0;a<ModifiedCategories_to.length;a++){
| |
| TextRecap += '* « '+ModifiedCategories_from[a]+' » -> « '+ModifiedCategories_to[a]+' »\n';
| |
| }
| |
| }
| |
| if(AddedCategories[0]){
| |
| TextRecap += hotcat_text_RecapAdd+' :\n';
| |
| for(var a=0;a<AddedCategories.length;a++){
| |
| TextRecap += '* « '+AddedCategories[a]+' »\n';
| |
| }
| |
| }
| |
| if(DefaultSort!=hotcat_OldDefaultSort){
| |
| TextRecap += hotcat_text_RecapSort+' :\n';
| |
| TextRecap += '* « '+hotcat_OldDefaultSort+' » -> « '+DefaultSort+' »\n';
| |
| }
| |
| if(TextRecap == TextrecapTitle) return;
| |
| TextRecap += RecapMinor;
| |
| TextRecap += RecapWatch;
| |
| if(hotcat_SkipRecap || confirm(TextRecap)){
| |
| hotcat_Minoredit = Newhotcat_Minoredit;
| |
| hotcat_Watchthis = Newhotcat_Watchthis;
| |
| hotcat_Edit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, DefaultSort);
| |
| }
| |
| };
| |
| | |
| // VÉRIFICATION DES CHANGEMENTS EFFECTUÉS
| |
| | |
| window.hotcat_Multi_CheckForChanges = function(){
| |
| if(!hotcat_Multi_Edit) return;
| |
| var CatLinks = document.getElementById('mw-normal-catlinks').getElementsByTagName('a');
| |
| var AnythingChanged = false;
| |
| for(var a=0;a<CatLinks.length;a++){
| |
| var Link = CatLinks[a];
| |
| if(($(Link).hasClass("RemovedCategory"))||($(Link).hasClass("ModifiedCategory"))||($(Link).hasClass("AddedCategory"))||($(Link).hasClass("ModifiedDefaultSort"))){
| |
| AnythingChanged = true;
| |
| }
| |
| }
| |
| if(AnythingChanged){
| |
| document.getElementById('hotcat_modify_multi_InputOK').disabled = "";
| |
| }else{
| |
| document.getElementById('hotcat_modify_multi_InputOK').disabled = "disabled";
| |
| }
| |
| };
| |
| | |
| ///////////////////////// CLEFS DE TRI ////////////////////////////////////////////////////////
| |
| | |
| // RÉCUPÉRATION CLEF DE TRI GLOBALE
| |
| | |
| window.hotcat_defaultSort_getOld = function(ID){
| |
| var OldDefaultSpan = document.getElementById(ID);
| |
| if(!OldDefaultSpan) return;
| |
| var Page = hotcat_OldPageContent;
| |
| for(var a=0;a<hotcat_DefaultsortAliases.length;a++){
| |
| if(Page.indexOf('{{'+hotcat_DefaultsortAliases[a]+':')!=-1){
| |
| var AvantCle = Page.substring(0,Page.indexOf('{{'+hotcat_DefaultsortAliases[a]+':'));
| |
| var Cle = Page.split(AvantCle).join('');
| |
| Cle = Cle.substring(0,Cle.indexOf("}"));
| |
| Cle = Cle.substring((Cle.indexOf(":")+1),Cle.length);
| |
| hotcat_OldDefaultSort = Cle;
| |
| OldDefaultSpan.innerHTML = hotcat_OldDefaultSort;
| |
| return;
| |
| }
| |
| }
| |
| };
| |
| | |
| // RÉCUPÉRATION CLEF DE TRI PARTICULIÈRE
| |
| | |
| window.hotcat_defaultSort_getOneOld = function(TargetCategory){
| |
| var Page = hotcat_OldPageContent;
| |
| var Key = "";
| |
| var CurrentKey = "";
| |
| var REGEXP = new RegExp("(\\s*)\\[\\[ *(?:"+mw.config.get('wgFormattedNamespaces')[14]+"|Category) *: *" + TargetCategory.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + " *(\\|[^\\]]*)?\\]\\]", "gi");
| |
| var matches = Page.match(REGEXP);
| |
| if (matches != null && matches.length == 1){
| |
| CurrentKey = Page.replace(REGEXP, "DEFAULTKEYstart$2DEFAULTKEYend");
| |
| if((CurrentKey.indexOf("DEFAULTKEYstart")!=-1)&&(CurrentKey.indexOf("DEFAULTKEYend")!=-1)){
| |
| var Before = CurrentKey.split("DEFAULTKEYstart")[0]+"DEFAULTKEYstart";
| |
| var After = "DEFAULTKEYend"+CurrentKey.split("DEFAULTKEYend")[1];
| |
| CurrentKey = CurrentKey.split(Before).join("");
| |
| CurrentKey = CurrentKey.split(After).join("");
| |
| if(CurrentKey.indexOf('|')!=-1) Key = CurrentKey;
| |
| }
| |
| }
| |
| return Key;
| |
| };
| |
| | |
| // CRÉATION FORMULAIRE CLEF DE TRI GLOBALE
| |
| | |
| window.hotcat_defaultSort_createForm = function(){
| |
| hotcat_defaultSort_getOld("OldDefaultSortSpan");
| |
| var thespan = document.getElementById('hotcat_DefaultSort_span');
| |
| var OldDefaultSort = thespan.getElementsByTagName('span')[0].innerHTML;
| |
| thespan.getElementsByTagName('a')[0].style.display = "none";
| |
| var form = document.createElement ( "form" ) ;
| |
| form.id = "hotcat_form_Default";
| |
| form.method = "post" ;
| |
| form.onsubmit = function () {
| |
| hotcat_Default_ok(this) ;
| |
| return false;
| |
| } ;
| |
| form.style.display = "inline" ;
| |
| var text = document.createElement ( "input" ) ;
| |
| text.size = 40 ;
| |
| text.id = "hotcat_text_Default" ;
| |
| text.type = "text" ;
| |
| text.value = OldDefaultSort ;
| |
| var OK = document.createElement ( "input" ) ;
| |
| OK.type = "button" ;
| |
| OK.value = hotcat_text_InputOK ;
| |
| OK.onclick = function(){
| |
| hotcat_Default_ok(this.parentNode) ;
| |
| };
| |
| var cancel = document.createElement ( "input" ) ;
| |
| cancel.type = "button" ;
| |
| cancel.value = hotcat_text_InputCancel ;
| |
| cancel.onclick = function(){
| |
| var Form = this.parentNode;
| |
| hotcat_Default_Cancel(Form) ;
| |
| };
| |
| form.appendChild ( text ) ;
| |
| form.appendChild ( OK ) ;
| |
| form.appendChild ( cancel ) ;
| |
| thespan.appendChild ( form ) ;
| |
| hotcat_upDate_FormPositions();
| |
| text.focus () ;
| |
| };
| |
| | |
| // ANNULATION FORMULAIRE CLEF DE TRI GLOBALE
| |
| | |
| window.hotcat_Default_Cancel = function(Form){
| |
| var Span = Form.parentNode;
| |
| Form.parentNode.getElementsByTagName('a')[0].style.display = "";
| |
| Form.parentNode.removeChild(Form) ;
| |
| if(hotcat_Multi_Edit){
| |
| Span.getElementsByTagName('span')[0].innerHTML = hotcat_OldDefaultSort;
| |
| $(Span.getElementsByTagName('a')[0]).removeClass("ModifiedDefaultSort");
| |
| Span.getElementsByTagName('a')[0].style.display = "";
| |
| hotcat_Multi_CheckForChanges();
| |
| }
| |
| document.getElementById("hotcat_DefaultSort_Link").focus();
| |
| };
| |
| | |
| // VALIDATION FORMULAIRE CLEF DE TRI GLOBALE
| |
| | |
| window.hotcat_Default_ok = function(Form){
| |
| var Text = document.getElementById("hotcat_text_Default");
| |
| var OldDefaultSort = hotcat_OldDefaultSort;
| |
| var NewDefaultSort = Text.value;
| |
| if(!hotcat_Multi_Edit){
| |
| if(OldDefaultSort==NewDefaultSort){
| |
| hotcat_Default_Cancel(Form);
| |
| return;
| |
| }else{
| |
| var RemovedCategories = [];
| |
| var ModifiedCategories_from = [];
| |
| var ModifiedCategories_to = [];
| |
| var AddedCategories = [];
| |
| var DefaultSort = NewDefaultSort ;
| |
| hotcat_Edit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, DefaultSort);
| |
| }
| |
| }else{
| |
| if(OldDefaultSort==NewDefaultSort){
| |
| hotcat_Default_Cancel(Form);
| |
| return;
| |
| }else{
| |
| var Span = Form.parentNode;
| |
| Span.getElementsByTagName('span')[0].innerHTML = Text.value;
| |
| var Link = Span.getElementsByTagName('a')[0];
| |
| Link.style.display = "";
| |
| $(Link).addClass("ModifiedDefaultSort");
| |
| Form.parentNode.removeChild(Form) ;
| |
| hotcat_Multi_CheckForChanges();
| |
| hotcat_upDate_FormPositions();
| |
| document.getElementById("hotcat_DefaultSort_Link").focus();
| |
| }
| |
| }
| |
| };
| |
| | |
| ///////////////////////// ÉDITION ////////////////////////////////////////////////////////
| |
| | |
| window.hotcat_Edit = function(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, DefaultSort){
| |
| if(hotcat_Multi_IsEditPage){
| |
| hotcat_autocommit = false;
| |
| hotcat_DoEdit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, DefaultSort);
| |
| hotcat_multiedit_CancelForm();
| |
| return;
| |
| }
| |
| var URL = mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+encodeURIComponent(mw.config.get('wgPageName'))+'&action=edit';
| |
| hotcat_ajax.http({url : URL,
| |
| onSuccess : hotcat_TrueEdit,
| |
| removedcats : RemovedCategories,
| |
| modifiedcatsfrom : ModifiedCategories_from,
| |
| modifiedcatsto : ModifiedCategories_to,
| |
| addedcats : AddedCategories,
| |
| defaultsort : DefaultSort
| |
| });
| |
| };
| |
| | |
| window.hotcat_TrueEdit = function(Req, data){
| |
| var RemovedCategories = data.removedcats;
| |
| var ModifiedCategories_from = data.modifiedcatsfrom;
| |
| var ModifiedCategories_to = data.modifiedcatsto;
| |
| var AddedCategories = data.addedcats;
| |
| var DefaultSort = data.defaultsort;
| |
| while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
| |
| document.body.innerHTML = Req.responseText;
| |
| hotcat_DoEdit(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, DefaultSort);
| |
| };
| |
| | |
| window.hotcat_DoEdit = function(RemovedCategories, ModifiedCategories_from, ModifiedCategories_to, AddedCategories, DefaultSort){
| |
| var prevent_autocommit = 0;
| |
| if(typeof(hotcat_EditCustom)=="function") hotcat_EditCustom();
| |
| if(hotcat_autocommit)document.editform.style.display = "none";
| |
| for(var a=0,l=ModifiedCategories_to.length;a<l;a++){
| |
| ModifiedCategories_to[a] = ModifiedCategories_to[a].replace(new RegExp("^"+hotcat_CatNamespace, "ig"), "");
| |
| }
| |
| for(var a=0,l=AddedCategories.length;a<l;a++){
| |
| AddedCategories[a] = AddedCategories[a].replace(new RegExp("^"+hotcat_CatNamespace, "ig"), "");
| |
| }
| |
| var OldText = document.getElementById('wpTextbox1').value;
| |
| var summary = [];
| |
| for(var a=0;a<RemovedCategories.length;a++){
| |
| var OldCatName = RemovedCategories[a];
| |
| var OldCatNameUnsorted = OldCatName.replace(/\|.*/, "");
| |
| var REGEXP = new RegExp("(\\s*)\\[\\[ *(?:"+mw.config.get('wgFormattedNamespaces')[14]+"|Category) *: *" + OldCatName.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + " *(\\|[^\\]]*)?\\]\\]", "gi");
| |
| var matchesCatName = OldText.match(REGEXP);
| |
| if (matchesCatName != null && matchesCatName.length == 1) {
| |
| OldText = OldText.replace(REGEXP, "");
| |
| summary.push( " – [[" + hotcat_CatNamespace+OldCatNameUnsorted + "]]" ) ;
| |
| }else{
| |
| prevent_autocommit = 1;
| |
| if(matchesCatNameUnsorted == null){
| |
| alert(hotcat_text_AlertProblem1.split('$1').join(OldCatNameUnsorted));
| |
| }else if(matchesCatNameUnsorted.length > 1){
| |
| alert(hotcat_text_AlertProblem3.split('$1').join(OldCatNameUnsorted));
| |
| }
| |
| }
| |
| }
| |
| if((RemovedCategories[0])&&((ModifiedCategories_from[0])||(AddedCategories[0]))) summary.push(" |");
| |
| for(var a=0;a<ModifiedCategories_from.length;a++){
| |
| var OldCatName = ModifiedCategories_from[a];
| |
| var OldCatNameUnsorted = OldCatName.replace(/\|.*/, "");
| |
| var NewCatName = ModifiedCategories_to[a];
| |
| var NewCatNameUnsorted = NewCatName.replace(/\|.*/, "");
| |
| var REGEXP_OLD = hotcat_CreateRegExp(OldCatName);
| |
| var REGEXP_NEW = hotcat_CreateRegExp(NewCatNameUnsorted);
| |
| var matchesOldCatName = OldText.match(REGEXP_OLD);
| |
| var matchesNewCatName = OldText.match(REGEXP_NEW);
| |
| if( ((matchesNewCatName == null)||(OldCatNameUnsorted==NewCatNameUnsorted)) && matchesOldCatName != null && matchesOldCatName.length == 1) {
| |
| OldText = OldText.replace(REGEXP_OLD, "$1[[" + hotcat_CatNamespace+NewCatName + "$6]]");
| |
| summary.push ( " ± [["+hotcat_CatNamespace+OldCatNameUnsorted+"]]->[["+hotcat_CatNamespace+ NewCatNameUnsorted+"]]");
| |
| }else{
| |
| prevent_autocommit = 1;
| |
| if(matchesOldCatName == null){
| |
| alert(hotcat_text_AlertProblem1.split('$1').join(OldCatNameUnsorted));
| |
| }else if(matchesOldCatName.length > 1){
| |
| alert(hotcat_text_AlertProblem3.split('$1').join(OldCatNameUnsorted));
| |
| }else if((matchesNewCatName != null)&&(OldCatNameUnsorted!=NewCatNameUnsorted)){
| |
| alert(hotcat_text_AlertProblem2.split('$1').join(NewCatNameUnsorted));
| |
| }
| |
| }
| |
| }
| |
| if((AddedCategories[0])&&(ModifiedCategories_from[0])) summary.push(" |");
| |
| for(var a=0;a<AddedCategories.length;a++){
| |
| var NewCatName = AddedCategories[a];
| |
| var NewCatNameUnsorted = NewCatName.replace(/\|.*/, "");
| |
| var REGEXP = hotcat_CreateRegExp(NewCatNameUnsorted);
| |
| var matchesCatNameUnsorted = OldText.match(REGEXP);
| |
| if (matchesCatNameUnsorted != null){
| |
| alert(hotcat_text_AlertProblem2.split('$1').join(NewCatNameUnsorted));
| |
| prevent_autocommit = 1;
| |
| continue;
| |
| }
| |
| var re = new RegExp("\\[\\[(?:"+mw.config.get('wgFormattedNamespaces')[14]+"|Category):[^\\]]+\\]\\]", "ig")
| |
| var index = -1;
| |
| while (re.exec(OldText) != null) index = re.lastIndex;
| |
| var txt = "[[" + hotcat_CatNamespace+NewCatName + "]]" ;
| |
| if (index < 0) { // no category
| |
| var interWiki = new RegExp('^\\s*\\[\\[([a-z][a-z].?(x?-[^\\]]+)?|simple|tokipona):([^\\]]*)\\]\\]\\s*$');
| |
| var blank = new RegExp('^\\s*$');
| |
| var lines = OldText.split('\n');
| |
| var DebutModele = '';
| |
| var SuiteModele = '';
| |
| for (var lineId = lines.length - 1; lineId >= 0; --lineId){
| |
| if (!interWiki.test(lines[lineId]) && !blank.test(lines[lineId])) {
| |
| DebutModele = lines.slice(0, lineId + 1).join('\n') + '\n\n';
| |
| SuiteModele = lines.slice(lineId + 1).join('\n');
| |
| break;
| |
| }
| |
| }
| |
| if (DebutModele === '') {
| |
| // edge case: source has nothing else than interwikis
| |
| SuiteModele = OldText;
| |
| }
| |
| while(SuiteModele.indexOf('\n\n')!=-1){
| |
| SuiteModele = SuiteModele.split("\n\n").join("\n");
| |
| }
| |
| SuiteModele = SuiteModele.replace(/^\n/, "");
| |
| OldText = DebutModele + txt + '\n\n' + SuiteModele;
| |
| }else{
| |
| OldText = OldText.substring(0, index) + '\n' + txt + OldText.substring(index);
| |
| }
| |
| summary.push ( " + [[" + hotcat_CatNamespace+NewCatNameUnsorted + "]]" ) ;
| |
| }
| |
| if((DefaultSort!=hotcat_OldDefaultSort)&&(DefaultSort!="undefined")){
| |
| var NewDefaultSort = "{{DEFAULTSORT:"+DefaultSort+"}}\n";
| |
| var HasDefaultSort = null;
| |
| for(var d=0;d<hotcat_DefaultsortAliases.length;d++){
| |
| if(OldText.indexOf(hotcat_DefaultsortAliases[d])!=-1) HasDefaultSort = hotcat_DefaultsortAliases[d]+":";
| |
| }
| |
| if(HasDefaultSort!=null){
| |
| if(DefaultSort==""){
| |
| NewDefaultSort = "";
| |
| summary.push ("; – {{DEFAULTSORT:" + hotcat_OldDefaultSort +"}}") ;
| |
| }else{
| |
| summary.push ("; ± {{DEFAULTSORT:}} : " + hotcat_OldDefaultSort + " -> " + DefaultSort ) ;
| |
| }
| |
| OldText = OldText.split("{{"+HasDefaultSort+hotcat_OldDefaultSort+"}}\n").join(NewDefaultSort);
| |
| OldText = OldText.split("{{"+HasDefaultSort+hotcat_OldDefaultSort+"}}").join(NewDefaultSort);
| |
| }else if(DefaultSort!=""){
| |
| var re = new RegExp("\\[\\[(?:"+mw.config.get('wgFormattedNamespaces')[14]+"|Category):[^\\]]+\\]\\]", "ig");
| |
| var index = re.exec(OldText);
| |
| if(index ==null ) {
| |
| var interWiki = new RegExp('^\\s*\\[\\[([a-z][a-z].?(x?-[^\\]]+)?|simple|tokipona):([^\\]]*)\\]\\]\\s*$');
| |
| var blank = new RegExp('^\\s*$');
| |
| var lines = OldText.split('\n');
| |
| var DebutModele = '';
| |
| var SuiteModele = '';
| |
| for (var lineId = lines.length - 1; lineId >= 0; --lineId){
| |
| if (!interWiki.test(lines[lineId]) && !blank.test(lines[lineId])) {
| |
| DebutModele = lines.slice(0, lineId + 1).join('\n') + '\n\n';
| |
| SuiteModele = lines.slice(lineId + 1).join('\n');
| |
| break;
| |
| }
| |
| }
| |
| if (DebutModele === '') {
| |
| // edge case: source has nothing else than interwikis
| |
| SuiteModele = OldText;
| |
| }
| |
| SuiteModele = SuiteModele.replace(/^\n/, "");
| |
| OldText = DebutModele + NewDefaultSort + '\n' + SuiteModele;
| |
| }else{
| |
| var lastindex = (re.lastIndex);
| |
| var compile = re.compile(re);
| |
| var FirstCat = re.exec(OldText).toString();
| |
| FirstCat = FirstCat.replace(/\n/g, "");
| |
| var Before = OldText.substring(0, lastindex).replace(FirstCat, "");
| |
| var After = FirstCat+OldText.substring(lastindex);
| |
| OldText = Before + NewDefaultSort + After;
| |
| }
| |
| summary.push ("; + " + NewDefaultSort ) ;
| |
| }
| |
| }
| |
| var cat = new RegExp("\\[\\[(?:"+mw.config.get('wgFormattedNamespaces')[14]+"|Category):[^\\]]+\\]\\]", "ig");
| |
| var nocat1 = "{{"+hotcat_text_NoCatTemplate.ucFirst()+"}}\n";
| |
| var nocat1Bis = "{{"+hotcat_text_NoCatTemplate.lcFirst()+"}}\n";
| |
| var nocat2 = "{{"+hotcat_text_NoCatTemplate.ucFirst()+"}}";
| |
| var nocat2Bis = "{{"+hotcat_text_NoCatTemplate.lcFirst()+"}}";
| |
| if(cat.exec(OldText) != null){
| |
| OldText = OldText.split(nocat1).join("");
| |
| OldText = OldText.split(nocat1Bis).join("");
| |
| OldText = OldText.split(nocat2).join("");
| |
| OldText = OldText.split(nocat2Bis).join("");
| |
| }
| |
| document.getElementById('wpTextbox1').value = OldText;
| |
| document.getElementById('wpSummary').value = hotcat_text_ResumeScript + summary.join("");
| |
| if(!hotcat_Multi_IsEditPage){
| |
| if(hotcat_Minoredit==1) document.editform.wpMinoredit.checked = true;
| |
| if(hotcat_Minoredit==0) document.editform.wpMinoredit.checked = false;
| |
| if(hotcat_Watchthis==1) document.editform.wpWatchthis.checked = true;
| |
| if(hotcat_Watchthis==0) document.editform.wpWatchthis.checked = false;
| |
| }
| |
| if((hotcat_autocommit)&&(prevent_autocommit != 1)){
| |
| var watchthisparam = {};
| |
| watchthisparam[-1] = "nochange";
| |
| watchthisparam[ 0] = "unwatch";
| |
| watchthisparam[ 1] = "watch";
| |
| var datas = {
| |
| action : 'edit',
| |
| title : mw.config.get('wgPageName'),
| |
| text : OldText,
| |
| summary : hotcat_text_ResumeScript + summary.join(""),
| |
| watchlist : watchthisparam[hotcat_Watchthis],
| |
| token : document.editform.wpEditToken.value
| |
| };
| |
| if(document.editform.wpMinoredit.checked){
| |
| datas['minor'] = 1;
| |
| }
| |
| var hotcattag = hotcat_gettag();
| |
| if(hotcattag){
| |
| datas.summary = summary.join("");
| |
| datas.tags = hotcattag;
| |
| }
| |
| var api = new mw.Api();
| |
| api.post( datas, {'contentType':'application/x-www-form-urlencoded'} ).then( function ( data ) {
| |
| window.location.reload();
| |
| });
| |
| return;
| |
| }
| |
| if(prevent_autocommit == 1) document.editform.style.display = "";
| |
| if(hotcat_Multi_IsEditPage) hotcat_update_existing();
| |
| };
| |
| | |
| ///////////////////////// SUGGESTIONS ////////////////////////////////////////////////////////
| |
| | |
| // REQUÊTE DE SUGGESTIONS
| |
| | |
| window.hotcat_text_changed = function(FormIndex, Mode, titles, catContinue) {
| |
| if ( hotcat_suggest_running ) return ;
| |
| if(!Mode) Mode = false;
| |
| if((!FormIndex)||(FormIndex=="")) FormIndex = "0";
| |
| if(!titles) titles = [];
| |
| if(!catContinue) catContinue = "";
| |
| var text = hotcat_TextMatrix[FormIndex];
| |
| if(!text){alert('PB hotcat_text_changed () : ' + FormIndex); return; }
| |
| var v = text.value;
| |
| v = hotcat_deleteUnwantedUnicodeChars(v);
| |
| v = v.replace(new RegExp("^"+hotcat_CatNamespace, "ig"), "");
| |
| v = v.ucFirst() ;
| |
| text.value = v;
| |
| if(v.indexOf("|")!=-1) v = v.split("|")[0];
| |
| var APILimit = ( ((mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1)) ? 4999 : 499 );
| |
| if(hotcat_list_items>APILimit) hotcat_list_items = APILimit; // API max
| |
| if(Mode=="UP"){ // Suggestions catégories-mères
| |
| var URL = "/api.php?format=xml&action=query&prop=categories&titles=" + hotcat_CatNamespace+encodeURIComponent(v) + "&cllimit=" + hotcat_list_items;
| |
| var TagName = "cl";
| |
| var Replace = false;
| |
| }else if(Mode=="DOWN"){ // Suggestions catégories-filles
| |
| var URL = "/api.php?format=xml&action=query&list=categorymembers&cmnamespace=14&cmtitle=" + hotcat_CatNamespace+encodeURIComponent(v) + "&cmlimit=" + APILimit + catContinue;
| |
| var TagName = "cm";
| |
| var Replace = false;
| |
| }else{ // Suggestions normales
| |
| var URL = "/api.php?format=xml&action=query&list=allpages&apnamespace=14&apfrom=" + encodeURIComponent(v) + "&aplimit=" + hotcat_list_items;
| |
| var TagName = "p";
| |
| var Replace = true;
| |
| }
| |
| hotcat_suggest_running = 1 ;
| |
| if ( v != "" ) {
| |
| hotcat_ajax.http({url : mw.config.get('wgServer') + mw.config.get('wgScriptPath') + URL,
| |
| onSuccess : hotcat_text_changedBis,
| |
| tagname : TagName,
| |
| replacetext : Replace,
| |
| titles : titles,
| |
| formindex : FormIndex,
| |
| mode : Mode
| |
| });
| |
| }else{
| |
| hotcat_show_suggestions ( titles , FormIndex, Replace ) ;
| |
| }
| |
| };
| |
| | |
| window.hotcat_text_changedBis = function(Req, data){
| |
| var titles = data.titles;
| |
| var FormIndex = data.formindex;
| |
| var Mode = data.mode;
| |
| var TagName = data.tagname;
| |
| var Replace = data.replacetext;
| |
| var xml = Req.responseXML ;
| |
| if ( xml == null ) return ;
| |
| var pages = xml.getElementsByTagName( TagName ) ;
| |
| for ( var i = 0 ; i < pages.length ; i++ ) {
| |
| var s = pages[i].getAttribute("title");
| |
| if(s.indexOf(hotcat_CatNamespace)!=-1){
| |
| s = s.split(hotcat_CatNamespace).join('');
| |
| titles.push ( s ) ;
| |
| }
| |
| }
| |
| var CanContinue = xml.getElementsByTagName("query-continue")[0];
| |
| if(Mode=="DOWN"&&CanContinue){
| |
| CanContinueId = "&cmcontinue="+encodeURIComponent(CanContinue.firstChild.getAttribute("cmcontinue"));
| |
| hotcat_suggest_running = 0 ;
| |
| hotcat_text_changed(FormIndex, Mode, titles, CanContinueId) ;
| |
| }else{
| |
| hotcat_show_suggestions(titles, FormIndex, Replace);
| |
| }
| |
| };
| |
| | |
| // AFFICHAGE DES SUGGESTIONS
| |
| | |
| window.hotcat_show_suggestions = function( titles, FormIndex, Replace, Mode ) {
| |
| hotcat_suggest_running = 0 ;
| |
| var text = hotcat_TextMatrix[FormIndex] ;
| |
| var list = hotcat_ListMatrix[FormIndex] ;
| |
| var icon = hotcat_ExistMatrix[FormIndex] ;
| |
| if((!text)||(!list)||(!icon)) { alert('PB hotcat_show_suggestions() : ' + FormIndex); return; }
| |
| if(titles.length==0){
| |
| list.style.display = "none" ;
| |
| if(Replace){
| |
| icon.src = hotcat_exists_no ;
| |
| icon.title = hotcat_text_Exists_NoTitle ;
| |
| }
| |
| return ;
| |
| }
| |
| var TailleListe = hotcat_list_size;
| |
| if (titles.length < TailleListe ) TailleListe = titles.length;
| |
| var listh = TailleListe * 20 ;
| |
| list.size = 5 ;
| |
| list.style.align = "left" ;
| |
| list.style.zIndex = 5;
| |
| list.style.position = "relative" ;
| |
| list.style.width = text.offsetWidth + "px" ;
| |
| list.style.height = listh + "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.value = titles[i];
| |
| list.appendChild ( opt ) ;
| |
| }
| |
| if(hotcat_list_down){
| |
| list.style.top = parseInt(text.offsetHeight) + "px";
| |
| list.style.marginBottom = "-" + (listh + parseInt(text.offsetHeight)) + "px" ;
| |
| }else{
| |
| list.style.marginTop = "-" + listh + "px" ;
| |
| list.style.display = "inline" ;
| |
| $(list).position({my: "left bottom", at: "left top", collision: "none", of: $(text)});
| |
| }
| |
| list.style.marginLeft = "-" + text.offsetWidth + "px" ;
| |
| list.onkeyup = hotcat_KeypressedOnList;
| |
| list.style.display = "inline" ;
| |
| icon.title = hotcat_text_Exists_YesTitle ;
| |
| icon.src = hotcat_exists_yes ;
| |
| var first_title = titles.shift () ;
| |
| hotcat_last_v = text.value.ucFirst();
| |
| var hotcat_last_v_Split = hotcat_last_v;
| |
| if(hotcat_last_v.indexOf('|')!=-1){
| |
| hotcat_last_key = hotcat_last_v.substring(hotcat_last_v.indexOf("|"), hotcat_last_v.length);
| |
| hotcat_last_v_Split = hotcat_last_v.split(hotcat_last_key).join('');
| |
| }else{
| |
| hotcat_last_key = "";
| |
| }
| |
| if ( first_title == hotcat_last_v_Split ) return ;
| |
| if(Replace){
| |
| var suggestion = first_title;
| |
| if(suggestion.indexOf(hotcat_last_v_Split)==-1){
| |
| icon.src = hotcat_exists_no ;
| |
| icon.title = hotcat_text_Exists_NoTitle ;
| |
| return;
| |
| }
| |
| text.value = suggestion + hotcat_last_key ;
| |
| if (text.createTextRange) {
| |
| var ra = text.createTextRange();
| |
| ra.moveStart("character", hotcat_last_v.length);
| |
| ra.moveEnd("character", suggestion.length);
| |
| ra.select();
| |
| } else if( text.setSelectionRange ) {
| |
| text.setSelectionRange( hotcat_last_v.length, suggestion.length );
| |
| } else {
| |
| text.selectionStart = hotcat_last_v.length ;
| |
| text.selectionEnd = suggestion.length ;
| |
| }
| |
| }else{
| |
| list.focus();
| |
| }
| |
| };
| |
| | |
| // MISE A JOUR DE LA POSITION DES LISTES DE SUGGESTIONS
| |
| | |
| window.hotcat_upDate_FormPositions = function(){
| |
| var AllForms = document.getElementById('mw-normal-catlinks').getElementsByTagName('form');
| |
| for(var a=0;a<AllForms.length;a++){
| |
| if(AllForms[a].id == "hotcat_modify_multi_form") continue;
| |
| if(AllForms[a].id == "hotcat_form_Default") continue;
| |
| var ThisForm = AllForms[a];
| |
| var ThisSelect = ThisForm.getElementsByTagName('select')[0];
| |
| var Options = ThisSelect.getElementsByTagName('option');
| |
| var ThisInput = ThisForm.getElementsByTagName('input')[0];
| |
| var ListHeight = hotcat_list_size * 20 ;
| |
| if (Options.length < hotcat_list_size) {
| |
| ListHeight = Options.length * 20 ;
| |
| }
| |
| if(hotcat_list_down){
| |
| ThisSelect.style.top = parseInt(ThisInput.offsetHeight) + "px";
| |
| ThisSelect.style.marginBottom = "-" + (ListHeight + parseInt(ThisInput.offsetHeight)) + "px" ;
| |
| }else{
| |
| ThisSelect.style.marginTop = "-" + ListHeight + "px" ;
| |
| }
| |
| ThisSelect.style.marginLeft = "-" + ThisInput.offsetWidth + "px" ;
| |
| }
| |
| };
| |
| | |
| // SÉLECTION D'UNE SUGGESTION AU CLAVIER
| |
| | |
| window.hotcat_KeypressedOnList = function(e){
| |
| if (!e) var e = window.event;
| |
| if (e.keyCode != 13) return;
| |
| hotcat_text_replace(hotcat_getIndex(this));
| |
| };
| |
| | |
| // REMPLACEMENT DU CHAMP DE TEXTE PAR UNE SUGGESTION
| |
| | |
| window.hotcat_text_replace = function(Index){
| |
| var Text = hotcat_TextMatrix[Index];
| |
| var TextValue = Text.value;
| |
| var List = hotcat_ListMatrix[Index];
| |
| var Options = List.getElementsByTagName('option');
| |
| for(var a=0;a<Options.length;a++){
| |
| if(Options[a].selected){
| |
| var ListValue = Options[a].value;
| |
| if(TextValue.indexOf('|')!=-1){
| |
| hotcat_last_key = TextValue.substring(TextValue.indexOf("|"), TextValue.length);
| |
| }
| |
| Text.value = ListValue + hotcat_last_key;
| |
| hotcat_text_changed(Index) ;
| |
| Text.focus();
| |
| return;
| |
| }
| |
| }
| |
| };
| |
| | |
| ///////////////////////// MISE A JOUR BARRE DE CATÉGORIES ////////////////////////////////////////////////////////
| |
| | |
| window.hotcat_update_existing = function(){
| |
| var OldText = document.getElementById("wpTextbox1").value;
| |
| OldText = hotcat_update_existing_Strip(OldText);
| |
| var catRegExp = new RegExp("\\[\\[(?:"+mw.config.get('wgFormattedNamespaces')[14]+"|Category):[^\\]]+\\]\\]", "ig");
| |
| var Matches = OldText.match(catRegExp);
| |
| var Cats = [];
| |
| if(Matches != null){
| |
| for(var a=0,l=Matches.length;a<l;a++){
| |
| var ThisMatch = Matches[a];
| |
| ThisMatch = ThisMatch.replace(new RegExp("\\[\\[(" + mw.config.get('wgFormattedNamespaces')[14]+"|Category):", "ig"), "");
| |
| ThisMatch = ThisMatch.replace(new RegExp("\\]\\]", "ig"), "");
| |
| var ThisCat = ThisMatch.replace(/\|.*/g, "");
| |
| Cats.push(ThisCat);
| |
| }
| |
| }
| |
| hotcat_update_existing_Exists(Cats);
| |
| };
| |
| | |
| window.hotcat_update_existing_Strip = function(Text){
| |
| Text = hotcat_update_existing_StripTag(Text, "<nowiki[^>]*>", "</"+"nowiki>");
| |
| Text = hotcat_update_existing_StripTag(Text, "<includeonly[^>]*>", "</"+"includeonly>");
| |
| Text = hotcat_update_existing_StripTag(Text, "<pre[ ]+[^>]*>", "</"+"pre>");
| |
| Text = hotcat_update_existing_StripTag(Text, "<source[ ]+[^>]*>", "</"+"source>");
| |
| Text = hotcat_update_existing_StripTag(Text, "<syntaxhighlight[ ]*[^>]*>", "</"+"syntaxhighlight>");
| |
| Text = hotcat_update_existing_StripTag(Text, "<!--[\\-]*", "-->");
| |
| return Text;
| |
| };
| |
| | |
| window.hotcat_update_existing_StripTag = function(Text, StartTag, EndTag){
| |
| var TagRegExp = new RegExp(StartTag, "ig");
| |
| var Matches = Text.match(TagRegExp);
| |
| if(Matches!=null){
| |
| for(var a=0,l=Matches.length;a<l;a++){
| |
| var BeforeTag = Text.substring(0, Text.indexOf(Matches[a]));
| |
| var AfterTag = Text.substring(BeforeTag.length, Text.length);
| |
| if(AfterTag.indexOf(EndTag)==-1){
| |
| AfterTag = "";
| |
| }else{
| |
| AfterTag = AfterTag.substring( (AfterTag.indexOf(EndTag) + (EndTag.length)) , AfterTag.length);
| |
| }
| |
| Text = BeforeTag + AfterTag;
| |
| if(Text.match(TagRegExp)==null) break;
| |
| }
| |
| }
| |
| return Text;
| |
| };
| |
| | |
| window.hotcat_update_existing_Exists = function(Cats, NewCats){
| |
| if(!Cats[0]){
| |
| hotcat_update_existing_Update(Cats, NewCats);
| |
| return;
| |
| }
| |
| if(!NewCats) NewCats = [];
| |
| var CatTitles = [];
| |
| for(var a=0,l=Cats.length;a<l;a++){ CatTitles.push( mw.config.get('wgFormattedNamespaces')[14]+":"+encodeURIComponent(Cats[a]) ); }
| |
| var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&prop=info&titles=' + CatTitles ;
| |
| hotcat_ajax.http({url : URL,
| |
| onSuccess : hotcat_update_existing_ExistsBis,
| |
| cats : Cats,
| |
| newcats : NewCats
| |
| });
| |
| };
| |
| | |
| window.hotcat_update_existing_ExistsBis = function(Req, data){
| |
| var Cats = data.cats;
| |
| var NewCats = data.newcats;
| |
| | |
| var ObjetXML = Req.responseXML;
| |
| if(!ObjetXML){
| |
| hotcat_update_existing_Update(Cats, NewCats);
| |
| return;
| |
| }
| |
| var Pages = ObjetXML.getElementsByTagName('page');
| |
| for(var a=0,l=Pages.length;a<l;a++){
| |
| var Page = Pages[a];
| |
| var Title = Page.getAttribute("title").split(mw.config.get('wgFormattedNamespaces')[14] + ":").join("");
| |
| var Index= Cats.indexOf(Title);
| |
| if(Index==-1) continue;
| |
| var Missing = Page.getAttribute("missing");
| |
| if(Missing==""){
| |
| NewCats[Index] = true;
| |
| }else{
| |
| NewCats[Index] = false;
| |
| }
| |
| }
| |
| hotcat_update_existing_Update(Cats, NewCats);
| |
| };
| |
| | |
| window.hotcat_update_existing_Update = function(Cats, NewCats){
| |
| var CatLine = document.getElementById("mw-normal-catlinks");
| |
| var catline = document.createElement("div");
| |
| catline.id = "mw-normal-catlinks";
| |
| CatLine.parentNode.insertBefore(catline, CatLine);
| |
| var plural = (Cats.length != 1);
| |
| hotcat_append_firstlink( catline, plural);
| |
| for(var a=0,l=Cats.length;a<l;a++){
| |
| var Cat = Cats[a];
| |
| var Link = document.createElement('a');
| |
| Link.title = mw.config.get('wgFormattedNamespaces')[14] + ":" + Cat;
| |
| Link.appendChild(document.createTextNode(Cat));
| |
| Link.href = mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(mw.config.get('wgFormattedNamespaces')[14] + ":" + encodeURI(Cat));
| |
| if(NewCats[a]) Link.className = "new";
| |
| var Span = document.createElement('span');
| |
| Span.appendChild(Link);
| |
| if(a!=0) catline.appendChild(document.createTextNode(' | '));
| |
| catline.appendChild(Span);
| |
| }
| |
| var HiddenCatsLink = document.getElementById(hotcat_HiddenCatsLinkID);
| |
| if(HiddenCatsLink){
| |
| HiddenCatsLink.parentNode.removeChild(HiddenCatsLink);
| |
| catline.appendChild(document.createTextNode(' | '));
| |
| catline.appendChild(HiddenCatsLink);
| |
| }
| |
| CatLine.parentNode.removeChild(CatLine);
| |
| hotcat_modify_existing(catline);
| |
| hotcat_append_add_span(catline);
| |
| hotcat_append_multiedit_span(catline);
| |
| };
| |
| | |
| | |
| ///////////////////////// DIVERS ////////////////////////////////////////////////////////
| |
| | |
| // RÉCUPÉRATION DU N° D'INDEX
| |
| | |
| window.hotcat_getIndex = function( Element ){
| |
| return parseInt(Element.id.replace(/[^0-9]/g, ""));
| |
| };
| |
| | |
| // GESTION {{PLURAL:}} (MESSAGES SYSTÈME)
| |
| | |
| window.hotcat_PLURAL = function(Text, Plural){
| |
| var PluralRegExp = new RegExp("\\{\\{PLURAL[^\\}]+\\}\\}", "ig");
| |
| var Matches = Text.match(PluralRegExp);
| |
| if(Matches!=null){
| |
| for(var b=0,m=Matches.length;b<m;b++){
| |
| var Match = Matches[b];
| |
| var Params = Match.split('}}').join('').split('|');
| |
| var Result = "";
| |
| if(Plural){
| |
| Result = Params[2];
| |
| }else{
| |
| Result = Params[1];
| |
| }
| |
| if(!Result) Result = "";
| |
| Text = Text.replace(Match, Result);
| |
| }
| |
| }
| |
| return Text;
| |
| };
| |
| | |
| // GESTION {{GENDER:}} (MESSAGES SYSTÈME)
| |
| | |
| window.hotcat_GENDER = function(Text, Gender){
| |
| var PluralRegExp = new RegExp("\\{\\{GENDER[^\\}]+\\}\\}", "ig");
| |
| var Matches = Text.match(PluralRegExp);
| |
| if(Matches!=null){
| |
| for(var b=0,m=Matches.length;b<m;b++){
| |
| var Match = Matches[b];
| |
| var Params = Match.split('}}').join('').split('|');
| |
| var Result = "";
| |
| if(Gender=="male"){
| |
| Result = Params[1];
| |
| }else if(Gender=="female"){
| |
| Result = Params[2];
| |
| }else{
| |
| Result = Params[3];
| |
| }
| |
| if(!Result) Result = "";
| |
| Text = Text.replace(Match, Result);
| |
| }
| |
| }
| |
| return Text;
| |
| };
| |
| | |
| // PREMIÈRE LETTRE EN MAJUSCULE
| |
| | |
| String.prototype.ucFirst = function () {
| |
| return this.substr(0,1).toUpperCase() + this.substr(1,this.length);
| |
| };
| |
| | |
| // PREMIÈRE LETTRE EN MINUSCULE
| |
| | |
| String.prototype.lcFirst = function () {
| |
| return this.substr(0,1).toLowerCase() + this.substr(1,this.length);
| |
| };
| |
| | |
| window.hotcat_CreateRegExp = function(Cat){
| |
| if(hotcat_CaseSensitive){
| |
| Cat = Cat.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1");
| |
| }else{
| |
| Cat = "("+ Cat.ucFirst().replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + "|" + Cat.lcFirst().replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + ")";
| |
| }
| |
| var CatRegExp = new RegExp("(\\s*)\\[\\[( |_)*(?:"+mw.config.get('wgFormattedNamespaces')[14]+"|Category)( |_)*:( |_)*" + Cat +"( |_)*(\\|[^\\]]*)?\\]\\]", "g");
| |
| return CatRegExp;
| |
| };
| |
| | |
| // Retrait de caractères unicode indésirables
| |
| | |
| window.hotcat_deleteUnwantedUnicodeChars = function(Text){
| |
| return Text.replace(/\u200E|\u200F|\u202A|\u202B|\u202C|\u202D|\u202E/g, '');
| |
| };
| |
| | |
| ///////////////////////// LANCEMENT ////////////////////////////////////////////////////////
| |
| | |
| | |
| window.hotcat_Launch = function(){
| |
| var hotcat_CanEdit = true;
| |
| var RestrictionEdit = mw.config.get('wgRestrictionEdit');
| |
| var Groups = mw.config.get('wgUserGroups');
| |
| if(RestrictionEdit !== null && typeof(RestrictionEdit)==='object' && RestrictionEdit.length > 0){
| |
| hotcat_CanEdit = false;
| |
| if( Groups !== null && typeof(Groups)==='object'){
| |
| for(var a=0,l=RestrictionEdit.length;a<l;a++){
| |
| if(Groups.indexOf(RestrictionEdit[a])!=-1) hotcat_CanEdit = true;
| |
| }
| |
| }
| |
| }
| |
| if(!hotcat_CanEdit) return;
| |
| // Définition styles CSS
| |
| mw.loader.addStyleTag("" +
| |
| ".RemovedCategory { text-decoration:line-through;background-color:#FF9999; } " +
| |
| ".ModifiedCategory { background-color:#CCCC77; } " +
| |
| ".AddedCategory { background-color:#99FF99; } " +
| |
| ".ModifiedDefaultSort { background-color:#CCCC77; } " +
| |
| "#catlinks, #catlinks div { text-align:left !important; } " +
| |
| "#mw-normal-catlinks * { display:inline; } " +
| |
| "#catlinks option { display:block !important; } "
| |
| );
| |
| var HCMmodules = [
| |
| mw.config.get('wgServer')+mw.config.get('wgScript')+'?title=MediaWiki:Gadget-HotCatsMultiCustomEdit.js&action=raw&ctype=text/javascript'
| |
| ];
| |
| var Lang = mw.config.get('wgUserLanguage');
| |
| if(!Lang) Lang = mw.config.get('wgContentLanguage');
| |
| if(Lang && Lang !== "fr"){
| |
| HCMmodules.push('//fr.wikipedia.org/w/index.php?title=Mediawiki:Gadget-HotCatsMulti.js/i18n/'+Lang+'.js&action=raw&ctype=text/javascript');
| |
| }
| |
| // Lancement
| |
| mw.loader.implement( "HotCatsModules", HCMmodules, {}, {}, {} );
| |
| mw.loader.using(["HotCatsModules", "jquery.ui.position"], function(){ $(hotcat_getDefaultsortAliasesAndMessages); });
| |
| };
| |
| | |
| | |
| if( mw.config.get('wgNamespaceNumber') > -1 && mw.config.get('wgNamespaceNumber')%2 === 0 && document.URL.indexOf("printable=yes") == -1 && ["history","delete"].indexOf(mw.config.get('wgAction')) === -1){
| |
| hotcat_Launch();
| |
| }
| |
| | |
| //</nowiki></pre></source>
| |