main
  1{{- /*gotype: mokhan.ca/xlgmokha/gitmal/pkg/templates.CommitsListParams*/ -}}
  2{{- define "head" -}}
  3<style>
  4  .commits {
  5    border: 1px solid var(--c-border);
  6    border-top: none;
  7    border-bottom-left-radius: var(--border-radius);
  8    border-bottom-right-radius: var(--border-radius);
  9    overflow-x: auto;
 10  }
 11  .row {
 12    display: flex;
 13    height: 40px;
 14    border-bottom: 1px solid var(--c-border);
 15    padding-inline: 16px;
 16    gap: 16px;
 17  }
 18  .row:last-child {
 19    border-bottom: none;
 20  }
 21  .row:hover {
 22    background-color: var(--c-bg-alt);
 23  }
 24  .cell {
 25    display: flex;
 26    gap: 8px;
 27    align-items: center;
 28  }
 29  .hash a {
 30    font-family: var(--font-family-mono), monospace;
 31    color: var(--c-text-2);
 32  }
 33  .commit-title {
 34    flex: 1;
 35  }
 36  .commit-title a {
 37    color: var(--c-text-1);
 38    line-height: 1.5;
 39  }
 40  .commit-title a:hover {
 41    color: var(--c-brand-2);
 42  }
 43  .ref-badges {
 44    display: inline-flex;
 45    gap: 6px;
 46    margin-left: 8px;
 47  }
 48  .badge {
 49    font-size: 12px;
 50    color: var(--c-text-2);
 51    border: 1px solid var(--c-border);
 52    padding: 2px 6px;
 53    border-radius: 999px;
 54    white-space: nowrap;
 55  }
 56  .date {
 57    font-family: var(--font-family-mono), monospace;
 58    font-size: 12px;
 59    color: var(--c-text-2);
 60  }
 61  .pagination {
 62    display: flex;
 63    gap: 8px;
 64    align-items: center;
 65    justify-content: center;
 66    margin-top: 12px;
 67    padding: 8px 0;
 68    color: var(--c-text-2);
 69  }
 70  .pagination a,
 71  .pagination span.btn {
 72    display: inline-flex;
 73    align-items: center;
 74    gap: 6px;
 75    padding: 6px 10px;
 76    border: 1px solid var(--c-border);
 77    border-radius: 6px;
 78    background: var(--c-bg-elv);
 79    color: var(--c-text-1);
 80    text-decoration: none;
 81    font-size: 13px;
 82  }
 83  .pagination a:hover {
 84    color: var(--c-brand-2);
 85    border-color: var(--c-brand-2);
 86  }
 87  .pagination .disabled {
 88    opacity: 0.5;
 89    pointer-events: none;
 90  }
 91  .pagination .page-indicator {
 92    margin: 0 4px;
 93    font-size: 13px;
 94    color: var(--c-text-2);
 95  }
 96  @media (max-width: 767px) {
 97    .row {
 98      height: auto;
 99      padding: 10px 12px;
100      gap: 12px;
101      flex-wrap: wrap;
102      align-items: flex-start;
103    }
104    .commit-title {
105      flex-basis: 100%;
106      order: 1;
107    }
108    .author, .date, .hash {
109      font-size: 12px;
110    }
111    .author {
112      color: var(--c-text-2);
113      order: 2;
114    }
115    .date {
116      order: 2;
117    }
118    .hash {
119      margin-left: auto;
120      order: 3;
121    }
122  }
123</style>
124{{- end}}
125
126{{- define "body" -}}
127{{- template "header" .}}
128<div class="commits">
129{{- range .Commits}}
130  <div class="row">
131    <div class="cell hash">
132      <a href="{{.Href}}">{{.ShortHash}}</a>
133    </div>
134    <div class="cell commit-title">
135      <a href="{{.Href}}">{{.Subject}}</a>
136{{- if .RefNames}}
137      <div class="ref-badges">
138{{- range .RefNames}}
139{{- if or (eq .Kind "Branch") (eq .Kind "Tag")}}
140        <span class="badge">{{if eq .Kind "Tag"}}tag: {{end}}{{.Name}}</span>
141{{- end}}
142{{- end}}
143      </div>
144{{- end}}
145    </div>
146    <div class="cell author">{{.Author}}</div>
147    <div class="cell date">{{.Date | FormatDate}}</div>
148  </div>
149{{- else}}
150  <div class="row">(no commits)</div>
151{{- end}}
152</div>
153<div class="pagination">
154{{- if .Page.FirstHref}}
155  <a class="btn" href="{{.Page.FirstHref}}">« First</a>
156{{- else}}
157  <span class="btn disabled">« First</span>
158{{- end}}
159{{- if .Page.PrevHref}}
160  <a class="btn" href="{{.Page.PrevHref}}">← Newer</a>
161{{- else}}
162  <span class="btn disabled">← Newer</span>
163{{- end}}
164  <span class="page-indicator">Page {{.Page.Page}} of {{.Page.TotalPages}}</span>
165{{- if .Page.NextHref}}
166  <a class="btn" href="{{.Page.NextHref}}">Older →</a>
167{{- else}}
168  <span class="btn disabled">Older →</span>
169{{- end}}
170{{- if .Page.LastHref}}
171  <a class="btn" href="{{.Page.LastHref}}">Last »</a>
172{{- else}}
173  <span class="btn disabled">Last »</span>
174{{- end}}
175</div>
176{{- end}}