From b6e481d63eec15191f2717957682c13ee8a68308 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 26 Mar 2025 16:59:39 +0100 Subject: [feature] Allow user to choose "gallery" style layout for web view of profile (#3917) * [feature] Allow user to choose "gallery" style web layout * find a bug and squish it up and all day long you'll have good luck * just a sec * [performance] reindex public timeline + tinker with query a bit * fiddling * should be good now * last bit of finagling, i'm done now i prommy * panic normally --- internal/api/model/account.go | 7 +++++++ internal/api/model/attachment.go | 4 ++++ internal/api/model/source.go | 4 ++++ 3 files changed, 15 insertions(+) (limited to 'internal/api/model') diff --git a/internal/api/model/account.go b/internal/api/model/account.go index d14ef9047..34d8f5958 100644 --- a/internal/api/model/account.go +++ b/internal/api/model/account.go @@ -149,6 +149,9 @@ type WebAccount struct { // Only set if this account had a header set // (and not just the default "blank" image.) HeaderAttachment *WebAttachment `json:"-"` + + // Layout for this account (microblog, gallery). + WebLayout string `json:"-"` } // MutedAccount extends Account with a field used only by the muted user list. @@ -240,6 +243,10 @@ type UpdateCredentialsRequest struct { // Visibility of statuses to show via the web view. // "none", "public" (default), or "unlisted" (which includes public as well). WebVisibility *string `form:"web_visibility" json:"web_visibility"` + // Layout to use for the web view of the account. + // "microblog": default, classic microblog layout. + // "gallery": gallery layout with media only. + WebLayout *string `form:"web_layout" json:"web_layout"` } // UpdateSource is to be used specifically in an UpdateCredentialsRequest. diff --git a/internal/api/model/attachment.go b/internal/api/model/attachment.go index 1d910343c..63bfc52a6 100644 --- a/internal/api/model/attachment.go +++ b/internal/api/model/attachment.go @@ -136,6 +136,10 @@ type WebAttachment struct { // MIME type of // the thumbnail. PreviewMIMEType string + + // Link to the URL of the parent + // status of this attachment. + ParentStatusLink string } // MediaMeta models media metadata. diff --git a/internal/api/model/source.go b/internal/api/model/source.go index cc3eb78ee..ff0b25424 100644 --- a/internal/api/model/source.go +++ b/internal/api/model/source.go @@ -31,6 +31,10 @@ type Source struct { // "unlisted" = show Public *and* Unlisted visibility posts on the web. // "none" = show no posts on the web, not even Public ones. WebVisibility Visibility `json:"web_visibility"` + // Layout to use for the web view of the account. + // "microblog": default, classic microblog layout. + // "gallery": gallery layout with media only. + WebLayout string `json:"web_layout"` // Whether new statuses should be marked sensitive by default. Sensitive bool `json:"sensitive"` // The default posting language for new statuses. -- cgit v1.2.3