diff --git a/static/js/tasks.js b/static/js/tasks.js index 5576c45f7..7319e30d3 100644 --- a/static/js/tasks.js +++ b/static/js/tasks.js @@ -627,13 +627,15 @@ function _renderList() { // status dot (right). Click to expand. const titleRow = document.createElement('div'); titleRow.style.cssText = 'display:flex;align-items:center;gap:6px;cursor:pointer;'; - const pausedBadge = task.status === 'paused' - ? ` paused` - : ''; + const statusBadge = task.status === 'paused' + ? ` paused` + : task.status === 'active' + ? ` active` + : ''; const builtinBadge = task.is_builtin ? `built-in${task.is_modified ? ' · edited' : ''}` : ''; - titleRow.innerHTML = `${_taskIcon(task)}${_esc(task.name)}${builtinBadge}${pausedBadge}${_statusDot(task.status)}`; + titleRow.innerHTML = `${_taskIcon(task)}${_esc(task.name)}${builtinBadge}${statusBadge}${_statusDot(task.status)}`; // ... menu button (hover to show) const actionsWrap = document.createElement('div'); @@ -690,6 +692,15 @@ function _renderList() { meta.textContent = metaParts.join(' · '); content.appendChild(meta); + const statusPill = titleRow.querySelector('[data-task-status-action]'); + if (statusPill) { + statusPill.addEventListener('click', async (e) => { + e.stopPropagation(); + if (statusPill.dataset.taskStatusAction === 'pause') await _doPause(task.id); + else await _doResume(task.id); + }); + } + // Expandable detail (revealed on click) — like the library doc/chat cards: // extra meta + last-run result + description. const detail = document.createElement('div'); diff --git a/static/style.css b/static/style.css index 1fb16d4b9..f7143e491 100644 --- a/static/style.css +++ b/static/style.css @@ -9955,7 +9955,7 @@ textarea.memory-add-input { opacity: 0.85 !important; filter: saturate(0.9); } -.task-paused-badge { +.task-status-badge { display: inline-flex; align-items: center; gap: 3px; @@ -9963,11 +9963,18 @@ textarea.memory-add-input { font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; - color: var(--orange, #ff9800); - background: color-mix(in srgb, var(--orange, #ff9800) 12%, transparent); padding: 2px 6px; border-radius: 10px; flex-shrink: 0; + cursor: pointer; +} +.task-paused-badge { + color: var(--orange, #ff9800); + background: color-mix(in srgb, var(--orange, #ff9800) 12%, transparent); +} +.task-active-badge { + color: var(--green, #50fa7b); + background: color-mix(in srgb, var(--green, #50fa7b) 12%, transparent); } .task-builtin-badge {