summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorDoot Agent <agent@doot.local>2026-07-06 00:00:59 +0000
committerDoot Agent <agent@doot.local>2026-07-06 00:00:59 +0000
commit945c34590677e161a711ccaff0e1077197b1b178 (patch)
treedf26e8ba5a369b3323649c2fab95bd8e7a49b58e /web
parentcd14604bbef17f696475cf8737f1e41c9fa2dd06 (diff)
feat: remove Todoist integration entirely
Native tasks (native_tasks table) fully replace Todoist. All Todoist API code, store functions, handlers, routes, templates, and tests have been removed. Migration 021 drops the now-unused tasks cache table. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'web')
-rw-r--r--web/templates/agent-context.html2
-rw-r--r--web/templates/index.html2
-rw-r--r--web/templates/partials/planning-tab.html11
-rw-r--r--web/templates/partials/tasks-tab.html33
-rw-r--r--web/templates/partials/timeline-tab.html4
-rw-r--r--web/templates/partials/todoist-tasks.html99
-rw-r--r--web/templates/settings.html2
-rw-r--r--web/templates/task-detail-page.html2
8 files changed, 5 insertions, 150 deletions
diff --git a/web/templates/agent-context.html b/web/templates/agent-context.html
index db618ba..311df3a 100644
--- a/web/templates/agent-context.html
+++ b/web/templates/agent-context.html
@@ -22,7 +22,6 @@
.calendar-hour-label { position: absolute; left: -60px; top: -8px; font-size: 0.75em; color: #666; width: 50px; text-align: right; }
.calendar-item { position: absolute; left: 10px; right: 10px; background: #0f3460; border-radius: 4px; padding: 6px 10px; font-size: 0.85em; border-left: 3px solid; overflow: hidden; z-index: 1; }
.calendar-item:hover { z-index: 10; background: #1a4a80; }
- .calendar-item.source-todoist { border-color: #e44332; }
.calendar-item.source-trello { border-color: #0079bf; }
.calendar-item.source-plantoeat { border-color: #5cb85c; }
.calendar-item.source-calendar { border-color: #9b59b6; }
@@ -38,7 +37,6 @@
th { background: #0f3460; color: #fff; }
tr:hover { background: #1a1a2e; }
.source { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 0.8em; }
- .source-todoist { background: #e44332; color: #fff; }
.source-trello { background: #0079bf; color: #fff; }
.source-plantoeat { background: #5cb85c; color: #fff; }
.source-calendar { background: #9b59b6; color: #fff; }
diff --git a/web/templates/index.html b/web/templates/index.html
index c34bacf..19f1c7e 100644
--- a/web/templates/index.html
+++ b/web/templates/index.html
@@ -164,7 +164,7 @@
id="modal-add-date"
class="flex-1 bg-input border border-white/20 rounded-lg px-3 py-2 text-sm text-white">
<select name="source" class="bg-input border border-white/20 rounded-lg px-3 py-2 text-sm text-white">
- <option value="todoist">Todoist</option>
+ <option value="doot">Doot</option>
<option value="trello">Trello</option>
</select>
</div>
diff --git a/web/templates/partials/planning-tab.html b/web/templates/partials/planning-tab.html
index ae48f33..9472a2a 100644
--- a/web/templates/partials/planning-tab.html
+++ b/web/templates/partials/planning-tab.html
@@ -101,21 +101,12 @@
class="flex-1 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-transparent"
required>
<input type="hidden" name="due_date" value="{{.Today}}">
- <input type="hidden" name="source" value="todoist">
+ <input type="hidden" name="source" value="doot">
<button type="submit"
class="bg-white/20 hover:bg-white/30 text-white px-4 py-2 rounded-lg text-sm font-medium transition-colors">
Add
</button>
</div>
- {{if .Projects}}
- <select name="project_id"
- class="w-full bg-black/40 border border-white/20 rounded-lg px-3 py-2 text-sm text-white focus:ring-2 focus:ring-white/30 focus:border-transparent">
- <option value="">Select project (optional)...</option>
- {{range .Projects}}
- <option value="{{.ID}}">{{.Name}}</option>
- {{end}}
- </select>
- {{end}}
</div>
</form>
</div>
diff --git a/web/templates/partials/tasks-tab.html b/web/templates/partials/tasks-tab.html
index 520bf0d..04c20da 100644
--- a/web/templates/partials/tasks-tab.html
+++ b/web/templates/partials/tasks-tab.html
@@ -5,39 +5,6 @@
hx-target="#tab-content"
hx-swap="innerHTML">
- <!-- Quick Add Form (Todoist) -->
- {{if .Projects}}
- <details class="mb-6">
- <summary class="cursor-pointer text-sm text-white/70 hover:text-white font-medium transition-colors mb-2">
- + Quick Add Todoist Task
- </summary>
- <form hx-post="/tasks"
- hx-target="#tab-content"
- hx-swap="innerHTML"
- class="mt-3 space-y-3 bg-black/30 p-4 rounded-lg border border-white/10 max-w-md">
-
- <input type="text"
- name="content"
- placeholder="Task content"
- required
- class="w-full px-3 py-2 bg-black/40 border border-white/20 rounded-lg text-sm text-white placeholder-white/50 focus:ring-2 focus:ring-white/30 focus:border-transparent">
-
- <select name="project_id"
- class="w-full px-3 py-2 bg-black/40 border border-white/20 rounded-lg text-sm text-white focus:ring-2 focus:ring-white/30 focus:border-transparent">
- <option value="">Select project (optional)...</option>
- {{range .Projects}}
- <option value="{{.ID}}">{{.Name}}</option>
- {{end}}
- </select>
-
- <button type="submit"
- class="w-full bg-white/10 hover:bg-white/20 text-white px-4 py-2 rounded-lg text-sm font-medium transition-colors border border-white/10">
- Add Task
- </button>
- </form>
- </details>
- {{end}}
-
<!-- Tasks List -->
{{if .Atoms}}
<div class="grid gap-3 sm:grid-cols-2 lg:grid-cols-3">
diff --git a/web/templates/partials/timeline-tab.html b/web/templates/partials/timeline-tab.html
index e58f793..3dc0a8c 100644
--- a/web/templates/partials/timeline-tab.html
+++ b/web/templates/partials/timeline-tab.html
@@ -65,7 +65,6 @@
z-index: 10;
background: rgba(0,0,0,0.7);
}
- .calendar-event.source-todoist { border-color: #e44332; }
.calendar-event.source-trello { border-color: #0079bf; }
.calendar-event.source-plantoeat { border-color: #5cb85c; }
.calendar-event.source-calendar { border-color: #9b59b6; }
@@ -92,7 +91,6 @@
font-size: 0.85em;
border-left: 3px solid;
}
- .untimed-item.source-todoist { border-color: #e44332; }
.untimed-item.source-trello { border-color: #0079bf; }
.untimed-item.source-plantoeat { border-color: #5cb85c; }
.untimed-item.source-calendar { border-color: #9b59b6; }
@@ -226,7 +224,7 @@
</span>
<!-- Source color bar -->
<div class="w-0.5 h-5 rounded-full shrink-0
- {{if eq .Source "calendar"}}bg-purple-400{{else if eq .Source "doot"}}bg-teal-400{{else if eq .Source "todoist"}}bg-red-400{{else if eq .Source "trello"}}bg-blue-400{{else if eq .Source "plantoeat"}}bg-green-400{{else if eq .Source "gtasks"}}bg-yellow-400{{else}}bg-white/30{{end}}">
+ {{if eq .Source "calendar"}}bg-purple-400{{else if eq .Source "doot"}}bg-teal-400{{else if eq .Source "trello"}}bg-blue-400{{else if eq .Source "plantoeat"}}bg-green-400{{else if eq .Source "gtasks"}}bg-yellow-400{{else}}bg-white/30{{end}}">
</div>
<!-- Checkbox for tasks -->
{{if or (eq .Type "task") (eq .Type "card") (eq .Type "gtask")}}
diff --git a/web/templates/partials/todoist-tasks.html b/web/templates/partials/todoist-tasks.html
deleted file mode 100644
index 3296745..0000000
--- a/web/templates/partials/todoist-tasks.html
+++ /dev/null
@@ -1,99 +0,0 @@
-{{define "todoist-tasks"}}
-<section class="card text-shadow-sm" id="todoist-list">
- <!-- Section Header with Brand Color -->
- <div class="flex items-center gap-3 mb-6">
- <div class="w-1 h-8 bg-todoist rounded"></div>
- <h2 class="text-2xl font-light text-white tracking-wide">Todoist Tasks</h2>
- </div>
-
- <!-- Quick Add Form -->
- {{if .Projects}}
- <details class="mb-6" open>
- <summary class="cursor-pointer text-sm text-white/70 hover:text-white font-medium transition-colors mb-2">
- + Quick Add Task
- </summary>
- <form hx-post="/tasks"
- hx-target="#todoist-list"
- hx-swap="outerHTML"
- class="mt-3 space-y-3 bg-black/30 p-4 rounded-lg">
-
- <input type="text"
- name="content"
- placeholder="Task content"
- required
- class="w-full px-3 py-2 bg-black/40 border border-white/20 rounded-lg text-sm text-white placeholder-white/50 focus:ring-2 focus:ring-white/30 focus:border-transparent">
-
- <select name="project_id"
- class="w-full px-3 py-2 bg-black/40 border border-white/20 rounded-lg text-sm text-white focus:ring-2 focus:ring-white/30 focus:border-transparent">
- <option value="">Select project (optional)...</option>
- {{range .Projects}}
- <option value="{{.ID}}">{{.Name}}</option>
- {{end}}
- </select>
-
- <button type="submit"
- class="w-full bg-white/20 hover:bg-white/30 text-white px-4 py-2 rounded-lg text-sm font-medium transition-colors">
- Add Task
- </button>
- </form>
- </details>
- {{end}}
-
- <!-- Tasks List -->
- {{if .Tasks}}
- <div class="space-y-3">
- {{range .Tasks}}
- <div class="todoist-task-item task-item">
- <!-- Functional Checkbox -->
- <input type="checkbox"
- {{if .Completed}}checked{{end}}
- hx-post="/tasks/complete"
- hx-vals='{"task_id": "{{.ID}}"}'
- hx-target="closest .todoist-task-item"
- hx-swap="outerHTML"
- class="mt-1 h-5 w-5 rounded bg-black/40 border-white/30 text-white/80 focus:ring-white/30 cursor-pointer">
-
- <div class="flex-1">
- <p class="font-medium text-white {{if .Completed}}line-through text-white/50{{end}}">
- {{.Content}}
- </p>
- {{if .Description}}
- <p class="text-sm text-white/60 mt-1">{{.Description}}</p>
- {{end}}
- <div class="flex flex-wrap gap-2 mt-2">
- {{if .ProjectName}}
- <span class="badge bg-white/10 text-white/70">{{.ProjectName}}</span>
- {{end}}
- {{if .DueDate}}
- <span class="badge bg-yellow-900/50 text-yellow-300">
- Due: {{.DueDate.Format "Jan 2"}}
- </span>
- {{end}}
- {{range .Labels}}
- <span class="badge bg-blue-900/50 text-blue-300">{{.}}</span>
- {{end}}
- </div>
- </div>
- {{if .URL}}
- <a href="{{.URL}}" target="_blank" class="text-white/70 hover:text-white transition-colors">
- <svg class="w-5 h-5" 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>
- {{end}}
- </div>
- {{else}}
- <div class="text-center py-16">
- <svg class="mx-auto h-12 w-12 text-white/30" fill="none" stroke="currentColor" viewBox="0 0 24 24">
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" />
- </svg>
- <h3 class="mt-4 text-lg font-medium text-white">No tasks found</h3>
- <p class="mt-2 text-sm text-white/50">
- All tasks completed or no tasks available.
- </p>
- </div>
- {{end}}
-</section>
-{{end}}
diff --git a/web/templates/settings.html b/web/templates/settings.html
index ef969ee..a955f64 100644
--- a/web/templates/settings.html
+++ b/web/templates/settings.html
@@ -232,7 +232,7 @@
{{range .Sources}}
<div class="space-y-4">
<h3 class="text-sm font-semibold uppercase tracking-wider text-slate-500 flex items-center gap-2">
- {{if eq . "trello"}}Trello Boards{{else if eq . "todoist"}}Todoist Projects{{else if eq . "gcal"}}Google Calendars{{else if eq . "gtasks"}}Google Task Lists{{else}}{{.}}{{end}}
+ {{if eq . "trello"}}Trello Boards{{else if eq . "gcal"}}Google Calendars{{else if eq . "gtasks"}}Google Task Lists{{else}}{{.}}{{end}}
</h3>
<div class="grid gap-3 sm:grid-cols-2">
{{$configs := index $.Configs .}}
diff --git a/web/templates/task-detail-page.html b/web/templates/task-detail-page.html
index 9bbf008..0c9b8f7 100644
--- a/web/templates/task-detail-page.html
+++ b/web/templates/task-detail-page.html
@@ -12,7 +12,7 @@
{{if .Saved}}<p class="text-green-400 text-sm mb-3">Saved.</p>{{end}}
<div class="bg-gray-800 rounded-xl p-5 mt-2">
<h1 class="font-semibold text-lg mb-4">{{.Title}}</h1>
- {{if eq .Source "todoist"}}
+ {{if eq .Source "doot"}}
<form method="post" action="/tasks/update">
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
<input type="hidden" name="id" value="{{.ID}}">