diff --git a/app.js b/app.js index f1a7cd9..561fcae 100644 --- a/app.js +++ b/app.js @@ -24,7 +24,7 @@ function escapeHtml(s){ return (s||'').replace(/[&<>"']/g,c=>({'&':'&','<':' function todayStr(){ const d=new Date(); return fmt(d); } function fmt(d){ return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0')+'-'+String(d.getDate()).padStart(2,'0'); } function parseDate(s){ if(!s) return null; const [y,m,d]=s.split('-').map(Number); return new Date(y,m-1,d); } -function prettyDate(s){ const d=parseDate(s); if(!d) return '—'; return d.toLocaleDateString('ru-RU',{day:'numeric',month:'short}); } +function prettyDate(s){ const d=parseDate(s); if(!d) return '—'; return d.toLocaleDateString('ru-RU',{day:'numeric',month:'short'}); } function prettyDateTime(s,t){ let r=prettyDate(s); if(t) r+=' · '+t; return r; } function relativeDue(s){ if(!s) return ''; const d=parseDate(s); const now=new Date(); now.setHours(0,0,0,0); const diff=Math.round((d-now)/86400000); if(diff<0) return 'просрочено'; if(diff===0) return 'сегодня'; if(diff===1) return 'завтра'; if(diff<7) return `через ${diff} дн.`; return prettyDate(s); } function initials(name){ return (name||'?').trim().slice(0,1).toUpperCase(); } @@ -80,7 +80,7 @@ function addObMember(){ `; row.querySelector('.ob-del').onclick=()=>{ if($('#ob-members').children.length>1) row.remove(); }; - ob.appendChild(row); + $('#ob-members').appendChild(row); } $('#ob-add-member').onclick = addObMember;