מדיה ויקי:Gadget-QuickRCDiff.js: הבדלים בין גרסאות בדף
מראה
מאין תקציר עריכה |
מאין תקציר עריכה |
||
| שורה 7: | שורה 7: | ||
mw.loader.load(['mediawiki.action.history.diff','jquery.spinner']); | mw.loader.load(['mediawiki.action.history.diff','jquery.spinner']); | ||
var lastRequset, $diffDialog, $diffContent, | var lastRequset, $diffDialog, $diffContent, patrolBtn, diffId, diffTitle; | ||
$('.mw-line-even,.mw-line-odd').click(function(e) { | $('.mw-line-even,.mw-line-odd').click(function(e) { | ||
if (e.target !== this || ! $(this).children('a:contains(היסטוריה)').length) { return; } | if (e.target !== this || ! $(this).children('a:contains(היסטוריה)').length) { return; } | ||
| שורה 14: | שורה 14: | ||
if(!$diffDialog) { | if(!$diffDialog) { | ||
var buttons = { | var buttons = { | ||
'בדיקת העתקה': | |||
function() { | |||
window.open('http://tools.wmflabs.org/copyvios/?lang=he&project=wikipedia&title='+diffTitle+'&oldid='+diffId+'&action=search&use_engine=1&use_links=1', '_blank') | |||
}, | |||
'!': | '!': | ||
function(){ | function(){ | ||
if (! | if (!diffId){ | ||
return;//nothing to do | return;//nothing to do | ||
} | } | ||
var api=new mw.Api(); | var api = new mw.Api(); | ||
api.post({ | api.post({ | ||
action:'patrol', | action:'patrol', | ||
revid: diffId, | |||
token: mw.user.tokens.get('patrolToken') | token: mw.user.tokens.get('patrolToken') | ||
}).done(function(data){ | }).done(function(data){ | ||
| שורה 34: | שורה 38: | ||
} | } | ||
}); | }); | ||
} | } | ||
}; | }; | ||
| שורה 52: | שורה 55: | ||
} | } | ||
var self = this, | var self = this, | ||
diffHref = $(this).find('a[tabindex]').prop('href'), | diffHref = $(this).find('a[tabindex]').prop('href'), | ||
unpatrolled = $(this).find('.unpatrolled').length; | unpatrolled = $(this).find('.unpatrolled').length; | ||
diffTitle = $(this).find('.mw-changeslist-title').text(); | |||
patrolBtn.hide(); | patrolBtn.hide(); | ||
if(self == lastRequset) { | if(self == lastRequset) { | ||
return; | return; | ||
| שורה 64: | שורה 66: | ||
action: 'query', | action: 'query', | ||
prop: 'revisions', | prop: 'revisions', | ||
}; | }; | ||
if(diffHref){ | if(diffHref){ | ||
diffId = diffHref.match(/&diff=(\d+)&oldid=/)[1]; | |||
param.rvprop = 'timestamp'; | param.rvprop = 'timestamp'; | ||
param.rvdiffto = 'prev'; | param.rvdiffto = 'prev'; | ||
param.revids = diffId; | param.revids = diffId; | ||
} else { | } else { | ||
diffId = 0; | |||
param.rvprop = 'content'; | param.rvprop = 'content'; | ||
param.titles = | param.titles = diffTitle; | ||
} | } | ||
new mw.Api().get(param).done( function(res) | |||
{ | { | ||
if (unpatrolled) patrolBtn.show(); | if (unpatrolled) patrolBtn.show(); | ||
$(self).css('background','#fc6'); | $(self).css('background','#fc6'); | ||
| שורה 113: | שורה 112: | ||
newTable.append(diffString); | newTable.append(diffString); | ||
} | } | ||
$diffDialog.dialog('option','title', | $diffDialog.dialog('option','title',diffTitle); | ||
$diffContent.html(newTable); | $diffContent.html(newTable); | ||
$diffDialog.dialog('isOpen') || $diffDialog.dialog('open').dialog('widget').css({'height': '300px', 'top':'auto'}); | $diffDialog.dialog('isOpen') || $diffDialog.dialog('open').dialog('widget').css({'height': '300px', 'top':'auto'}); | ||
גרסה מ־13:18, 16 באוקטובר 2015
/*
check recentchanges/watchlist diffs directly without navigation to other pages.
Written by: [[User:ערן]]
*/
$(function(){
if($.inArray(mw.config.get('wgCanonicalSpecialPageName'),['Watchlist','Recentchanges'])==-1) return;
mw.loader.load(['mediawiki.action.history.diff','jquery.spinner']);
var lastRequset, $diffDialog, $diffContent, patrolBtn, diffId, diffTitle;
$('.mw-line-even,.mw-line-odd').click(function(e) {
if (e.target !== this || ! $(this).children('a:contains(היסטוריה)').length) { return; }
//initalizations
if (!$diffContent) $diffContent = $('<div>');
if(!$diffDialog) {
var buttons = {
'בדיקת העתקה':
function() {
window.open('http://tools.wmflabs.org/copyvios/?lang=he&project=wikipedia&title='+diffTitle+'&oldid='+diffId+'&action=search&use_engine=1&use_links=1', '_blank')
},
'!':
function(){
if (!diffId){
return;//nothing to do
}
var api = new mw.Api();
api.post({
action:'patrol',
revid: diffId,
token: mw.user.tokens.get('patrolToken')
}).done(function(data){
if (data && data.patrol) {
patrolBtn.hide();
mw.notify('העריכה סומנה כבדוקה');
}
else {
var desc = (data && data.error && data.error.info) || '';
mw.notify('שגיאה:' + desc);
}
});
}
};
$diffDialog = $('<div>').append($diffContent).dialog({
width: '100%',
height: '300',
draggable: false,
resizable: false,
buttons: buttons
});
$diffDialog.dialog('widget').css({
position:'fixed',
bottom: '0',
top: 'auto'
});
patrolBtn = $(":button:contains('!')");
}
var self = this,
diffHref = $(this).find('a[tabindex]').prop('href'),
unpatrolled = $(this).find('.unpatrolled').length;
diffTitle = $(this).find('.mw-changeslist-title').text();
patrolBtn.hide();
if(self == lastRequset) {
return;
}
$diffContent.html($.createSpinner());
var param = {
action: 'query',
prop: 'revisions',
};
if(diffHref){
diffId = diffHref.match(/&diff=(\d+)&oldid=/)[1];
param.rvprop = 'timestamp';
param.rvdiffto = 'prev';
param.revids = diffId;
} else {
diffId = 0;
param.rvprop = 'content';
param.titles = diffTitle;
}
new mw.Api().get(param).done( function(res)
{
if (unpatrolled) patrolBtn.show();
$(self).css('background','#fc6');
if(lastRequset){
$(lastRequset).css('background','#eee');
}
lastRequset = self;
if(res === null)
{
$diffContent.html('Error');
return false;
}
var revision = res.query.pages[Object.keys(res.query.pages)[0]].revisions[0];
var diffString = diffHref ? revision.diff["*"] : revision['*'];
if(diffString === null)
{
$diffContent.html('Error');
return false;
}
var trTemp = $('<tr><td class="diff-marker"> </td><td class="diff-context"></td></tr>');
var newTable = $('<table class="diff"></table>')
.html('<colgroup><col class="diff-marker"><col class="diff-content"><col class="diff-marker"><col class="diff-content"></colgroup>');
if(! diffHref){
newTable.append($('<tr><td colspan="4" class="diff-lineno">דף חדש</td></tr>'));
var rows = diffString.split('\n');
for(var tr in rows){
var curTr = trTemp.clone();
curTr.find('.diff-context').first().text(rows[tr]);
newTable.append(curTr);
}
} else {
newTable.append(diffString);
}
$diffDialog.dialog('option','title',diffTitle);
$diffContent.html(newTable);
$diffDialog.dialog('isOpen') || $diffDialog.dialog('open').dialog('widget').css({'height': '300px', 'top':'auto'});
});
});
});