3675
правок
Mansur700 (обсуждение | вклад) (Керла агӀо: «mw.hook( 'wikipage.content' ).add( function () { $.fn.highlight = function () { $( this ).addClass( 'highlighted' ); setTimeout( function () { $( '.highlighted' ).re...») |
Mansur700 (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
mw.hook( 'wikipage.content' ).add( function () { | mw.hook( 'wikipage.content' ).add( function () { | ||
// Подсветка изменившихся элементов | |||
$.fn.highlight = function () { | $.fn.highlight = function () { | ||
$( this ).addClass( 'highlighted' ); | $( this ).addClass( 'highlighted' ); | ||
Строка 8: | Строка 9: | ||
}; | }; | ||
// Получить элемент ввода MediaWiki / установить его значение | |||
function elem( name, value ) { | function elem( name, value ) { | ||
var $el = $( '[name="wp' + name + '"]' ); | var $el = $( '[name="wp' + name + '"]' ); | ||
if ( value !== undefined ) { | if ( value !== undefined ) { | ||
// Устанавливаем значение | |||
if ( $el.prop( 'tagName' ) === 'SELECT' ) { | if ( $el.prop( 'tagName' ) === 'SELECT' ) { | ||
var $option = $el.find( 'option[value*="' + value + '"]' ); | var $option = $el.find( 'option[value*="' + value + '"]' ); | ||
Строка 24: | Строка 27: | ||
} else { // type = text | } else { // type = text | ||
if ( /-other$/.test( name ) ) { | if ( /-other$/.test( name ) ) { | ||
// | // Устанавливаем значение «родительского» выпадающего списка — «other» | ||
elem( name.replace( /-other$/ , ''), 'other' ); | elem( name.replace( /-other$/ , ''), 'other' ); | ||
} | } | ||
Строка 37: | Строка 40: | ||
elem( 'Reason' ).change( function () { | elem( 'Reason' ).change( function () { | ||
if ( / | if ( /неприемлемое имя/.test( this.value ) ) { | ||
elem( 'Expiry' , 'indefinite' ); | elem( 'Expiry' , 'indefinite' ); | ||
if ( / | if ( /рекламное|заблуждение/.test( this.value ) ) { | ||
elem( 'CreateAccount', false ); | elem( 'CreateAccount', false ); | ||
elem( 'DisableEmail', false ); | elem( 'DisableEmail', false ); | ||
elem( 'AutoBlock', false ); | elem( 'AutoBlock', false ); | ||
} | } | ||
} else if ( / | } else if ( /анонимизирующий сервер/.test( this.value ) ) { | ||
// | // Если значение не установлено | ||
if ( elem( 'Expiry' ).val() === 'other' && !elem( 'Expiry-other' ).val() ) { | if ( elem( 'Expiry' ).val() === 'other' && !elem( 'Expiry-other' ).val() ) { | ||
elem( 'Expiry-other', '5 years' ); | elem( 'Expiry-other', '5 years' ); | ||
Строка 52: | Строка 55: | ||
elem( 'DisableEmail', true ); | elem( 'DisableEmail', true ); | ||
elem( 'HardBlock', true ); | elem( 'HardBlock', true ); | ||
} else if ( / | } else if ( /новый участник с провокационным вкладом/.test( this.value ) | ||
|| / | || /«общая» учётная запись/i.test( this.value ) | ||
) { | ) { | ||
elem( 'Expiry', 'indefinite' ); | elem( 'Expiry', 'indefinite' ); | ||
Строка 60: | Строка 63: | ||
// https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver | // https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver | ||
// | // Если изменение состояния эмуляции селекта в OOjs UI будет само инициировать событие change | ||
// | // на настоящем селекте, кусок до runAsEarlyAsPossible включительно можно будет удалить. | ||
var observe = function () { | var observe = function () { | ||
var label = $( '#mw-input-wpReason-select .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label' )[ 0 ]; | var label = $( '#mw-input-wpReason-select .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label' )[ 0 ]; |