MediaWiki:Gadget-patrolRevisions.js
Qeyd: Yaddaşa verdikdən sonra dəyişikliklərin görünməsi üçün brauzerinizin keşindən yan keçilməsi lazım ola bilər. Mozilla / Firefox / Safari: Reload düyməsini basarkən eyni vaxtda Shift-i basılı tutun və ya Ctrl-Shift-R-a basın. (Apple Mac-da Cmd-Shift-R). İE: Refresh düyməsini basarkən eyni vaxtda Ctrl-i basılı tutun və ya Ctrl-F5-ə basın. Conqueror: Sadəcə Reload düyməsinə və ya F5-ə basın. Opera brauzeri redaktorları Tools→Preferences-dən cache-lərini tamamilə təmizləməli ola bilərlər.
( function ( mw, $ ) {
var api = new mw.Api();
function markAsPatrolled( rcid ) {
return api.postWithToken( 'patrol', {
'action': 'patrol',
'rcid': rcid,
} );
}
function processNext( queue ) {
if ( queue.length === 0 ) {
return $.Deferred().resolve();
}
var rcid = queue.pop();
return markAsPatrolled( rcid )
.then( function () {
return processNext( queue );
} );
}
function onHistory() {
if ( mw.config.get( 'wgAction' ) !== 'history' ) {
return;
}
$.getJSON( 'https://tools.wmflabs.org/urbanecmbot/wikipediamisc/historypatrol.py', {
'format': 'new',
'rev_page': mw.config.get( 'wgArticleId' )
} )
.then( function ( data ) {
if ( $.isEmptyObject( data ) ) {
return;
}
$( function() {
$( '.mw-checkbox-toggle-controls' )
.append(
$( '<div>' )
.addClass( 'mark-all-as-patrolled' )
.css( {
'float': 'right',
} )
.append(
'[',
$( '<a>' )
.attr( 'href', '#' )
.text( 'Bütün redaktələri patrullanmış kimi işarələ' )
.on( 'click', function ( event ) {
event.preventDefault();
$( this ).replaceWith( '...' );
processNext( Object.values( data ) )
.then( function () {
$( '.mark-all-as-patrolled' ).remove();
$( '.row-unpatrolled' ).removeClass( 'row-unpatrolled' );
mw.notify( 'Bütün redaktələr patrullanmış kimi işarələndi' );
} );
} ),
']'
)
);
var rows = Object.values( data ).length;
$( '#pagehistory > li' ).each( function () {
var $this = $( this );
if ( data[ $this.data( 'mw-revid' ) ] ) {
$this.addClass( 'row-unpatrolled' );
return --rows !== 0;
}
} );
mw.util.addCSS( '.row-unpatrolled { background-color: #fff0c2 !important; }' );
} );
} );
}
function onUserContribs() {
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Contributions' ) {
return;
}
if ( !mw.config.get( 'wgRelevantUserName' ) ) {
return;
}
$.getJSON( 'https://tools.wmflabs.org/urbanecmbot/wikipediamisc/userpatrol.py', {
'format': 'new',
'user_name': mw.config.get( 'wgRelevantUserName' )
} ).then( function( data ) {
if ( $.isEmptyObject( data ) ) {
return;
}
$( function() {
$( '.mw-contributions-table' )
.append(
$( '<div>' )
.addClass( 'mark-all-as-patrolled' )
.css( {
'float': 'right',
} )
.append(
'[',
$( '<a>' )
.attr( 'href', '#' )
.text( 'Bütün redaktələri patrullanmış kimi işarələ' )
.on( 'click', function( event ) {
event.preventDefault();
$( this ).replaceWith( '...' );
processNext( Object.values( data ) )
.then( function() {
$( '.mark-all-as-patrolled' ).remove();
$( '.unpatrolled' ).remove();
mw.notify( 'Bütün istifadəçi redaktələri patrullanmış kimi işarələndi' );
} );
} ),
']'
)
);
var marker = $( '<abbr>' )
.attr( 'title', 'Bu dəyişiklik hələ patrullanmayıb' )
.addClass( 'unpatrolled' )
.html( '!' );
var rows = Object.values( data ).length;
$( '.mw-contributions-list > li' ).each( function () {
var $this = $( this );
if ( data[ $this.data( 'mw-revid' ) ] ) {
$this.find( '.mw-changeslist-separator' ).eq( 1 ).after( [ ' ', marker.clone() ] );
return --rows !== 0;
}
} );
} );
} );
}
function onDiff( $diff ) {
if ( !mw.config.get( 'wgDiffNewId' ) || !mw.config.get( 'wgDiffOldId' ) ) {
return;
}
var $el = $diff.find( '.diff-multi' );
if ( $el.length !== 1 ) {
return;
}
$.getJSON( 'https://tools.wmflabs.org/urbanecmbot/wikipediamisc/diffpatrol.py', {
'format': 'new',
'rev_page': mw.config.get( 'wgArticleId' ),
'rev_first': mw.config.get( 'wgDiffOldId' ),
'rev_second': mw.config.get( 'wgDiffNewId' ),
} )
.then( function ( data ) {
if ( $.isEmptyObject( data ) ) {
return;
}
$( function() {
$el
.append(
$( '<div>' )
.addClass( 'mark-revisions-as-patrolled' )
.append(
'[',
$( '<a>' )
.attr( 'href', '#' )
.text( 'Bütün ara redaktələr patrullanmış kimi işarələndi' )
.on( 'click', function ( event ) {
event.preventDefault();
$( this ).replaceWith( '...' );
processNext( Object.values( data ) )
.then( function () {
$el.find( '.mark-revisions-as-patrolled' ).remove();
$diff.find( '#mw-diff-ntitle4 .patrollink' ).remove();
mw.notify( 'Bütün yoxlanışlar patrullanmış kimi işarələndi' );
} );
} ),
']'
)
);
} );
} );
}
onHistory();
onUserContribs();
mw.hook( 'wikipage.diff' ).add( onDiff );
} )( mediaWiki, jQuery );