MediaWiki:Gadget-summaryButtons.js

Z Enviwiki
Skočit na navigaci Skočit na vyhledávání

Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.

  • Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
  • Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
  • Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
  • Opera: Stiskněte Ctrl-F5.
/**
 * [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($) {

	function installSummary($summaryBox, $insertBefore, visualEditor) {
		var notFirstSet = false;

		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');
			if (visualEditor){
				$(".ve-ui-mwSaveDialog-checkboxes input:first").prop('checked', summary.minor || $.inArray(text, minorSummaries) + 1);
			} else {
				$("#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: (visualEditor ? "" : "80%"),
				marginBottom: (visualEditor ? "" : "1em"),
				padding: (visualEditor ? ".7em .7em 0 .7em" : ""),
				marginRight: (visualEditor ? "3.25em" : ""),
				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") {
				if (notFirstSet){
					div.append(visualEditor ? '<br>' : ' '); // allow text wrap here
				}
				notFirstSet = true;
				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 (visualEditor) div.append(' ');
			}
			div.append(summaryButton);
		}

		$insertBefore.before(div);
	}

	jQuery.getScript("https://cdn.rawgit.com/adampietrasiak/jquery.initialize/master/jquery.initialize.js").done(function() {
		$(".wikiEditor-ui").initialize( function(){ // for source editor
			if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) + 1) {
				installSummary($('.editOptions #wpSummary'), $('.editOptions #wpSummaryLabel ~ .editCheckboxes'), false);
			}
		});

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

});