Benutzer:Codeispoetry/rollback.js

aus Wikipedia, der freien Enzyklopädie

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
/*global addOnloadHook, displayBoxPage, SimpleUI, DOM, UserCfg, copySlotsRecursively*/
var Rollback = {
	revurl: '',
	preSummary: '',

	replaceLink: function () {
		if(typeof DOM === 'undefined') {
			mw.log.error('DOM global is undefined');
			return;
		}
		var linkspan =  DOM.fetch(document, 'span', 'mw-rollback-link', 0);

		if (linkspan === null) {
			return;
		}

		var link = linkspan.getElementsByTagName('a')[0];

		Rollback.revurl = link.getAttribute('href');
		link.onclick = Rollback.promptSummary;
		link.setAttribute('href', '#');
	},

	promptSummary: function() {
		var caption = 'Begründung angeben';
		if (Rollback.preSummary.length > 0) {
			caption += ' („' + Rollback.preSummary + '“ wird automatisch vorangestellt)';
		}
		caption += ':';
		SimpleUI.InputBox([ [ caption, 'wpRollbackSummary', '60', '200', '' ] ],
			[ ['Zurücksetzen', Rollback.execute] ],
			'rollback');
	},

	execute: function () {
		
		if(typeof DOM === 'undefined') {
			mw.log.error('DOM global is undefined');
			return;
		}
		var summary = DOM.get('wpRollbackSummary').value;

		if (summary.length === 0) {
			SimpleUI.Box('Änderung wird mit der Standardbegründung zurückgesetzt …', 'rollback');
			displayBoxPage(Rollback.revurl);
		} else {
			summary = Rollback.preSummary + summary;
			SimpleUI.Box('Änderung wird mit der Begründung „' + summary + '“ zurückgesetzt …', 'rollback');
			displayBoxPage(Rollback.revurl + '&summary=' + encodeURIComponent(summary));
		}
	}
};

if (typeof UserCfg === 'object' && typeof UserCfg.Rollback === 'object') {
	copySlotsRecursively(Rollback, UserCfg.Rollback);
}

$(Rollback.replaceLink);