מדיה ויקי:Gadget-rcSlider.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) ==='Recentchanges' && !mw.user.options.get('usenewrc')) {
var processedDates = false,
months=["בינואר", "בפברואר", "במרץ", "באפריל", "במאי", "ביוני", "ביולי", "באוגוסט", "בספטמבר", "באוקטובר", "בנובמבר" ,"בדצמבר"],
timeoutId;
function textToDate( dateParts, timeParts ) {
return new Date( parseInt( dateParts[2] ), months.indexOf( dateParts[1] ), parseInt( dateParts[0] ), timeParts[0], timeParts[1] );
}
function dateToText( date ) {
return date.toLocaleDateString() + ' '+date.toLocaleTimeString()
}
function initDates(){
if (processedDates) return;
processedDates = true;
$('h4').each( function(i, dHead ) {
var $dHead = $( dHead );
var dateParts = $dHead.text().split(' ');
$dHead.next().children().each(function( j, change ) {
$(change).data( 'date', textToDate( dateParts, $( change ).children( '.mw-changeslist-date' ).text().split( ':' ) ).getTime() );
});
});
}
var startDate = textToDate($('h4:last').text().split(' '), $( '.mw-changeslist-date:last' ).text().split( ':' ) ),
endDate = textToDate($('h4:first').text().split(' '), $( '.mw-changeslist-date:first' ).text().split( ':' ) );
var currRange = $( '<div>' ).css({ 'direction': 'ltr', 'text-align':'center'}).insertAfter( '.mw-recentchanges-table' );
$('<div>').css({'width': '80%', 'margin': 'auto'}).slider({
range: true,
animate: true,
min: startDate.getTime(),
max: endDate.getTime(),
values: [ startDate.getTime(), endDate.getTime() ],
slide: function( event, ui ) {
initDates();
clearTimeout( timeoutId );
currRange.html( dateToText( new Date(ui.values[0]) ) + " — " + dateToText( new Date(ui.values[1]) ) );
timeoutId = setTimeout(function(){
var sDateTime = new Date( ui.values[0] ).getTime(),
eDateTime = new Date( ui.values[1] ).getTime();
var selChanges = $( '.special li' ).filter(function(){
var changeDate = $( this ).data( 'date' );
return (changeDate>=sDateTime && changeDate<=eDateTime);
});
selChanges.show();
currRange.html(currRange.html()+' (#'+selChanges.length+')')
$( '.special li' ).not( selChanges ).hide();
}, 50);
}
})
.insertAfter('.mw-recentchanges-table');
}