MediaViki:Gadget-Adiutor-AFD-Helper.js — Vikipediya

MediaViki:Gadget-Adiutor-AFD-Helper.js

Qeyd: Dəyişiklikləri yayımladıqdan sonra etdiyiniz dəyişikliklərin görünməsi üçün brauzerinizin keşinin təmizlənməsi lazım ola bilər.

  • Firefox / Safari: Reload düyməsinə basılı tutarkən Shift düyməsinə basın, və ya Ctrl+F5 və ya Ctrl+R (Mac üçün ⌘-R )
  • Google Chrome: Ctrl-Shift-R (Mac üçün ⌘-Shift-R)
  • Edge: Ctrl düyməsini basılı tutarkən Refresh düyməsinə basın, və ya sadəcə Ctrl+F5.
/*
 * Adiutor: Adiutor enables versatile editing options and modules to assist a variety of user actions to enhance the Wikipedia editing experience.
 * Author: Vikipolimer
 * Learn more at: https://meta.wikimedia.org/wiki/Adiutor
 * Licensing and Attribution: Licensed under Creative Commons Attribution-ShareAlike 4.0 International ()
 * Module: AfD Helper
 */
/* <nowiki> */
// Get essential configuration from MediaWiki
var mwConfig = mw.config.get(["skin", "wgAction", "wgArticleId", "wgPageName", "wgNamespaceNumber", "wgTitle", "wgUserGroups", "wgUserName", "wgUserEditCount", "wgUserRegistration", "wgCanonicalNamespace"]);
var api = new mw.Api();
var adiutorUserOptions = JSON.parse(mw.user.options.get('userjs-adiutor'));
var subPageRegex = /(Silinməyə_namizəd_səhifələr\/)/;
var isSubPage = subPageRegex.test(mwConfig.wgPageName);
var afdButtons, previewWikitext, firstMonthOfDateString, firstDateMatch, opinionTemplate, nominationPage, purePageName, pageName, header_warn;
if(mwConfig.wgUserGroups.includes("sysop")) {
	if(isSubPage) {
		afdButtons = new OO.ui.ButtonGroupWidget({
			items: [new OO.ui.ButtonWidget({
				icon: 'speechBubbleAdd',
				label: 'Görüş',
				invisibleLabel: true,
				title: 'Görüş Bildir',
				classes: ['afd-helper-button']
			}), new OO.ui.ButtonWidget({
				icon: 'editLock',
				invisibleLabel: true,
				classes: ['afd-closer-button']
			})],
			classes: ['afd-helper-button-group']
		});
	} else {
		afdButtons = new OO.ui.ButtonGroupWidget({
			items: [new OO.ui.ButtonWidget({
				icon: 'eye',
				label: 'Namizədlik',
				invisibleLabel: true,
				classes: ['afd-helper-visit-button']
			}), new OO.ui.ButtonWidget({
				icon: 'speechBubbleAdd',
				label: 'Görüş',
				invisibleLabel: true,
				title: 'Görüş Bildir',
				classes: ['afd-helper-button']
			}), new OO.ui.ButtonWidget({
				icon: 'editLock',
				invisibleLabel: true,
				classes: ['afd-closer-button']
			})],
			classes: ['afd-helper-button-group']
		});
	}
} else {
	if(isSubPage) {
		afdButtons = new OO.ui.ButtonGroupWidget({
			items: [new OO.ui.ButtonWidget({
				icon: 'speechBubbleAdd',
				label: 'Görüş',
				invisibleLabel: true,
				title: 'Görüş Bildir',
				classes: ['afd-helper-button']
			})],
			classes: ['afd-helper-button-group']
		});
	} else {
		afdButtons = new OO.ui.ButtonGroupWidget({
			items: [new OO.ui.ButtonWidget({
				icon: 'eye',
				label: 'Namizədlik',
				invisibleLabel: true,
				classes: ['afd-helper-visit-button']
			}), new OO.ui.ButtonWidget({
				icon: 'speechBubbleAdd',
				label: 'Fikir',
				invisibleLabel: true,
				title: 'Fikir bildir',
				classes: ['afd-helper-button']
			}), ],
			classes: ['afd-helper-button-group']
		});
	}
}
$('.afd-helper-button').each(function(index) {
	this.id = "opinion" + (index + 1);
});
$('.afd-helper-button').children().each(function(index) {
	this.id = "opinion" + (index + 1);
});
$('.afd-helper-visit-button').each(function(index) {
	this.id = "opinion" + (index + 1);
});
$('.afd-helper-visit-button').children().each(function(index) {
	this.id = "opinion" + (index + 1);
});
$('.mw-headline').append(afdButtons.$element);
$(".afd-helper-button").children().click(function() {
	pageName = $(this).parent().parent().parent()[0].innerText.replace('Görüş', '').replace('Namizədlik', '');
	purePageName = pageName.replace($(this).parent().parent().parent()[0], '').replace('Görüş', '');
	PageTitleElement = $(this).parent().parent().parent().parent()[0].lastElementChild;
	nominationPage = clearURLfromOrigin(PageTitleElement.querySelector(".mw-editsection a").getAttribute('href'));
	afdOpinionDialog(purePageName, adiutorUserOptions);
});
$(".afd-closer-button").children().click(function() {
	pageName = $(this).parent().parent().parent()[0].innerText.replace('Görüş', '').replace('Namizədlik', '');
	purePageName = pageName.replace($(this).parent().parent().parent()[0], '').replace('Görüş', '');
	PageTitleElement = $(this).parent().parent().parent().parent()[0].lastElementChild;
	nominationPage = clearURLfromOrigin(PageTitleElement.querySelector(".mw-editsection a").getAttribute('href'));
	var pageContentWithDate;
	if(isSubPage) {
		pageContentWithDate = $(this).parent().parent().parent().parent().parent()[0].innerText;
		discussionText = $(this).parent().parent().parent().parent().parent()[0].innerText;
		firstDateMatch = /\d{1,2} ([a-zA-ZğüşıöçəİIĞÜŞÖÇƏ]*) \d{4}/i.exec(discussionText);
		firstMonthOfDateString = firstDateMatch && firstDateMatch[1];
	} else {
		pageContentWithDate = $(this).parent().parent().parent().parent().next()[0].innerText;
		discussionText = $(this).parent().parent().parent().parent().next().next()[0].innerText;
		firstDateMatch = /\d{1,2} ([a-zA-ZğüşıöçəİIĞÜŞÖÇƏ]*) \d{4}/i.exec(discussionText);
		firstMonthOfDateString = firstDateMatch && firstDateMatch[1];
	}
	var timeExpired = pageContentWithDate.includes("Tartışma için öngörülen süre dolmuştur");
	afdCloserDialog(purePageName, timeExpired);
});
$(".afd-helper-visit-button").children().click(function() {
	PageTitleElement = $(this).parent().parent().parent().parent()[0].lastElementChild;
	nominationPage = clearURLfromOrigin(PageTitleElement.querySelector(".mw-editsection a").getAttribute('href'));
	window.location = '/wiki/' + nominationPage;
});
//var boxes = document.getElementsByClassName('mw-parser-output');
//var headings = boxes[0].getElementsByTagName('h2');
//len = headings !== null ? headings.length : 0, i = 0;
//for (var i; i < len; i++) {
//    headings[i].className += " hide-non-opinion";
//}
//$(".hide-non-opinion .afd-helper-button-group").hide();
$(".ext-discussiontools-init-section .afd-helper-button-group").hide();
$(".xfd-closed .afd-helper-button-group").hide();

