summaryrefslogtreecommitdiff
path: root/web/template/status_attachments.tmpl
blob: bd26c82a654869ab89f3646f0126be3010480499 (plain)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
{{- /*
// GoToSocial
// Copyright (C) GoToSocial Authors admin@gotosocial.org
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/ -}}

{{- /*
		Template for rendering a gallery of status media attachments.
		To use this template, pass a web view status into it.
*/ -}}

{{ with .MediaAttachments }}
	<div class="media photoswipe-gallery {{ (len .) | oddOrEven }} {{ if eq (len .) 1 }}single{{ else if eq (len .) 2 }}double{{- end -}}">
	{{- range $index, $media := . }}
		<div class="media-wrapper">
			<details class="{{- $media.Type -}}-spoiler media-spoiler" {{- if not $media.Sensitive }} open{{ end -}}>
				<summary>
					<div class="show sensitive button" aria-hidden="true">Show sensitive media</div>
					<span class="eye button" role="button" tabindex="0" aria-label="Toggle media">
						<i class="hide fa fa-fw fa-eye-slash" aria-hidden="true"></i>
						<i class="show fa fa-fw fa-eye" aria-hidden="true"></i>
					</span>
					{{- if eq .Type "video" }}
					<video {{- if .Description }} title="{{- $media.Description -}}" {{- end -}}>
						<source type="video/mp4" src="{{- $media.URL -}}"/>
					</video>
					{{- else if eq .Type "image" }}
					<img src="{{- $media.PreviewURL -}}" {{- if .Description }} title="{{- $media.Description -}}" {{- end }}/>
					{{- end }}
				</summary>
				{{- if eq .Type "video" }}
				<video
					class="plyr-video photoswipe-slide"
					controls
					data-pswp-index="{{- $index -}}"
					data-pswp-width="{{- $media.Meta.Original.Width -}}px"
					data-pswp-height="{{- $media.Meta.Original.Height -}}px"
					{{- if .Description }}
					alt="{{- $media.Description -}}"
					title="{{- $media.Description -}}"
					{{- end }}
				>
					<source type="video/mp4" src="{{- $media.URL -}}"/>
				</video>
				{{- else if eq .Type "image" }}
				<a
					class="photoswipe-slide"
					href="{{- $media.URL -}}"
					target="_blank"
					data-pswp-width="{{- $media.Meta.Original.Width -}}px"
					data-pswp-height="{{- $media.Meta.Original.Height -}}px"
					data-cropped="true"
					{{- if .Description }}
					title="{{- $media.Description -}}"
					{{- end }}
				>
					<img src="{{$media.PreviewURL}}" {{if .Description}}alt="{{$media.Description}}" {{end}} />
				</a>
				{{- else }}
				<a
					class="unknown-attachment"
					href="{{- $media.RemoteURL -}}"
					target="_blank"
					{{- if .Description }}
					title="Link to external media: {{ $media.Description -}}&#10;&#13;{{- $media.RemoteURL -}}"
					{{- else }}
					title="Link to external media.&#10;&#13;{{- $media.RemoteURL -}}"
					{{- end }}
				>
					<div class="placeholder" aria-hidden="true">
						<i class="placeholder-external-link fa fa-external-link"></i>
						<i class="placeholder-icon fa fa-file-text"></i>
						<div class="placeholder-link-to">External media</div>
					</div>
				</a>
				{{- end }}
			</details>
		</div>
	{{- end }}
	</div>
{{- end }}