feat: add red colors to unknown status\priority
This commit is contained in:
@@ -12,6 +12,7 @@ export type KanbanOutboundMessage =
|
||||
scopeFilter: KanbanScopeFilter;
|
||||
shownHiddenColumns: TaskStatus[];
|
||||
defaultHiddenStatuses: TaskStatus[];
|
||||
dangerStatuses: TaskStatus[];
|
||||
availableScopes: TaskScope[];
|
||||
}
|
||||
| { variant: "error"; error: AppError };
|
||||
|
||||
@@ -116,6 +116,13 @@ export function getTaskKanbanHtml(
|
||||
color: var(--vscode-button-foreground);
|
||||
border-color: transparent;
|
||||
}
|
||||
#visibility-bar button.danger {
|
||||
border-color: var(--vscode-errorForeground);
|
||||
border-width: 2px;
|
||||
}
|
||||
#visibility-bar button.danger.shown {
|
||||
background: var(--vscode-errorForeground);
|
||||
}
|
||||
#status-line {
|
||||
font-size: 0.85em;
|
||||
opacity: 0.85;
|
||||
@@ -210,6 +217,7 @@ export function getTaskKanbanHtml(
|
||||
let scopeFilter = "all";
|
||||
let shownHiddenColumns = [];
|
||||
let defaultHiddenStatuses = [];
|
||||
let dangerStatuses = [];
|
||||
let availableScopes = [];
|
||||
let dragTaskId = null;
|
||||
|
||||
@@ -269,6 +277,9 @@ export function getTaskKanbanHtml(
|
||||
if (shownHiddenColumns.indexOf(status) >= 0) {
|
||||
btn.classList.add("shown");
|
||||
}
|
||||
if (dangerStatuses.indexOf(status) >= 0) {
|
||||
btn.classList.add("danger");
|
||||
}
|
||||
btn.addEventListener("click", () => {
|
||||
post({ variant: "toggleHiddenColumn", status: status });
|
||||
});
|
||||
@@ -374,6 +385,7 @@ export function getTaskKanbanHtml(
|
||||
scopeFilter = message.scopeFilter || "all";
|
||||
shownHiddenColumns = message.shownHiddenColumns || [];
|
||||
defaultHiddenStatuses = message.defaultHiddenStatuses || [];
|
||||
dangerStatuses = message.dangerStatuses || [];
|
||||
availableScopes = message.availableScopes || [];
|
||||
setStatus("");
|
||||
render();
|
||||
|
||||
@@ -278,10 +278,12 @@ export class TaskKanbanPanel {
|
||||
}
|
||||
|
||||
#postState(): void {
|
||||
const board = buildKanbanBoard(
|
||||
this.#filteredTasks().map((item) => item.task),
|
||||
{ shownHiddenColumns: this.#shownHiddenColumns },
|
||||
);
|
||||
const filtered = this.#filteredTasks().map((item) => item.task);
|
||||
const board = buildKanbanBoard(filtered, {
|
||||
shownHiddenColumns: this.#shownHiddenColumns,
|
||||
});
|
||||
|
||||
const hasUnknown = filtered.some((t) => t.status === TaskStatus.UNKNOWN);
|
||||
|
||||
this.#post({
|
||||
variant: "state",
|
||||
@@ -289,9 +291,12 @@ export class TaskKanbanPanel {
|
||||
scopeFilter: this.#scopeFilter,
|
||||
shownHiddenColumns: this.#shownHiddenColumns,
|
||||
defaultHiddenStatuses: TASK_STATUS_ORDER.filter(
|
||||
(s) => TASK_STATUS_META[s].defaultHidden,
|
||||
(s) =>
|
||||
TASK_STATUS_META[s].defaultHidden &&
|
||||
(s !== TaskStatus.UNKNOWN || hasUnknown),
|
||||
),
|
||||
availableScopes: this.#availableScopes(),
|
||||
dangerStatuses: hasUnknown ? [TaskStatus.UNKNOWN] : [],
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ import { resolveTaskLocations } from "@/commands/resolveTaskLocations";
|
||||
import { Task } from "@/model/task";
|
||||
import { LocatedTask, TaskLocation } from "@/model/taskLocation";
|
||||
import {
|
||||
TaskStatus,
|
||||
TASK_STATUS_META,
|
||||
TASK_STATUS_ORDER,
|
||||
type TaskStatus,
|
||||
} from "@/model/taskStatus";
|
||||
import { IConfigProvider, ITaskRepository } from "@/ports";
|
||||
import { TASK_SCOPE_LABELS, TASK_STATUS_LABELS } from "@/ui/taskLabels";
|
||||
@@ -47,7 +47,12 @@ class TaskGroupTreeItem extends vscode.TreeItem {
|
||||
this.description = `(${tasks.length})`;
|
||||
this.id = `group-${location.scope}-${status}`;
|
||||
this.contextValue = "taskGroup";
|
||||
this.iconPath = new vscode.ThemeIcon(TASK_STATUS_META[status].icon);
|
||||
this.iconPath = new vscode.ThemeIcon(
|
||||
TASK_STATUS_META[status].icon,
|
||||
status === TaskStatus.UNKNOWN
|
||||
? new vscode.ThemeColor("charts.red")
|
||||
: undefined,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user