[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
This commit is contained in:
tobi
2023-11-22 12:17:42 +01:00
committed by GitHub
parent cfefbc08d8
commit 8c2d94c168
8 changed files with 207 additions and 7 deletions

View File

@@ -17,6 +17,8 @@
package model
import "github.com/superseriousbusiness/gotosocial/internal/language"
// Poll represents a poll attached to a status.
//
// swagger:model poll
@@ -104,3 +106,22 @@ type PollVoteRequest struct {
// indices. Can be strings or integers.
ChoicesI []interface{} `json:"choices"`
}
// WebPollOption models a template-ready poll option entry.
//
// swagger:ignore
type WebPollOption struct {
PollOption
// Emojis contained on parent poll.
Emojis []Emoji
// LanguageTag of parent status.
LanguageTag *language.Language
// Share of total votes as a percentage.
VoteShare float32
// String-formatted version of VoteShare.
VoteShareStr string
}

View File

@@ -105,8 +105,17 @@ type Status struct {
// (used only internally for templating etc).
// Template-ready language tag + string, based
// on *status.Language. Nil for non-web statuses
// on *status.Language. Nil for non-web statuses.
//
// swagger:ignore
LanguageTag *language.Language `json:"-"`
// Template-ready poll options with vote shares
// calculated as a percentage of total votes.
// Nil for non-web statuses.
//
// swagger:ignore
WebPollOptions []WebPollOption `json:"-"`
}
/*