79d4ff4b08
Now it's mostly CSS 2.1 compliant. All the images now use the height attribute to limit the size on browsers that don't support CSS.
230 lines
8.7 KiB
Cheetah
230 lines
8.7 KiB
Cheetah
{{with .Data}}
|
|
<div id="status-{{.ID}}" class="status-container-container">
|
|
{{if .Reblog}}
|
|
<div class="retweet-info">
|
|
<a class="img-link" href="/user/{{.Account.ID}}">
|
|
<img class="status-profile-img" src="{{.Account.AvatarStatic}}" title="{{.Account.Acct}}" alt="avatar" height="24" />
|
|
</a>
|
|
<span class="status-dname"> {{EmojiFilter .Account.DisplayName .Account.Emojis}} </span>
|
|
retweeted
|
|
</div>
|
|
{{template "status" (WithContext .Reblog $.Ctx)}}
|
|
{{else}}
|
|
{{block "status" (WithContext . $.Ctx)}}
|
|
{{with $s := .Data}}
|
|
<div class="status-container status-{{.ID}}" data-id="{{.ID}}">
|
|
<div class="status-profile-img-container">
|
|
<a class="img-link" href="/user/{{.Account.ID}}">
|
|
<img class="status-profile-img" src="{{.Account.AvatarStatic}}" title="{{.Account.Acct}}" alt="avatar" height="48" />
|
|
</a>
|
|
</div>
|
|
<div class="status">
|
|
<div class="status-name">
|
|
<span class="status-dname"> {{EmojiFilter .Account.DisplayName .Account.Emojis}} </span>
|
|
<a href="/user/{{.Account.ID}}">
|
|
<span class="status-uname"> {{.Account.Acct}} </span>
|
|
</a>
|
|
<div class="more-container">
|
|
<div class="remote-link">
|
|
{{if .IDNumbers}}#{{index .IDNumbers .ID}}{{end}} {{.Visibility}}
|
|
</div>
|
|
<div class="more-content">
|
|
<a class="more-link" href="{{.URL}}" target="_blank">
|
|
source
|
|
</a>
|
|
{{if .Muted}}
|
|
<form action="/unmuteconv/{{.ID}}" method="post" target="_self">
|
|
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
|
<input type="submit" value="unmute" class="btn-link more-link">
|
|
</form>
|
|
{{else}}
|
|
<form action="/muteconv/{{.ID}}" method="post" target="_self">
|
|
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
|
<input type="submit" value="mute" class="btn-link more-link">
|
|
</form>
|
|
{{end}}
|
|
{{if eq $.Ctx.UserID .Account.ID}}
|
|
<form action="/delete/{{.ID}}" method="post" target="_self">
|
|
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
|
<input type="submit" value="delete" class="btn-link more-link">
|
|
</form>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="status-reply-container">
|
|
{{if .InReplyToID}}
|
|
<div class="status-reply-to">
|
|
<a class="status-reply-to-link" href="{{if not .ShowReplies}}/thread/{{.InReplyToID}}{{end}}#status-{{.InReplyToID}}">
|
|
in reply to {{if .IDNumbers}}#{{index .IDNumbers .InReplyToID}}{{end}} {{if .Pleroma.InReplyToAccountAcct}}{{.Pleroma.InReplyToAccountAcct}}{{else if not .IDNumbers}}{{.InReplyToID}}{{end}}
|
|
</a>
|
|
</div>
|
|
{{if index .IDReplies .ID}} <span class="status-reply-info-divider"> - </span> {{end}}
|
|
{{end}}
|
|
{{if .ShowReplies}}
|
|
{{if index .IDReplies .ID}} <span class="status-reply-text"> replies: </span> {{end}}
|
|
{{range index .IDReplies .ID}}
|
|
<div class="status-reply">
|
|
<a class="status-reply-link" href="#status-{{.ID}}">#{{.Number}}</a>
|
|
</div>
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
{{if .Content}}
|
|
<div class="status-content"> {{StatusContentFilter .SpoilerText .Content .Emojis .Mentions}} </div>
|
|
{{end}}
|
|
<div class="status-media-container">
|
|
{{range .MediaAttachments}}
|
|
|
|
{{if eq .Type "image"}}
|
|
{{if $.Ctx.HideAttachments}}
|
|
<a href="{{.URL}}" target="_blank" title="{{.Description}}"> [image] </a>
|
|
{{else}}
|
|
<a class="img-link" href="{{.URL}}" target="_blank" title="{{.Description}}">
|
|
<img class="status-image" src="{{.URL}}" alt="status-image" height="240" />
|
|
{{if (and $.Ctx.MaskNSFW $s.Sensitive)}}
|
|
<div class="status-nsfw-overlay"></div>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{else if eq .Type "audio"}}
|
|
{{if $.Ctx.HideAttachments}}
|
|
<a href="{{.URL}}" target="_blank" title="{{.Description}}"> [audio] </a>
|
|
{{else}}
|
|
<audio class="status-audio" controls title="{{.Description}}">
|
|
<source src="{{.URL}}">
|
|
<a href="{{.URL}}" target="_blank"> [audio] </a>
|
|
</audio>
|
|
{{end}}
|
|
|
|
{{else if eq .Type "video"}}
|
|
{{if $.Ctx.HideAttachments}}
|
|
<a href="{{.URL}}" target="_blank" title="{{.Description}}"> [video] </a>
|
|
{{else}}
|
|
<div class="status-video-container" title="{{.Description}}">
|
|
<video class="status-video" controls height="240">
|
|
<source src="{{.URL}}">
|
|
<a href="{{.URL}}" target="_blank"> [video] </a>
|
|
</video>
|
|
{{if (and $.Ctx.MaskNSFW $s.Sensitive)}}
|
|
<div class="status-nsfw-overlay"></div>
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|
|
|
|
{{else}}
|
|
<a href="{{.URL}}" target="_blank" title="{{.Description}}"> [attachment] </a>
|
|
{{end}}
|
|
|
|
{{end}}
|
|
</div>
|
|
{{if .Poll}}
|
|
<form class="poll-form" action="/vote/{{.Poll.ID}}" method="POST" target="_self">
|
|
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
|
<input type="hidden" name="status_id" value="{{$s.ID}}">
|
|
{{range $i, $o := .Poll.Options}}
|
|
<div class="poll-option">
|
|
{{if (or $s.Poll.Expired $s.Poll.Voted)}}
|
|
<div> {{$o.Title}} - {{$o.VotesCount}} votes </div>
|
|
{{else}}
|
|
<input type="{{if $s.Poll.Multiple}}checkbox{{else}}radio{{end}}" name="choices"
|
|
id="poll-{{$s.ID}}-{{$i}}" value="{{$i}}">
|
|
<label for="poll-{{$s.ID}}-{{$i}}">
|
|
{{$o.Title}}
|
|
</label>
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|
|
{{if not (or .Poll.Expired .Poll.Voted)}}
|
|
<button type="submit"> Vote </button>
|
|
{{end}}
|
|
<div class="poll-info">
|
|
<span>{{.Poll.VotesCount}} votes</span>
|
|
{{if .Poll.Expired}}
|
|
<span> - poll expired </span>
|
|
{{else if .Poll.ExpiresAt}}
|
|
<span>
|
|
- poll ends in
|
|
<time datetime="{{FormatTimeRFC3339 .Poll.ExpiresAt}}" title="{{FormatTimeRFC822 .Poll.ExpiresAt}}">
|
|
{{TimeUntil .Poll.ExpiresAt}}
|
|
</time>
|
|
</span>
|
|
{{end}}
|
|
</div>
|
|
</form>
|
|
{{end}}
|
|
<div class="status-action-container">
|
|
<div class="status-action">
|
|
<a href="/thread/{{.ID}}?reply=true#status-{{.ID}}">
|
|
reply
|
|
</a>
|
|
<a class="status-reply-count" href="/thread/{{.ID}}#status-{{.ID}}" {{if $.Ctx.ThreadInNewTab}}target="_blank"{{end}}>
|
|
{{if and (not $.Ctx.AntiDopamineMode) .RepliesCount}}
|
|
({{DisplayInteractionCount .RepliesCount}})
|
|
{{end}}
|
|
</a>
|
|
</div>
|
|
<div class="status-action">
|
|
{{if or (eq .Visibility "private") (eq .Visibility "direct")}}
|
|
<a class="status-retweet" href="" title="this status cannot be retweeted">
|
|
retweet
|
|
</a>
|
|
{{else}}
|
|
{{if .Reblogged}}
|
|
<form class="status-retweet" data-action="unretweet" action="/unretweet/{{.ID}}" method="post" target="_self">
|
|
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
|
<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
|
|
<input type="submit" value="unretweet" class="btn-link">
|
|
</form>
|
|
{{else}}
|
|
<form class="status-retweet" data-action="retweet" action="/retweet/{{.ID}}" method="post" target="_self">
|
|
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
|
<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
|
|
<input type="submit" value="retweet" class="btn-link">
|
|
</form>
|
|
{{end}}
|
|
{{end}}
|
|
<a class="status-retweet-count" href="/retweetedby/{{.ID}}" title="click to see the the list">
|
|
{{if and (not $.Ctx.AntiDopamineMode) .ReblogsCount}}
|
|
({{DisplayInteractionCount .ReblogsCount}})
|
|
{{end}}
|
|
</a>
|
|
</div>
|
|
<div class="status-action">
|
|
{{if .Favourited}}
|
|
<form class="status-like" data-action="unlike" action="/unlike/{{.ID}}" method="post" target="_self">
|
|
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
|
<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
|
|
<input type="submit" value="unlike" class="btn-link">
|
|
</form>
|
|
{{else}}
|
|
<form class="status-like" data-action="like" action="/like/{{.ID}}" method="post" target="_self">
|
|
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
|
<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
|
|
<input type="submit" value="like" class="btn-link">
|
|
</form>
|
|
{{end}}
|
|
<a class="status-like-count" href="/likedby/{{.ID}}" title="click to see the the list">
|
|
{{if and (not $.Ctx.AntiDopamineMode) .FavouritesCount}}
|
|
({{DisplayInteractionCount .FavouritesCount}})
|
|
{{end}}
|
|
</a>
|
|
</div>
|
|
<div class="status-action status-action-last">
|
|
<a class="status-time" href="{{if not .ShowReplies}}/thread/{{.ID}}{{end}}#status-{{.ID}}"
|
|
{{if $.Ctx.ThreadInNewTab}}target="_blank"{{end}}>
|
|
<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">
|
|
{{TimeSince .CreatedAt}}
|
|
</time>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|