MediaWiki:Gadget-stockText.js

Матеріал з Вікіджерел

Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.

  • Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
  • Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
  • Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
  • Opera: натисніть Ctrl-F5
/*
 * 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 ($.cookie('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, 'Змінити модель', '');
			html += stockText.add_button_row( stockText.ui_icon_pdf, '//tools.wmflabs.org/wsexport/tool/book.php?lang=uk&format=pdf-a5&page=' + mw.config.get('wgPageName'), true, 'Завантажити у PDF', 'Завантажити роботу у форматі 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, '//tools.wmflabs.org/wsexport/tool/book.php?lang=uk&format=epub&fonts=' + police.attr('data-wsexport-police') + '&page=' + mw.config.get('wgPageName'), true, 'Завантажити у ePub', 'Завантажити роботу у форматі ePub');
					html += stockText.add_button_row( stockText.ui_icon_mobi, '//tools.wmflabs.org/wsexport/tool/book.php?lang=uk&format=mobi&fonts=' + police.attr('data-wsexport-police') + '&page=' + mw.config.get('wgPageName'), true, 'MOBI', 'Завантажити роботу у форматі format MOBI');
				} else {
					html += stockText.add_button_row( stockText.ui_icon_epub, '//tools.wmflabs.org/wsexport/tool/book.php?lang=uk&format=epub&page=' + mw.config.get('wgPageName'), true, 'ePub', 'Завантажити роботу у форматі ePub');
					html += stockText.add_button_row( stockText.ui_icon_mobi, '//tools.wmflabs.org/wsexport/tool/book.php?lang=uk&format=mobi&page=' + mw.config.get('wgPageName'), true, 'MOBI', 'Завантажити роботу у форматі MOBI');
				}
			}
			html += stockText.add_button_row( stockText.ui_icon_imprimer, '/w/index.php?title=' + mw.config.get('wgPageName') + '&printable=yes', true, 'Версія для друку', 'Версія для друку сторінки');
			if ($("#ws-title, .ws-title").length !== 0 ) {
				html += stockText.add_button_row( stockText.ui_icon_citer, "call_citer", false, 'Цитувати текст', 'Цитувати текст у різних форматах');
			}

			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 () {
				$.cookie('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="#">Відкрийте панель інструментів</a></div>');
			$enable.click(function (){
				$.cookie('stockTextDisabled', null, {
					path: '/'
				});
				$('#stockText_openlink').remove();
				stockText.init();
			});
			$("#top").append($enable);
		},
 
		call_maquette: function () {
			self.toggle_layout();
			$("li#stockText_call_maquette a").attr('title', 'Ви можете використовувати модель ' + (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) );