=== subjects.py clear-all === @router.post("/clear-all") async def clear_all(user: User = Depends(get_current_user_csrf), db: AsyncSession = Depends(get_db)): await db.execute(sa_delete(SubjectLine).where(SubjectLine.user_id == user.id)) await db.commit() return {"ok": True} === templates.py clear-all === @router.post("/clear-all") async def clear_all(user: User = Depends(get_current_user_csrf), db: AsyncSession = Depends(get_db)): await db.execute(sa_delete(EmailTemplate).where(EmailTemplate.user_id == user.id)) await db.commit() return {"ok": True} === main.py CSP === 36: response.headers.setdefault("Content-Security-Policy", 38: " script-src 'self'; frame-src 'self' data: blob:;" === attachments.js modal download === 22: 81: if (b.dataset.dl) window.open(`/attachments/${id}/download`, "_blank"); 99: { label:"Download", kind:"btn", onClick: () => { window.open(`/attachments/${id}/download`, "_blank"); } }, 100: { label:"Open in new tab", onClick: () => { const w = window.open("", "_blank"); if (w) { w.document.write(`${a.name.replace(/</g,"<")}`); w.document.close(); } } },