apps/posts/templates/admin_files.html 2.0 K raw
1
{{define "admin_files.html"}}{{template "admin_base.html" .}}{{end}}
2
{{define "title"}}Admin — Files{{end}}
3
{{define "content"}}
4
  <div class="admin-toolbar">
5
    <h2>Files</h2>
6
  </div>
7
  {{if .Error}}<p class="error">{{.Error}}</p>{{end}}
8
  {{if .Success}}<p class="success">File uploaded.</p>{{end}}
9
  <form method="POST" action="/admin/files/upload" enctype="multipart/form-data" class="form">
10
    <label for="file">upload file (max 10MB)</label>
11
    <input type="file" id="file" name="file" required>
12
    <button type="submit">upload</button>
13
  </form>
14
  {{if not .Files}}
15
    <p class="empty">no files yet</p>
16
  {{else}}
17
    {{$site := .SiteURL}}
18
    <div class="admin-list">
19
      {{range .Files}}
20
        <div class="admin-list-item">
21
          {{if .IsImage}}
22
            <img src="/files/{{.Filename}}" class="file-thumbnail" alt="{{.OriginalName}}">
23
          {{end}}
24
          <div class="admin-list-info">
25
            <span class="admin-list-title">{{.OriginalName}}</span>
26
            <div class="admin-list-meta">
27
              <span class="admin-list-date">{{.ContentType}}</span>
28
              <span class="admin-list-date">{{.SizeHuman}}</span>
29
              <span class="admin-list-date">{{.CreatedAt}}</span>
30
            </div>
31
          </div>
32
          <div class="admin-list-actions">
33
            <button type="button" class="link-button"
34
              onclick="navigator.clipboard.writeText('{{$site}}/files/{{.Filename}}');this.textContent='copied!'">
35
              copy url
36
            </button>
37
            <button type="button" class="link-button"
38
              onclick="navigator.clipboard.writeText('![{{.OriginalName}}]({{$site}}/files/{{.Filename}})');this.textContent='copied!'">
39
              copy md
40
            </button>
41
            <form method="POST" action="/admin/files/{{.ShortID}}/delete" class="inline-form">
42
              <button type="submit" class="link-button danger" onclick="return confirm('Delete this file?')">delete</button>
43
            </form>
44
          </div>
45
        </div>
46
      {{end}}
47
    </div>
48
  {{end}}
49
{{end}}