library_detail.html
⎇
Raw
1{{define "library_detail"}}
2<div class="detail-view">
3 <div class="detail-header">
4 <h2>{{.Data.Item.Name}}</h2>
5 <details class="delete-overlay">
6 <summary role="button" class="small danger">Delete</summary>
7 <div class="overlay-panel">
8 <p>Are you sure you want to delete this item?</p>
9 <form method="post" action="/library/item/{{urlEncodePath .Data.Item.RelPath}}/delete" class="form-actions">
10 <button type="submit" class="danger">Yes, Delete</button>
11 </form>
12 </div>
13 </details>
14 </div>
15
16 {{if gt (len .Data.Item.MediaFiles) 1}}
17 <form method="get" action="/library/item/{{urlEncodePath .Data.Item.RelPath}}" class="file-selector">
18 <label for="file">Playing</label>
19 <select id="file" name="file" onchange="this.form.submit()">
20 {{range .Data.Item.MediaFiles}}
21 <option value="{{.Filename}}" {{if eq .Filename $.Data.SelectedFilename}}selected{{end}}>{{.Filename}}</option>
22 {{end}}
23 </select>
24 </form>
25 {{end}}
26
27 {{range .Data.Item.MediaFiles}}
28 {{if eq .Filename $.Data.SelectedFilename}}
29 <div class="player-container">
30 {{if .IsAudio}}
31 <audio controls>
32 <source src="/media/item/{{urlEncodePath $.Data.Item.RelPath}}?file={{.Filename}}" type="{{mimeType .Filepath}}">
33 Your browser does not support the audio element.
34 </audio>
35 {{else}}
36 <video controls preload="metadata">
37 <source src="/media/item/{{urlEncodePath $.Data.Item.RelPath}}?file={{.Filename}}" type="{{mimeType .Filepath}}">
38 {{range $.Data.Subtitles}}
39 <track kind="subtitles" src="{{.Src}}" srclang="{{.Lang}}" label="{{.Label}}">
40 {{end}}
41 Your browser does not support the video element.
42 </video>
43 {{end}}
44 </div>
45 {{end}}
46 {{end}}
47
48 <div class="detail-meta">
49 <dl>
50 <dt>Files</dt>
51 {{range .Data.Item.MediaFiles}}
52 <dd>{{.Filename}}</dd>
53 {{end}}
54
55 {{if .Data.Item.SourceURL}}
56 <dt>Source URL</dt>
57 <dd><a href="{{.Data.Item.SourceURL}}" target="_blank">{{.Data.Item.SourceURL}}</a></dd>
58 {{end}}
59 </dl>
60
61 <details>
62 <summary role="button" class="small secondary">More Details</summary>
63 <dl>
64 {{if .Data.Item.Description}}
65 <dt>Description</dt>
66 <dd>{{.Data.Item.Description}}</dd>
67 {{end}}
68
69 {{if .Data.Metadata}}
70 {{if .Data.Metadata.Container}}
71 <dt>Container</dt>
72 <dd>{{.Data.Metadata.Container}}</dd>
73 {{end}}
74
75 {{if .Data.Metadata.Resolution}}
76 <dt>Resolution</dt>
77 <dd>{{.Data.Metadata.Resolution}}</dd>
78 {{end}}
79
80 {{range .Data.Metadata.VideoStreams}}
81 <dt>Video</dt>
82 <dd>
83 {{.Codec}}
84 {{if .Profile}}({{.Profile}}){{end}}
85 {{if .Width}}[{{.Width}}x{{.Height}}]{{end}}
86 {{if .FPS}}@ {{.FPS}} fps{{end}}
87 {{if .PixelFormat}}, {{.PixelFormat}}{{end}}
88 {{if .Bitrate}}, {{.Bitrate}} kbps{{end}}
89 </dd>
90 {{end}}
91
92 {{range .Data.Metadata.AudioStreams}}
93 <dt>Audio</dt>
94 <dd>
95 {{.Codec}}
96 {{if .Language}}[{{.Language}}]{{end}}
97 {{if .SampleRate}}, {{.SampleRate}} Hz{{end}}
98 {{if .ChannelLayout}}, {{.ChannelLayout}}{{else if .Channels}}, {{.Channels}} channels{{end}}
99 {{if .SampleFormat}}, {{.SampleFormat}}{{end}}
100 {{if .Bitrate}}, {{.Bitrate}} kbps{{end}}
101 </dd>
102 {{end}}
103
104 {{range .Data.Metadata.SubtitleStreams}}
105 <dt>Subtitle</dt>
106 <dd>
107 {{.Codec}}
108 {{if .Language}}[{{.Language}}]{{end}}
109 {{if .Title}}- {{.Title}}{{end}}
110 </dd>
111 {{end}}
112
113 {{if .Data.Metadata.FileSize}}
114 <dt>File Size</dt>
115 <dd>{{formatFileSize .Data.Metadata.FileSize}}</dd>
116 {{end}}
117 {{end}}
118 </dl>
119 </details>
120 </div>
121</div>
122{{end}}
123