Справица:Solutions.js

Извор: SI Wiki
Датум измене: 28. јун 2021. у 14:01; аутор: KockaAdmiralac (разговор | доприноси) (Pomeranje JS za sakrivanje i otkrivanje rešenja u spravicu)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу
mw.hook('wikipage.content').add(function($content) {
    // Sakrivanje rešenja (dva načina).
    var $body = $('body'),
        $button = $('<span>', {
            class: [
                'oo-ui-buttonElement',
                'oo-ui-buttonElement-framed',
                'oo-ui-flaggedElement-primary',
                'oo-ui-flaggedElement-progressive',
                'oo-ui-labelElement',
                'oo-ui-widget-enabled'
            ].join(' ')
        }).append(
            $('<button>', {
                class: 'oo-ui-buttonElement-button',
                tabindex: '0'
            }).append(
                $('<span>', {
                    class: 'oo-ui-labelElement-label label'
                })
            )
        ),
        $buttons = $content.find('.unhide-solutions:not(.loaded), .unhide-spoilers:not(.loaded)'),
        $settings = $content.find('[data-unhide]');
    function toggleSolutionsAndSpoilers($button, spoilers, solutions) {
        var $label = $button.find('.label');
        if (spoilers) {
            if ($body.hasClass('show-spoilers')) {
                $body.removeClass('show-spoilers');
                $label.text('Прикажи решења');
            } else {
                $body.addClass('show-spoilers');
                $label.text('Сакриј решења');
            }
        }
        if (solutions) {
            if ($body.hasClass('show-solutions')) {
                $body.removeClass('show-solutions');
                $label.text('Прикажи решења');
            } else {
                $body.addClass('show-solutions');
                $label.text('Сакриј решења');
            }
        }
    }
    $buttons.click(function() {
        var $this = $(this);
        toggleSolutionsAndSpoilers(
        	$this,
            $this.hasClass('unhide-spoilers'),
            $this.hasClass('unhide-solutions')
        );
    })
        .addClass('loaded')
        .append($button.clone())
        .find('.label')
        .text('Прикажи решења');
    if ($buttons.length) {
        mw.loader.load('mediawiki.htmlform.ooui');
    }
    $settings.each(function() {
        var $this = $(this),
        	settings = $this.data('unhide').split(',');
        toggleSolutionsAndSpoilers(
        	$this,
            settings.indexOf('spoilers') !== -1,
            settings.indexOf('solutions') !== -1
        );
    });
});