Справица:Solutions.js
Пређи на навигацију
Пређи на претрагу
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
);
});
});