From fc674847f59b63dfc80c07c14066177f9bd58237 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Sun, 1 Mar 2026 22:28:02 -0500 Subject: [PATCH] feat(web): add Ctrl+K command palette search modal Co-Authored-By: Claude Opus 4.6 --- .../Pages/Partials/_SearchResults.cshtml | 60 +++++----- TaskTracker.Api/Pages/Shared/_Layout.cshtml | 26 ++++- TaskTracker.Api/wwwroot/js/app.js | 106 ++++++++++++++++++ 3 files changed, 162 insertions(+), 30 deletions(-) diff --git a/TaskTracker.Api/Pages/Partials/_SearchResults.cshtml b/TaskTracker.Api/Pages/Partials/_SearchResults.cshtml index 2eb8092..b0b01ae 100644 --- a/TaskTracker.Api/Pages/Partials/_SearchResults.cshtml +++ b/TaskTracker.Api/Pages/Partials/_SearchResults.cshtml @@ -1,33 +1,37 @@ -@using TaskTracker.Api.Pages @using TaskTracker.Core.Enums @model List - -@* Placeholder — full implementation in Task 6 (Search Modal) *@ -
- @if (Model.Count == 0) +@{ + var statusColors = new Dictionary { -
- No results found + [WorkTaskStatus.Pending] = "#64748b", + [WorkTaskStatus.Active] = "#3b82f6", + [WorkTaskStatus.Paused] = "#eab308", + [WorkTaskStatus.Completed] = "#22c55e", + [WorkTaskStatus.Abandoned] = "#ef4444", + }; +} + +@if (Model.Count == 0) +{ +
No results found
+} +else +{ + @for (var i = 0; i < Model.Count; i++) + { + var task = Model[i]; + var color = statusColors.GetValueOrDefault(task.Status, "#64748b"); +
+ + @task.Title + @if (!string.IsNullOrEmpty(task.Category)) + { + @task.Category + } +
} - else - { - @foreach (var task in Model) - { -
- - @task.Status - - @task.Title - @if (!string.IsNullOrEmpty(task.Category)) - { - @task.Category - } -
- } - } -
+} diff --git a/TaskTracker.Api/Pages/Shared/_Layout.cshtml b/TaskTracker.Api/Pages/Shared/_Layout.cshtml index a0aece5..c033592 100644 --- a/TaskTracker.Api/Pages/Shared/_Layout.cshtml +++ b/TaskTracker.Api/Pages/Shared/_Layout.cshtml @@ -29,7 +29,7 @@
-