feat(turnstile): двухконтурный учет СКУД, реестры исключений с автокомплитом 1С и калибровка таймзон

This commit is contained in:
2026-09-10 15:36:32 +03:00
parent 6c9b131cf2
commit 74332aa38a
31 changed files with 4509 additions and 10769 deletions
+8 -13
View File
@@ -25,27 +25,22 @@ function saveCommandToHistory(commandText) {
chatHistoryIndex = -1;
}
// ⭐️ ЕДИНАЯ ФУНКЦИЯ СКРОЛЛА: плавное выравнивание вопроса к верхней границе
// ⭐️ ЕДИНАЯ ФУНКЦИЯ СКРОЛЛА: выравнивание вопроса к верхней границе
function scrollToUserMessageTop() {
const container = document.getElementById("chat-messages-container");
if (!container) return;
const userBubbles = container.querySelectorAll(".user-chat-bubble");
const targetEl = userBubbles[userBubbles.length - 1] || container.lastElementChild;
const targetEl = userBubbles[userBubbles.length - 1];
if (!targetEl) return;
requestAnimationFrame(() => {
setTimeout(() => {
const containerTop = container.getBoundingClientRect().top;
const targetTop = targetEl.getBoundingClientRect().top;
const targetScroll = container.scrollTop + (targetTop - containerTop) - 16;
const targetScroll = targetEl.offsetTop - container.offsetTop - 12;
container.scrollTo({
top: Math.max(0, targetScroll),
behavior: 'smooth'
});
}, 50);
container.scrollTo({
top: Math.max(0, targetScroll),
behavior: 'smooth'
});
});
}
@@ -99,7 +94,7 @@ function appendUserMessage(text, filename = null) {
}
const msgHtml = `
<div id="${msgId}" class="user-chat-bubble flex gap-3 max-w-4xl mx-auto w-full justify-end pt-3 scroll-mt-4">
<div id="${msgId}" class="user-chat-bubble relative flex gap-3 max-w-4xl mx-auto w-full justify-end pt-3 scroll-mt-4">
<div class="flex-1 max-w-2xl bg-indigo-600 text-white rounded-2xl rounded-tr-none p-4 shadow-sm">
${fileBadge}
<div class="text-sm leading-relaxed whitespace-pre-wrap">${escapeHtml(text)}</div>