Files
opensem/resources/shop/js/site.js
2025-10-04 11:59:57 +02:00

44 lines
1.4 KiB
JavaScript

// Simple notification helper used by blade templates (fallback to Bootstrap alerts)
window.growl = function(message, type) {
var alertTypes = {
success: 'alert-success',
error: 'alert-danger',
warning: 'alert-warning',
info: 'alert-info'
};
var cssClass = alertTypes[type] || alertTypes.info;
var $container = $('#growl-container');
if (!$container.length) {
$container = $('<div id="growl-container" class="growl-container position-fixed w-100" style="top: 1rem; left: 0; z-index: 1080; pointer-events: none;"></div>');
$('body').append($container);
}
var $alert = $('<div class="alert ' + cssClass + ' alert-dismissible fade show mx-auto shadow" role="alert" style="max-width: 420px; pointer-events: all;"></div>');
$alert.append($('<span></span>').text(message));
$alert.append('<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>');
$container.append($alert);
setTimeout(function() {
$alert.alert('close');
}, 4000);
};
// Prevent closing from click inside dropdown
$(document).on('click', '.dropdown-menu', function (e) {
e.stopPropagation();
});
// make it as accordion for smaller screens
if ($(window).width() < 992) {
$('.dropdown-menu a').click(function(e) {
e.preventDefault();
if ($(this).next('.submenu').length) {
$(this).next('.submenu').toggle();
}
$('.dropdown').on('hide.bs.dropdown', function () {
$(this).find('.submenu').hide();
});
});
}