Utilisateur:Efly/Script/AddTweet.js
Apparence
(Redirigé depuis Utilisateur:Eflyjason/Script/AddTweet.js)
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./**
* Add an "add tweet" link to [[Projet:Aide_et_accueil/Twitter/Tweets]]
*
* @author [[User:eflyjason]]
*/
/* globals mw, OO, $ */
if (mw.config.get('wgPageName') === 'Projet:Aide_et_accueil/Twitter/Tweets' && mw.config.get('wgAction') === 'view') {
$(function ($) {
$('.mw-headline').each(function (index, headline) {
var $parent = $(headline).parent('h2');
if (!$parent.length) {
return;
}
// use the href property (which is an absolute URL), not the attribute
var editSectionUrl = $parent.find('.mw-editsection').find('a').first().prop('href');
if (!editSectionUrl) {
return;
}
var sectionRaw = new URL(editSectionUrl).searchParams.get('section');
if (!sectionRaw || sectionRaw.indexOf('T') > -1) {
return;
}
var section = parseInt(sectionRaw);
var h2Title = headline.textContent;
$parent.append('<div style="font-size:0.6em; font-weight:bold; float:right"> | <a id="addTweetLink' + section + '" href="#' + headline.id + '" class="addTweetLink">' + 'add tweet' + '</a></div>');
$parent.find('a.addTweetLink').click(function (e) {
e.preventDefault();
var aHrefEle = this;
mw.loader.using(['mediawiki.api', 'oojs-ui-core'], function () {
var textInputText = new OO.ui.TextInputWidget({
label: 'Texte',
placeholder: '',
required: true
});
var textInputMedia = new OO.ui.TextInputWidget({
label: 'Média',
placeholder: ''
});
var button = new OO.ui.ButtonWidget({
label: 'Add Tweet',
icon: 'check'
});
button.on('click', function () {
if (textInputText.value === '') {
alert("Text should not be empty!");
return;
}
popup.toggle(false);
$("#addTweetLink" + section).text('adding tweet...');
var api = new mw.Api();
api.postWithToken('edit', {
action: 'edit',
title: mw.config.get('wgPageName'),
section: section,
summary: "/* " + h2Title + " */ Ajout d'un tweet ([[Utilisateur:eflyjason/Script/AddTweet.js]])",
appendtext: '\n\n' +
'{{Proposition tweet\n' +
'|texte=' + textInputText.value + '\n' +
'|média=' + textInputMedia.value + '\n' +
'|proposé par=~~' + '~~\n' + // to prevent auto conversion of signature in script
'|validé par=\n' +
'|publié par=\n' +
'}}',
}).done(function(data) {
mw.notify("Tweet added!", {
type: 'success'
});
api.post({
action: 'purge',
forcelinkupdate: '1',
titles: mw.config.get('wgPageName'),
}).done(function(data) {
location.reload();
});
}).fail(function(code, result) {
mw.notify("Problème de réseau, rechargez la page et réessayez.", {
type: 'error'
});
});
});
var popupWindow = $('<div>')
.attr('id', 'addtweetdiv')
.append(textInputText.$element)
.append(textInputMedia.$element)
.append(button.$element);
var popup = new OO.ui.PopupWidget({
$content: popupWindow,
padded: true,
width: 600,
head: true
});
popup.$element.css('z-index', '9999999');
$(aHrefEle).parent().append(popup.$element);
popup.toggle(true);
});
});
});
});
}