mirror of
https://gitea.phreedom.club/localhost_frssoft/bloat.git
synced 2025-05-12 23:08:46 +00:00
Merge branch 'master' into absolute_fluoride
This commit is contained in:
commit
4ab53547a8
26 changed files with 685 additions and 477 deletions
|
@ -89,6 +89,10 @@
|
|||
<td> Read notifications </td>
|
||||
<td> <kbd>C</kbd> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Refresh thread page </td>
|
||||
<td> <kbd>T</kbd> </td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
You can activate the shortcuts by pressing the associated key with your browser's <a href="https://en.wikipedia.org/wiki/Access_key#Access_in_different_browsers" target="_blank">accesskey modifier</a>,
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div class="emoji-item-container">
|
||||
<div class="emoji-item">
|
||||
<img class="emoji" src="{{.URL}}" alt="{{.ShortCode}}" height="32" />
|
||||
<span class="emoji-shortcode">:{{.ShortCode}}:</span>
|
||||
<span title=":{{.ShortCode}}:" class="emoji-shortcode">:{{.ShortCode}}:</span>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
|
|
@ -2,10 +2,15 @@
|
|||
{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
|
||||
<div class="page-title"> Error </div>
|
||||
|
||||
<div class="error-text"> {{.Error}} </div>
|
||||
<div class="error-text"> {{.Err}} </div>
|
||||
<div>
|
||||
<a href="/timeline/home">Home</a>
|
||||
<a href="/signin" target="_top">Sign In</a>
|
||||
<a href="/timeline/home">home</a>
|
||||
{{if .Retry}}
|
||||
<a href="{{$.Ctx.Referrer}}">retry</a>
|
||||
{{end}}
|
||||
{{if .SessionErr}}
|
||||
<a href="/signin" target="_top">signin</a>
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
{{template "footer.tmpl"}}
|
||||
|
|
40
templates/filters.tmpl
Normal file
40
templates/filters.tmpl
Normal file
|
@ -0,0 +1,40 @@
|
|||
{{with .Data}}
|
||||
{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
|
||||
<div class="page-title"> Filters </div>
|
||||
|
||||
{{if .Filters}}
|
||||
<table class="filters">
|
||||
{{range .Filters}}
|
||||
<tr>
|
||||
<td> {{.Phrase}}{{if not .WholeWord}}*{{end}} </td>
|
||||
<td>
|
||||
<form action="/unfilter/{{.ID}}" method="POST">
|
||||
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
||||
<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
|
||||
<button type="submit"> Delete </button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</table>
|
||||
{{else}}
|
||||
<div class="filters"> No filters added </div>
|
||||
{{end}}
|
||||
|
||||
<div class="page-title"> Add filter </div>
|
||||
<form action="/filter" method="POST">
|
||||
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
||||
<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
|
||||
<span class="settings-form-field">
|
||||
<label for="phrase"> Phrase </label>
|
||||
<input id="phrase" name="phrase" required>
|
||||
</span>
|
||||
<span class="settings-form-field">
|
||||
<input id="whole-word" name="whole_word" type="checkbox" value="true" checked>
|
||||
<label for="whole-word"> Whole word </label>
|
||||
</span>
|
||||
<button type="submit"> Add </button>
|
||||
</form>
|
||||
|
||||
{{template "footer.tmpl"}}
|
||||
{{end}}
|
|
@ -17,7 +17,7 @@
|
|||
{{if .RefreshInterval}}
|
||||
<meta http-equiv="refresh" content="{{.RefreshInterval}}">
|
||||
{{end}}
|
||||
<title> {{if gt .Count 0}}({{.Count}}){{end}} {{.Title}} </title>
|
||||
<title> {{if gt .Count 0}}({{.Count}}){{end}} {{.Title | html}} </title>
|
||||
<link rel="stylesheet" href="/static/style.css">
|
||||
{{if .CustomCSS}}
|
||||
<link rel="stylesheet" href="{{.CustomCSS}}">
|
||||
|
@ -25,6 +25,9 @@
|
|||
{{if $.Ctx.FluorideMode}}
|
||||
<script src="/static/fluoride.js"></script>
|
||||
{{end}}
|
||||
{{if $.Ctx.UserCSS}}
|
||||
<style>{{$.Ctx.UserCSS}}</style>
|
||||
{{end}}
|
||||
</head>
|
||||
<body {{if $.Ctx.DarkMode}}class="dark"{{end}}>
|
||||
{{end}}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<div class="user-info">
|
||||
<div class="user-info-img-container">
|
||||
<a class="img-link" href="/timeline/home" title="Home (1)">
|
||||
<img class="user-info-img" src="{{.User.AvatarStatic}}" alt="profile-avatar" height="64" />
|
||||
<img class="user-info-img" src="{{.User.Avatar}}" alt="profile-avatar" height="64" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="user-info-details-container">
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<div class="notification-follow-container">
|
||||
<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="profile-avatar" height="48" />
|
||||
<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="profile-avatar" height="48" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="notification-follow">
|
||||
|
@ -43,7 +43,7 @@
|
|||
<div class="notification-follow-container">
|
||||
<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="profile-avatar" height="48" />
|
||||
<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="profile-avatar" height="48" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="notification-follow">
|
||||
|
@ -76,7 +76,7 @@
|
|||
{{else if eq .Type "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="48" />
|
||||
<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
|
||||
</a>
|
||||
<a href="/user/{{.Account.ID}}">
|
||||
<span class="status-uname"> @{{.Account.Acct}} </span>
|
||||
|
@ -90,7 +90,7 @@
|
|||
{{else if eq .Type "favourite"}}
|
||||
<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="48" />
|
||||
<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
|
||||
</a>
|
||||
<a href="/user/{{.Account.ID}}">
|
||||
<span class="status-uname"> @{{.Account.Acct}} </span>
|
||||
|
@ -104,7 +104,7 @@
|
|||
{{else}}
|
||||
<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="48" />
|
||||
<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
|
||||
</a>
|
||||
<a href="/user/{{.Account.ID}}">
|
||||
<span class="status-uname"> @{{.Account.Acct}} </span>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<textarea id="post-content" name="content" class="post-content" cols="34" rows="5" accesskey="E" title="Edit post (E)">{{if .ReplyContext}}{{.ReplyContext.ReplyContent}}{{end}}</textarea>
|
||||
</div>
|
||||
<div>
|
||||
{{if gt (len .Formats) 0}}
|
||||
{{if .Formats}}
|
||||
<span class="post-form-field">
|
||||
{{$defFormat := .DefaultFormat}}
|
||||
<select id="post-format" name="format" accesskey="F" title="Format (F)">
|
||||
|
@ -34,7 +34,7 @@
|
|||
</select>
|
||||
</span>
|
||||
<span class="post-form-field">
|
||||
<input type="checkbox" id="nsfw-checkbox" name="is_nsfw" value="on" accesskey="N" title="NSFW (N)">
|
||||
<input type="checkbox" id="nsfw-checkbox" name="is_nsfw" value="true" accesskey="N" title="NSFW (N)">
|
||||
<label for="nsfw-checkbox"> NSFW </label>
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class="user-list-item">
|
||||
<div class="user-list-profile-img">
|
||||
<a class="img-link" href="/user/{{.ID}}">
|
||||
<img class="status-profile-img" src="{{.AvatarStatic}}" title="@{{.Acct}}" alt="avatar" height="48" />
|
||||
<img class="status-profile-img" src="{{.Avatar}}" title="@{{.Acct}}" alt="avatar" height="48" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="user-list-name">
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<form class="search-form" action="/search" method="GET">
|
||||
<span class="post-form-field">
|
||||
<label for="query"> Query </label>
|
||||
<input id="query" name="q" value="{{.Q}}">
|
||||
<input id="query" name="q" value="{{.Q | html}}">
|
||||
</span>
|
||||
<span class="post-form-field">
|
||||
<label for="type"> Type </label>
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
<form id="settings-form" action="/settings" method="POST">
|
||||
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
||||
<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
|
||||
{{if .PostFormats}}
|
||||
<div class="settings-form-field">
|
||||
<label for="visibility"> Default format </label>
|
||||
{{$defFormat := .Settings.DefaultFormat}}
|
||||
|
@ -14,6 +15,7 @@
|
|||
{{end}}
|
||||
</select>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="settings-form-field">
|
||||
<label for="visibility"> Default scope </label>
|
||||
<select id="visibility" name="visibility">
|
||||
|
@ -63,6 +65,12 @@
|
|||
<input id="dark-mode" name="dark_mode" type="checkbox" value="true" {{if .Settings.DarkMode}}checked{{end}}>
|
||||
<label for="dark-mode"> Use dark theme </label>
|
||||
</div>
|
||||
<div class="settings-form-field">
|
||||
<label for="css"> Custom CSS: </label>
|
||||
</div>
|
||||
<div>
|
||||
<textarea id="css" name="css" cols="80" rows="8">{{.Settings.CSS}}</textarea>
|
||||
</div>
|
||||
<button type="submit"> Save </button>
|
||||
</form>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{{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" />
|
||||
<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="24" />
|
||||
</a>
|
||||
<bdi class="status-dname"> {{EmojiFilter .Account.DisplayName .Account.Emojis}} </bdi>
|
||||
<a href="/user/{{.Account.ID}}">
|
||||
|
@ -18,7 +18,7 @@
|
|||
<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" />
|
||||
<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="status">
|
||||
|
@ -88,7 +88,7 @@
|
|||
{{end}}
|
||||
</div>
|
||||
{{if .Content}}
|
||||
<div class="status-content"> {{StatusContentFilter .SpoilerText .Content .Emojis .Mentions}} </div>
|
||||
<div class="status-content"> {{StatusContentFilter (html .SpoilerText) .Content .Emojis .Mentions}} </div>
|
||||
{{end}}
|
||||
{{if .MediaAttachments}}
|
||||
<div class="status-media-container">
|
||||
|
@ -101,7 +101,7 @@
|
|||
</a>
|
||||
{{else}}
|
||||
<a class="img-link" href="{{.URL}}" target="_blank" title="{{.Description}}">
|
||||
<img class="status-image" src="{{.URL}}" alt="status-image" height="240" />
|
||||
<img class="status-image" src="{{.PreviewURL}}" alt="status-image" height="240" />
|
||||
{{if (and $.Ctx.MaskNSFW $s.Sensitive)}}
|
||||
<div class="status-nsfw-overlay"></div>
|
||||
{{end}}
|
||||
|
@ -153,12 +153,12 @@
|
|||
{{range $i, $o := .Poll.Options}}
|
||||
<div class="poll-option">
|
||||
{{if (or $s.Poll.Expired $s.Poll.Voted)}}
|
||||
<div> {{EmojiFilter $o.Title $s.Emojis}} - {{$o.VotesCount}} votes </div>
|
||||
<div> {{EmojiFilter (html $o.Title) $s.Emojis}} - {{$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}}">
|
||||
{{EmojiFilter $o.Title $s.Emojis}}
|
||||
{{EmojiFilter (html $o.Title) $s.Emojis}}
|
||||
</label>
|
||||
{{end}}
|
||||
</div>
|
||||
|
@ -193,24 +193,19 @@
|
|||
</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}}
|
||||
{{$rt := "retweet"}} {{if .Reblogged}} {{$rt = "unretweet"}} {{end}}
|
||||
<form class="status-retweet" data-action="{{$rt}}" action="/{{$rt}}/{{.ID}}" method="post" target="_self">
|
||||
<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
|
||||
<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
|
||||
<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
|
||||
<input type="submit" value="{{$rt}}" class="btn-link">
|
||||
<input type="submit" value="{{$rt}}" class="btn-link"
|
||||
{{if or (eq .Visibility "private") (eq .Visibility "direct")}}title="this status cannot be retweeted" disabled{{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>
|
||||
</form>
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="status-action">
|
||||
{{$like := "like"}} {{if .Favourited}} {{$like = "unlike"}} {{end}}
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
{{with $s := .Data}}
|
||||
{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
|
||||
<div class="page-title"> Thread </div>
|
||||
<div class="notification-title-container">
|
||||
<span class="page-title"> Thread </span>
|
||||
<a class="notification-refresh" href="{{$.Ctx.Referrer}}" accesskey="T" title="Refresh (T)">refresh</a>
|
||||
</div>
|
||||
|
||||
{{range .Statuses}}
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
<div class="user-info-container">
|
||||
<div>
|
||||
<div class="user-profile-img-container">
|
||||
<a class="img-link" href="{{.User.AvatarStatic}}" target="_blank">
|
||||
<img class="user-profile-img" src="{{.User.AvatarStatic}}" alt="profile-avatar" height="96" />
|
||||
<a class="img-link" href="{{.User.Avatar}}" target="_blank">
|
||||
<img class="user-profile-img" src="{{.User.Avatar}}" alt="profile-avatar" height="96" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="user-profile-details-container">
|
||||
|
@ -119,11 +119,15 @@
|
|||
{{end}}
|
||||
<div>
|
||||
<a href="/usersearch/{{.User.ID}}"> search statuses </a>
|
||||
{{if .IsCurrent}} - <a href="/filters"> filters </a> {{end}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-profile-decription">
|
||||
{{EmojiFilter .User.Note .User.Emojis}}
|
||||
</div>
|
||||
{{if .User.Fields}}{{range .User.Fields}}
|
||||
<div>{{.Name}} - {{.Value}}</div>
|
||||
{{end}}{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class="user-list-item">
|
||||
<div class="user-list-profile-img">
|
||||
<a class="img-link" href="/user/{{.ID}}">
|
||||
<img class="status-profile-img" src="{{.AvatarStatic}}" title="@{{.Acct}}" alt="avatar" height="48" />
|
||||
<img class="status-profile-img" src="{{.Avatar}}" title="@{{.Acct}}" alt="avatar" height="48" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="user-list-name">
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<form class="search-form" action="/usersearch/{{.User.ID}}" method="GET">
|
||||
<span class="post-form-field>
|
||||
<label for="query"> Query </label>
|
||||
<input id="query" name="q" value="{{.Q}}">
|
||||
<input id="query" name="q" value="{{.Q | html}}">
|
||||
</span>
|
||||
<button type="submit"> Search </button>
|
||||
</form>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue