Участник:Serhio Magpie/compactReview.test.js: различия между версиями
Перейти к навигации
Перейти к поиску
Содержимое удалено Содержимое добавлено
оформление |
Хорошая либа, качественная |
||
Строка 87: | Строка 87: | ||
popupButton.getPopup().on( 'toggle', function ( visible ) { |
popupButton.getPopup().on( 'toggle', function ( visible ) { |
||
if ( visible ) { |
if ( visible ) { |
||
$commentInput.focus(); |
$commentInput.get(0).focus(); |
||
} |
} |
||
} ); |
} ); |
Версия от 04:07, 17 октября 2021
( function () {
var _currentPositon = null;
var $container = $( '#mw-data-after-content' );
var $topContainer = $( '.mw-indicators' );
var $form = $( '#mw-fr-reviewform' );
if ( $form.length === 0 ) {
return;
}
$form.addClass( [ 'oo-ui-layout', 'noprint' ] );
// Кнопка «Подтврдить версию»
$( '#mw-fr-submit-accept' )
.attr( {
role: 'button',
tabindex: 0
} )
.addClass( 'mw-ui-button' )
.appendTo( $form );
// Кнопка «Снять подтверждение»
$( '#mw-fr-submit-unaccept' )
.attr( {
role: 'button',
tabindex: 0
} )
.addClass( 'mw-ui-button' )
.appendTo( $form );
// Кнопка «Отклонить изменения»
$( '#mw-fr-submit-reject' )
.attr( {
role: 'button',
tabindex: 0
} )
.addClass( ['mw-ui-button', 'mw-ui-destructive'] )
.appendTo( $form );
// Поле «Примечание»
var $commentLabel = $form.find( '.fr-comment-box' );
var $commentInput = $( '#mw-fr-commentbox' )
.addClass( 'oo-ui-inputWidget-input' );
// Сообщение об изменениях в шаблонах и изображениях
var $infoP;
$form.find( 'p' )
.each( function() {
var $item = $( this );
if ( /^Обновлённые/.test( $item.text() ) ) {
$infoP = $item;
}
} );
// Отрисовать иконку с тултипом
if (
$commentInput.length > 0 ||
( $infoP && $infoP.length > 0 )
) {
mw.loader.using( [ 'oojs', 'oojs-ui' ] ).done( function () {
var commentWidget = new OO.ui.Widget( {
$content: $commentInput,
classes: [ 'oo-ui-textInputWidget' ]
} );
var commentField = new OO.ui.FieldLayout( commentWidget, {
label: $commentLabel.text(),
align: 'top'
} );
var $popupCotent = $( '<div>' )
.addClass( 'compactReview-popup-content' )
.append( commentField.$element )
.append( $infoP );
var popupButton = new OO.ui.PopupButtonWidget( {
icon: 'infoFilled',
framed: false,
label: 'Обновлённые шаблоны или файлы',
invisibleLabel: true,
popup: {
$content: $popupCotent,
padded: true,
align: 'force-left'
}
} );
popupButton.getPopup().on( 'toggle', function ( visible ) {
if ( visible ) {
$commentInput.get(0).focus();
}
} );
$form.append( popupButton.$element );
} );
}
// Переместить форму наверх страницы
function embed() {
var offset = $topContainer.offset();
var height = $form.height();
var sctollTop = $( this ).scrollTop();
if ( sctollTop > offset.top + height ) {
if ( _currentPositon !== 'bottom' ) {
_currentPositon = 'bottom';
$form.appendTo( $container );
}
} else {
if ( _currentPositon !== 'top' ) {
_currentPositon = 'top';
$form.appendTo( $topContainer );
}
}
}
if ( !mw.config.get( 'wgIsMainPage' ) ) {
embed();
$( window ).scroll ( embed );
}
mw.loader.using( 'mediawiki.util' ).done( function () {
mw.util.addCSS( '\
.compactReview-popup-content { margin:12px 0; }\
.compactReview-popup-content p:not(:first-child) { margin-top:1em; }\
\
#mw-fr-reviewform { margin:1em 0; }\
#mw-fr-reviewform .flaggedrevs_reviewform { display:none; }\
#mw-fr-reviewform #mw-fr-submit-accept { margin:0; }\
#mw-fr-reviewform #mw-fr-submit-unaccept { margin:0 0 0 .5em; }\
#mw-fr-reviewform #mw-fr-submit-reject { margin:0 0 0 .5em; }\
#mw-fr-reviewform .oo-ui-popupButtonWidget { margin-left:.5em; }\
.mw-indicators #mw-fr-reviewform { display:inline-block; margin:0 0 0 1em; position:relative; }\
#mw-data-after-content #mw-fr-reviewform { font-size:0.875em; line-height:1.6; }\
\
body.skin-timeless .mw-indicators #mw-fr-reviewform { top:-8px }\
body.skin-modern .mw-indicators #mw-fr-reviewform { z-index:1; top:7px; right:7px; }\
' );
} );
} )();