Flatlogic Bot c04a6c2d66 Version 1
2026-04-01 08:42:52 +00:00

58 lines
2.1 KiB
JavaScript

document.addEventListener('DOMContentLoaded', () => {
const searchInput = document.getElementById('tableSearch');
const rows = Array.from(document.querySelectorAll('.js-search-row'));
if (searchInput && rows.length) {
searchInput.addEventListener('input', (event) => {
const query = event.target.value.trim().toLowerCase();
rows.forEach((row) => {
const text = row.textContent.toLowerCase();
row.style.display = text.includes(query) ? '' : 'none';
});
});
}
const syncScorePreview = (container) => {
const targetInput = container.querySelector('.js-score-target');
const currentInput = container.querySelector('.js-score-current');
const output = container.querySelector('.js-score-output');
if (!targetInput || !currentInput || !output) {
return;
}
const render = () => {
const target = parseFloat(targetInput.value || '0');
const current = parseFloat(currentInput.value || '0');
let score = 0;
if (target > 0) {
score = Math.max(0, Math.min(100, (current / target) * 100));
}
output.textContent = `${score.toFixed(1).replace('.0', '')}%`;
};
['input', 'change'].forEach((eventName) => {
targetInput.addEventListener(eventName, render);
currentInput.addEventListener(eventName, render);
});
render();
};
document.querySelectorAll('#okrCreateForm, #okrReviewForm').forEach(syncScorePreview);
const sidebar = document.getElementById('sidebarMenu');
const sidebarToggle = document.getElementById('sidebarToggle');
if (sidebar && sidebarToggle) {
sidebarToggle.addEventListener('click', () => {
sidebar.classList.toggle('is-open');
});
}
document.querySelectorAll('[data-auto-dismiss="true"]').forEach((alertEl) => {
window.setTimeout(() => {
alertEl.classList.add('fade');
alertEl.classList.remove('show');
}, 3200);
});
});