mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature/frontend] Better visual separation between "main" thread and "replies" (#3093)
* [feature/frontend] Better web threading model * fix test * bwap * tweaks * more tweaks to wording * typo * indenting * adjust wording * aaa
This commit is contained in:
@@ -102,28 +102,34 @@ type Status struct {
|
||||
Text string `json:"text,omitempty"`
|
||||
// A list of filters that matched this status and why they matched, if there are any such filters.
|
||||
Filtered []FilterResult `json:"filtered,omitempty"`
|
||||
}
|
||||
|
||||
// Additional fields not exposed via JSON
|
||||
// (used only internally for templating etc).
|
||||
// WebStatus is like *model.Status, but contains
|
||||
// additional fields used only for HTML templating.
|
||||
//
|
||||
// swagger:ignore
|
||||
type WebStatus struct {
|
||||
*Status
|
||||
|
||||
// Template-ready language tag + string, based
|
||||
// on *status.Language. Nil for non-web statuses.
|
||||
//
|
||||
// swagger:ignore
|
||||
LanguageTag *language.Language `json:"-"`
|
||||
// Template-ready language tag and
|
||||
// string, based on *status.Language.
|
||||
LanguageTag *language.Language
|
||||
|
||||
// Template-ready poll options with vote shares
|
||||
// calculated as a percentage of total votes.
|
||||
// Nil for non-web statuses.
|
||||
//
|
||||
// swagger:ignore
|
||||
WebPollOptions []WebPollOption `json:"-"`
|
||||
PollOptions []WebPollOption
|
||||
|
||||
// Status is from a local account.
|
||||
// Always false for non-web statuses.
|
||||
//
|
||||
// swagger:ignore
|
||||
Local bool `json:"-"`
|
||||
Local bool
|
||||
|
||||
// Level of indentation at which to
|
||||
// display this status in the web view.
|
||||
Indent int
|
||||
|
||||
// This status is the first status after
|
||||
// the "main" thread, so it and everything
|
||||
// below it can be considered "replies".
|
||||
ThreadFirstReply bool
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -17,12 +17,48 @@
|
||||
|
||||
package model
|
||||
|
||||
// Context models the tree around a given status.
|
||||
// ThreadContext models the tree or
|
||||
// "thread" around a given status.
|
||||
//
|
||||
// swagger:model statusContext
|
||||
type Context struct {
|
||||
// swagger:model threadContext
|
||||
type ThreadContext struct {
|
||||
// Parents in the thread.
|
||||
Ancestors []Status `json:"ancestors"`
|
||||
// Children in the thread.
|
||||
Descendants []Status `json:"descendants"`
|
||||
}
|
||||
|
||||
type WebThreadContext struct {
|
||||
// Parents in the thread.
|
||||
Ancestors []*WebStatus `json:"ancestors"`
|
||||
|
||||
// Children in the thread.
|
||||
Descendants []*WebStatus `json:"descendants"`
|
||||
|
||||
// The status around which the ancestors
|
||||
// + descendants context was constructed.
|
||||
Status *WebStatus `json:"-"`
|
||||
|
||||
// Total length of
|
||||
// the main thread.
|
||||
ThreadLength int
|
||||
|
||||
// Number of entries in
|
||||
// the main thread shown.
|
||||
ThreadShown int
|
||||
|
||||
// Number of statuses hidden
|
||||
// from the main thread (not
|
||||
// visible to requester etc).
|
||||
ThreadHidden int
|
||||
|
||||
// Total number of replies
|
||||
// in the replies section.
|
||||
ThreadReplies int
|
||||
|
||||
// Number of replies shown.
|
||||
ThreadRepliesShown int
|
||||
|
||||
// Number of replies hidden.
|
||||
ThreadRepliesHidden int
|
||||
}
|
Reference in New Issue
Block a user