summaryrefslogtreecommitdiff
path: root/web/templates/partials/task-detail.html
blob: abcc5b933fbb47c09aed3829abb207cf3fd1b91e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{{define "task-detail"}}
<div class="p-4">
    <form hx-post="/tasks/update" hx-swap="none" hx-on::after-request="if(event.detail.successful) { closeTaskModal(); htmx.trigger(document.body, 'refresh-tasks'); }">
        <input type="hidden" name="id" value="{{.ID}}">
        <input type="hidden" name="source" value="{{.Source}}">
        <label class="block text-sm font-medium text-white/70 mb-1">Title</label>
        <input type="text" name="title" value="{{.Title}}" required
               class="w-full bg-input border border-white/20 rounded-lg px-3 py-2 text-sm font-semibold text-white placeholder-white/50 mb-3">
        <label class="block text-sm font-medium text-white/70 mb-1">Description</label>
        <textarea name="description" class="w-full bg-input border border-white/20 rounded-lg px-3 py-2 text-sm text-white placeholder-white/50 mb-3 h-32">{{.Description}}</textarea>
        <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">Save</button>
    </form>

    {{if .IsDoot}}
    <button type="button"
            class="w-full mt-3 bg-red-500/10 hover:bg-red-500/20 text-red-300 px-4 py-2 rounded-lg text-sm font-medium"
            hx-delete="/tasks/{{.ID}}?source={{.Source}}"
            hx-confirm="Delete this task? This can't be undone."
            hx-swap="none"
            hx-on::after-request="if(event.detail.successful) { closeTaskModal(); htmx.trigger(document.body, 'refresh-tasks'); }">
        Delete Task
    </button>
    {{end}}

    {{if .IsDoot}}
    <div class="mt-4 pt-4 border-t border-white/10">
        <h4 class="text-sm font-medium text-white/70 mb-2">Recurrence</h4>
        {{if .RecurrenceFreq}}
        <p class="text-xs text-teal-300/80 mb-2">
            Repeats every {{if gt .RecurrenceInterval 1}}{{.RecurrenceInterval}} {{recurrenceUnit .RecurrenceFreq}}s{{else}}{{recurrenceUnit .RecurrenceFreq}}{{end}}{{if and (eq .RecurrenceFreq "weekly") .RecurrenceWeekdays}} on {{weekdayNames .RecurrenceWeekdays}}{{end}}
        </p>
        {{end}}
        <form hx-post="/tasks/recurrence" hx-target="#task-edit-content" hx-swap="innerHTML">
            <input type="hidden" name="id" value="{{.ID}}">
            <div class="flex gap-2 mb-2">
                <select name="freq" class="flex-1 bg-input border border-white/20 rounded-lg px-3 py-2 text-sm text-white">
                    <option value="" {{if eq .RecurrenceFreq ""}}selected{{end}}>None</option>
                    <option value="daily" {{if eq .RecurrenceFreq "daily"}}selected{{end}}>Daily</option>
                    <option value="weekly" {{if eq .RecurrenceFreq "weekly"}}selected{{end}}>Weekly</option>
                    <option value="monthly" {{if eq .RecurrenceFreq "monthly"}}selected{{end}}>Monthly</option>
                    <option value="yearly" {{if eq .RecurrenceFreq "yearly"}}selected{{end}}>Yearly</option>
                </select>
                <input type="number" name="interval" min="1" value="{{if gt .RecurrenceInterval 0}}{{.RecurrenceInterval}}{{else}}1{{end}}"
                       class="w-20 bg-input border border-white/20 rounded-lg px-3 py-2 text-sm text-white" title="Every N">
            </div>
            <div class="flex flex-wrap gap-3 mb-3">
                <label class="flex items-center gap-1 text-xs text-white/60">
                    <input type="checkbox" name="weekdays" value="0" {{if hasInt .RecurrenceWeekdays 0}}checked{{end}} class="h-3.5 w-3.5 rounded bg-black/40 border-white/30">
                    Su
                </label>
                <label class="flex items-center gap-1 text-xs text-white/60">
                    <input type="checkbox" name="weekdays" value="1" {{if hasInt .RecurrenceWeekdays 1}}checked{{end}} class="h-3.5 w-3.5 rounded bg-black/40 border-white/30">
                    Mo
                </label>
                <label class="flex items-center gap-1 text-xs text-white/60">
                    <input type="checkbox" name="weekdays" value="2" {{if hasInt .RecurrenceWeekdays 2}}checked{{end}} class="h-3.5 w-3.5 rounded bg-black/40 border-white/30">
                    Tu
                </label>
                <label class="flex items-center gap-1 text-xs text-white/60">
                    <input type="checkbox" name="weekdays" value="3" {{if hasInt .RecurrenceWeekdays 3}}checked{{end}} class="h-3.5 w-3.5 rounded bg-black/40 border-white/30">
                    We
                </label>
                <label class="flex items-center gap-1 text-xs text-white/60">
                    <input type="checkbox" name="weekdays" value="4" {{if hasInt .RecurrenceWeekdays 4}}checked{{end}} class="h-3.5 w-3.5 rounded bg-black/40 border-white/30">
                    Th
                </label>
                <label class="flex items-center gap-1 text-xs text-white/60">
                    <input type="checkbox" name="weekdays" value="5" {{if hasInt .RecurrenceWeekdays 5}}checked{{end}} class="h-3.5 w-3.5 rounded bg-black/40 border-white/30">
                    Fr
                </label>
                <label class="flex items-center gap-1 text-xs text-white/60">
                    <input type="checkbox" name="weekdays" value="6" {{if hasInt .RecurrenceWeekdays 6}}checked{{end}} class="h-3.5 w-3.5 rounded bg-black/40 border-white/30">
                    Sa
                </label>
            </div>
            <button type="submit" class="w-full bg-white/10 hover:bg-white/20 text-white/90 px-4 py-2 rounded-lg text-sm font-medium">
                {{if .RecurrenceFreq}}Update{{else}}Set{{end}} Recurrence
            </button>
        </form>
    </div>
    {{end}}
</div>
{{end}}