Merge branch 'board-comment' of http://192.168.0.251:3000/localnet/localhost-front into board-comment

This commit is contained in:
kimdaae328 2025-02-24 14:04:21 +09:00
commit 2ba5121c85
2 changed files with 121 additions and 124 deletions

View File

@ -2,116 +2,114 @@
* Main * Main
*/ */
'use strict' (function () {
let menu, animate
;(function () {
// Initialize menu // Initialize menu
//----------------- //-----------------
let menu, animate;
let layoutMenuEl = document.querySelectorAll('#layout-menu') let layoutMenuEl = document.querySelectorAll('#layout-menu');
layoutMenuEl.forEach(function (element) { layoutMenuEl.forEach(function (element) {
menu = new Menu(element, { menu = new Menu(element, {
orientation: 'vertical', orientation: 'vertical',
closeChildren: false, closeChildren: false,
}) });
// Change parameter to true if you want scroll animation // Change parameter to true if you want scroll animation
window.Helpers.scrollToActive((animate = false)) window.Helpers.scrollToActive((animate = false));
window.Helpers.mainMenu = menu window.Helpers.mainMenu = menu;
}) });
// Initialize menu togglers and bind click on each // Initialize menu togglers and bind click on each
let menuToggler = document.querySelectorAll('.layout-menu-toggle') let menuToggler = document.querySelectorAll('.layout-menu-toggle');
menuToggler.forEach((item) => { menuToggler.forEach(item => {
item.addEventListener('click', (event) => { item.addEventListener('click', event => {
event.preventDefault() event.preventDefault();
window.Helpers.toggleCollapsed() window.Helpers.toggleCollapsed();
}) });
}) });
// Display menu toggle (layout-menu-toggle) on hover with delay // Display menu toggle (layout-menu-toggle) on hover with delay
let delay = function (elem, callback) { let delay = function (elem, callback) {
let timeout = null let timeout = null;
elem.onmouseenter = function () { elem.onmouseenter = function () {
// Set timeout to be a timer which will invoke callback after 300ms (not for small screen) // Set timeout to be a timer which will invoke callback after 300ms (not for small screen)
if (!Helpers.isSmallScreen()) { if (!Helpers.isSmallScreen()) {
timeout = setTimeout(callback, 300) timeout = setTimeout(callback, 300);
} else { } else {
timeout = setTimeout(callback, 0) timeout = setTimeout(callback, 0);
}
} }
};
elem.onmouseleave = function () { elem.onmouseleave = function () {
// Clear any timers set to timeout // Clear any timers set to timeout
document.querySelector('.layout-menu-toggle').classList.remove('d-block') document.querySelector('.layout-menu-toggle').classList.remove('d-block');
clearTimeout(timeout) clearTimeout(timeout);
} };
} };
if (document.getElementById('layout-menu')) { if (document.getElementById('layout-menu')) {
delay(document.getElementById('layout-menu'), function () { delay(document.getElementById('layout-menu'), function () {
// not for small screen // not for small screen
if (!Helpers.isSmallScreen()) { if (!Helpers.isSmallScreen()) {
document.querySelector('.layout-menu-toggle').classList.add('d-block') document.querySelector('.layout-menu-toggle').classList.add('d-block');
} }
}) });
} }
// Display in main menu when menu scrolls // Display in main menu when menu scrolls
let menuInnerContainer = document.getElementsByClassName('menu-inner'), let menuInnerContainer = document.getElementsByClassName('menu-inner'),
menuInnerShadow = document.getElementsByClassName('menu-inner-shadow')[0] menuInnerShadow = document.getElementsByClassName('menu-inner-shadow')[0];
if (menuInnerContainer.length > 0 && menuInnerShadow) { if (menuInnerContainer.length > 0 && menuInnerShadow) {
menuInnerContainer[0].addEventListener('ps-scroll-y', function () { menuInnerContainer[0].addEventListener('ps-scroll-y', function () {
if (this.querySelector('.ps__thumb-y').offsetTop) { if (this.querySelector('.ps__thumb-y').offsetTop) {
menuInnerShadow.style.display = 'block' menuInnerShadow.style.display = 'block';
} else { } else {
menuInnerShadow.style.display = 'none' menuInnerShadow.style.display = 'none';
} }
}) });
} }
// Init helpers & misc // Init helpers & misc
// -------------------- // --------------------
// Init BS Tooltip // Init BS Tooltip
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.map(function (tooltipTriggerEl) { tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl) return new bootstrap.Tooltip(tooltipTriggerEl);
}) });
// Accordion active class // Accordion active class
const accordionActiveFunction = function (e) { const accordionActiveFunction = function (e) {
if (e.type == 'show.bs.collapse' || e.type == 'show.bs.collapse') { if (e.type == 'show.bs.collapse' || e.type == 'show.bs.collapse') {
e.target.closest('.accordion-item').classList.add('active') e.target.closest('.accordion-item').classList.add('active');
} else { } else {
e.target.closest('.accordion-item').classList.remove('active') e.target.closest('.accordion-item').classList.remove('active');
}
} }
};
const accordionTriggerList = [].slice.call(document.querySelectorAll('.accordion')) const accordionTriggerList = [].slice.call(document.querySelectorAll('.accordion'));
const accordionList = accordionTriggerList.map(function (accordionTriggerEl) { const accordionList = accordionTriggerList.map(function (accordionTriggerEl) {
accordionTriggerEl.addEventListener('show.bs.collapse', accordionActiveFunction) accordionTriggerEl.addEventListener('show.bs.collapse', accordionActiveFunction);
accordionTriggerEl.addEventListener('hide.bs.collapse', accordionActiveFunction) accordionTriggerEl.addEventListener('hide.bs.collapse', accordionActiveFunction);
}) });
// Auto update layout based on screen size // Auto update layout based on screen size
window.Helpers.setAutoUpdate(true) window.Helpers.setAutoUpdate(true);
// Toggle Password Visibility // Toggle Password Visibility
window.Helpers.initPasswordToggle() window.Helpers.initPasswordToggle();
// Speech To Text // Speech To Text
window.Helpers.initSpeechToText() window.Helpers.initSpeechToText();
// Manage menu expanded/collapsed with templateCustomizer & local storage // Manage menu expanded/collapsed with templateCustomizer & local storage
//------------------------------------------------------------------ //------------------------------------------------------------------
// If current layout is horizontal OR current window screen is small (overlay menu) than return from here // If current layout is horizontal OR current window screen is small (overlay menu) than return from here
if (window.Helpers.isSmallScreen()) { if (window.Helpers.isSmallScreen()) {
return return;
} }
// If current layout is vertical and current window screen is > small // If current layout is vertical and current window screen is > small
// Auto update menu collapsed/expanded based on the themeConfig // Auto update menu collapsed/expanded based on the themeConfig
window.Helpers.setCollapsed(true, false) window.Helpers.setCollapsed(true, false);
})() })();

View File

@ -38,9 +38,9 @@ const loadScript = src => {
script.type = 'text/javascript'; script.type = 'text/javascript';
script.async = true; script.async = true;
document.body.appendChild(script); document.body.appendChild(script);
script.onload = () => { // script.onload = () => {
console.log(`${src} loaded successfully.`); // console.log(`${src} loaded successfully.`);
}; // };
script.onerror = () => { script.onerror = () => {
console.error(`Failed to load script: ${src}`); console.error(`Failed to load script: ${src}`);
}; };
@ -51,5 +51,4 @@ nextTick(async () => {
loadScript('/js/main.js'); loadScript('/js/main.js');
}); });
</script> </script>
<style> <style></style>
</style>