diff --git a/.veritas-kanban/task-types.json b/.veritas-kanban/task-types.json index 3f59d7ec..294c8c30 100644 --- a/.veritas-kanban/task-types.json +++ b/.veritas-kanban/task-types.json @@ -4,30 +4,30 @@ "label": "Code", "icon": "Code", "color": "border-l-violet-500", - "order": 1, + "order": 2, "isDefault": true, "created": "2026-01-28T04:03:21.782Z", - "updated": "2026-01-28T04:27:49.587Z" + "updated": "2026-01-28T04:32:03.855Z" }, { "id": "research", "label": "Research", "icon": "BookOpen", "color": "border-l-cyan-500", - "order": 3, + "order": 4, "isDefault": true, "created": "2026-01-28T04:03:21.782Z", - "updated": "2026-01-28T04:27:49.587Z" + "updated": "2026-01-28T04:32:03.855Z" }, { "id": "content", "label": "Content", "icon": "FileText", "color": "border-l-orange-500", - "order": 2, + "order": 3, "isDefault": true, "created": "2026-01-28T04:03:21.782Z", - "updated": "2026-01-28T04:27:49.587Z" + "updated": "2026-01-28T04:32:59.581Z" }, { "id": "automation", @@ -37,6 +37,15 @@ "order": 0, "isDefault": true, "created": "2026-01-28T04:03:21.782Z", - "updated": "2026-01-28T04:27:49.587Z" + "updated": "2026-01-28T04:32:03.855Z" + }, + { + "label": "Bug", + "icon": "Bug", + "color": "border-l-red-500", + "id": "bug-GdN5rT", + "order": 1, + "created": "2026-01-28T04:31:31.690Z", + "updated": "2026-01-28T04:32:03.855Z" } -] \ No newline at end of file +] diff --git a/server/src/services/managed-list-service.ts b/server/src/services/managed-list-service.ts index f2310c6a..27070505 100644 --- a/server/src/services/managed-list-service.ts +++ b/server/src/services/managed-list-service.ts @@ -172,7 +172,7 @@ export class ManagedListService { const referenceCount = this.referenceCounter ? await this.referenceCounter(id) : 0; return { - allowed: !isDefault && referenceCount === 0, + allowed: referenceCount === 0, referenceCount, isDefault, }; @@ -189,11 +189,6 @@ export class ManagedListService { return { deleted: false }; } - // Don't allow deleting default items - if (item.isDefault && !force) { - return { deleted: false, referenceCount: 0 }; - } - // Check references if not forced if (!force && this.referenceCounter) { const referenceCount = await this.referenceCounter(id); diff --git a/web/src/components/settings/ManagedListManager.tsx b/web/src/components/settings/ManagedListManager.tsx index 97a16ec6..2ae2e847 100644 --- a/web/src/components/settings/ManagedListManager.tsx +++ b/web/src/components/settings/ManagedListManager.tsx @@ -12,7 +12,7 @@ import { AlertDialogHeader, AlertDialogTitle, } from '../ui/alert-dialog'; -import { Trash2, GripVertical, Eye, EyeOff } from 'lucide-react'; +import { Trash2, GripVertical } from 'lucide-react'; import { DndContext, closestCenter, @@ -101,10 +101,6 @@ function SortableItem({ setDeleteDialogOpen(false); }; - const handleToggleHidden = async () => { - await onUpdate(item.id, { isHidden: !item.isHidden }); - }; - const handleExtraFieldChange = (patch: Partial) => { onUpdate(item.id, patch); }; @@ -146,9 +142,6 @@ function SortableItem({ onClick={() => setIsEditing(true)} > {item.label} - {item.isDefault && ( - (default) - )} {item.isHidden && ( (hidden) )} @@ -159,23 +152,11 @@ function SortableItem({
- {item.isDefault && ( - - )} - @@ -189,16 +170,12 @@ function SortableItem({ {deleteInfo && !deleteInfo.allowed ? 'Cannot Delete' : 'Delete Item?'} - {deleteInfo && deleteInfo.isDefault && ( - This is a default item and cannot be deleted. - )} - {deleteInfo && !deleteInfo.isDefault && deleteInfo.referenceCount > 0 && !deleteInfo.allowed && ( - This item is referenced by {deleteInfo.referenceCount} task(s) and cannot be deleted. - )} - {deleteInfo && deleteInfo.allowed && ( - Are you sure you want to delete "{item.label}"? This action cannot be undone. - )} - {!deleteInfo && ( + {deleteInfo && deleteInfo.referenceCount > 0 && !deleteInfo.allowed ? ( + + "{item.label}" is used by {deleteInfo.referenceCount} task(s). + Remove or reassign those tasks first before deleting this item. + + ) : ( Are you sure you want to delete "{item.label}"? This action cannot be undone. )}