📖
داشبورد استفتائات شرعی
آنالیز و جستجوی هوشمند ۸۹۰ استفتا
کل استفتاها
890
از اکتبر ۲۰۲۲ تا مه ۲۰۲۶
پاسخ داده شده
596
۶۷٪ پاسخ دارند
بدون پاسخ
294
۳۳٪ پاسخ ندارند
موضوعات
12
دستهبندی موضوعی
📊 توزیع موضوعی
📅 آمار ماهانه
🔍 جستجو و فیلتر
${parts[1]}/${parts[0].slice(2)}
`;
col.addEventListener('mouseenter', () => {
monthInfoEl.textContent = `${ym}: ${cnt} استفتا`;
});
col.addEventListener('mouseleave', () => { monthInfoEl.textContent = ''; });
chartEl.appendChild(col);
});
// Filter chips
let activeFilter = 'همه';
let activeAnswered = null; // null=all, true=answered, false=unanswered
const chipsEl = document.getElementById('filterChips');
TOPICS.forEach(t => {
const chip = document.createElement('button');
chip.className = 'chip' + (t === 'همه' ? ' active' : '');
chip.textContent = t;
chip.addEventListener('click', () => {
activeFilter = t;
document.querySelectorAll('#filterChips .chip.topic-chip').forEach(c => c.classList.remove('active'));
chip.classList.add('active');
renderList();
});
chip.classList.add('topic-chip');
chipsEl.appendChild(chip);
});
// Answer filter
['همه وضعیتها', 'پاسخ دارد', 'بدون پاسخ'].forEach((label, i) => {
const chip = document.createElement('button');
chip.className = 'chip' + (i === 0 ? ' active' : '');
chip.textContent = label;
chip.style.borderColor = i === 1 ? 'var(--green)' : i === 2 ? 'var(--red)' : '';
chip.addEventListener('click', () => {
activeAnswered = i === 0 ? null : i === 1 ? true : false;
document.querySelectorAll('#filterChips .chip.ans-chip').forEach(c => c.classList.remove('active'));
chip.classList.add('active');
renderList();
});
chip.classList.add('ans-chip');
chipsEl.appendChild(chip);
});
// Search
const searchInput = document.getElementById('searchInput');
searchInput.addEventListener('input', renderList);
function highlight(text, term) {
if (!term) return text;
const escaped = term.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
return text.replace(new RegExp(escaped, 'gi'), m => `${m}`);
}
function renderList() {
const term = searchInput.value.trim();
const listEl = document.getElementById('qList');
const resultEl = document.getElementById('resultInfo');
let filtered = questions.filter(q => {
if (activeFilter !== 'همه' && q.t !== activeFilter) return false;
if (activeAnswered !== null && q.h !== activeAnswered) return false;
if (term) {
const low = term.toLowerCase();
return q.q.includes(low) || q.a.includes(low) || q.q.includes(term) || q.a.includes(term);
}
return true;
});
resultEl.textContent = `${filtered.length} استفتا یافت شد`;
const shown = filtered.slice(0, 50);
listEl.innerHTML = shown.map(q => `
${highlight(q.q, term)}
${q.a ? `پاسخ: ${highlight(q.a, term)}
` : ''}
${q.d}
${filtered.length - 50} استفتای بیشتر — جستجو را محدودتر کنید
`;
}
}
renderList();