diff --git a/app/static/index.html b/app/static/index.html index 81cdd5c..32d3a62 100644 --- a/app/static/index.html +++ b/app/static/index.html @@ -71,7 +71,7 @@ Тренажёр SRS 0 - + 📊 Статистика @@ -569,10 +569,10 @@ - + - 🟩 Календарь активности (GitHub-style Heatmap) + 🟩 Календарь активности Меньше diff --git a/app/static/js/app.js b/app/static/js/app.js index 3efd012..f9c2ed0 100644 --- a/app/static/js/app.js +++ b/app/static/js/app.js @@ -699,33 +699,34 @@ document.addEventListener('DOMContentLoaded', () => { allCards.forEach(c => { const cardEl = document.createElement('div'); - cardEl.className = `vocab-card-item ${isBatchMode && selectedIds.has(c.id) ? 'selected' : ''}`; + cardEl.className = `vocab-card ${isBatchMode && selectedIds.has(c.id) ? 'is-selected' : ''}`; // SRS state indicator dot const srsStateClass = c.srs_state === 'mastered' ? 'dot-mastered' : (c.srs_state === 'review' ? 'dot-review' : (c.srs_state === 'learning' ? 'dot-learning' : 'dot-new')); cardEl.innerHTML = ` - - ${isBatchMode ? `` : ''} - - - - ${escapeHtml(c.term)} - ${c.phonetic ? `${escapeHtml(c.phonetic)}` : ''} - ${c.part_of_speech ? `${escapeHtml(c.part_of_speech)}` : ''} - ${c.audio_url ? `🔊` : ''} - - ${escapeHtml(c.translation)} - ${c.context_sentence ? `“${escapeHtml(c.context_sentence)}”` : ''} - - 📁 ${escapeHtml(c.collection || 'General')} - ${c.tags ? c.tags.split(',').map(t => `#${escapeHtml(t.trim())}`).join(' ') : ''} - + + + ${isBatchMode ? `` : ''} + + ${escapeHtml(c.term)} + ${c.phonetic ? `${escapeHtml(c.phonetic)}` : ''} + ${c.part_of_speech ? `${escapeHtml(c.part_of_speech)}` : ''} + ${c.audio_url ? `🔊` : ''} + + + ✏️ + 🗑️ - - ✏️ - 🗑️ + ${escapeHtml(c.translation)} + ${c.context_sentence ? `“${escapeHtml(c.context_sentence)}”` : ''} + + + 📁 ${escapeHtml(c.collection || 'General')} + ${c.tags ? c.tags.split(',').map(t => `#${escapeHtml(t.trim())}`).join(' ') : ''} + + ${c.notes ? `💡 ${escapeHtml(c.notes)}` : ''} `;