function afdOpinionDialog(purePageName, adiutorUserOptions) {
	var InputFilled = false;
	console.log(InputFilled);
	var rationaleInput = new OO.ui.MultilineTextInputWidget({
		placeholder: 'Zəhmət olmasa, bu namizədlik üçün fikir bildirin',
		indicator: 'required',
		notices: ['Bu sahə məcburidir və boş buraxıla bilməz.'],
		classes: ['afd-helper-comment-textarea']
	});
	rationaleInput.on('change', function() {
		console.log(rationaleInput.value);
		if(rationaleInput.value != "") {
			InputFilled = false;
			console.log(InputFilled);
		} else {
			InputFilled = true;
			console.log(InputFilled);
		}
	});
	log_it = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({
		selected: adiutorUserOptions.articlesForDeletion.afdNominateOpinionsLog
	}), {
		align: 'inline',
		label: 'Şərhimi qeyd dəftərimə əlavə et\u200e',
		help: 'Bu seçim aktivləşdirildikdə istifadəçi səhifənizdə alt səhifə yaradılacaq və SNS səhifəsində bildirdiyiniz fikirlər orada yerləşdiriləcəkdir.\u200e'
	});
	var header_warn = new OO.ui.MessageWidget({
		type: 'notice',
		inline: true,
		label: new OO.ui.HtmlSnippet('Silinməyə namizəd səhifələr səsvermə yeri deyil!<br><small>Burada qərarlar fikir sayına görə deyil, prinsip və qaydalara əsasən verilir.</small>')
	});
	var page_url = '<a href="'.concat(purePageName.trim(), '" target="_blank">').concat(purePageName.trim(), "</a>");
	var page_link = page_url.replace(/&lt;(\/?pre\s?\/?)&gt;/g, " ");
	var page_name = new OO.ui.MessageWidget({
		type: 'notice',
		icon: 'article',
		label: '',
		classes: ['afd-helper-page-name']
	});

	function opinionDialog(config, buttonSelect) {
		opinionDialog.super.call(this, config, buttonSelect);
	}
	OO.inheritClass(opinionDialog, OO.ui.ProcessDialog);
	opinionDialog.static.title = 'Adiutor (Beta) – SNS-də fikir bildirmə';
	opinionDialog.static.name = 'opinionDialog';
	opinionDialog.static.actions = [{
		action: 'continue',
		modes: 'edit,preview',
		label: 'Əlavə et',
		disabled: InputFilled,
		icon: 'add',
		flags: ['primary', 'progressive']
	}, {
		action: 'about',
		modes: 'edit,preview',
		label: 'Haqqında',
		icon: 'infoFilled'
	}, {
		modes: 'edit',
		label: 'İmtina',
		flags: 'safe',
		icon: 'close'
	}, {
		action: 'back',
		modes: 'about,preview',
		label: 'Geriyə',
		flags: 'safe'
	}, {
		action: 'preview',
		modes: 'edit,preview',
		label: 'Sınaq göstərişi',
		icon: 'eye',
		align: 'right'
	}];
	opinionDialog.prototype.initialize = function() {
		opinionDialog.super.prototype.initialize.apply(this, arguments);
		buttonSelect = new OO.ui.ButtonSelectWidget({
			items: [new OO.ui.ButtonOptionWidget({
				id: 1,
				data: 1,
				label: 'Qalsın',
				title: 'Qalsın',
				classes: ['afd-opinion-select-btn']
			}), new OO.ui.ButtonOptionWidget({
				id: 2,
				data: 2,
				label: 'Sürətli qalsın',
				title: 'Sürətli qalsın',
				classes: ['afd-opinion-select-btn']
			}), new OO.ui.ButtonOptionWidget({
				id: 3,
				data: 3,
				label: 'Silinsin',
				title: 'Silinsin',
				classes: ['afd-opinion-select-btn']
			}), new OO.ui.ButtonOptionWidget({
				id: 4,
				data: 4,
				label: 'Sürətli silinsin',
				title: 'Sürətli silinsin',
				classes: ['afd-opinion-select-btn']
			}), new OO.ui.ButtonOptionWidget({
				id: 5,
				data: 5,
				label: 'Birləşdirilsin',
				title: 'Birləşdirilsin',
				classes: ['afd-opinion-select-btn']
			}), new OO.ui.ButtonOptionWidget({
				id: 6,
				data: 6,
				label: 'Köçürülsün',
				title: 'Köçürülsün',
				classes: ['afd-opinion-select-btn']
			}), new OO.ui.ButtonOptionWidget({
				id: 8,
				data: 8,
				label: 'Bitərəf',
				title: 'Bitərəf',
				classes: ['afd-opinion-select-btn']
			}), new OO.ui.ButtonOptionWidget({
				id: 9,
				data: 9,
				icon: 'speechBubble',
				invisibleLabel: true,
				title: 'Sadəcə şərh',
				classes: ['afd-opinion-select-btn']
			}), ],
			classes: ['afd-opinion-select-btn-group']
		});
		buttonSelect.on('select', (function() {
			mw.storage.session.set('selectedOpinion', buttonSelect.findSelectedItem().data);
			switch(buttonSelect.findSelectedItem().data) {
				case 1:
					opinionTemplate = '* {{Qalsın}}';
					break;
				case 2:
					opinionTemplate = '* {{Sürətli qalsın}}';
					break;
				case 3:
					opinionTemplate = '* {{Silinsin}}';
					break;
				case 4:
					opinionTemplate = '* {{Sürətli silinsin}}';
					break;
				case 5:
					opinionTemplate = '* {{Birləşdirilsin}}';
					break;
				case 6:
					opinionTemplate = '* {{Köçürülsün}}';
					break;
				case 8:
					opinionTemplate = '* {{Bitərəf}}';
					break;
				case 9:
					opinionTemplate = '* {{Şərh}}';
					break;
			}
			previewWikitext = opinionTemplate + ' ' + rationaleInput.value + ' ~~~~';
		}));
		this.panel1 = new OO.ui.PanelLayout({
			padded: true,
			expanded: false
		});
		this.panel1.$element.append(header_warn.$element, page_name.$element, '</br>', buttonSelect.$element, '</br>', rationaleInput.$element, log_it.$element);
		this.panel2 = new OO.ui.PanelLayout({
			padded: true,
			expanded: false
		});
		this.panel2.$element.append('<p><strong>Adiutor</strong> istifadəçilərə Vikipediyada texniki işləri yerinə yetirmək üçün müxtəlif əməliyyatları avtomatlaşdıran alətdir. Xəta hesabatları və funksiya təklifləri daxil olmaqla, alət haqqında bütün rəylərinizi müzakirə səhifəsində bildirə bilərsiniz.</p><h2>Lisenziya</h2><p>Bu qadcet ilk olaraq Türkcə Vikipediyada MediaWiki:Gadget-Adiutor.js adı ilə yayınlanmışdır. Creative Commons Attribution-ShareAlike 3.0 Unported License (CC BY-SA 3.0) və GNU Free Documentation License (GFDL) lisenziyalarına malikdir.</p>');
		rationaleInput.on('change', function() {
			previewWikitext = opinionTemplate + ' ' + rationaleInput.value + ' ~~~~';
			console.log(previewWikitext);
		});
		this.stackLayout = new OO.ui.StackLayout({
			items: [this.panel1, this.panel2]
		});
		this.$body.append(this.stackLayout.$element);
	};
	opinionDialog.prototype.getSetupProcess = function(data) {
		return opinionDialog.super.prototype.getSetupProcess.call(this, data).next(function() {
			this.actions.setMode('edit');
		}, this);
	};
	opinionDialog.prototype.getActionProcess = function(action) {
		if(action === 'about') {
			this.actions.setMode('about');
			this.stackLayout.setItem(this.panel2);
		} else if(action === 'back') {
			this.actions.setMode('edit');
			this.stackLayout.setItem(this.panel1);
		} else if(action === 'continue') {
			var dialog = this;
			return new OO.ui.Process(function() {
				if(rationaleInput.value != "") {
					addOpinion(purePageName, rationaleInput, adiutorUserOptions);
					dialog.close();
				} else {
					alertDialog("Fikir bildirin!", "Silinməyə namizəd səhifələr səsvermə yeri deyil!<br><small>Burada qərarlar fikir sayına görə deyil, prinsip və qaydalara əsasən verilir.");
				}
			});
		}
		if(action === 'preview') {
			api.get({
				action: 'parse',
				text: previewWikitext,
				disablelimitreport: 1,
				disabletidy: 1,
				prop: 'text',
				format: "json"
			}).done(function(data) {
				function WikiPreviewDialog(config) {
					WikiPreviewDialog.super.call(this, config);
				}
				OO.inheritClass(WikiPreviewDialog, OO.ui.ProcessDialog);
				WikiPreviewDialog.static.name = 'WikiPreviewDialog';
				WikiPreviewDialog.static.title = 'Önizleme';
				WikiPreviewDialog.static.actions = [{
					action: 'save',
					modes: 'edit,preview',
					label: 'Əlavə et',
					disabled: InputFilled,
					icon: 'add',
					flags: ['primary', 'progressive']
				}, {
					label: 'Kapat',
					flags: 'safe'
				}];
				WikiPreviewDialog.prototype.initialize = function() {
					WikiPreviewDialog.super.prototype.initialize.apply(this, arguments);
					this.content = new OO.ui.PanelLayout({
						padded: true,
						expanded: false
					});
					this.content.$element.html(data.parse.text['*']);
					this.$body.append(this.content.$element);
				};
				WikiPreviewDialog.prototype.getActionProcess = function(action) {
					var dialog = this;
					if(action) {
						return new OO.ui.Process(function() {
							addOpinion(purePageName, rationaleInput, adiutorUserOptions);
							dialog.close({
								action: action
							});
						});
					}
					return WikiPreviewDialog.super.prototype.getActionProcess.call(this, action);
				};
				var windowManager = new OO.ui.WindowManager();
				$(document.body).append(windowManager.$element);
				var dialog = new WikiPreviewDialog({
					size: 'full',
				});
				windowManager.addWindows([dialog]);
				windowManager.openWindow(dialog);
			});
		}
		return opinionDialog.super.prototype.getActionProcess.call(this, action);
	};
	opinionDialog.prototype.getBodyHeight = function() {
		//return this.panel1.$element.outerHeight(true);
		return Math.max(this.panel1.$element.outerHeight(true), 320);
	};
	var windowManager = new OO.ui.WindowManager();
	$(document.body).append(windowManager.$element);
	var dialog = new opinionDialog({
		size: 'large',
		classes: ['afd-helper-window']
	});
	windowManager.addWindows([dialog]);
	windowManager.openWindow(dialog);
	$('.afd-helper-page-name').children().next().append(page_link);
}

function afdCloserDialog(purePageName, timeExpired) {
	if(timeExpired) {
		header_warn = new OO.ui.MessageWidget({
			type: 'notice',
			inline: true,
			label: new OO.ui.HtmlSnippet('Mürakirə yekunlaşdırılır<br><small>Hazırda müzakirəni yekunlaşdırsınız. Zəhmət olmasa, səbəb göstərərək müzakirəni yekunlaşdırın.</small>')
		});
	} else {
		header_warn = new OO.ui.MessageWidget({
			type: 'error',
			inline: true,
			label: new OO.ui.HtmlSnippet('Müzakirənin vaxtı hələ bitməyib!<br><small>Bu müzakirənin vaxtı hələ tamam olmayıb. Müzakirəni yekunlaşdırarkən bunu nəzərə alın.</small>')
		});
	}
	var page_url = '<a href="wiki/'.concat(purePageName.trim(), '" target="_blank">').concat(purePageName.trim(), "</a>");
	var page_link = page_url.replace(/&lt;(\/?pre\s?\/?)&gt;/g, " ");
	var page_name = new OO.ui.MessageWidget({
		type: 'notice',
		icon: 'article',
		label: '',
		classes: ['afd-helper-page-name']
	});
	var rationaleInput = new OO.ui.MultilineTextInputWidget({
		placeholder: 'Yekunlaşdırma səbəbini bura daxil edin',
		indicator: 'required',
		notices: ['Bu sahə məcburidir və boş buraxıla bilməz.'],
		classes: ['afd-helper-comment-textarea']
	});
	rationaleInput.on('change', function() {
		console.log(rationaleInput.value);
	});

	function closerDialog(config) {
		closerDialog.super.call(this, config);
	}
	OO.inheritClass(closerDialog, OO.ui.ProcessDialog);
	closerDialog.static.title = 'Adiutor (Beta) – SNS müzakirəsinin yekunlaşdırılması';
	closerDialog.static.name = 'closerDialog';
	closerDialog.static.actions = [{
		action: 'close',
		modes: 'edit,preview',
		label: 'Yekunlaşdır',
		icon: 'lock',
		flags: ['primary', 'progressive']
	}, {
		action: 'about',
		modes: 'edit,preview',
		label: 'Haqqında',
		icon: 'infoFilled'
	}, {
		modes: 'edit',
		label: 'İmtina',
		flags: 'safe',
		icon: 'close'
	}, {
		action: 'back',
		modes: 'about,preview',
		label: 'Geriyə',
		flags: 'safe'
	}, ];
	closerDialog.prototype.initialize = function() {
		closerDialog.super.prototype.initialize.apply(this, arguments);
		buttonSelect = new OO.ui.ButtonSelectWidget({
			items: [new OO.ui.ButtonOptionWidget({
					id: 1,
					data: 1,
					label: 'Qalsın',
					title: 'Qalsın',
					classes: ['afd-result-select-btn']
				}),
				new OO.ui.ButtonOptionWidget({
					id: 2,
					data: 2,
					label: 'Sürətli qalsın',
					title: 'Sürətli qalsın',
					classes: ['afd-result-select-btn']
				}),
				new OO.ui.ButtonOptionWidget({
					id: 3,
					data: 3,
					label: 'Silinsin',
					title: 'Silinsin',
					classes: ['afd-result-select-btn']
				}),
				new OO.ui.ButtonOptionWidget({
					id: 4,
					data: 4,
					label: 'Sürətli silinsin',
					title: 'Sürətli silinsin',
					classes: ['afd-result-select-btn']
				}),
				new OO.ui.ButtonOptionWidget({
					id: 5,
					data: 5,
					label: 'Birləşdirilsin',
					title: 'Birləşdirilsin',
					classes: ['afd-result-select-btn']
				}),
				new OO.ui.ButtonOptionWidget({
					id: 6,
					data: 6,
					label: 'Köçürülsün',
					title: 'Köçürülsün',
					classes: ['afd-result-select-btn']
				}),
				new OO.ui.ButtonOptionWidget({
					id: 8,
					data: 8,
					label: 'Bitərəf',
					title: 'Bitərəf',
					classes: ['afd-result-select-btn']
				}),
				new OO.ui.ButtonOptionWidget({
					id: 9,
					data: 9,
					label: 'Xüsusi',
					title: 'Xüsusi',
					classes: ['afd-result-select-btn']
				}),
			],
			classes: ['afd-result-select-btn-group']
		});
		buttonSelect.on('select', function() {
			var selectedOptionData = buttonSelect.findSelectedItem().data;
			// Check if the selected option requires showing titleInput
			if(selectedOptionData === 5 || selectedOptionData === 6 || selectedOptionData === 7) {
				titleInput.$element.show(); // Show the titleInput element
			} else {
				titleInput.$element.hide(); // Hide the titleInput element
			}
			// Store the selected option's data in mw.storage
			mw.storage.session.set('selectedCloseDesicion', selectedOptionData);
		});
		var actionOption = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({
			selected: true
		}), {
			align: 'inline',
			label: 'Səhifəni yekunda avtomatik sil\u200e',
			help: 'Bu seçim aktivləşdirildikdə namizəd göstərilən səhifə avtomatik silinəcəkdir.\u200e'
		});
		titleInput = new OO.ui.TextInputWidget({
			'label': 'Birləşdiriləcək səhifə:',
		});
		this.panel1 = new OO.ui.PanelLayout({
			padded: true,
			expanded: false
		});
		this.panel1.$element.append(header_warn.$element, page_name.$element, '</br>', buttonSelect.$element, '</br>', rationaleInput.$element, actionOption.$element, titleInput.$element);
		this.panel2 = new OO.ui.PanelLayout({
			padded: true,
			expanded: false
		});
		this.panel2.$element.append('<p><strong>Adiutor</strong> istifadəçilərə Vikipediyada texniki işləri yerinə yetirmək üçün müxtəlif əməliyyatları avtomatlaşdıran alətdir. Xəta hesabatları və funksiya təklifləri daxil olmaqla, alət haqqında bütün rəylərinizi müzakirə səhifəsində bildirə bilərsiniz.</p><h2>Lisenziya</h2><p>Bu qadcet ilk olaraq Türkcə Vikipediyada MediaWiki:Gadget-Adiutor.js adı ilə yayınlanmışdır. Creative Commons Attribution-ShareAlike 3.0 Unported License (CC BY-SA 3.0) və GNU Free Documentation License (GFDL) lisenziyalarına malikdir.</p>');
		this.stackLayout = new OO.ui.StackLayout({
			items: [this.panel1, this.panel2]
		});
		titleInput.$element.hide();
		this.$body.append(this.stackLayout.$element);
	};
	closerDialog.prototype.getSetupProcess = function(data) {
		return closerDialog.super.prototype.getSetupProcess.call(this, data).next(function() {
			this.actions.setMode('edit');
		}, this);
	};
	closerDialog.prototype.getActionProcess = function(action) {
		if(action === 'preview') {
			this.actions.setMode('preview');
			this.stackLayout.setItem(this.panel3);
		}
		if(action === 'about') {
			this.actions.setMode('about');
			this.stackLayout.setItem(this.panel2);
		} else if(action === 'back') {
			this.actions.setMode('edit');
			this.stackLayout.setItem(this.panel1);
		} else if(action === 'close') {
			var dialog = this;
			return new OO.ui.Process(function() {
				closeDiscussion(purePageName, rationaleInput);
				dialog.close();
			});
		}
		return closerDialog.super.prototype.getActionProcess.call(this, action);
	};
	closerDialog.prototype.getBodyHeight = function() {
		//return this.panel1.$element.outerHeight(true);
		return Math.max(this.panel1.$element.outerHeight(true), 320);
	};
	var windowManager = new OO.ui.WindowManager();
	$(document.body).append(windowManager.$element);
	var dialog = new closerDialog({
		size: 'large',
		classes: ['afd-helper-window']
	});
	windowManager.addWindows([dialog]);
	windowManager.openWindow(dialog);
	$('.afd-helper-page-name').children().next().append(page_link);
}
// ADD OPINION TO NOMINATION AFD PAGE
function addOpinion(purePageName, rationaleInput, adiutorUserOptions) {
	var opinion;
	var opinionText;
	switch(mw.storage.session.get('selectedOpinion')) {
		case '1':
			opinion = "Qalsın";
			opinionText = '*{{subst:Qalsın}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '2':
			opinion = "Sürətli qalsın";
			opinionText = '*{{subst:Sürətli qalsın}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '3':
			opinion = "Silinsin";
			opinionText = '*{{subst:Silinsin}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '4':
			opinion = "Sürətli silinsin";
			opinionText = '*{{subst:Sürətli silinsin}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '5':
			opinion = "Birləşdirilsin";
			opinionText = '*{{subst:Birləşdirilsin}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '6':
			opinion = "Köçürülsün";
			opinionText = '*{{subst:Köçürülsün}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '8':
			opinion = "Bitərəf";
			opinionText = '*{{subst:Bitərəf}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '9':
			opinion = "Şərh";
			opinionText = '*{{subst:Şərh}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
	}
	api = new mw.Api();
	api.postWithToken('csrf', {
		action: 'edit',
		title: nominationPage,
		appendtext: "\n" + opinionText,
		summary: 'Namizədliyə fikir bildirildi',
		tags: 'Adiutor',
		format: 'json'
	}).done(function() {
		if(adiutorUserOptions.articlesForDeletion.afdNominateOpinionsLog) {
			api = new mw.Api();
			api.postWithToken('csrf', {
				action: 'edit',
				title: 'İstifadəçi:'.concat(mwConfig.wgUserName, '/' + adiutorUserOptions.articlesForDeletion.afdOpinionLogPageName + '').split(' ').join('_'),
				appendtext: "\n" + "* ~~~~~ '''[[" + nominationPage + "|" + purePageName + "]]''' | Şərh: '''" + opinion + "'''",
				summary: 'SNS şərhlərinin qeyd dəftəri tutulur.',
				tags: 'Adiutor',
				format: 'json'
			}).done(function() {});
		}
		if(isSubPage) {
			location.reload();
		} else {
			mw.notify('Şərhiniz uğurla əlavə edildi, səhifəni yeniləyin.', {
				title: mw.msg('operation-completed'),
				type: 'success'
			});
		}
	});
}
// CLOSE DISCUSSION
function closeDiscussion(purePageName, rationaleInput) {
	var result;
	var closeText;
	switch(mw.storage.session.get('selectedCloseDesicion')) {
		case '1':
			result = "Qalsın";
			closeText = '{{subst:Qapalı|Qalsın}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '2':
			result = "Sürətli qalsın";
			closeText = '{{subst:Qapalı|Sürətli qalsın}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '3':
			result = "Silinsin";
			closeText = '{{subst:Qapalı|silinsin}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '4':
			result = "Sürətli silinsin";
			closeText = '{{subst:Qapalı|Sürətli silinsin}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '5':
			result = "Birləşdirilsin";
			closeText = '{{subst:Qapalı|Birləşdirilsin}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '6':
			result = "Köçürülsün";
			closeText = '{{subst:Qapalı|Köçürülsün}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '8':
			result = "Bitərəf";
			closeText = '{{subst:Qapalı|Bitərəf}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
		case '9':
			result = "Özel";
			closeText = '{{subst:Qapalı|Xüsusi}}' + ' ' + rationaleInput.value + ' ~~~~';
			break;
	}
	api.postWithToken('csrf', {
		action: 'edit',
		title: nominationPage,
		prependtext: closeText + "\n",
		appendtext: "\n{{subst:Qapalı-son}}",
		summary: 'Namizədlik müzakirəsi yekunlaşdırıldı',
		tags: 'Adiutor',
		format: 'json'
	}).done(function() {
		switch(mw.storage.session.get('selectedCloseDesicion')) {
			case '1':
				removeAfdTemplatesFromnominationPage(purePageName);
				break;
			case '2':
				removeAfdTemplatesFromnominationPage(purePageName);
				break;
			case '3':
				deletenominationPage(purePageName);
				break;
			case '4':
				deletenominationPage(purePageName);
				break;
			case '5':
				removeAfdTemplatesFromnominationPage(purePageName);
				break;
			case '6':
				removeAfdTemplatesFromnominationPage(purePageName);
				break;
			case '8':
				removeAfdTemplatesFromnominationPage(purePageName);
				break;
			case '9':
				removeAfdTemplatesFromnominationPage(purePageName);
				break;
		}
	});
}
// REMOVE AFD TEMPLATES FROM NOMINATED PAGE
function removeAfdTemplatesFromnominationPage(purePageName) {
	var pageContent;
	api.get({
		action: 'parse',
		page: purePageName.trim(),
		prop: 'wikitext',
		format: "json"
	}).done(function(data) {
		pageContent = data.parse.wikitext['*'];
		var templatesCleanedPageContent = pageContent.replace(/\{\{\s*?sns\s*?(|\|.*?)\}\}\n?/gi, "");
		api.postWithToken('csrf', {
			action: 'edit',
			title: purePageName.trim(),
			text: templatesCleanedPageContent,
			summary: '[[VP:SNS|SNS]]: [[' + nominationPage + '|namizədliyinə]] əsasən müzakirə şablonu çıxarılır',
			tags: 'Adiutor',
			format: 'json'
		}).done(function() {
			removeNominationFromAfdPage();
		});
	});
}
// DELETE NOMINATED PAGE
function deletenominationPage(purePageName) {
	api.postWithToken('csrf', {
		action: 'delete',
		title: purePageName.trim(),
		reason: '[[VP:SNS|SNS]]: [[' + nominationPage + '|namizədliyinə]] əsasən silinməsi qərara alınmışdır',
		tags: 'Adiutor',
		format: 'json'
	}).done(function() {
		api.postWithToken('csrf', {
			action: 'delete',
			title: "Müzakirə:" + purePageName.trim(),
			reason: '[[VP:Ü8]]: [[' + nominationPage + '|Müzakirə]] nəticəsində silinmiş səhifənin müzakirə səhifəsi',
			tags: 'Adiutor',
			format: 'json'
		}).done(function() {});
		removeNominationFromAfdPage();
	});
}
// REMOVE NOMINATION FROM AFD PAGE
function removeNominationFromAfdPage() {
	api.get({
		action: 'parse',
		page: "Vikipediya:Silinməyə_namizəd_səhifələr",
		prop: 'wikitext',
		format: "json"
	}).done(function(data) {
		api.postWithToken('csrf', {
			action: 'edit',
			title: "Vikipediya:Silinməyə_namizəd_səhifələr",
			text: data.parse.wikitext['*'].replace("{{" + nominationPage.replace(/_/g, " ") + "}}", ""),
			summary: '[[VP:SNS|SNS]]: [[' + nominationPage + '|müzakirəsi]] nəticəsində arxivləşdirilir',
			tags: 'Adiutor',
			format: 'json'
		}).done(function() {
			addNominationToAfdLogPage();
		});
	});
}
// ADD NOMINATION TO AFD LOG PAGE
function addNominationToAfdLogPage() {
	var date = new Date();
	var date_year = date.getUTCFullYear();
	var pageContent;
	api.get({
		action: 'parse',
		page: "Vikipediya:Silinməyə_namizəd_səhifələr/Qeyd/" + date_year + "_" + firstMonthOfDateString,
		prop: 'wikitext',
		format: "json"
	}).done(function(data) {
		pageContent = data.parse.wikitext['*'];
		pageNameCleaned = nominationPage.replace(/_/g, " ");
		var discusionExistInLog = pageContent.includes("{{" + pageNameCleaned + "}}");
		//CHECK IF ALREADY ADDED
		if(!discusionExistInLog) {
			api.postWithToken('csrf', {
				action: 'edit',
				title: "Vikipediya:Silinməyə_namizəd_səhifələr/Qeyd/" + date_year + "_" + firstMonthOfDateString,
				appendtext: "\n" + "{{" + pageNameCleaned + "}}",
				summary: "Adaylık [[Vikipediya:Silinməyə namizəd səhifələr/Qeyd/" + date_year + " " + firstMonthOfDateString + "|cari ayın]] qeydlərinə əlavə edildi.",
				tags: 'Adiutor',
				format: 'json'
			}).done(function() {
				if(isSubPage) {
					location.reload();
				} else {
					mw.notify('Namizədlik uğurla yekunlaşdırıldı', {
						title: mw.msg('operation-completed'),
						type: 'success'
					});
				}
			});
		} else {
			if(isSubPage) {
				location.reload();
			} else {
				mw.notify('Namizədlik uğurla yekunlaşdırıldı', {
					title: mw.msg('operation-completed'),
					type: 'success'
				});
			}
		}
		switch(mw.storage.session.get('selectedCloseDesicion')) {
			case '5':
				putMergeTemplate(purePageName);
				break;
			case '7':
				putMergeTemplate(purePageName);
				break;
		}

		function putMergeTemplate(purePageName) {
			api.postWithToken('csrf', {
				action: 'edit',
				title: purePageName.trim(),
				prependtext: '{{Birləşdir SNS|' + nominationPage + '|' + titleInput.getValue() + '}}' + "\n",
				summary: 'SNS müzakirəsi nəticəsində birləşdirmə şablonu əlavə edilir',
				tags: 'Adiutor',
				format: 'json'
			}).done(function() {});
		}
	});
}

function clearURLfromOrigin(AfDPageUrl) {
	return decodeURIComponent(AfDPageUrl.replace('https://az.wikipedia.org/w/index.php?title=', '').replace('&section=1&veaction=editsource', '').replace('/w/index.php?title=', '').replace(/\&section=T-1&veaction=editsource/g, "").replace(/\&action=edit&section=1/g, "").replace(/\&action=edit&section=T-1/g, ""));
}

function alertDialog(title, message) {
	var AlertDialog = new OO.ui.MessageDialog();
	var windowManager = new OO.ui.WindowManager();
	$(document.body).append(windowManager.$element);
	windowManager.addWindows([AlertDialog]);
	windowManager.openWindow(AlertDialog, {
		title: title,
		message: message,
	});
}
/* </nowiki> */

Informasiya Melumat Axtar

Anarim.Az

Sayt Rehberliyi ile Elaqe

Saytdan Istifade Qaydalari

Anarim.Az 2004-2023