101 lines
3.1 KiB
JavaScript
101 lines
3.1 KiB
JavaScript
/**
|
|
* @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);
|