सदस्य:DreamRimmer/ReportUser.js
सूचना: यह पृष्ठ सुरक्षित करने बाद, परिवर्तनों को देखने लिए ब्राउज़र का कैश ख़ाली करने की आवश्यकता हो सकती है।
- मोज़िला / फ़ायरफ़ॉक्स / सफ़ारी: shift hold करें जब आप reload क्लिक करते है, या Ctrl-Shift-R (अपल मैक में Cmd-Shift-R) दबाएँ;
- गूगल क्रोम: Ctrl-shift-R (मैक में Cmd-Shift-R) दबाएँ
- इंटरनेट एक्सप्लोरर: Ctrl hold करें जब आप refresh क्लिक करते हैं, या Ctrl-F5 क्लिक करते हैं;
- कॉङ्करर: सिर्फ़ Reload बटन पर क्लिक करें, या F5 क्लिक करें;
- ऑपरा सदस्य को Tools→Preferences में सम्पूर्ण कैश ख़ाली करने की ज़रूरत हो सकती है।
// </nowiki>
//यह स्क्रिप्ट अभी टेस्टिंग में हैं इसलिए कोई भी इनस्टॉल ना करे
$(function() {
if ((![2, 3].includes(mw.config.get('wgNamespaceNumber')) &&
mw.config.get('wgCanonicalSpecialPageName') !== 'Contributions') ||
!mw.config.get('wgRelevantUserName') ||
mw.config.get('wgRelevantUserName') === mw.config.get('wgUserName') || // [[Special:Diff/23314073]]
![undefined, ''].includes((new mw.Uri()).query.noWD)
) {
return;
}
mw.util.addPortletLink('p-cactions', '', 'रिपोर्ट करे', 'ca-warningdialog', 'Initialize WarningDialog');
$('#ca-warningdialog').click(function(e) {
e.preventDefault();
if ($('#warningdialog').length) {
$('#warningdialog').dialog('open');
return;
}
var api = new mw.Api();
var u = mw.config.get('wgRelevantUserName');
var ad = ' ([[User:DreamRimmer/ReportUser.js|ReportUser]])';
var type = [
{
l: 'सदस्य रिपोर्ट',
c: true,
n: 'report',
p: function() {
$('#warningdialog-report').parents('li').append(
$('<div>').attr({
class: 'warningdialog-fieldset',
id: 'warningdialog-fieldset-report'
}).css({
'display': 'flex',
'flex-direction': 'column-reverse',
'justify-content': 'space-between'
}).append(
$('<input>').attr({
type: 'text',
placeholder: 'Reason here...',
class: 'warningdialog-input',
id: 'warningdialog-input-report'
}).css({
'flex-grow': 5,
'margin': '0.2em',
'padding': '0.2em',
'height':'50px',
'word-break': 'break-all'
}),
$('<select>').attr({
class: 'warningdialog-select',
id: 'warningdialog-select-report'
}).css({
'margin': '0.2em',
'padding': '0.2em'
}).append(
$('<option>').attr('value', '').prop('selected', true).text('Blank'),
$('<option>').attr('value', 'Talk page abuse, please revoke TPA').text('TPA')
)
)
);
$('#warningdialog').on('change', '#warningdialog-report', function() {
$('#warningdialog-fieldset-report').toggle($(this).prop('checked'));
});
$('#warningdialog-report').trigger('change');
$('#warningdialog-select-report').on('change', function() {
$('#warningdialog-input-report').val($(this).val());
}).trigger('change');
},
u: true,
f: function() {
if (!$('#warningdialog-input-report').val().trim()) {
$('#warningdialog-reportmessage').css({
'color': '#D33',
'font-weight': 'bold'
}).text('No reason provided. Aborting.');
}
$('#warningdialog').append(
$('<p>').attr('id', 'warningdialog-reportmessage').css({
'padding': '1em',
'font-size': '1.25em'
}).text('रिपोर्ट किया जा रहा हैं...')
);
api.get({
action: 'parse',
page: "सदस्य:DreamRimmer/प्रयोगपृष्ठ",
prop: ['sections'],
format: 'json',
formatversion: 2
}).done(function(response) {
var sections = response.parse.sections;
for (let section of sections) {
if (section.line.replace(/_/g, ' ').toLowerCase() === 'बर्बरता रिपोर्ट' ' + u) {
$('#warningdialog-reportmessage').css({
'color': '#D33',
'font-weight': 'bold'
}).text('उपयोगकर्ता पहले ही रिपोर्ट किया जा चुका है');
return;
}
}
api.postWithToken('csrf', {
action: 'edit',
title: "सदस्य:DreamRimmer/प्रयोगपृष्ठ",
section: 'new',
sectiontitle: 'बर्बरता रिपोर्ट' [[Special:Contributions/' + u + '|' + u + ']]',
appendtext: '* {{vandal|' + u + '}}\n' + $('#warningdialog-input-report').val().replace(/\s*~{4}$/, '') + ' [[u:DreamRimmer|<b><font color="22C6CB">𝙳𝚛𝚎𝚊𝚖𝚁𝚒𝚖𝚖𝚎𝚛</font></b>]] <sup>[[user talk: DreamRimmer|<font color="orange">(बातचीत)</font>]]</sup> 15:05, 18 अक्टूबर 2023 (UTC)',
summary: 'Reporting [[Special:Contributions/' + u + '|' + u + ']] for TPA abuse' + ad,
nocreate: true,
format: 'json',
formatversion: 2
}).done(function(response) {
$('#warningdialog-reportmessage').css({
'color': '#006400',
'font-weight': 'bold'
}).text('Reported successfully.');
}).fail(function(error, response) {
$('#warningdialog-reportmessage').css({
'color': '#D33',
'font-weight': 'bold'
}).text('Report failed. API error: ' + response.error.info);
});
}).fail(function(error, response) {
$('#warningdialog-reportmessage').css({
'color': '#D33',
'font-weight': 'bold'
}).text('API error: ' + response.error.info);
});
}
},
{
h: 'कोई चेतावनी नही',
t: '',
s: ''
},
{
h: 'प्रबंधक सूचनापट रिपोर्ट सूचना',
t: 'प्रबंधक सूचनापट रिपोर्ट सूचना|thread=बर्बरता रिपोर्ट'+ u,
s: "प्रबंधक सूचनापट पर रिपोर्ट की सूचना"
}
];
var getcontent = function(button) {
var t = {};
t.s = [];
t.c = [];
$('.warningdialog-checkbox').each(function() {
if ($(this).prop('checked')) {
var c = JSON.parse($(this).val());
if (c.u) {
for (let i of type) {
if (i.l === c.l) {
if (button !== 'preview') i.f();
}
}
} else {
t.c.push((c.h ? '== ' + c.h + ' ==\n' : '') + '{{subst:' + c.t + '}}\n' + (c.i ? '[[u:DreamRimmer|<b><font color="22C6CB">𝙳𝚛𝚎𝚊𝚖𝚁𝚒𝚖𝚖𝚎𝚛</font></b>]] <sup>[[user talk: DreamRimmer|<font color="orange">(बातचीत)</font>]]</sup> 15:05, 18 अक्टूबर 2023 (UTC)' : ''));
t.s.push(c.s);
}
}
});
t.r = JSON.parse($('.warningdialog-radio:checked').val());
if (t.r.h !== 'कोई चेतावनी नही') {
t.r = {
c: (t.r.h ? '== ' + t.r.h + ' ==\n' : '') + '{{subst:' + t.r.t + '}}\n' + (t.r.i ? '[[u:DreamRimmer|<b><font color="22C6CB">𝙳𝚛𝚎𝚊𝚖𝚁𝚒𝚖𝚖𝚎𝚛</font></b>]] <sup>[[user talk: DreamRimmer|<font color="orange">(बातचीत)</font>]]</sup> 15:05, 18 अक्टूबर 2023 (UTC)' : ''),
s: t.r.s
};
} else {
t.r = '';
}
t.text = t.c.join('\n\n') + (t.c.join('') && t.r && t.r.c ? '\n\n' : '') + (t.r ? t.r.c : '') + ('[[u:DreamRimmer|<b><font color="22C6CB">𝙳𝚛𝚎𝚊𝚖𝚁𝚒𝚖𝚖𝚎𝚛</font></b>]] <sup>[[user talk: DreamRimmer|<font color="orange">(बातचीत)</font>]]</sup> 15:05, 18 अक्टूबर 2023 (UTC)'); //added [[u:DreamRimmer|<b><font color="22C6CB">𝙳𝚛𝚎𝚊𝚖𝚁𝚒𝚖𝚖𝚎𝚛</font></b>]] <sup>[[user talk: DreamRimmer|<font color="orange">(बातचीत)</font>]]</sup> 15:05, 18 अक्टूबर 2023 (UTC) manually for warnings.
return t;
};
$('<div>').attr('id', 'warningdialog').append(function() {
var l1 = $('<ul>').css({
'flex-grow': 2,
'flex-basis': '50%',
'list-style-type': 'none',
'list-style-image': 'none',
'margin': '0.3em',
'border': '1px solid #C8CCD1',
'min-height': '7.5em',
'overflow-y': 'auto',
'padding': '1em',
'font-size': '1.2em'
});
var l2 = l1.clone();
for (let i of type) {
(i.c ? l1 : l2).append(
$('<li>').css({
'display': 'flex',
'flex-direction': 'column',
'align-content': 'stretch'
}).html(
$('<label>').attr({
class: 'warningdialog-label'
}).append(
i.c ?
$('<input>')
.attr({
type: 'checkbox',
value: JSON.stringify(i),
class: 'warningdialog-checkbox',
id: 'warningdialog-' + i.n
})
:
$('<input>')
.attr({
type: 'radio',
name: 'warningdialog-radio',
value: JSON.stringify(i),
class: 'warningdialog-radio',
id: 'warningdialog-' + i.n
})
).append(
$('<span>').attr({
class: 'warningdialog-labelname',
style: 'margin: 0 0.5em;'
}).text(i.h || i.l)
)
)
);
}
l2.find('.warningdialog-radio').first().prop('checked', true);
return $('<div>').css({
'display': 'flex'
}).append(l1, l2);
}).append(
$('<div>').attr('id', 'warningdialog-preview').css({
'display': 'none',
'margin': '0.3em',
'border': '1px solid #C8CCD1',
'max-height': '30em',
'overflow-y': 'auto',
'padding': '1em'
})
).appendTo('body');
type.forEach(function(i) {
if (i.p) i.p();
});
$('#warningdialog').dialog({
autoOpen: true,
width: '60%',
title: 'चेतावनी सदस्य: ' + u,
buttons: [
{
text: 'Preview',
click: function() {
if (!$('#warningdialog-preview').is(':visible')) {
$('#warningdialog-preview').show();
}
$('#warningdialog-preview').html(
$('<p>').css({
'padding': '1em',
'font-size': '1.25em'
}).text('Loading...')
);
var t = getcontent('preview');
var text = t.text;
api.get({
action: 'parse',
title: 'सदस्य वार्ता:' + u,
text: text,
prop: ['text'],
pst: true,
disablelimitreport: true,
disableeditsection: true,
sectionpreview: true,
disabletoc: true,
useskin: mw.config.get('skin'),
contentmodel: 'wikitext',
format: 'json',
formatversion: 2
}).done(function(response) {
$('#warningdialog-preview').html(response.parse.text);
}).fail(function(error, response) {
console.warn(error, response);
$('#warningdialog-preview').html(response.error.info);
});
}
},
{
text: 'Submit',
click: function() {
$(this).parent().find('button').button('disable');
$('#warningdialog').children().hide();
var t = getcontent('submit');
var text = t.text;
if (!text.trim()) return;
$('#warningdialog').append(
$('<p>').attr('id', 'warningdialog-main').css({
'padding': '1em',
'font-size': '1.25em'
}).text('Submitting edit...')
);
api.get({
action: 'query',
titles: ['सदस्य वार्ता:' + u],
prop: ['revisions'],
rvprop: ['content'],
rvslots: '*',
rvlimit: 1,
format: 'json',
formatversion: 2
}).done(function(res) {
var m = res.query.pages[0].missing || (res.query.pages[0].revisions[0].slots.main.content.trim() === '');
text = (m ? '' : '\n\n') + text;
api.postWithToken('csrf', {
action: 'edit',
title: 'User talk:' + u,
watchlist: window.WDwatchlist || 'preferences',
appendtext: text,
summary: (t.r.s || t.s[0]) + ad,
format: 'json',
formatversion: 2
}).done(function(response) {
$('#warningdialog-main').css({
'color': '#006400',
'font-weight': 'bold'
}).text('Changes made successfully.');
}).fail(function(error, response) {
$('#warningdialog-main').css({
'color': '#D33',
'font-weight': 'bold'
}).text('Failed to submit. API error: ' + response.error.info);
});
}).fail(function(error, response) {
$('#warningdialog-main').css({
'color': '#D33',
'font-weight': 'bold'
}).text('API error: ' + response.error.info);
});
}
}
]
});
$('#warningdialog-preview').click(function() {
$(this).toggle();
});
});
});
// </nowiki>