Polish task activity icons
This commit is contained in:
@@ -349,6 +349,12 @@ function _taskIcon(task) {
|
||||
return `<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="opacity:0.4;flex-shrink:0;position:relative;top:-4px;">${path}</svg>`;
|
||||
}
|
||||
|
||||
function _taskAiMark(task) {
|
||||
const kind = task?.task_type || task?.kind || '';
|
||||
if (kind !== 'llm') return '';
|
||||
return '<svg class="task-ai-mark" width="10" height="10" viewBox="0 0 24 24" fill="currentColor" aria-label="Uses model"><path d="M12 2l2.25 6.75L21 11l-6.75 2.25L12 20l-2.25-6.75L3 11l6.75-2.25L12 2z"/></svg>';
|
||||
}
|
||||
|
||||
// ---- Custom pickers ----
|
||||
|
||||
function _buildTimePicker(containerId, hour, minute) {
|
||||
@@ -663,7 +669,7 @@ function _renderList() {
|
||||
const builtinBadge = task.is_builtin
|
||||
? `<span class="task-builtin-badge${task.is_modified ? ' modified' : ''}" title="${task.is_modified ? 'Built-in task — edited from its default' : 'Built-in task'}">built-in${task.is_modified ? ' · edited' : ''}</span>`
|
||||
: '';
|
||||
titleRow.innerHTML = `${_taskIcon(task)}<span class="memory-item-title">${_esc(task.name)}</span>${builtinBadge}<span style="flex:1;"></span>${statusBadge}`;
|
||||
titleRow.innerHTML = `${_taskIcon(task)}<span class="memory-item-title">${_esc(task.name)}</span>${_taskAiMark(task)}${builtinBadge}<span style="flex:1;"></span>${statusBadge}`;
|
||||
|
||||
// ... menu button (hover to show)
|
||||
const actionsWrap = document.createElement('div');
|
||||
@@ -2298,7 +2304,8 @@ function _renderActivityEntry(entry) {
|
||||
<div class="task-log-row is-skipped" data-kind="${_escHtml(entry.kind)}" data-entry-idx="${entryIdx}" style="${styleVars}">
|
||||
<div class="task-log-row-head">
|
||||
${statusDot}
|
||||
<span class="task-log-name">${_escHtml(entry.taskName)}</span>
|
||||
<span class="task-log-task-icon">${_taskIcon({ action: entry.action, task_type: entry.kind })}</span>
|
||||
<span class="task-log-name">${_escHtml(entry.taskName)}</span>${_taskAiMark({ task_type: entry.kind })}
|
||||
${repeatBadge}
|
||||
<span class="task-log-skipped-reason">skipped${reason ? ' — ' + _escHtml(reason) : ''}</span>
|
||||
<span style="flex:1"></span>
|
||||
@@ -2311,7 +2318,8 @@ function _renderActivityEntry(entry) {
|
||||
<div class="task-log-row${long ? ' is-long' : ''}${_isRunning ? ' is-running' : ''}" data-kind="${_escHtml(entry.kind)}" data-entry-idx="${entryIdx}" style="${styleVars}">
|
||||
<div class="task-log-row-head">
|
||||
${statusDot}
|
||||
<span class="task-log-name">${_escHtml(entry.taskName)}</span>
|
||||
<span class="task-log-task-icon">${_taskIcon({ action: entry.action, task_type: entry.kind })}</span>
|
||||
<span class="task-log-name">${_escHtml(entry.taskName)}</span>${_taskAiMark({ task_type: entry.kind })}
|
||||
${repeatBadge}
|
||||
<span style="flex:1"></span>
|
||||
${rightHtml}
|
||||
|
||||
@@ -20825,6 +20825,20 @@ body:not(.welcome-ready) #welcome-screen {
|
||||
title still reads in dark mode. Lightness stays adaptive. */
|
||||
color: hsl(var(--cat-hue) 60% 60%);
|
||||
}
|
||||
.task-log-task-icon {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
flex: 0 0 auto;
|
||||
margin-right: -3px;
|
||||
}
|
||||
.task-log-task-icon svg {
|
||||
top: 0 !important;
|
||||
opacity: 0.46 !important;
|
||||
}
|
||||
.task-log-row-head .task-ai-mark {
|
||||
top: 0;
|
||||
margin-left: -4px;
|
||||
}
|
||||
.task-log-repeat {
|
||||
font-size: 10px;
|
||||
font-weight: 500;
|
||||
@@ -20879,7 +20893,7 @@ body:not(.welcome-ready) #welcome-screen {
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
top: -3px;
|
||||
}
|
||||
.task-log-stop:hover {
|
||||
opacity: 1;
|
||||
@@ -21065,7 +21079,7 @@ body:not(.welcome-ready) #welcome-screen {
|
||||
}
|
||||
.task-log-clear-cache svg {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
top: 0;
|
||||
}
|
||||
/* Activity filter chips — toggle-out model: ON by default (solid),
|
||||
click to toggle OFF (dimmed + strikethrough) to hide that group. */
|
||||
@@ -21199,6 +21213,13 @@ a.chat-link[href^="#research-"] {
|
||||
the click when hitting the inner glyph). */
|
||||
.task-card .memory-item-actions .memory-item-btn svg { pointer-events: none; }
|
||||
.task-card .task-builtin-badge { position: relative; top: -4px; }
|
||||
.task-ai-mark {
|
||||
flex: 0 0 auto;
|
||||
color: var(--accent, var(--red));
|
||||
opacity: 0.78;
|
||||
position: relative;
|
||||
top: -4px;
|
||||
}
|
||||
/* Per-card select checkbox rides up to the title line. The "All" checkbox is
|
||||
#tasks-select-all (not .memory-select-cb), so it stays put. */
|
||||
.task-card .memory-select-cb { position: relative; top: -4px; }
|
||||
|
||||
Reference in New Issue
Block a user