MediaWiki:Common.js: различия между версиями

Материал из SS220 Paradise Wiki (SS13)
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 51: Строка 51:
         mw.loader.load( 'https://wiki.ss220.space/index.php/Участник:Gevron/legacyToolbar.js?action=raw&ctype=text/javascript' );  
         mw.loader.load( 'https://wiki.ss220.space/index.php/Участник:Gevron/legacyToolbar.js?action=raw&ctype=text/javascript' );  
     }
     }
// Честно стащено с бывшей официальной Minecraft Wiki
// Добавляет кнопку для очистки кэша
if ( !$( '#ca-purge' ).length ) {
    $( '#p-cactions' ).find( 'ul' ).append(
        $( '<li>' ).attr( { 'id': 'ca-purge', 'class': 'mw-list-item' } ).append(
            $( '<a>' ).attr( { 'href': mw.util.getUrl( null, { action: 'purge' } ), 'title': 'Очистить серверный кэш страницы' } ).append(
                $( '<span>' ).text( 'Очистить кэш' )
            )
        )
    );
}
// Меняем обычную ссылку очистки кэша на API-запрос, чтобы избежать окна подтверждения
mw.loader.using( 'mediawiki.api' ).then( function() {
    $( '#ca-purge a' ).on( 'click', function( e ) {
        new mw.Api().post( {
            action: 'purge',
            titles: mw.config.get( 'wgPageName' )
        } ).then( function() {
            location.reload();
        }, function() {
            mw.notify( 'Purge failed', { type: 'error' } );
        } );
       
        e.preventDefault();
    } );
} );

Версия от 15:10, 13 декабря 2022

$(function () {

    const elemsSwitch = Array.from(document.querySelectorAll(".kaskadavionics .switchtab"));

    for (var ii = 0; ii < elemsSwitch.length; ii++) {

        elemsSwitch[ii].onclick = function () {

            const tabId = this.getAttribute("data-tab");

            var elemens = Array.from(document.querySelectorAll(".kaskadavionics .switchtab"));

            for (var iii = 0; iii < elemens.length; iii++) {

                elemens[iii].classList.remove("current");

            }
            elemens = Array.from(document.querySelectorAll(".kaskadavionics .tabcontent"));
            for (var jj = 0; jj < elemens.length; jj++) {

                elemens[jj].classList.remove("current");

            }
            this.classList.add("current");
            document.querySelector("[data-tab='"+tabId+"']").classList.add("current");
            document.querySelector("#p"+tabId).classList.add("current");

        };

    }

}());

// Добавляет ссылку для редактирования нулевого раздела (введения; преамбулы)
    var wgNamespaceNumber = mw.config.get( 'wgNamespaceNumber' );
    var wgPageName = mw.config.get( 'wgPageName' );

    if (wgNamespaceNumber > -1){ 
        var edittopHTML = '<span class="mw-editsection">' +
        '<span class="mw-editsection-bracket" style="margin-right: 0.25em;color: #555555;">[</span>' +
        '<a href="/index.php?title=' + wgPageName + '&amp;action=edit&amp;section=0" title="Править «введение» этой страницы">править введение</a>' +
        '<span class="mw-editsection-bracket" style="margin-left: 0.25em;color: #555555;">]</span>' +
        '</span>';
        $('#firstHeading').append(edittopHTML);
    }

// Только при редактировании, вне режима визуального редактора
    if ( mw.config.get( 'wgAction' ) == 'edit' || mw.config.get( 'wgAction' ) == 'submit' ) {

        // Устаревшая, но всё ещё действующая панель редактирования исходного кода
        mw.loader.load( 'https://wiki.ss220.space/index.php/Участник:Gevron/legacyToolbar.js?action=raw&ctype=text/javascript' ); 
    }

// Честно стащено с бывшей официальной Minecraft Wiki
// Добавляет кнопку для очистки кэша
if ( !$( '#ca-purge' ).length ) {
    $( '#p-cactions' ).find( 'ul' ).append(
        $( '<li>' ).attr( { 'id': 'ca-purge', 'class': 'mw-list-item' } ).append(
            $( '<a>' ).attr( { 'href': mw.util.getUrl( null, { action: 'purge' } ), 'title': 'Очистить серверный кэш страницы' } ).append(
                $( '<span>' ).text( 'Очистить кэш' )
            )
        )
    );
}
// Меняем обычную ссылку очистки кэша на API-запрос, чтобы избежать окна подтверждения
mw.loader.using( 'mediawiki.api' ).then( function() {
    $( '#ca-purge a' ).on( 'click', function( e ) {
        new mw.Api().post( {
            action: 'purge',
            titles: mw.config.get( 'wgPageName' )
        } ).then( function() {
            location.reload();
        }, function() {
            mw.notify( 'Purge failed', { type: 'error' } );
        } );
        
        e.preventDefault();
    } );
} );