Участник:Dibot/pat.js
Перейти к навигации
Перейти к поиску
// Скрипт для показа младших флагов с миграцией на гаджет
// Аналогично [[user:Dima st bk/otkat.js]]
( function() {
if ( mw.config.get( 'wgUserName' ) === null ) {
return;
}
const optionName = 'gadget-markothers';
const notifOptions = {
type: 'warn',
autoHide: false,
};
if ( mw.user.options.get( optionName ) == 1 ) {
mw.notify( $( '<span>Пожалуйста, удалите скрипт pat.js <a href="/wiki/Special:Preferences#mw-prefsection-rendering">из своих личных скриптов (например, common.js)</a>.</span>' ), notifOptions );
return;
}
// из https://github.com/jwbth/convenient-discussions/blob/406e50b5f40700642457b1871efe7d735954df42/src/js/BootProcess.js#L651
const $message = $( '<span><a data-enable href>Нажмите, чтобы включить <b>гаджет показа малых флагов</b></a> вместо скрипта pat.js, чтобы показ малых флагов работал быстрее. Удалите после этого pat.js <a href="/wiki/Special:Preferences#mw-prefsection-rendering">из своих личных скриптов (например, common.js)</a>.</span>' );
$message.find( 'a[data-enable]' ).on('click', ( e ) => {
e.preventDefault();
mw.loader.using( 'mediawiki.api', function() {
new mw.Api().saveOption( optionName, 1 ).then(
() => {
mw.notify( 'Успех', { type: 'success' } );
},
() => {
mw.notify( 'Ошибка', { type: 'error' } );
}
);
} );
});
mw.notify( $message, notifOptions );
mw.loader.using( [ 'ext.gadget.markadmins', 'ext.gadget.markothers' ], function() {
mw.log.warn( 'pat.js (отметка малых флагов): пожалуйста, замените скрипт на гаджет — см. [[Википедия:Гаджеты/Флаги участников]] или настройки → Гаджеты → Участники.' );
} );
}() );