משתמש:נריה בוט/מצב בדיקת תמונות.js
מראה
לתשומת ליבך: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
//<nowiki>
mw.loader.using(['mediawiki.api', 'mediawiki.util']).then(function() {
$(function() {
if (mw.config.get('wgPageName') !== "המכלול:בדיקת_תמונות") return;
importScript("משתמש:נריה בוט/מצב בדיקת תמונות/ניקוי.js"); // ניקוי בקשות שבוצעו
var isAspaklarya2 = mw.config.get('wgUserGroups').includes('aspaklarya2');
var userId = mw.config.get('wgUserId');
var hasAccess = isAspaklarya2 || userId === 8538 || userId === 8589;
function addButtons() {
$('.mw-editsection').each(function() {
var $section = $(this);
var sectionNumber = mw.util.getParamValue('section', $section.find('a').attr('href'));
var $buttons = $('<span>')
.addClass('image-check-buttons')
.css('margin-left', '10px');
if (hasAccess) {
$buttons.append(createButton('רוטשה', 'התמונה נחתכה/עברה עריכה. תיוג המבקש לצורך בדיקת התמונה בנטפרי.', sectionNumber));
$buttons.append(createButton('הוסרה', 'התמונה הוסרה', sectionNumber));
$buttons.append(createButton('בדיקה חוזרת', 'תיוג המבקש לצורך בקשת בדיקה חוזרת בנטפרי', sectionNumber));
$buttons.append(createButton('מחיקת הדיווח', 'מחיקת הדיווח', sectionNumber));
$buttons.append(createButton('טקסט חופשי', 'הזנת טקסט חופשי', sectionNumber));
} else {
$buttons.append(createButton('בדיקה חוזרת', 'התמונה נשלחה לבדיקה חוזרת.', sectionNumber));
$buttons.append(createButton('חסומה', 'התמונה עדיין חסומה, למרות שעברה ריטוש', sectionNumber));
$buttons.append(createButton('פתוחות', 'התמונה או התמונות נפתחו', sectionNumber));
$buttons.append(createButton('טקסט חופשי', 'הזנת טקסט חופשי – במקרה שאף אחת מהאפשרויות למעלה אינה מתאימה', sectionNumber));
}
$section.append($buttons);
});
}
function createButton(text, title, sectionNumber) {
return $('<button>')
.text(text)
.attr('title', title)
.css({
'margin-right': '5px',
'font-size': '0.8em',
'padding': '2px 5px'
})
.click(function(e) {
e.preventDefault();
handleClick(text, sectionNumber);
});
}
function handleClick(action, sectionNumber) {
var api = new mw.Api();
api.get({
action: 'query',
prop: 'revisions',
rvprop: 'content',
rvlimit: 1,
titles: mw.config.get('wgPageName'),
rvsection: sectionNumber,
format: 'json'
}).done(function(data) {
var page = data.query.pages[Object.keys(data.query.pages)[0]];
var content = page.revisions[0]['*'];
var newContent = content;
if (hasAccess) {
var userMatch = content.match(/\[\[משתמש:([^|\]]+)/);
var pingUser = userMatch ? userMatch[1] : null;
if (!pingUser) {
pingUser = prompt("לא זוהה משתמש לתיוג. אנא הזן שם משתמש (או השאר ריק לשליחה ללא תיוג):", "");
}
var taggedMessage = pingUser ? '@{{א|' + pingUser + '}} ' : '';
switch(action) {
case 'רוטשה':
newContent += '\n:' + taggedMessage + 'איך כעת? ~~~~';
break;
case 'הוסרה':
newContent += '\n:' + 'התמונה הוסרה מהערכים. תודה! ~~~~';
break;
case 'בדיקה חוזרת':
newContent += '\n:' + taggedMessage + 'לא רואה בעיה, אפשר לשלוח לבדיקה חוזרת. ~~~~';
break;
case 'מחיקת הדיווח':
if (!confirm('האם אתה בטוח שברצונך למחוק את הדיווח?')) return;
newContent = '';
break;
case 'טקסט חופשי':
var customText = prompt('הזן טקסט חופשי:');
if (customText === null) return;
newContent += '\n:' + taggedMessage + customText + ' ~~~~';
break;
}
} else {
switch(action) {
case 'חסומה':
newContent += '\n::התמונה עדיין חסומה. ~~~~';
break;
case 'פתוחות':
newContent += '\n::התמונות פתוחות, תודה! ~~~~';
break;
case 'בדיקה חוזרת':
newContent += '\n::התמונה נשלחה לבדיקה חוזרת. ~~~~';
break;
case 'טקסט חופשי':
var customTextUser = prompt('הזן טקסט חופשי:');
if (customTextUser === null) return;
newContent += '\n::' + customTextUser + ' ~~~~';
break;
}
}
api.postWithEditToken({
action: 'edit',
bot: true,
minor: true,
title: mw.config.get('wgPageName'),
section: sectionNumber,
text: newContent,
summary: 'מצב התמונות: ' + action
}).done(function() {
mw.notify('העריכה נשמרה בהצלחה');
if (!window.skipImageCheckReload) {
location.reload();
}
}).fail(function() {
mw.notify('אירעה שגיאה בשמירת העריכה', {type: 'error'});
});
});
}
addButtons();
});
});
//</nowiki>