Enable animated avatars setting (#4040)

* feat: Add user setting for toggling avatar gif animations

* Add forgotten post listing mode option to settings form

* Fix compilation error

* Fix formatting

* Change name of column to be more general purpose

* Fix sql format.

* Fix comments

* Running format.

---------

Co-authored-by: Dessalines <tyhou13@gmx.com>
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
This commit is contained in:
SleeplessOne1917 2023-10-17 14:52:34 +00:00 committed by GitHub
parent 56322c75f0
commit cf1c32d2ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 20 additions and 1 deletions

View file

@ -114,6 +114,9 @@ pub async fn save_user_settings(
interface_language: data.interface_language.clone(), interface_language: data.interface_language.clone(),
open_links_in_new_tab: data.open_links_in_new_tab, open_links_in_new_tab: data.open_links_in_new_tab,
infinite_scroll_enabled: data.infinite_scroll_enabled, infinite_scroll_enabled: data.infinite_scroll_enabled,
post_listing_mode: data.post_listing_mode,
enable_keyboard_navigation: data.enable_keyboard_navigation,
enable_animated_images: data.enable_animated_images,
..Default::default() ..Default::default()
}; };

View file

@ -3,6 +3,7 @@ use lemmy_db_schema::{
newtypes::{CommentReplyId, CommunityId, LanguageId, PersonId, PersonMentionId}, newtypes::{CommentReplyId, CommunityId, LanguageId, PersonId, PersonMentionId},
CommentSortType, CommentSortType,
ListingType, ListingType,
PostListingMode,
SortType, SortType,
}; };
use lemmy_db_views::structs::{CommentView, PostView}; use lemmy_db_views::structs::{CommentView, PostView};
@ -123,8 +124,11 @@ pub struct SaveUserSettings {
pub open_links_in_new_tab: Option<bool>, pub open_links_in_new_tab: Option<bool>,
/// Enable infinite scroll /// Enable infinite scroll
pub infinite_scroll_enabled: Option<bool>, pub infinite_scroll_enabled: Option<bool>,
pub post_listing_mode: Option<PostListingMode>,
/// Whether to allow keyboard navigation (for browsing and interacting with posts and comments). /// Whether to allow keyboard navigation (for browsing and interacting with posts and comments).
pub enable_keyboard_navigation: Option<bool>, pub enable_keyboard_navigation: Option<bool>,
/// Whether user avatars or inline images in the UI that are gifs should be allowed to play or should be paused
pub enable_animated_images: Option<bool>,
} }
#[derive(Debug, Serialize, Deserialize, Clone, Default)] #[derive(Debug, Serialize, Deserialize, Clone, Default)]

View file

@ -444,6 +444,7 @@ diesel::table! {
post_listing_mode -> PostListingModeEnum, post_listing_mode -> PostListingModeEnum,
totp_2fa_enabled -> Bool, totp_2fa_enabled -> Bool,
enable_keyboard_navigation -> Bool, enable_keyboard_navigation -> Bool,
enable_animated_images -> Bool,
} }
} }

View file

@ -58,6 +58,8 @@ pub struct LocalUser {
pub totp_2fa_enabled: bool, pub totp_2fa_enabled: bool,
/// Whether to allow keyboard navigation (for browsing and interacting with posts and comments). /// Whether to allow keyboard navigation (for browsing and interacting with posts and comments).
pub enable_keyboard_navigation: bool, pub enable_keyboard_navigation: bool,
/// Whether user avatars and inline images in the UI that are gifs should be allowed to play or should be paused
pub enable_animated_images: bool,
} }
#[derive(Clone, TypedBuilder)] #[derive(Clone, TypedBuilder)]
@ -91,6 +93,7 @@ pub struct LocalUserInsertForm {
pub post_listing_mode: Option<PostListingMode>, pub post_listing_mode: Option<PostListingMode>,
pub totp_2fa_enabled: Option<bool>, pub totp_2fa_enabled: Option<bool>,
pub enable_keyboard_navigation: Option<bool>, pub enable_keyboard_navigation: Option<bool>,
pub enable_animated_images: Option<bool>,
} }
#[derive(Clone, Default)] #[derive(Clone, Default)]
@ -120,4 +123,5 @@ pub struct LocalUserUpdateForm {
pub post_listing_mode: Option<PostListingMode>, pub post_listing_mode: Option<PostListingMode>,
pub totp_2fa_enabled: Option<bool>, pub totp_2fa_enabled: Option<bool>,
pub enable_keyboard_navigation: Option<bool>, pub enable_keyboard_navigation: Option<bool>,
pub enable_animated_images: Option<bool>,
} }

View file

@ -267,6 +267,7 @@ mod tests {
post_listing_mode: inserted_sara_local_user.post_listing_mode, post_listing_mode: inserted_sara_local_user.post_listing_mode,
totp_2fa_enabled: inserted_sara_local_user.totp_2fa_enabled, totp_2fa_enabled: inserted_sara_local_user.totp_2fa_enabled,
enable_keyboard_navigation: inserted_sara_local_user.enable_keyboard_navigation, enable_keyboard_navigation: inserted_sara_local_user.enable_keyboard_navigation,
enable_animated_images: inserted_sara_local_user.enable_animated_images,
}, },
creator: Person { creator: Person {
id: inserted_sara_person.id, id: inserted_sara_person.id,

@ -1 +1 @@
Subproject commit e943f97fe481dc425acdebc8872bf1fdcabaf875 Subproject commit d0f3548379e446d2c333e582734bc68f8d684f4d

View file

@ -0,0 +1,3 @@
ALTER TABLE local_user
DROP COLUMN enable_animated_images;

View file

@ -0,0 +1,3 @@
ALTER TABLE local_user
ADD COLUMN enable_animated_images boolean DEFAULT TRUE NOT NULL;