mod: дроп-даун логин/логаут вынесен во внешний auth.js

This commit is contained in:
2026-05-15 13:20:48 +03:00
parent 71d0115046
commit 468d8e8fc4
2 changed files with 47 additions and 23 deletions

45
public/static/js/auth.js Normal file
View File

@@ -0,0 +1,45 @@
/**
* Модуль авторизации: управление dropdown меню логина/логаута
* Открывает/закрывает меню авторизации с загрузкой контента по AJAX
*
*
* Открывает или закрывает dropdown меню логина/логаута
* При первом открытии загружает содержимое меню по AJAX
*
* @param {Event} event - объект события клика (опционально)
* @returns {boolean} false - для предотвращения перезагрузки страницы
*/
function openLoginLogout(event) {
// Предотвращаем переход по ссылке
if (event) event.preventDefault();
// Получаем контейнер меню авторизации
var $box = $('#login-logout');
/**
* Переключает видимость dropdown'а
* Сначала ищет Bootstrap toggle, если нет — вызывает click
*/
function openDropdown() {
var $toggle = $box.find('.dropdown-toggle').first();
if (!$toggle.length) return;
if (typeof $toggle.dropdown === 'function')
$toggle.dropdown('toggle');
else
$toggle.trigger('click');
}
// Если контент ещё не загружен, загружаем его по AJAX
if (!$box.data('loginLoaded')) {
$box.load('/login-logout', function () {
$box.data('loginLoaded', true);
openDropdown();
});
} else {
// Если уже загружен, просто переключаем видимость
openDropdown();
}
return false;
}