2734
правки
Изменения
Нет описания правки
( function() {
'use strict';
/* Variables for interface text used throughout the script, for ease of translating */
// Page loader
loadErrorTitle: 'Возникла ошибка при загрузке содержимого',
// File upload
defaultLicense: 'Лицензия'
};
var mcw = window.mcw = {};
mw.loader.using( 'mediawiki.user', function() {
if ( mw.user.options.get( 'showtoolbar' ) && !mw.user.options.get( 'usebetatoolbar' ) ) {
mw.loader.using( 'mediawiki.legacy.wikibits', function() {
importScript( 'MediaWiki:Toolbar.js' );
} );
}
} );
/* Добавляет кнопки вставки часто используемых описаний правки */
if (wgAction == 'edit' || wgAction == 'submit') {
mw.loader.load( '/index.php?title=MediaWiki:AddSumButton.js&action=raw&ctype=text/javascript' );
}
/* Скрывает вкладку "Править вики-текст", если ей не хватает места в навигации */
var collapsibleEdit = document.getElementById("ca-edit");
if(collapsibleEdit) {
collapsibleEdit.className += collapsibleEdit.className ? ' collapsible' : 'collapsible';
}
/* Добавляет кнопку "Вверх" слева */
var footerId = document.getElementById("footer");
})
/* Keep track of delegated events on dynamic content */mcw.events = {}; /* GA */(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-81726277-2', 'auto');ga('send', 'pageview'); /* Fires Fired whenever wiki content is added. (#mw-content-text, live preview, load page, etc.) */mw.hook( 'wikipage.content' ).add( function( $wikipageContent ) { /** * Collapsible elements * * Add the "collapsible" class to an element and the child element with class "collapsible-content" * (or everything but the header row if a table) will be hidden when DOM the element is ready collapsed. * ** Add the class "collapsed" to the element to make it start out collapsed. * * Add either "collapsetoggle-left" or "collapsetoggle-inline" to the element to choose the collapse * toggle alignment (defaults to right). * * Add an ID in the format of "collapsible-<x>" to the element to make any element with the class * "collapsetoggle-custom" and a matching class in the format of "collapsible-<x>-toggle" control * the collapsing instead of the standard button. * If the custom toggle contains an element with the "jslink" class, only that will be clickable. */( function() { var $collapsibles = $wikipageContent.find( '.collapsible' ); if ( !$collapsibles.length ) { return; } var $toggleTemplate = $( '<span>' ).addClass( 'collapsetoggle' ).append( '[', $( '<span>' ).addClass( 'jslink' ), ']' ); $collapsibles.each( function() { var $collapsible = $( this ); if ( $collapsible.data( 'made-collapsible' ) ) { return true; } var $children = $collapsible.children(); var showText = $collapsible.data( 'expandtext' ) || i18n.showText; var hideText = $collapsible.data( 'collapsetext' ) || i18n.hideText; // If there is no content area, add it if ( !$collapsible.is( 'table' ) && !$children.filter( '.collapsible-content' ).length ) { if ( $collapsible.is( 'tr' ) ) { $children.addClass( 'collapsible-content' ); } else { $collapsible.wrapInner( '<div class="collapsible-content">' ); } } var $toggle; var id = $collapsible.attr( 'id' ); if ( id && id.match( /^collapsible-./ ) ) { $toggle = $( $wikipageContent[0].getElementsByClassName( id + '-toggle' ) ) .filter( '.collapsetoggle-custom' ).css( 'visibility', 'visible' ); } // Create and insert the toggle button if there is no custom one if ( !$toggle || !$toggle.length ) { var $toggleContainer; if ( $collapsible.is( 'table' ) ) { var $rows = $children.filter( 'thead' ).children(); if ( !$rows.length ) { $rows = $children.filter( 'tbody' ).first().children(); if ( !$rows.length ) { $rows = $children.filter( 'tr' ); } } $toggleContainer = $rows.first().children().last(); } else { $toggleContainer = $children.first(); if ( $toggleContainer.hasClass( 'collapsible-content' ) ) { $toggleContainer = $collapsible; } } $toggle = $toggleTemplate.clone(); if ( $collapsible.hasClass( 'collapsetoggle-inline' ) || $collapsible.hasClass( 'collapse-button-none' ) ) { $toggleContainer.append( $toggle ); } else { $toggleContainer.prepend( $toggle ); } } var $toggleLink = $toggle.find( '.jslink' ); if ( !$toggleLink.length ) { $toggleLink = $toggle; } $toggleLink.attr( 'tabindex', 0 ).text( hideText ); // Find max toggle size, and set its min-width to it var hideWidth = $toggle.width(); $toggleLink.text( showText ); var showWidth = $toggle.width(); if ( hideWidth !== showWidth ) { $toggle.css( 'min-width', hideWidth > showWidth ? hideWidth : showWidth ); } //Set the text back to hide if it's not collapsed to begin with if ( !$collapsible.hasClass( 'collapsed' ) ) { $toggleLink.text( hideText ); } $toggleLink.on( 'click keydown', function(e ) { // Only trigger on enter press if ( e.keyCode && e.keyCode !== 13 ) { return; } // Don't toggle when clicking buttons or links inside the toggle var $target = $( e.target ); if ( $target.is( 'button' ) || $target.is( 'a' ) ) { return; } $collapsible.toggleClass( 'collapsed' ); if ( $collapsible.hasClass( 'collapsed' ) ) { $toggleLink.text( showText ); } else { $toggleLink.text( hideText ); } // Stop table sorting activating when clicking the link e.stopPropagation(); } ); $collapsible.data( 'made-collapsible', true ); } );}() );
( function() {
if ( !mcw.animate ) {
mcw.animate = setInterval( function() {
$content.find( '.animated' ).each( function() {
var $elem = $( this );
var $current = $elem.children( '.active' );
*/
( function() {
var $loadPage = $wikipageContent.find( '.load-page' );
if ( !$loadPage.length ) {
return;
}
// We need the spinner to show loading is happening, but we don't want
// to have a delay while the module downloads, so we'll load this now,
// regardless of if something is clicked
mw.loader.load( 'jquery.spinner' );
// Create button starting with hide text
}
// Just in-case the spinner module is still not ready yet var $spinner = $(); mw.loader.using( '<span>jquery.spinner' , function() { // $spinner will be false if the content somehow loaded before the module did if ( $spinner ) { $spinner = $.createSpinner().textaddClass( 'mw-editsection-like' ) .css( 'min-width', $button..css( 'min-width' ) ); $button.hide().after( $spinner ); } } );
var requestData = {
} );
}() );
} );
/* End wiki content hook */
/* Fires when DOM is ready */
$( function() {
/**
* Fix edit summary prompt for undo
*
* Fixes the fact that the undo function combined with the "no edit summary prompter"
* causes problems if leaving the edit summary unchanged.
* Added by [[wikipedia:User:Deskana]], code by [[wikipedia:User:Tra]].
* See https://bugzilla.wikimedia.org/show_bug.cgi?id=8912
*/
if ( document.location.search.indexOf( "undo=" ) !== -1 && document.getElementsByName( 'wpAutoSummary' )[0] ) {
document.getElementsByName( 'wpAutoSummary' )[0].value='1';
}
/**
* Pause grid GUI templates (e.g. [[Template:Grid/Crafting Table]]) on mouseover
*
* This is so people have a chance to look at each image on the cell
* and click on pages they want to view.
*/
$( '#mw-content-text' ).on( {
'mouseenter': function() {
$( this ).find( '.animated' ).removeClass( 'animated' ).addClass( 'paused' );
},
'mouseleave': function() {
$( this ).find( '.paused' ).removeClass( 'paused' ).addClass( 'animated' );
}
}, '.grid-generic, .grid-Crafting_Table, .grid-Furnace, .grid-Brewing_Stand, .mcui' );
/**
* Make simple search suggestions box separately styled
*/
mw.loader.using( 'mediawiki.searchSuggest', function() {
$( '.suggestions:first' ).addClass( 'searchbar' );
} );
/**
* Set unlicensed as the default license on file pages
*
* That way the file will be categorised so someone can find a license for the file
*/
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload' ) {
if ( $( '#wpLicense' ).val() === '' ) {
$( '#wpLicense' ).val( i18n.defaultLicense );
}
/* mw.loader.using( 'mediawiki.special.upload', function() {
var change = setInterval( function() {
if ( licenseSelectorCheck ) {
$( '#wpLicense' ).change();
clearInterval( change );
}
}, 500 );
} );*/
}
/**
}, '.minetip, .grid > .item, .invslot-item' );
}() );
} );