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(/<(\/?pre\s?\/?)>/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(/<(\/?pre\s?\/?)>/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('§ion=1&veaction=editsource', '').replace('/w/index.php?title=', '').replace(/\§ion=T-1&veaction=editsource/g, "").replace(/\&action=edit§ion=1/g, "").replace(/\&action=edit§ion=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> */