mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-11 10:06:53 +08:00
70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
require('jquery-ujs');
|
|
require('jquery-mousewheel');
|
|
require('jquery-autosize');
|
|
require('jquery-ui/ui/widget');
|
|
require('jquery-ui/ui/widgets/mouse');
|
|
require('jquery-ui/ui/widgets/sortable');
|
|
require('jquery-ui/ui/widgets/draggable');
|
|
require('jquery-ui/ui/widgets/droppable');
|
|
require('jquery-ui/ui/effects/effect-slide');
|
|
require('hammerjs');
|
|
import 'bootstrap';
|
|
require('bootstrap-select/js/bootstrap-select');
|
|
|
|
window.bwipjs = require('bwip-js');
|
|
window.Decimal = require('decimal.js');
|
|
|
|
$(document).on('click', '.sci--layout--menu-item[data-submenu=true]', (e) => {
|
|
const item = $(e.currentTarget);
|
|
const caret = item.find('.show-submenu');
|
|
const submenu = item.next();
|
|
e.preventDefault();
|
|
if (submenu.attr('data-collapsed') === 'true') {
|
|
caret.removeClass('sn-icon-right').addClass('sn-icon-down');
|
|
submenu.attr('data-collapsed', false);
|
|
} else {
|
|
caret.removeClass('sn-icon-down').addClass('sn-icon-right');
|
|
submenu.attr('data-collapsed', true);
|
|
}
|
|
});
|
|
|
|
$(document).on('click', '.sci--layout--navigator-open', (e) => {
|
|
navigatorContainer.toggleNavigatorState(false);
|
|
});
|
|
|
|
$(document).on('click', '.btn', function() {
|
|
$(this).blur();
|
|
});
|
|
|
|
$(document).on('turbolinks:load', () => {
|
|
$(window).on('scroll', () => {
|
|
const navbarHeight = 116;
|
|
let scrollPosition = $(window).scrollTop();
|
|
if (scrollPosition > navbarHeight) {
|
|
scrollPosition = navbarHeight;
|
|
}
|
|
$('.sci--layout').css(
|
|
'--navbar-height',
|
|
`calc(var(--top-navigation-height) + var(--breadcrumbs-navigation-height) - ${scrollPosition}px)`
|
|
);
|
|
$('.sci--layout-navigation-navigator').css(
|
|
'--navigator-top-margin',
|
|
((scrollPosition / navbarHeight) * 16) + 'px'
|
|
);
|
|
});
|
|
});
|
|
|
|
// Needed to support Turbolinks redirect_to responses as unsafe-inline is blocked by the CSP
|
|
$.ajaxSetup({
|
|
converters: {
|
|
'text script': function(text) {
|
|
$.globalEval(text, { nonce: document.querySelector('meta[name="csp-nonce"]').getAttribute('content') });
|
|
return text;
|
|
}
|
|
}
|
|
});
|
|
|
|
$(document).on('click', 'a[rel*=external]', function(e) {
|
|
e.preventDefault();
|
|
window.open(this.href, '_blank', 'noopener');
|
|
});
|