/
SaiRaz
/
ReviewTasksBot
Обзор
Документация
Войти
/
SaiRaz
/
ReviewTasksBot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
static/moderator.html
48 строк
2 KB
Sa1Raz
Update moderator.html
03 дек 2025, 19:04
Не верифицирован
03 дек 2025, 19:04
b33e3e0
Код
Авторство
О чём код?
<!-- static/moderator.html --> <!doctype html> <html lang="ru"> <head> <meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/> <title>Moderator • ReviewCash</title> <style> body{font-family:Inter,system-ui;background:#071024;color:#dff7ff;margin:0;padding:18px} .card{background:rgba(255,255,255,0.03);padding:12px;border-radius:10px;margin-bottom:12px} button{padding:8px 10px;border-radius:8px;border:none;background:#00e7c0;color:#001;cursor:pointer} </style> </head> <body> <h2>Moderator Panel</h2> <div id="tasksArea" class="card">Загрузка…</div> <script> async function loadTasks(){ const r = await fetch('/api/tasks/list'); const j = await r.json(); const area = document.getElementById('tasksArea'); area.innerHTML=''; if (j.tasks && j.tasks.length){ j.tasks.forEach(t=>{ const div = document.createElement('div'); div.style.padding='10px'; div.style.borderBottom='1px solid rgba(255,255,255,0.03)'; div.innerHTML = `<strong>${t.title}</strong> — ${t.qty} шт — ${t.unit_price} ₽<div style="margin-top:6px"><button onclick="viewSubs('${t.id}')">Просмотр заявок</button></div>`; area.appendChild(div); }); } else area.innerHTML = '<div class="small">Нет заданий</div>'; } async function viewSubs(taskId){ const r = await fetch('/api/tasks/list'); const j = await r.json(); const t = j.tasks.find(x=>String(x.id)===String(taskId)); if (!t) { alert('not found'); return; } const subs = t.submissions || []; if (!subs.length){ alert('Заявок нет'); return; } subs.forEach(s=>{ if (s.status === 'pending'){ if (confirm(`Подтвердить заявку ${s.id} от ${s.worker_uid}?`)){ fetch('/api/mod/review', {method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify({ reviewer: prompt('Ваш ID (uid):'), task_id: t.id, submission_id: s.id, action:'approve' })}).then(r=>r.json()).then(j=>{ alert(j.ok ? 'OK' : 'ERR'); loadTasks(); }); } } }); } loadTasks(); </script> </body> </html>