diff options
Diffstat (limited to 'web/templates/partials/tasks-tab.html')
| -rw-r--r-- | web/templates/partials/tasks-tab.html | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/web/templates/partials/tasks-tab.html b/web/templates/partials/tasks-tab.html index afbbe2c..92e7979 100644 --- a/web/templates/partials/tasks-tab.html +++ b/web/templates/partials/tasks-tab.html @@ -1,19 +1,19 @@ {{define "tasks-tab"}} -<div class="space-y-6" +<div class="space-y-6 text-shadow-sm" hx-get="/tabs/tasks" hx-trigger="refresh-tasks from:body" hx-target="#tab-content" hx-swap="innerHTML"> <!-- Quick Add Form - Collapsible --> - <section class="bg-white rounded-lg shadow-sm"> + <section class="card"> <button type="button" onclick="document.getElementById('quick-add-form').classList.toggle('hidden')" class="w-full p-3 sm:p-4 text-left flex justify-between items-center"> - <span class="font-semibold text-gray-900">+ Quick Add</span> - <svg class="w-4 h-4 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg> + <span class="font-medium text-white">+ Quick Add</span> + <svg class="w-4 h-4 text-white/50" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg> </button> <form id="quick-add-form" - class="hidden p-3 sm:p-4 pt-0 border-t border-gray-100" + class="hidden p-3 sm:p-4 pt-0 border-t border-white/10" hx-post="/unified-add" hx-swap="none" hx-on::after-request="if(event.detail.successful) { this.reset(); document.getElementById('trello-fields').style.display = 'none'; }"> @@ -22,14 +22,14 @@ <input type="text" name="title" placeholder="Task name..." - class="w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-primary-500 focus:border-primary-500" + class="w-full bg-black/40 border border-white/20 rounded-lg px-3 py-2 text-sm text-white placeholder-white/50 focus:ring-2 focus:ring-white/30 focus:border-white/30" required> </div> <div> <input type="date" name="due_date" id="quick-add-date" - class="border border-gray-300 rounded-lg px-2 py-2 text-sm focus:ring-2 focus:ring-primary-500"> + class="bg-black/40 border border-white/20 rounded-lg px-2 py-2 text-sm text-white focus:ring-2 focus:ring-white/30"> <script> (function() { var d = new Date(); @@ -40,14 +40,14 @@ </div> <div> <select name="source" - class="border border-gray-300 rounded-lg px-2 py-2 text-sm focus:ring-2 focus:ring-primary-500" + class="bg-black/40 border border-white/20 rounded-lg px-2 py-2 text-sm text-white focus:ring-2 focus:ring-white/30" onchange="document.getElementById('trello-fields').style.display = this.value === 'trello' ? 'flex' : 'none'"> <option value="todoist">Todoist</option> <option value="trello">Trello</option> </select> </div> <button type="submit" - class="bg-primary-600 hover:bg-primary-700 text-white px-3 py-2 rounded-lg transition-colors font-medium text-sm"> + class="bg-white/20 hover:bg-white/30 text-white px-3 py-2 rounded-lg transition-colors font-medium text-sm"> Add </button> </div> @@ -56,7 +56,7 @@ <div id="trello-fields" class="flex flex-wrap gap-2 mt-3" style="display: none;"> <div> <select name="board_id" - class="border border-gray-300 rounded-lg px-2 py-2 text-sm" + class="bg-black/40 border border-white/20 rounded-lg px-2 py-2 text-sm text-white" hx-get="/partials/lists" hx-target="#list-select" hx-trigger="change" @@ -68,7 +68,7 @@ </select> </div> <div> - <select id="list-select" name="list_id" class="border border-gray-300 rounded-lg px-2 py-2 text-sm"> + <select id="list-select" name="list_id" class="bg-black/40 border border-white/20 rounded-lg px-2 py-2 text-sm text-white"> <option value="">Select List...</option> </select> </div> @@ -80,7 +80,7 @@ {{if .Atoms}} <div class="space-y-2"> {{range .Atoms}} - <div class="task-item bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow border-l-4 {{.ColorClass}} {{if .IsFuture}}opacity-60{{end}}"> + <div class="task-item border-l-4 {{.ColorClass}} {{if .IsFuture}}opacity-60{{end}}"> <div class="flex items-start gap-2 sm:gap-3 p-3 sm:p-4"> <!-- Checkbox for completing --> <input type="checkbox" @@ -88,81 +88,81 @@ hx-vals='{"id": "{{.ID}}", "source": "{{.Source}}"}' hx-target="closest .task-item" hx-swap="outerHTML" - class="mt-1 h-5 w-5 rounded border-gray-300 text-primary-600 focus:ring-primary-500 cursor-pointer flex-shrink-0"> + class="mt-1 h-5 w-5 rounded bg-black/40 border-white/30 text-white/80 focus:ring-white/30 cursor-pointer flex-shrink-0"> <span class="text-lg flex-shrink-0">{{.SourceIcon}}</span> <div class="flex-1 min-w-0"> <div class="flex items-start justify-between gap-2"> - <h3 class="text-sm {{if .IsOverdue}}text-red-600 font-semibold{{else if .IsFuture}}text-gray-400 font-normal{{else}}text-gray-900 font-medium{{end}} break-words cursor-pointer hover:underline" + <h3 class="text-sm {{if .IsOverdue}}text-red-400 font-semibold{{else if .IsFuture}}text-white/50 font-normal{{else}}text-white font-medium{{end}} break-words cursor-pointer hover:underline" hx-get="/tasks/detail?id={{.ID}}&source={{.Source}}" hx-target="#task-edit-content" hx-swap="innerHTML" onclick="document.getElementById('task-edit-modal').classList.remove('hidden')">{{.Title}}</h3> {{if .URL}} - <a href="{{.URL}}" target="_blank" class="text-primary-600 hover:text-primary-800 flex-shrink-0" onclick="event.stopPropagation()"> + <a href="{{.URL}}" target="_blank" class="text-white/70 hover:text-white flex-shrink-0" onclick="event.stopPropagation()"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path> </svg> </a> {{end}} </div> - <div class="flex flex-wrap items-center gap-2 mt-1 text-xs text-gray-400"> + <div class="flex flex-wrap items-center gap-2 mt-1 text-xs text-white/50"> {{if .DueDate}} - <span class="{{if .IsOverdue}}text-red-500 font-medium{{end}}">{{.DueDate.Format "Jan 2"}}{{if .HasSetTime}}, {{.DueDate.Format "3:04pm"}}{{end}}</span> + <span class="{{if .IsOverdue}}text-red-400 font-medium{{end}}">{{.DueDate.Format "Jan 2"}}{{if .HasSetTime}}, {{.DueDate.Format "3:04pm"}}{{end}}</span> {{end}} {{if gt .Priority 2}} - <span class="text-red-500 font-medium">P{{.Priority}}</span> + <span class="text-red-400 font-medium">P{{.Priority}}</span> {{end}} {{if .Description}} - <span class="text-gray-400">+details</span> + <span class="text-white/40">+details</span> {{end}} </div> </div> </div> {{if .Description}} - <details class="border-t border-gray-100"> - <summary class="px-3 sm:px-4 py-2 text-xs text-gray-500 cursor-pointer hover:bg-gray-50">Tap to expand</summary> - <div class="px-3 sm:px-4 pb-3 text-sm text-gray-600">{{.Description}}</div> + <details class="border-t border-white/10"> + <summary class="px-3 sm:px-4 py-2 text-xs text-white/50 cursor-pointer hover:bg-white/5">Tap to expand</summary> + <div class="px-3 sm:px-4 pb-3 text-sm text-white/70">{{.Description}}</div> </details> {{end}} </div> {{end}} </div> {{else}} - <div class="bg-white/50 rounded-lg p-6 text-center"> - <p class="text-gray-500 text-sm">No current tasks.</p> + <div class="card p-6 text-center"> + <p class="text-white/50 text-sm">No current tasks.</p> </div> {{end}} <!-- Future Tasks (Collapsed by default) --> {{if .FutureAtoms}} <details class="mt-4"> - <summary class="bg-white/70 rounded-lg p-3 cursor-pointer hover:bg-white/90 transition-colors text-sm text-gray-600 flex items-center justify-between"> + <summary class="bg-black/40 backdrop-blur-sm rounded-lg p-3 cursor-pointer hover:bg-black/50 transition-colors text-sm text-white/60 flex items-center justify-between"> <span>+{{len .FutureAtoms}} later</span> <svg class="w-4 h-4 transform transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg> </summary> <div class="space-y-2 mt-2"> {{range .FutureAtoms}} - <div class="task-item bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow border-l-4 {{.ColorClass}} opacity-60"> + <div class="task-item border-l-4 {{.ColorClass}} opacity-60"> <div class="flex items-start gap-2 sm:gap-3 p-3 sm:p-4"> <input type="checkbox" hx-post="/complete-atom" hx-vals='{"id": "{{.ID}}", "source": "{{.Source}}"}' hx-target="closest .task-item" hx-swap="outerHTML" - class="mt-1 h-5 w-5 rounded border-gray-300 text-primary-600 focus:ring-primary-500 cursor-pointer flex-shrink-0"> + class="mt-1 h-5 w-5 rounded bg-black/40 border-white/30 text-white/80 focus:ring-white/30 cursor-pointer flex-shrink-0"> <span class="text-lg flex-shrink-0">{{.SourceIcon}}</span> <div class="flex-1 min-w-0"> <div class="flex items-start justify-between gap-2"> - <h3 class="text-sm text-gray-400 font-normal break-words">{{.Title}}</h3> + <h3 class="text-sm text-white/50 font-normal break-words">{{.Title}}</h3> {{if .URL}} - <a href="{{.URL}}" target="_blank" class="text-primary-600 hover:text-primary-800 flex-shrink-0"> + <a href="{{.URL}}" target="_blank" class="text-white/50 hover:text-white/70 flex-shrink-0"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path> </svg> </a> {{end}} </div> - <div class="flex flex-wrap items-center gap-2 mt-1 text-xs text-gray-400"> + <div class="flex flex-wrap items-center gap-2 mt-1 text-xs text-white/40"> {{if .DueDate}} <span>{{.DueDate.Format "Jan 2"}}{{if .HasSetTime}}, {{.DueDate.Format "3:04pm"}}{{end}}</span> {{end}} |
