summaryrefslogtreecommitdiff
path: root/web/templates/page-notes.tmpl
blob: ebd5865f30427b7d02dc7cf5c261727a1ff8a006 (plain) (blame)
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
{{define "facet"}}<select name="{{.Name}}" aria-label="{{.Label}}">
  <option value="">{{.Label}}</option>
  {{range .Values}}<option value="{{.}}"{{if eq . $.Sel}} selected{{end}}>{{if $.Short}}{{short .}}…{{else}}{{.}}{{end}}</option>
  {{end}}</select>{{end}}

{{define "page-notes"}}
<header class="filehead">
  <h1>Notes</h1>
  <p class="meta">
    {{if eq .Scope "all"}}
      all {{.Site.NotesTotal}} in the log, every change
    {{else if .ScopeEmpty}}
      all {{.Site.NotesTotal}} in the log — nothing was recorded at <code>{{short .ChangeID}}</code>
    {{else}}
      {{len .Site.Notes}} written at <code title="{{.ChangeID}}">{{short .ChangeID}}</code>{{if .Elsewhere}} ·
      {{if .Live}}<a href="{{.ScopeHref "all"}}">{{.Elsewhere}} more at other changes</a>
      {{else}}{{.Elsewhere}} more at other changes are not in this export{{end}}{{end}}
    {{end}}
    {{if .Live}} · anything you add here is appended to the private log sidecar at this change — the project working copy is never touched{{end}}
  </p>
</header>

<section class="notespage">
  {{if .Live}}
  <details class="addnote">
    <summary>add a note</summary>
    {{template "noteform" .}}
  </details>
  {{end}}

  <form class="filters" id="notefilters" method="get" action="{{.Href "notes"}}"
        {{if .Live}}hx-get="{{.Href "notes-list"}}" hx-target="#notelist" hx-swap="innerHTML"
        hx-trigger="input delay:250ms, change, search" hx-indicator="#notesbusy"{{end}}>
    <input type="search" name="text" value="{{.Filter.Text}}" placeholder="search note text…" autocomplete="off">
    <input type="search" name="file" value="{{.Filter.File}}" placeholder="file path…" list="filelist" autocomplete="off">
    {{template "facet" (dict "Name" "agent" "Label" "any agent" "Values" .Facets.Agents "Sel" .Filter.Agent)}}
    {{template "facet" (dict "Name" "model" "Label" "any model" "Values" .Facets.Models "Sel" .Filter.Model)}}
    {{template "facet" (dict "Name" "session" "Label" "any session" "Values" .Facets.Sessions "Sel" .Filter.Session "Short" true)}}
    {{template "facet" (dict "Name" "kind" "Label" "any kind" "Values" .Facets.Kinds "Sel" .Filter.Kind)}}
    <span class="dates">
      <label class="datef">from <input type="date" name="from" value="{{.Filter.From}}"></label>
      <label class="datef">to <input type="date" name="to" value="{{.Filter.To}}"></label>
    </span>
    <button type="submit" class="nohx">filter</button>
    <button type="button" id="clearfilters">clear</button>
  </form>
  <datalist id="filelist">{{range .Facets.Files}}<option value="{{.}}">{{end}}</datalist>

  <p class="meta count"><span id="notesbusy" class="busy">·</span><span id="notecount">{{len .Notes}}</span> notes shown</p>
  <div id="notelist">{{template "notelist" .}}</div>
</section>
{{end}}