משתמש:קיפודנחש/common.js/parrolRange.js
< משתמש:קיפודנחש | common.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
if (mw.util.getParamValue('action') == 'history')
$(document).ready(function () {
function markRangeIn() {
var suspects = $('li:[class=selected]').filter(':has(".mw-history-histlinks")');
if (suspects.length != 2)
throw 'found number other than 2 of elements (' + suspects.length + '). no can do';
var all = suspects.parent().children();
var start = all.index($(suspects[0])), finish = all.index($(suspects[1]));
if (start < 0 || finish < 0 || start >= finish)
throw 'something is wrong: start = ' + start + ' finish = ' + finish;
var actionable = all.slice(start, finish);
var actionableids = [];
var user = $(suspects[0]).find('.history-user > a').text();
if (! user)
throw 'Could not find user';
actionable.each(function(index, item) {
var $item = $(item);
if ($item.find('.history-user > a').text() != user)
throw "Can't mark range - not all changes are by the same user";
var id = $item.find('input:[type=radio]:eq(0)').attr('value');
actionableids.push(id);
});
var count = 0;
$.ajax({
url: mw.util.wikiScript('api'),
async: false,
data: {action: 'query', list: 'recentchanges', rctoken: 'patrol', rclimit: 500, rcuser: user, format: 'json'},
success: function(data) {
var token = data.query.recentchanges[0].patroltoken;
var rcids = [];
$(data.query.recentchanges).each(function(index, item) {
if ($.inArray(item.revid + '', actionableids) + 1)
rcids.push(item.rcid);
});
for (var i in rcids)
$.ajax({
url: mw.util.wikiScript('api'),
type: 'post',
async: false,
data: {action:'patrol', rcid: rcids[i], token:token, format:'json'},
success: function(data){
if (data && data.patrol && data.patrol.rcid && (data.patrol.rcid == rcids[i]))
count++;
} // success
});
} //success for get;
}); // ajax
alert('הסקריפט סיים לרוץ. ' + count + ' עריכות סומנו כבדוקות.');
}
function markRange() {
try {
markRangeIn();
}
catch(e) {
alert(e);
}
}
$('input:[class=historysubmit]').after(
$('<input>', {type: 'button', value: 'סימון טווח כבדוקות', title: 'סמן את כל העריכות בין המסומנות (לא כולל הראשונה, כלומר המוקדמת ביניהם) כבדוקות'}).click(markRange));
});