/**
* @file plugins/themes/default/js/main.js
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Handle JavaScript functionality unique to this theme.
*/
(function($) {
// Initialize dropdown navigation menus on large screens
// See bootstrap dropdowns: https://getbootstrap.com/docs/4.0/components/dropdowns/
if (typeof $.fn.dropdown !== 'undefined') {
var $nav = $('#navigationPrimary, #navigationUser'),
$submenus = $('ul', $nav);
function toggleDropdowns() {
if (window.innerWidth > 992) {
$submenus.each(function(i) {
var id = 'pkpDropdown' + i;
$(this)
.addClass('dropdown-menu')
.attr('aria-labelledby', id);
$(this).siblings('a')
.attr('data-toggle', 'dropdown')
.attr('aria-haspopup', true)
.attr('aria-expanded', false)
.attr('id', id)
.attr('href', '#');
});
$('[data-toggle="dropdown"]').dropdown();
} else {
$('[data-toggle="dropdown"]').dropdown('dispose');
$submenus.each(function(i) {
$(this)
.removeClass('dropdown-menu')
.removeAttr('aria-labelledby');
$(this).siblings('a')
.removeAttr('data-toggle')
.removeAttr('aria-haspopup')
.removeAttr('aria-expanded',)
.removeAttr('id')
.attr('href', '#');
});
}
}
window.onresize = toggleDropdowns;
$().ready(function() {
toggleDropdowns();
});
}
// Toggle nav menu on small screens
$('.pkp_site_nav_toggle').click(function(e) {
$('.pkp_site_nav_menu').toggleClass('pkp_site_nav_menu--isOpen');
$('.pkp_site_nav_toggle').toggleClass('pkp_site_nav_toggle--transform');
});
// Modify the Chart.js display options used by UsageStats plugin
document.addEventListener('usageStatsChartOptions.pkp', function(e) {
e.chartOptions.elements.line.backgroundColor = 'rgba(0, 122, 178, 0.6)';
e.chartOptions.elements.rectangle.backgroundColor = 'rgba(0, 122, 178, 0.6)';
});
// Toggle display of consent checkboxes in site-wide registration
var $contextOptinGroup = $('#contextOptinGroup');
if ($contextOptinGroup.length) {
var $roles = $contextOptinGroup.find('.roles :checkbox');
$roles.change(function() {
var $thisRoles = $(this).closest('.roles');
if ($thisRoles.find(':checked').length) {
$thisRoles.siblings('.context_privacy').addClass('context_privacy_visible');
} else {
$thisRoles.siblings('.context_privacy').removeClass('context_privacy_visible');
}
});
}
// Show or hide the reviewer interests field on the registration form
// when a user has opted to register as a reviewer.
function reviewerInterestsToggle() {
var is_checked = false;
$('#reviewerOptinGroup').find('input').each(function() {
if ($(this).is(':checked')) {
is_checked = true;
return false;
}
});
if (is_checked) {
$('#reviewerInterests').addClass('is_visible');
} else {
$('#reviewerInterests').removeClass('is_visible');
}
}
reviewerInterestsToggle();
$('#reviewerOptinGroup input').on('click', reviewerInterestsToggle);
})(jQuery);
|