|
|
| (26 גרסאות ביניים של 2 משתמשים אינן מוצגות) |
| שורה 1: |
שורה 1: |
| /* | | // Created by User:FlowDeluxe from frwiki and localized here. |
| Code à inclure dans le common.js depuis wikipédia.fr
| | // Documentation complète : https://www.mediawiki.org/wiki/Help:Structured_Discussions/FlowDeluxe |
| obtenir('FlowDeluxe');
| | $(function() { |
| | var flowDeluxeButtonsInline = typeof window.flowDeluxeButtonsInline !== |
| | 'undefined' ? |
| | window.flowDeluxeButtonsInline : true; |
|
| |
|
| Depuis un autre wiki
| | function indentPostWithColors() { |
| mw.loader.load("https://fr.wikipedia.org/w/index.php?title=MediaWiki:Gadget-FlowDeluxe.js&action=raw&ctype=text/javascript");
| | var posts = $('.flow-post-main'); |
| | var colored = true; |
|
| |
|
| | | for (var i = 0, len = posts.length; i < len; i++) { |
| Documentation complète : https://www.mediawiki.org/wiki/Help:Structured_Discussions/FlowDeluxe/fr
| | if (colored) |
| | | $(posts[[i]]) |
| //Options Flow Deluxe à inclure également :
| | .addClass('flow-color-indent'); |
| flowDeluxeSujetsOuverts = "#FDE18C"; //Couleur des sujets ouverts
| | else |
| flowDeluxeSujetsClos = "rgba(60, 207, 90, 0.13)"; //Couleur des sujets fermés
| | $(posts[[i]]) |
| flowDeluxeDiscuterContributions = true; //Voir en permanence les liens (discuter | contributions)
| | .removeClass('flow-color-indent'); |
| flowDeluxeDateComplete = true; //Voir en permanence les dates complètes en plus du texte "il y a X jours"
| | colored = !colored; |
| flowDeluxeBoutonsResumes = true; //Barre d'insertion rapide de modèles de résumé
| | } |
| flowDeluxeIndentationColors = true; //Indentation colorée comme dans l'ancien système de discussions
| |
| flowDeluxeNeverHide = true; //Ne jamais cacher les sujets flow, même ceux marqués comme étant résolus
| |
| flowDeluxeButtonsInline = true; //Bouttons, historique, liens du sujet en une seule ligne
| |
| */
| |
| | |
| var flowDeluxeSujetsOuverts = typeof window.flowDeluxeSujetsOuverts !== 'undefined' ? window.flowDeluxeSujetsOuverts : false;
| |
| var flowDeluxeSujetsClos = typeof window.flowDeluxeSujetsClos !== 'undefined' ? window.flowDeluxeSujetsClos : false;
| |
| var flowDeluxeDiscuterContributions = typeof window.flowDeluxeDiscuterContributions !== 'undefined' ? window.flowDeluxeDiscuterContributions : false;
| |
| var flowDeluxeDateComplete = typeof window.flowDeluxeDateComplete !== 'undefined' ? window.flowDeluxeDateComplete : false;
| |
| var flowDeluxeBoutonsResumes = typeof window.flowDeluxeBoutonsResumes !== 'undefined' ? window.flowDeluxeBoutonsResumes : false;
| |
| var flowDeluxeIndentationColors = typeof window.flowDeluxeIndentationColors !== 'undefined' ? window.flowDeluxeIndentationColors : false;
| |
| var flowDeluxeNeverHide = typeof window.flowDeluxeNeverHide !== 'undefined' ? window.flowDeluxeNeverHide : false;
| |
| var flowDeluxeButtonsInline = typeof window.flowDeluxeButtonsInline !== 'undefined' ? window.flowDeluxeButtonsInline : false;
| |
| | |
| var resumesPredefinis = [{
| |
| libelle:'Répondu',
| |
| modele:'Répondu'
| |
| },{
| |
| libelle:'Lu',
| |
| modele:'Lu'
| |
| },{
| |
| libelle:'Fait',
| |
| modele:'Fait.'
| |
| },{
| |
| libelle:'Ok',
| |
| modele:'Ok'
| |
| },{
| |
| libelle:'En attente réponse',
| |
| modele:'En attente d\'une réponse'
| |
| },{
| |
| libelle:'Publication',
| |
| modele:'Publication'
| |
| },{
| |
| libelle:'FDN autre avis', | |
| modele:'Forum des nouveaux autre avis'
| |
| },{
| |
| libelle:'FDN hors-sujet',
| |
| modele:'Forum des nouveaux hors-sujet'
| |
| },{
| |
| libelle:'FDN en attente',
| |
| modele:'Forum des nouveaux en attente'
| |
| },{
| |
| libelle:'FDN en cours',
| |
| modele:'Forum des nouveaux en cours'
| |
| } | | } |
| ];
| |
|
| |
|
| function changeTitleColor(coll, color){ | | function buttonsInline() { |
| var element;
| | var elements = $('.flow-list'); |
| for(var i=0, len=coll.length; i<len; i++) {
| |
| element = coll[[i]];
| |
| for(var j=0, lenj=element.children.length; j<lenj; j++){
| |
| if (element.children[j] && element.children[j].className === "flow-topic-titlebar")
| |
| element.children[j].style["background-color"] = color;
| |
| }
| |
| }
| |
| }
| |
|
| |
|
| function showTexte(elements){
| | for (var i = 0, len = elements.length; i < len - 1; i++) { |
| for(var i=0, len=elements.length; i<len; i++){
| | if (elements[i].className.indexOf('moved-flow-list') < 0 && |
| elements[i].style.opacity = 1;
| | elements[i].innerHTML.indexOf('flow-ui-summarize-topic-link') > 0) { |
| }
| | var parentItem = elements[i].parentElement; |
| }
| | var grandParentItem = parentItem.parentElement; |
| | grandParentItem.insertBefore(elements[i], null); |
| | elements[i].className = elements[i].className + ' moved-flow-list'; |
| | elements[i].style.fontSize = '13px'; |
|
| |
|
| function showCompleteDate(elements){
| | var sections = $(elements[i]) |
| $(".flow-topic-meta").removeClass("flow-timestamp");
| | .find('section'); |
| $(".flow-timestamp-user-formatted, .flow-timestamp-ago").css('display', 'inline');
| | for (var j = 0; j < sections.length; j++) |
| | sections[j].style.display = 'inline'; |
|
| |
|
| $('.flow-timestamp-user-formatted').text(function(i, oldText) {
| | var li = $(elements[i]) |
| return oldText.indexOf(" • ") < 0 ? oldText + ' • ' : oldText;
| | .find('li'); |
| });
| | for (j = 0; j < li.length; j++) { |
| } | | li[j].style.display = 'inline'; |
| | $(li[j]) |
| | .find('a')[0].style.paddingLeft = '10px'; |
| | $(li[j]) |
| | .find('a')[0].style.paddingRight = '0'; |
| | } |
|
| |
|
| function ajouterResume(texte,parent){
| | parentItem.remove(); |
| var zones = parent.getElementsByTagName("textarea");
| | } |
| | |
| if(zones.length) {
| |
| if (zones[0]) {
| |
| zones[0].value += "{{"+texte+"}}"; | |
| } | | } |
| } else {
| |
| insertContent([{
| |
| type: 'mwTransclusionBlock',
| |
| attributes: {
| |
| mw: {
| |
| parts: [
| |
| {
| |
| template: {
| |
| target: {
| |
| href: wgFormattedNamespaces[10] + ':' + texte,
| |
| wt: texte
| |
| },
| |
| params: { }
| |
| }
| |
| }
| |
| ]
| |
| }
| |
| }
| |
| }]);
| |
| } | | } |
| }
| |
|
| |
|
| function lienBar(resume,parent) {
| | function applyChanges() { |
| var li = document.createElement('li');
| | indentPostWithColors(); |
| var a = document.createElement('a');
| | if (flowDeluxeButtonsInline) |
|
| | buttonsInline(); |
| a.innerHTML = resume.libelle;
| | setTimeout(applyChanges, 2000); |
| a.setAttribute("title", "Ajouter ce modèle au résumé de la discussion");
| |
| a.style.cursor = "pointer";
| |
|
| |
| a.addEventListener("click", function(event) {
| |
| ajouterResume(resume.modele,parent);
| |
| });
| |
|
| |
| li.appendChild(a);
| |
|
| |
| return li; | |
| }
| |
| | |
| function addBoutonsResumes() { | |
| var resumes = document.getElementsByClassName('flow-ui-editTopicSummaryWidget');
| |
| | |
| for(var i=0, len=resumes.length; i<len; i++) {
| |
| var element = resumes[i];
| |
| if(element.firstChild && element.firstChild.className != 'FlowDeluxeResume') {
| |
| var bouttonBar = document.createElement('div');
| |
| bouttonBar.innerHTML = "Résumés prédéfinis :";
| |
| bouttonBar.className = "FlowDeluxeResume";
| |
|
| |
| var ul = document.createElement('ul');
| |
| ul.className = 'liste-horizontale';
| |
| ul.style.display = 'inline';
| |
| ul.style.marginLeft = '3px';
| |
|
| |
| for(var index in resumesPredefinis) {
| |
| var li = lienBar(resumesPredefinis[index],element);
| |
| ul.appendChild(li);
| |
| }
| |
|
| |
| bouttonBar.appendChild(ul);
| |
|
| |
| element.insertBefore(bouttonBar, element.firstChild);
| |
| }
| |
| } | | } |
| }
| |
|
| |
| function insertContent (content, annotate) {
| |
| var offset, newRange, range = {
| |
| start : 0
| |
| };
| |
|
| |
| var surfaceModel = ve.init.target.getSurface().getModel();
| |
| var collapse = surfaceModel.getFragment().collapseToEnd();
| |
| var doc = collapse.getDocument();
| |
|
| |
| offset = range.start;
| |
|
| |
| if (content.length) {
| |
| tx = ve.dm.Transaction.newFromInsertion(doc, offset, content);
| |
| newRange = tx.getModifiedRange();
| |
| collapse.change(tx, newRange ? new ve.dm.LinearSelection(doc,newRange) : new ve.dm.NullSelection(doc));
| |
| }
| |
| return this;
| |
| }
| |
|
| |
|
| |
| function switchColor(color) {
| |
| if (color == '#f5faff')
| |
| return 'white';
| |
| else
| |
| return '#f5faff';
| |
| }
| |
|
| |
| function indentPostWithColors() {
| |
| var posts = document.getElementsByClassName('flow-post-main');
| |
| var element;
| |
| var color;
| |
|
| |
| for(var i=0, len=posts.length; i<len; i++) {
| |
| element = posts[[i]];
| |
| color = switchColor(color);
| |
| element.style.backgroundColor = color;
| |
| //element.style.padding = "5px";
| |
| }
| |
| }
| |
|
| |
| function neverHide() {
| |
| $(".flow-post").show();
| |
| }
| |
|
| |
| function buttonsInline() {
| |
| var elements = document.getElementsByClassName('flow-list');
| |
|
| |
| for(var i=0, len=elements.length; i<len-1; i++) {
| |
| if(elements[i].className.indexOf("moved-flow-list") < 0 && elements[i].innerHTML.indexOf("Historique") > 0 ) {
| |
| var parentItem = elements[i].parentElement;
| |
| var grandParentItem = elements[i].parentElement.parentElement;
| |
| grandParentItem.insertBefore(elements[i],null);
| |
| elements[i].className = elements[i].className + " moved-flow-list";
| |
| elements[i].style.fontSize= "13px";
| |
|
| |
| var sections = elements[i].getElementsByTagName( "section" );
| |
| for(var j=0; j<sections.length; j++) {
| |
| sections[j].style.display="inline";
| |
| }
| |
|
| |
| var li = elements[i].getElementsByTagName( "li" );
| |
| for(j=0; j<li.length; j++) {
| |
| li[j].style.display="inline";
| |
| li[j].getElementsByTagName("a")[0].style.paddingLeft="10px";
| |
| li[j].getElementsByTagName("a")[0].style.paddingRight="0";
| |
| }
| |
|
| |
| parentItem.remove();
| |
| }
| |
| }
| |
| }
| |
|
| |
| function applyChanges() {
| |
| var sujets = $('.flow-topic:not(.flow-topic-moderatestate-lock)');
| |
| var sujetsLocked = document.getElementsByClassName('flow-topic-moderatestate-lock');
| |
| var usersDiscuterContribs = document.getElementsByClassName('mw-usertoollinks');
| |
| var datesSujets = document.getElementsByClassName('flow-timestamp');
| |
|
| |
| if(flowDeluxeSujetsOuverts)
| |
| changeTitleColor(sujets, flowDeluxeSujetsOuverts);
| |
| if(flowDeluxeSujetsClos)
| |
| changeTitleColor(sujetsLocked, flowDeluxeSujetsClos);
| |
| if(flowDeluxeDiscuterContributions)
| |
| showTexte(usersDiscuterContribs);
| |
| if(flowDeluxeDateComplete)
| |
| showCompleteDate(datesSujets);
| |
| if(flowDeluxeBoutonsResumes)
| |
| //addBoutonsResumes();
| |
| if(flowDeluxeIndentationColors)
| |
| indentPostWithColors();
| |
| if(flowDeluxeNeverHide)
| |
| neverHide();
| |
| if(flowDeluxeButtonsInline)
| |
| buttonsInline();
| |
|
| |
| setTimeout(applyChanges,2000); /* rappel toutes les 2 secondes (TODO: voir si on ne peut pas mieux gérer le cas du chargement des sujets les plus anciens)*/
| |
| }
| |
|
| |
|
| /*
| | if ($('.flow-component') |
| * Activation du gadget
| | .length) |
| */
| | applyChanges(); |
| if (document.getElementsByClassName('flow-component').length) { | | }); |
| applyChanges();
| |
| } | |