MediaWiki:Gadget-Delete.js
Ծանուցում. Հիշելուց հետո կատարված փոփոխությունները տեսնելու համար մաքրեք ձեր զննարկիչի հիշապահեստը. Mozilla / Firefox / Safari՝ Ctrl+Shift+R (Cmd+Shift+R Mac OS X-ում) Konqueror՝ F5 Opera՝ Tools→Preferences ընտրացանկից։ Internet Explorer՝ Ctrl+F5
// <nowiki>
$(function() {
if (mw.config.get('wgNamespaceNumber') === 0) {
mw.util.addPortletLink('p-tb', "#", 'Էջը ներկայացնել', 't-ajaxquickdiscusscat');
}
var $nominateDialogContent = $('<div id="deletedialogcontent">');
var actionIndex = 0;
var api = new mw.Api();
var wbApi = new mw.ForeignApi('https://www.wikidata.org/w/api.php');
var deceasedUsersCategory = 'Կատեգորիա:Վիքիպեդիա:Մահացած վիքիխմբագիրներ';
$nominateDialogContent.append('<div><select id="nm-gadget-option"><option value="delete">Ջնջման</option><option value="speed">Արագ ջնջման</option><option value="move">Անվանափոխման</option><option value="short">Կարճ էջ</option><option value="unsource">Անաղբյուր</option><option value="badtrans">Վատ թարգմանություն</option><option value="move">Տեղափոխել սևագիր</option></select></div>');
$nominateDialogContent.append('<div id="nm-gadget-newTitle-container"><label for="nm-gadget-newTitle">Նոր անվանում՝ </label><input rows=1 id="nm-gadget-newTitle"></div>');
$nominateDialogContent.append('<div id="nm-gadget-ShortText-container"><label for="nominateReasonShort">Խնդրում ենք համառոտ ներկայացնել պատճառը</label><textarea rows=1 id="nominateReasonShort"></textarea></div>');
$nominateDialogContent.append('<div id="nm-gadget-LongText-container"><label for="nominateReasonLong">Խնդրում ենք ներկայացնել պատճառը (պարտադիր)</label><textarea rows=5 id="nominateReasonLong"></textarea></div>');
$nominateDialogContent.append('<div id="nominateLivePreview-container">Նախադիտել<div id="nominateLivePreview"></div></div>');
function lastNominastion() {
return api.getCategories('Քննարկում:' + mw.config.get('wgPageName')).then(function(projectPageCats) {
var i;
for (i = projectPageCats.length - 1; i >= 0; i--) {
if (projectPageCats[i].title === 'Վիքիպեդիա:Ջնջման_առաջարկված,_բայց_թողնված_հոդվածներ') {
$nominateDialogContent.append('<br/><div style="color:red">Այս էջը արդեն առաջադրվել է ջնջման, խնդրում ենք վերանայել անցած <a href="/wiki/' + talkpage + ':' + mw.config.get('wgPageName') + '" title="Քննարկում:' + mw.config.get('wgPageName') + '">քննարկումները</a>՝ կրկին առաջադրելուց առաջ։</div>');
}
}
});
}
function isUserDeceased(userName) {
return api.get({
"action": "query",
"format": "json",
"prop": "categories",
"titles": "Մասնակցի քննարկում:" + userName + "|Մասնակից:" + userName,
"formatversion": "2"
}).then(function (data) {
var categories = (data.query.pages[0].categories || []).concat(data.query.pages[1].categories || []);
for(var i = 0; i < categories.length; i++) {
if (categories[i].title == deceasedUsersCategory) {
return true;
}
}
return false;
});
}
function getCreator() {
return api.get({
action: 'query',
prop: 'revisions',
rvlimit: 1,
rvprop: ['user', 'timestamp'],
rvdir: 'newer',
titles: mw.config.get('wgPageName')
});
}
function addTag(text, reason, title) {
return api.post({
action: 'edit',
title: (title ? title : mw.config.get('wgPageName')),
prependtext: text,
summary: reason,
token: mw.user.tokens.get('csrfToken')
});
}
function openSection(title, text, sectionTitle) {
var postObject = {
action: 'edit',
title: title,
text: text,
section: 'new',
token: mw.user.tokens.get('csrfToken')
};
if (sectionTitle) {
postObject.sectiontitle = sectionTitle;
}
if (title.startsWith("Մասնակցի քննարկում:")) {
return isUserDeceased(title.replace("Մասնակցի քննարկում:", ""))
.then(function(isDeceased) {
if (isDeceased) {
return Promise.resolve();
} else {
return api.post(postObject);
}
});
} else {
return api.post(postObject);
}
}
var submited = false;
function submitForm() {
if (submited) {
//երկու անգամ նույն բանը չանել
return;
} else {
submited = true;
}
var d = new Date();
if (actionIndex === 0 && $('#nominateReasonShort').val() !== '' && $('#nominateReasonLong').val() !== '') {
//ներկայացնել ջնջնման
addTag('{{ջնջել|' + $('#nominateReasonShort').val() + '}}\n',
'ներկայացնում եմ ջնջման'
).then(function() {
openSection('Վիքիպեդիա:Ջնջման_առաջադրված_հոդվածներ',
':{{la|' + mw.config.get('wgPageName') + '}}\n' + $('#nominateReasonLong').val() + '--~~~~',
'==[[' + mw.config.get('wgPageName') + ']]=='
).then(function() {
getCreator().then(function(data) {
var author = data.query.pages[mw.config.get('wgArticleId')].revisions[0].user;
if (!mw.util.isIPAddress(author)) {
openSection('Մասնակցի քննարկում:' + author,
'{{subst:Ծանուցում/Ջնջման առաջարկ|' + mw.config.get('wgPageName') + '|' + $('#nominateReasonShort').val() + '}}'
).then(function() {
location.reload();
});
} else {
location.reload();
}
});
});
});
} else if (actionIndex === 1 && $('#nominateReasonShort').val() !== '') {
// ներկայացնել արագ ջնջման
addTag('{{արագ|' + $('#nominateReasonShort').val() + '}}\n',
'ներկայացնում եմ արագ ջնջման'
).then(function() {
location.reload();
});
} else if (actionIndex === 2 && $('#nominateReasonShort').val() !== '' && $('#nominateReasonLong').val() !== '') {
// ներկայացնել անվանափոխման
addTag('{{անվանափոխություն|' + $('#nominateReasonShort').val() + '}}\n',
'ներկայացնում եմ անվանափոխման'
).then(function() {
openSection('Վիքիպեդիա:Անվանափոխման_առաջադրված_հոդվածներ',
':{{la|' + mw.config.get('wgPageName') + '}}\n[[' + mw.config.get('wgPageName') + ']] → [[' + $('#nm-gadget-newTitle').val() + ']]\n\n' + $('#nominateReasonLong').val() + '--~~~~',
'==[[' + mw.config.get('wgPageName') + ']]=='
).then(function() {
location.reload();
});
});
} else if (actionIndex === 3) {
//կարճ էջ
addTag('{{Կարճ էջ|' + d.getFullYear() + ',' + (d.getMonth() + 1) + ',' + d.getDate() + '}}\n',
'կարճ էջ'
).then(function() {
getCreator().then(function(data) {
var author = data.query.pages[mw.config.get('wgArticleId')].revisions[0].user;
if (!mw.util.isIPAddress(author)) {
openSection('Մասնակցի քննարկում:' + author,
'{{subst:Ծանուցում/Կարճ էջ|' + mw.config.get('wgPageName') + '}}'
).then(function() {
location.reload();
});
} else {
location.reload();
}
});
});
} else if (actionIndex === 4) {
//անաղբյուր հոդված
getCreator().then(function(data) {
var author = data.query.pages[mw.config.get('wgArticleId')].revisions[0].user;
var timestamp = new Date(data.query.pages[mw.config.get('wgArticleId')].revisions[0].timestamp);
var myTag = '';
var myNotif = '';
if (timestamp > new Date('2015-12-27')) {
myTag = '{{Անաղբյուր էջ|' + d.getFullYear() + ',' + (d.getMonth() + 1) + ',' + d.getDate() + '}}\n';
myNotif = '{{subst:Ծանուցում/Անաղբյուր|' + mw.config.get('wgPageName') + '}}';
} else {
myTag = '{{Անաղբյուր}}\n';
myNotif = '{{subst:Ծանուցում/Անաղբյուր2|' + mw.config.get('wgPageName') + '}}';
}
addTag(myTag, 'անաղբյուր հոդված').then(function() {
if (!mw.util.isIPAddress(author)) {
openSection('Մասնակցի քննարկում:' + author,
myNotif
).then(function() {
location.reload();
});
} else {
location.reload();
}
});
});
} else if (actionIndex === 5) {
getCreator().then(function(data) {
var author = data.query.pages[mw.config.get('wgArticleId')].revisions[0].user;
var timestamp = new Date(data.query.pages[mw.config.get('wgArticleId')].revisions[0].timestamp);
var myTag = '';
var myNotif = '';
if (timestamp > new Date('2017-12-5')) {
myTag = '{{ՎԹ1|' + d.getFullYear() + ',' + (d.getMonth() + 1) + ',' + d.getDate() + '}}\n';
myNotif = '{{subst:Ծանուցում/Վատ թարգմանություն|' + mw.config.get('wgPageName') + '}}';
} else {
myTag = '{{ՎԹ}}\n';
myNotif = '{{subst:Ծանուցում/Վատ թարգմանություն2|' + mw.config.get('wgPageName') + '}}';
}
addTag(myTag,
'վատ թարգմանություն'
).then(function() {
if (!mw.util.isIPAddress(author)) {
openSection('Մասնակցի քննարկում:' + author,
myNotif
).then(function() {
location.reload();
});
} else {
location.reload();
}
});
});
} else if (actionIndex === 6) {
getCreator().then(function(data) {
var author = data.query.pages[mw.config.get('wgArticleId')].revisions[0].user;
if (!mw.util.isIPAddress(author)) {
var text = '{{subst:Ծանուցում/Տեղափոխվել է|' + mw.config.get('wgPageName');
if ($('#nominateReasonShort').val() !== '') {
text += '||' + $('#nominateReasonShort').val();
}
text += '}}';
openSection('Մասնակցի քննարկում:' + author,
text
).then(function() {
api.postWithToken('csrf', {
action: 'move',
from: mw.config.get('wgPageName'),
to: 'Սևագիր:' + mw.config.get('wgPageName'),
reason: $('#nominateReasonShort').val(),
movetalk: false,
noredirect: true
}).then(function() {
api.get({
action: 'parse',
page: 'Սևագիր:' + mw.config.get('wgPageName'),
prop: "wikitext",
formatversion: 2,
format: 'json'
}).done(function(talkPageText) {
if(talkPageText.parse && talkPageText.parse.wikitext) {
var newText = talkPageText.parse.wikitext.replace(/\[\[[Կկ]ատեգորիա:/g, "[[:Կատեգորիա:");
api.postWithToken('csrf', {
action: 'edit',
title: 'Սևագիր:' + mw.config.get('wgPageName'),
text: newText,
reason: 'սևագրից հեռացնում եմ հիմնական կատեգորիաները'
});
}
}
);
var talkPage = document.getElementById("ca-talk");
if (!mw.config.get('wgUserGroups').includes("sysop")) {
//անպետք վերահղումը և քննարկման էջը ներկայացնել ջնջման
addTag('{{արագ|տեղափոխվել է սևագիր (' + '[[Սևագիր:' + mw.config.get('wgPageName') + ']])' +
(mw.config.get('wgWikibaseItemId') === null ? '' : ', ([[:d:' + mw.config.get('wgWikibaseItemId') + ']])' ) + '}}\n',
'վատ թարգմանություն'
).then(function() {
if (!talkPage.classList.contains("new")) {
addTag('{{արագ|ջնջված էջի քննարկում}}\n',
'ջնջված էջի քննարկում',
'Քննարկում:' + mw.config.get('wgPageName')
).then(function() {
location.reload();
});
} else {
location.reload();
}
});
} else {
wbApi.postWithEditToken({ // տես https://phabricator.wikimedia.org/T231151
"action": "wbsetsitelink",
"format": "json",
"id": mw.config.get('wgWikibaseItemId'),
"linksite": "hywiki"
}).then(function() {
//տեղափոխողը ադմին է, միանգամից ջնջել քննարկման էջը,
//հոդվածը ջնջնելու կարիք չկա, քանի որ տեղափոխել ենք առանց վերահղում թողնելու
if (!talkPage.classList.contains("new")) {
api.post({
action: 'delete',
title: 'Քննարկում:' + mw.config.get('wgPageName'),
reason: 'ջնջված էջի քննարկում',
token: mw.user.tokens.get('csrfToken')
}).then(function() {
location.reload();
});
} else {
location.reload();
}
});
}
});
});
} else {
location.reload();
}
});
}
}
mw.loader.using(['jquery.ui'], function() {
function deleteDialog() {
$('<div>').append($nominateDialogContent).dialog({
width: 600,
modal: true,
title: mw.config.get('wgPageName').replace(/_/g, ' ') + ' էջը ներկայացնել',
draggable: true,
dialogClass: 'wikiEditor-toolbar-dialog',
buttons: [{
text: 'Փակել',
click: function() {
$(this).dialog('close');
}
},
{
text: 'Հաստատել',
click: function() {
submitForm();
}
}
],
close: function() {
$(this).dialog('destroy');
$(this).remove();
}
});
$('#nm-gadget-newTitle-container').hide();
}
$('#t-ajaxquickdiscusscat').click(function(e) {
e.preventDefault();
deleteDialog();
document.getElementById('nm-gadget-option').addEventListener('change', function(e) {
$('#nm-gadget-LongText-container').hide();
$('#nm-gadget-ShortText-container').hide();
$('#nominateLivePreview-container').hide();
$('#nm-gadget-newTitle-container').hide();
actionIndex = e.target.options.selectedIndex;
if (actionIndex == 0) {
$('#nm-gadget-LongText-container').show();
$('#nm-gadget-ShortText-container').show();
$('#nominateLivePreview-container').show();
}
if (actionIndex == 1 || actionIndex == 6) {
$('#nm-gadget-ShortText-container').show();
}
if (actionIndex == 2) {
$('#nm-gadget-LongText-container').show();
$('#nm-gadget-ShortText-container').show();
$('#nominateLivePreview-container').show();
$('#nm-gadget-newTitle-container').show();
}
});
$('#nominateReasonShort, #nominateReasonLong').blur(function() {
if ($(this).val() == '' && actionIndex != 6 && actionIndex != 1) {
$(this).css('border', '1px solid red');
} else {
$(this).removeAttr('style');
}
});
$('#nominateReasonLong').keypress(function(event) {
var url = '/w/api.php?action=parse&format=json&prop=text&disablelimitreport=1&disabletidy=1&text=' + $('#nominateReasonLong').val().replace('\n', '%0D%0A') + String.fromCharCode(event.which);
$.getJSON(url, function(data) {
$('#nominateLivePreview').html(data.parse.text['*']);
});
});
});
});
lastNominastion();
});
// </nowiki>