diff --git a/public/app.mjs b/public/app.mjs index 892ab32..a7e891a 100644 --- a/public/app.mjs +++ b/public/app.mjs @@ -258,13 +258,12 @@ function make_entry_row(entry, children_map) { set_text(row, '.task-id', `#${entry.id}`); - // Type chip — only shown in "All" view + // Type chip — always shown, clickable to navigate to that type const type_chip = row.querySelector('.entry-type-chip'); - if (!state.active_type) { - const et = state.entry_types.find(t => t.id === entry.type); - type_chip.textContent = et ? et.title : entry.type; - show(type_chip); - } + const et = state.entry_types.find(t => t.id === entry.type); + type_chip.textContent = et ? et.title : entry.type; + type_chip.addEventListener('click', (e) => { e.stopPropagation(); navigate('type/' + entry.type); }); + show(type_chip); const status_el = row.querySelector('.task-status'); status_el.textContent = entry.status; @@ -757,6 +756,7 @@ function render_entry_detail(container) { const type_chip = document.createElement('span'); type_chip.className = 'entry-type-chip'; type_chip.textContent = et.title; + type_chip.addEventListener('click', () => navigate('type/' + entry.type)); meta.appendChild(type_chip); } diff --git a/public/style.css b/public/style.css index f7e9387..58ccbaf 100644 --- a/public/style.css +++ b/public/style.css @@ -448,6 +448,7 @@ dialog input:focus, dialog textarea:focus, dialog select:focus { margin-bottom: 0.2rem; display: inline-block; width: fit-content; + cursor: pointer; } /* Type section in entry dialog */