library_detail.html
| 1 | {{define "library_detail"}} |
| 2 | <div class="detail-view"> |
| 3 | <div class="detail-header"> |
| 4 | <a href="/library" class="back-link">← Back to Library</a> |
| 5 | <h2>{{.Data.Title}}</h2> |
| 6 | <details class="inline danger-details"> |
| 7 | <summary class="danger">Delete</summary> |
| 8 | <form method="post" action="/library/{{.Data.ID}}/delete" class="confirm-form"> |
| 9 | <p>Are you sure you want to delete this media?</p> |
| 10 | <div class="form-actions"> |
| 11 | <button type="submit" class="danger">Yes, Delete</button> |
| 12 | </div> |
| 13 | </form> |
| 14 | </details> |
| 15 | </div> |
| 16 | |
| 17 | <div class="player-container"> |
| 18 | {{if .Data.IsAudio}} |
| 19 | <audio controls> |
| 20 | <source src="/media/{{.Data.ID}}" type="audio/{{ext .Data.Filepath}}"> |
| 21 | Your browser does not support the audio element. |
| 22 | </audio> |
| 23 | {{else}} |
| 24 | <video controls preload="metadata"> |
| 25 | <source src="/media/{{.Data.ID}}" type="video/{{ext .Data.Filepath}}"> |
| 26 | Your browser does not support the video element. |
| 27 | </video> |
| 28 | {{end}} |
| 29 | </div> |
| 30 | |
| 31 | <div class="detail-meta"> |
| 32 | <dl> |
| 33 | <dt>Path</dt> |
| 34 | <dd>{{.Data.RelativePath}}</dd> |
| 35 | |
| 36 | {{if .Data.Duration}} |
| 37 | <dt>Duration</dt> |
| 38 | <dd>{{formatDuration .Data.Duration}}</dd> |
| 39 | {{end}} |
| 40 | |
| 41 | {{if .Data.URL}} |
| 42 | <dt>Source URL</dt> |
| 43 | <dd><a href="{{.Data.URL}}" target="_blank">{{.Data.URL}}</a></dd> |
| 44 | {{end}} |
| 45 | |
| 46 | {{if .Data.Description}} |
| 47 | <dt>Description</dt> |
| 48 | <dd>{{.Data.Description}}</dd> |
| 49 | {{end}} |
| 50 | |
| 51 | <dt>File</dt> |
| 52 | <dd>{{.Data.Filepath}}</dd> |
| 53 | </dl> |
| 54 | </div> |
| 55 | </div> |
| 56 | {{end}} |
| 57 |