استفتائات/برنامه

از آیت‌الله گنجی
نسخهٔ تاریخ ‏۱۱ مهٔ ۲۰۲۶، ساعت ۱۴:۵۳ توسط Majidkhoshnoudi (بحث | مشارکت‌ها) (صفحه‌ای تازه حاوی «<div> <html lang="fa" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>داشبورد استفتائات</title> <link href="https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <style> :root { --bg: #0f1117; --surface: #1a1d27; --surface2: #242836; --border: #2e3348; --accent: #c9a84c;...» ایجاد کرد)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)

داشبورد استفتائات
📖

داشبورد استفتائات شرعی

آنالیز و جستجوی هوشمند ۸۹۰ استفتا

کل استفتاها
890
از اکتبر ۲۰۲۲ تا مه ۲۰۲۶
پاسخ داده شده
596
۶۷٪ پاسخ دارند
بدون پاسخ
294
۳۳٪ پاسخ ندارند
موضوعات
12
دسته‌بندی موضوعی

📊 توزیع موضوعی

📅 آمار ماهانه

🔍 جستجو و فیلتر

`; }); // Month chart const maxM = Math.max(...months.map(m => m[1])); const chartEl = document.getElementById('monthChart'); const monthInfoEl = document.getElementById('monthInfo'); months.forEach(([ym, cnt]) => { const h = Math.max(4, (cnt / maxM * 90)); const col = document.createElement('div'); col.className = 'chart-col'; const parts = ym.split('-'); col.innerHTML = `
${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 => `
#${q.n} ${q.t} ${q.h ? '✓ پاسخ دارد' : '○ بدون پاسخ'}
${highlight(q.q, term)}
${q.a ? `
پاسخ: ${highlight(q.a, term)}
` : ''}
${q.d}
`).join(''); if (filtered.length > 50) { listEl.innerHTML += `
${filtered.length - 50} استفتای بیشتر — جستجو را محدودتر کنید
`; } } renderList();