Wikireporter:Rzuwig/scripts/quickek.js

Z Wikinews, wolnego źródła informacji.

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
// QuickEK script by [[:w:User:ChP94]]
 // based on quickimgdelete.js script written by [[:en:User:Howcheng]]
 // Released under the [http://www.gnu.org/licenses/gpl.txt GNU Public License (GPL)]
// <pre><nowiki>
 
var quickEkGadget = {
	version: 0,
 
	autosave: true,
 
	reasonPrompt: "Dlaczego uważasz, że ta strona powinna zostać usunięta?",
	quickEkCaption: "Ekspresowe kasowanie",
	quickEkTooltip: "Zgłoś artykuł do ekspresowego kasowania",
	quickEkSummary: "[[Kategoria:Ekspresowe kasowanko" + "|ek]]",
	quickEkTemplate: "{" + "{ek|1=$1}}\n",
	fastEkCaption: "Błyskawiczne kasowanie",
	fastEkTooltip: "Zgłoś artykuł do ekspresowego kasowania bez podawania powodu",
	fastEkSummary: "[[Kategoria:Ekspresowe kasowanko" + "|ek]]",
	fastEkTemplate: "{" + "{ek}}\n",
	ekRegex: /\{\{(?:ek|delete)/,
	errorMissingCookie: "Akcja QuickEk została przerwana, ponieważ nie odnaleziono ciasteczka z informacją potwierdzającą wykonanie operacji przez użytkownika",
 
	quickEk: function() {
		var reason = prompt(this.reasonPrompt, '');
		if ((reason) && (reason != "")) {
			var titleEncoded = encodeURIComponent(mw.config.get('wgPageName'));
			var reasonEncoded = encodeURIComponent(reason);
 
			jQuery.cookie('quickEkPage', mw.config.get('wgPageName'), { path: '/' });
			window.location.href = mw.config.get('wgScript') + '?title=' + titleEncoded + '&action=edit&quickEkAction=quickek&reason=' + reasonEncoded;
		}
	},
 
	fastEk: function() {
		var titleEncoded = encodeURIComponent(mw.config.get('wgPageName'));
		jQuery.cookie('quickEkPage', mw.config.get('wgPageName'), { path: '/' });
		window.location.href = mw.config.get('wgScript') + '?title=' + titleEncoded + '&action=edit&quickEkAction=fastek';
	},
 
	init: function() {
		if (document.getElementById('ca-edit') == null) { // not editable by non-admin
			return;
		}
 
		mw.util.addPortletLink('p-tb', 'javascript:quickEkGadget.fastEk()', this.fastEkCaption, 'fast-ek', this.fastEkTooltip);
		mw.util.addPortletLink('p-tb', 'javascript:quickEkGadget.quickEk()', this.quickEkCaption, 'quick-ek', this.quickEkTooltip);
 
		var fakeaction = mw.util.getParamValue('quickEkAction');
		if (fakeaction != null && document.editform) {
 
			// Protection against malicious links
			var quickEkPage = jQuery.cookie('quickEkPage');
			console.log(quickEkPage);
			console.log(mw.config.get('wgPageName'));
			if (quickEkPage != mw.config.get('wgPageName')) {
				alert(this.errorMissingCookie);
				return;
			}
 
			var content = document.editform.wpTextbox1.value;
			if ((content == null) || (content == "") || (content.match(this.ekRegex))) {
				return;
			}
 
			if (fakeaction == "quickek") {
				var reason = decodeURIComponent(mw.util.getParamValue('reason'));
				if( (reason == null) || (reason == "") ) {
					return;
				}
 
				content = this.quickEkTemplate.replace(/\$1/, reason) + content;
				document.editform.wpTextbox1.value = content;
				document.editform.wpSummary.value = this.quickEkSummary;
				if (this.autosave) {
					document.editform.wpSave.click();
				}
			}
			else if (fakeaction == "fastek") {
				content = this.fastEkTemplate + content;
				document.editform.wpTextbox1.value = content;
				document.editform.wpSummary.value = this.fastEkSummary;
				if (this.autosave) {
					document.editform.wpSave.click();
				}
			}
		}
	}
}
 
jQuery(document).ready(function() {
	quickEkGadget.init();
});
//</nowiki></pre>