Jump to content

User:GryffindorD/EasySummary.js

From Meta, a Wikimedia project coordination wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* by [[en:w:User:BrandonXLF/EasySummary]] */

$(function() {
	function addLinks(label, field) {
		function updateField(storage) {
			return function() {
				var summary = $.trim(field.val()) || '';
				field.val((summary && summary + ' ' || '') + mw.storage.get(storage));
			};
		}

		function saveField(storage) {
			return function() {
				mw.storage.set(storage, field.val());
			};
		}

		function makeLink(object, title, onClick) {
			return $('<a>').text(object).attr('title', title).on('click', function(e) {
				e.preventDefault();
				onClick();
			});
		}

		if (! $('#easySummary-container')[0]) {
			var $last = makeLink('Ultimo', 'Utilizzare l/ultimo riepilogo di modifica digitato', updateField('easySummary-last')),
				$load = makeLink('Carica', 'Carica il riepilogo modifiche salvato', updateField('easySummary-saved')),
				$save = makeLink('Salva', 'Salvare un riepilogo di modifica per un utilizzo successivo', saveField('easySummary-saved'));
			label.append($('<span>').attr('id', 'easySummary-container').append(' ( ', $last, ' | ', $load, ' | ', $save, ' )'));
			field.on('change', saveField('easySummary-last'));
		}
	}

	addLinks($('[for=\'wpSummary\']'), $('#wpSummary'));

	mw.hook('ve.saveDialog.stateChanged').add(function() {
		addLinks(ve.init.target.saveDialog.$editSummaryLabel, ve.init.target.saveDialog.editSummaryInput.$input);
	});
});