MediaWiki:Gadget-stockText.js

Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
/*
 * stockText
 * A lot of code is taken from version 35 of commons.wikimedia.org/wiki/MediaWiki:Gadget-stockText.js by [[User:Magnus Manske]] and [[User:Krinkle]]
 *
 * @author [[User:Tpt]]
 * @license Multi-licensed under CC-BY 3.0, GFDL, MIT
 *
 * @todo improved UI
 */
( function ( $, mw ) {
 
if (
	window.stockText === undefined
	&& ( mw.config.get( 'skin' ) === 'vector' || mw.config.get( 'skin' ) === 'monobook' )
	&& mw.config.get( 'wgNamespaceNumber' ) === 0
	&& $.inArray( mw.config.get( 'wgAction' ), ['view', 'purge'] ) !== -1
	&& $(".ws-disambiguation").length === 0 
) {
 
	var stockText = {
		// Misc
		ui_icon_maquette: '//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Document-properties.svg/20px-Document-properties.svg.png',
		ui_icon_epub: '//upload.wikimedia.org/wikipedia/commons/thumb/d/d5/EPUB_silk_icon.svg/20px-EPUB_silk_icon.svg.png',
		ui_icon_pdf: '//upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Document-pdf.svg/20px-Document-pdf.svg.png',
		ui_icon_mobi: '//upload.wikimedia.org/wikipedia/commons/thumb/a/ae/Mobi_icon.svg/20px-Mobi_icon.svg.png',
		ui_icon_imprimer: '//upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Document-print.svg/20px-Document-print.svg.png',
		ui_icon_citer: '//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Cquote1_sh2.svg/20px-Cquote1_sh2.svg.png',
		ui_icon_remove: '//upload.wikimedia.org/wikipedia/commons/thumb/7/75/Gnome-colors-window-close.svg/20px-Gnome-colors-window-close.svg.png',
 
		init: function () {
			var $enable, has_information, img_width, img_height, xoff, yoff, html;
 
			if ( window.stockText_prevent !== undefined ) {
				return;
			}
			if (mw.cookie.get('stockTextDisabled')) {
				stockText.add_open_link();
				return;
			}
 
			$('#stockText_base').remove();
 
			// Initialize values
			html = '<ul id="stockText_base" class="noprint ws-noexport">';

			html += stockText.add_button_row( stockText.ui_icon_maquette, "call_maquette", false, 'Changer la maquette', '');
			html += stockText.add_button_row( stockText.ui_icon_pdf, '//wsexport.wmflabs.org/?lang=fr&format=pdf-a5&page=' + mw.config.get('wgPageName'), true, 'Télécharger en PDF', 'Télécharger le livre au format PDF');
			if($.inArray("Bon pour export", mw.config.get('wgCategories')) >= 0 ) {
				var police = $('.wsexport-police');
				if(police.length !== 0 && police.attr('data-wsexport-police') !== undefined) {
					html += stockText.add_button_row( stockText.ui_icon_epub, '//wsexport.wmflabs.org/?lang=fr&format=epub&fonts=' + police.attr('data-wsexport-police') + '&page=' + mw.config.get('wgPageName'), true, 'Télécharger en ePub', 'Télécharger le livre au format ePub');
					html += stockText.add_button_row( stockText.ui_icon_mobi, '//wsexport.wmflabs.org/?lang=fr&format=mobi&fonts=' + police.attr('data-wsexport-police') + '&page=' + mw.config.get('wgPageName'), true, 'MOBI', 'Télécharger le livre au format MOBI');
				} else {
					html += stockText.add_button_row( stockText.ui_icon_epub, '//wsexport.wmflabs.org/?lang=fr&format=epub&page=' + mw.config.get('wgPageName'), true, 'ePub', 'Télécharger le livre au format ePub');
					html += stockText.add_button_row( stockText.ui_icon_mobi, '//wsexport.wmflabs.org/?lang=fr&format=mobi&page=' + mw.config.get('wgPageName'), true, 'MOBI', 'Télécharger le livre au format MOBI');
				}
			}
			html += stockText.add_button_row( stockText.ui_icon_imprimer, '/w/index.php?title=' + mw.config.get('wgPageName') + '&printable=yes', true, 'Version imprimable', 'Version imprimable de la page');
			if ($("#ws-title, .ws-title").length !== 0 ) {
				html += stockText.add_button_row( stockText.ui_icon_citer, "call_citer", false, 'Citer le texte', 'Citer le texte dans différents formats');
			}

			html += '<a title="Cacher cette barre d’outils" id="stockText_remove"><img src="' + stockText.ui_icon_remove + '" /></a>';
			html += "</ul>";
			$("#top").before(html); //TODO improve
			$('#stockText_remove').click(function () {
				mw.cookie.set('stockTextDisabled', true, {
					expires: 60,
					path: '/'
				});
				$('#stockText_base').remove();
				stockText.add_open_link();
			});
 
 			$('#stockText_base .stockText_buttonrow_icon').fadeTo('fast', 0.7);
			$('#stockText_base li')
				.hover(function () {
					$(this).find('.stockText_buttonrow_icon').fadeTo('fast', 1);
				}, function () {
					$(this).find('.stockText_buttonrow_icon').fadeTo('fast', 0.7);
				});
		},
 
		add_button_row: function (icon_url, fkt, isUrl, title, desc) {
			var imgid, a, ret;
 
			imgid = 'stockText_icon_' + fkt;
			if(isUrl) {
				a = '<a rel="nofollow" href="' + fkt + '" title="' + desc + '">';
			} else {
				a = '<a href="#" title="' + desc + '" onclick="stockText.' + fkt + '(); return false;">';
			}

			ret = "<li id='stockText_" + fkt + "' style='display: inline;'>";
			ret += a;
			ret += "<span class='stockText_buttonrow_icon'><img id='" + imgid + "' src='" + icon_url + "' /></span>";
			ret += " <span class='stockText_buttonrow_text'>" + title + "</span> ";
			ret += "</a></li>";
			return ret;
		},
 
		add_open_link: function () {
			$enable = $('<div id="stockText_openlink"><a href="#">Ouvrir la barre d’outils</a></div>');
			$enable.click(function (){
				mw.cookie.set('stockTextDisabled', null, {
					path: '/'
				});
				$('#stockText_openlink').remove();
				stockText.init();
			});
			$("#top").append($enable);
		},
 
		call_maquette: function () {
			self.toggle_layout();
			$("li#stockText_call_maquette a").attr('title', 'Vous utilisez la maquette ' + (self.layout_num + 1) );
		},
 
		call_citer: function () {
			if( $('div#citeBox').length === 0) {
				$.getScript('//fr.wikisource.org/w/index.php?title=MediaWiki:Wikisource.citeBox.js&action=raw&ctype=text/javascript', function() {
					ws.citeBox.open();
				});
			} else {
				ws.citeBox.open();
			}
		} 
	};
 
	/* Expose globally */
	window.stockText = stockText;
 
	$(document).ready( stockText.init );
}
}( jQuery, mediaWiki) );