diff options
author | 2023-11-22 12:17:42 +0100 | |
---|---|---|
committer | 2023-11-22 12:17:42 +0100 | |
commit | 8c2d94c16853464828cbeba255cff2c69e96da78 (patch) | |
tree | 5a1ad19f206709f9347a9019618068eb06709f92 /web/template | |
parent | [feature] Federate status language in and out (#2366) (diff) | |
download | gotosocial-8c2d94c16853464828cbeba255cff2c69e96da78.tar.xz |
[feature] Poll web view (#2377)
* [feature] Render polls nicely on the web view
* use figure for poll, other small tweaks
* reverse share + count (lines up better)
* poll options list entries
* fix up some remaining things
Diffstat (limited to 'web/template')
-rw-r--r-- | web/template/poll.tmpl | 57 | ||||
-rw-r--r-- | web/template/status.tmpl | 1 |
2 files changed, 58 insertions, 0 deletions
diff --git a/web/template/poll.tmpl b/web/template/poll.tmpl new file mode 100644 index 000000000..bfc31a9dc --- /dev/null +++ b/web/template/poll.tmpl @@ -0,0 +1,57 @@ +{{- /* +// 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 web view of a poll. + To use this template, pass a web view status into it. +*/ -}} + + <figure class="poll"> + <figcaption class="poll-info"> + <span class="poll-expiry"> + {{- if .Poll.Expired -}} + Poll closed {{- .Poll.ExpiresAt | timestampPrecise -}} + {{- else if .Poll.ExpiresAt -}} + Poll open until {{- .Poll.ExpiresAt | timestampPrecise -}} + {{- else -}} + Infinite poll (no expiry) + {{- end -}} + </span> + <span class="total-votes">Total votes: {{ .Poll.VotesCount }}</span> + </figcaption> + <ul class="poll-options"> + {{- range $index, $pollOption := .WebPollOptions }} + <li class="poll-option"> + <label aria-hidden="true" for="option-{{- increment $index -}}" lang="{{- .LanguageTag.TagStr -}}">{{- emojify .Emojis (noescape $pollOption.Title) -}}</label> + <meter aria-hidden="true" id="option-{{- increment $index -}}" min="0" max="100" value="{{- $pollOption.VoteShare -}}">{{- $pollOption.VoteShare -}}%</meter> + <div class="sr-only">Option {{ increment $index }}: <span lang="{{ .LanguageTag.TagStr }}">{{ emojify .Emojis (noescape $pollOption.Title) -}}</span></div> + <div class="poll-vote-summary"> + <span class="poll-vote-share">{{- $pollOption.VoteShareStr -}}%</span> + <span class="poll-vote-count"> + {{- if eq $pollOption.VotesCount 1 -}} + {{- $pollOption.VotesCount }} vote + {{- else -}} + {{- $pollOption.VotesCount }} votes + {{- end -}} + </span> + </div> + </li> + {{- end }} + </ul> + </figure> diff --git a/web/template/status.tmpl b/web/template/status.tmpl index bf24f6e7c..59725a470 100644 --- a/web/template/status.tmpl +++ b/web/template/status.tmpl @@ -109,6 +109,7 @@ {{end}} </div> {{end}} + {{- if .Poll -}}{{ template "poll.tmpl" . }}{{ end -}} </section> <aside class="info"> <time datetime="{{.CreatedAt}}">{{.CreatedAt | timestampPrecise}}</time> |