Přeskočit na obsah

MediaWiki:Gadget-summaryButtons.js

Z Wikipedie, otevřené encyklopedie
(rozdíl) ← Starší revize | zobrazit aktuální verzi (rozdíl) | Novější revize → (rozdíl)

Poznámka: Po uložení musíte vyprázdnit mezipaměť vašeho prohlížeče, jinak změny neuvidíte.

/**
 * [cs] Tlačítka shrnutí
 * 
 * Udělátko pod polem pro shrnutí editace na editační stránce zobrazí tlačítka, která do něj vkládají běžné úkony.
 * 
 * Převzato částečně z [[:he:מדיה_ויקי:Gadget-Summarieslist.js|hewiki]] a částečně ze [[:sk:MediaWiki:Gadget-edit-summaries.js|skwiki]].
 * 
 * [en] Summary buttons
 * 
 * Gadget adds buttons under a summary field on an edit page, which inserts into the field usual tasks.
 * 
 * Partially taken from [[:he:מדיה_ויקי:Gadget-Summarieslist.js|hewiki]] and [[:sk:MediaWiki:Gadget-edit-summaries.js|skwiki]].
 */
jQuery(function($) {
	var installed = false;

	function installSummary($summaryBox, smallArea) {
		if (installed) return;
		installed = true;

		function addSummary() {
			var summary = $(this).data('summary');
			var text = summary.text;
			var sum = $summaryBox,
				curr = sum.val();
			var comma = curr.length > 0 && curr.charAt(curr.length - 2) != "/";
			sum.val(curr + (comma ? ', ' : '') + text).trigger('input');
			$("#wpMinoredit").prop('checked', summary.minor || $.inArray(text, minorSummaries) + 1);
		}

		var summaries = window.summaries || [];
		summaries = summaries.concat([ // button sets
			/* format:
			"set",
			{"text": "both button text and summary text", "title": "button title when mouse is over"},
			*/
			"malé",
			{"text": "překlepy", "title": "Oprava překlepů"},
			{"text": "odkazy", "title": "Úprava odkazů na jiné články Wikipedie"},
			{"text": "kategorie", "title": "Úprava kategorií"},
			{"text": "externí odkazy", "title": "Úprava externích odkazů"},
			"běžné",
			{"text": "pravopis", "title": "Oprava pravopisu"},
			{"text": "gramatika", "title": "Oprava gramatiky"},
			{"text": "typografie", "title": "Oprava typografie"},
			{"text": "formulace", "title": "Úprava formulace"},
			{"text": "aktualizace", "title": "Aktualizace údajů"},
			{"text": "rozšíření", "title": "Rozšíření článku"},
			"technické",
			{"text": "obrázek", "title": "Přidání, změna, smazání obrázku"},
			{"text": "infobox", "title": "Vložení/úprava infoboxu"},
			{"text": "šablona", "title": "Vložení šablony"}
		]);
		if (mw.config.get('wgNamespaceNumber') % 2 == 1 || mw.config.get('wgNamespaceNumber') == 4) {
			summaries = summaries.concat([ // button sets for talk pages
				"diskuse",
				{"text": "odpověď", "title": "Odpověď"},
				{"text": "návrh", "title": "Návrh"},
				{"text": "dotaz", "title": "Dotaz"}
			]);
		}
		var minorSummaries = ["překlepy", "odkazy", "kategorie", "externí odkazy"]; // buttons automatically checking minor editation checkbox
		var div = $("<div>", {
				id: "summariesList"
			})
			.css({ // gadget appearance
				width: (smallArea ? "100%" : "65%"),
				padding: "2px",
				fontSize: "85%",
				lineHeight: "18px"
			});

		for (var i = 0; i < summaries.length; i++) {
			var summary = summaries[i];
			var summaryButton = $('<span>').css({
				marginLeft: '0.4em',
				whiteSpace: 'nowrap'
			}).data({
				summary: summary
			});
			if (typeof summary == "string") {
				div.append(smallArea ? '<br>' : ' '); // allow text wrap here
				summaryButton.text(summary + ':');
			} else {
				summaryButton.html('&nbsp' + summary.text + '&nbsp')
					.addClass('clickable-edit-summary')
					.attr('title', summary.title || '')
					.css({ // buttons appearance
						'background-color': '#f9f9f9',
						border: 'dotted 1px #708090',
						cursor: 'pointer'
					})
					.click(addSummary);
				if (smallArea) div.append(' ');
			}
			div.append(summaryButton);
		}

		$summaryBox.after(div);
	}

	if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) + 1) { // for source editor
		installSummary($('.editOptions #wpSummary'), false);
	}

	mw.hook('ve.saveDialog.stateChanged').add(function() { // for VisualEditor
		var target = ve.init.target;
		var $summaryBox = target.saveDialog.$body.find('.ve-ui-mwSaveDialog-summary textarea');
		installSummary($summaryBox, true);
	});

});