fix(ui): restore dictionary card styles and clean up activity heatmap labels
This commit is contained in:
1 parent
2294121777
commit
a74b0dbf64
2 files changed
+24
-23
No files matched your search
+21
-20
@@ -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 = `
|
||||
<div class="card-item-left">
|
||||
${isBatchMode ? `<input type="checkbox" class="batch-card-check" data-id="${c.id}" ${selectedIds.has(c.id) ? 'checked' : ''}>` : ''}
|
||||
<span class="dot ${srsStateClass}" title="SRS статус: ${c.srs_state || 'new'}"></span>
|
||||
<div class="card-item-content">
|
||||
<div class="card-item-header">
|
||||
<span class="card-term">${escapeHtml(c.term)}</span>
|
||||
${c.phonetic ? `<span class="card-phonetic">${escapeHtml(c.phonetic)}</span>` : ''}
|
||||
${c.part_of_speech ? `<span class="badge-pos-xs">${escapeHtml(c.part_of_speech)}</span>` : ''}
|
||||
${c.audio_url ? `<button class="icon-btn-xs audio-inline-btn" data-audio="${encodeURIComponent(c.audio_url)}" title="Озвучить">🔊</button>` : ''}
|
||||
</div>
|
||||
<div class="card-translation">${escapeHtml(c.translation)}</div>
|
||||
${c.context_sentence ? `<div class="card-context">“${escapeHtml(c.context_sentence)}”</div>` : ''}
|
||||
<div class="card-meta-row">
|
||||
<span class="card-col-badge">📁 ${escapeHtml(c.collection || 'General')}</span>
|
||||
${c.tags ? c.tags.split(',').map(t => `<span class="card-tag">#${escapeHtml(t.trim())}</span>`).join(' ') : ''}
|
||||
</div>
|
||||
<div class="card-top">
|
||||
<div class="card-term-group">
|
||||
${isBatchMode ? `<input type="checkbox" class="card-select-checkbox batch-card-check" data-id="${c.id}" ${selectedIds.has(c.id) ? 'checked' : ''}>` : ''}
|
||||
<span class="dot ${srsStateClass}" title="SRS статус: ${c.srs_state || 'new'}"></span>
|
||||
<span class="card-term">${escapeHtml(c.term)}</span>
|
||||
${c.phonetic ? `<span class="card-phonetic">${escapeHtml(c.phonetic)}</span>` : ''}
|
||||
${c.part_of_speech ? `<span class="card-pos">${escapeHtml(c.part_of_speech)}</span>` : ''}
|
||||
${c.audio_url ? `<button class="icon-btn audio-btn audio-inline-btn" data-audio="${encodeURIComponent(c.audio_url)}" title="Озвучить">🔊</button>` : ''}
|
||||
</div>
|
||||
<div class="card-actions">
|
||||
<button class="icon-btn edit-card-btn" data-id="${c.id}" title="Редактировать">✏️</button>
|
||||
<button class="icon-btn delete-card-btn" data-id="${c.id}" title="Удалить">🗑️</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-item-actions">
|
||||
<button class="btn btn-xs btn-outline edit-card-btn" data-id="${c.id}">✏️</button>
|
||||
<button class="btn btn-xs btn-danger delete-card-btn" data-id="${c.id}">🗑️</button>
|
||||
<div class="card-translation">${escapeHtml(c.translation)}</div>
|
||||
${c.context_sentence ? `<div class="card-context">“${escapeHtml(c.context_sentence)}”</div>` : ''}
|
||||
<div class="card-bottom">
|
||||
<div class="card-tags">
|
||||
<span class="card-tag">📁 ${escapeHtml(c.collection || 'General')}</span>
|
||||
${c.tags ? c.tags.split(',').map(t => `<span class="card-tag">#${escapeHtml(t.trim())}</span>`).join(' ') : ''}
|
||||
</div>
|
||||
${c.notes ? `<div class="card-notes">💡 ${escapeHtml(c.notes)}</div>` : ''}
|
||||
</div>
|
||||
`;
|
||||
|
||||
|
||||
Reference in new issue
Block a user