From b8ee9315bc95d647c609c89d5d38e1d19574fb4b Mon Sep 17 00:00:00 2001 From: Simon Bordeyne <Dogeek@users.noreply.github.com> Date: Mon, 3 Jul 2023 17:10:25 +0200 Subject: [PATCH] Add Open links in new tab setting (#3318) * Add Open links in new tab setting * reorder because it fixes tests ? --- crates/api/src/local_user/save_settings.rs | 1 + crates/api_common/src/person.rs | 8 +++++--- crates/db_schema/src/schema.rs | 1 + crates/db_schema/src/source/local_user.rs | 4 ++++ crates/db_views/src/registration_application_view.rs | 1 + .../down.sql | 1 + .../up.sql | 1 + 7 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 migrations/2023-06-24-072904_add_open_links_in_new_tab_setting/down.sql create mode 100644 migrations/2023-06-24-072904_add_open_links_in_new_tab_setting/up.sql diff --git a/crates/api/src/local_user/save_settings.rs b/crates/api/src/local_user/save_settings.rs index e74266fc..8f8d3194 100644 --- a/crates/api/src/local_user/save_settings.rs +++ b/crates/api/src/local_user/save_settings.rs @@ -127,6 +127,7 @@ impl Perform for SaveUserSettings { .interface_language(data.interface_language.clone()) .totp_2fa_secret(totp_2fa_secret) .totp_2fa_url(totp_2fa_url) + .open_links_in_new_tab(data.open_links_in_new_tab) .build(); let local_user_res = LocalUser::update(context.pool(), local_user_id, &local_user_form).await; diff --git a/crates/api_common/src/person.rs b/crates/api_common/src/person.rs index 263fd584..824d132a 100644 --- a/crates/api_common/src/person.rs +++ b/crates/api_common/src/person.rs @@ -75,9 +75,9 @@ pub struct GetCaptchaResponse { #[cfg_attr(feature = "full", ts(export))] /// A captcha response. pub struct CaptchaResponse { - /// A Base64 encoded png + /// A Base64 encoded png pub png: String, - /// A Base64 encoded wav audio + /// A Base64 encoded wav audio pub wav: String, /// The UUID for the captcha item. pub uuid: String, @@ -109,7 +109,7 @@ pub struct SaveUserSettings { pub email: Option<Sensitive<String>>, /// Your bio / info, in markdown. pub bio: Option<String>, - /// Your matrix user id. Ex: @my_user:matrix.org + /// Your matrix user id. Ex: @my_user:matrix.org pub matrix_user_id: Option<String>, /// Whether to show or hide avatars. pub show_avatars: Option<bool>, @@ -131,6 +131,8 @@ pub struct SaveUserSettings { /// None leaves it as is, true will generate or regenerate it, false clears it out. pub generate_totp_2fa: Option<bool>, pub auth: Sensitive<String>, + /// Open links in a new tab + pub open_links_in_new_tab: Option<bool>, } #[derive(Debug, Serialize, Deserialize, Clone, Default)] diff --git a/crates/db_schema/src/schema.rs b/crates/db_schema/src/schema.rs index 42946d69..01aafa1d 100644 --- a/crates/db_schema/src/schema.rs +++ b/crates/db_schema/src/schema.rs @@ -406,6 +406,7 @@ diesel::table! { accepted_application -> Bool, totp_2fa_secret -> Nullable<Text>, totp_2fa_url -> Nullable<Text>, + open_links_in_new_tab -> Bool, } } diff --git a/crates/db_schema/src/source/local_user.rs b/crates/db_schema/src/source/local_user.rs index 10849afe..d6c99971 100644 --- a/crates/db_schema/src/source/local_user.rs +++ b/crates/db_schema/src/source/local_user.rs @@ -51,6 +51,8 @@ pub struct LocalUser { pub totp_2fa_secret: Option<String>, /// A URL to add their 2-factor auth. pub totp_2fa_url: Option<String>, + /// Open links in a new tab. + pub open_links_in_new_tab: bool, } #[derive(Clone, TypedBuilder)] @@ -78,6 +80,7 @@ pub struct LocalUserInsertForm { pub accepted_application: Option<bool>, pub totp_2fa_secret: Option<Option<String>>, pub totp_2fa_url: Option<Option<String>>, + pub open_links_in_new_tab: Option<bool>, } #[derive(Clone, TypedBuilder)] @@ -102,4 +105,5 @@ pub struct LocalUserUpdateForm { pub accepted_application: Option<bool>, pub totp_2fa_secret: Option<Option<String>>, pub totp_2fa_url: Option<Option<String>>, + pub open_links_in_new_tab: Option<bool>, } diff --git a/crates/db_views/src/registration_application_view.rs b/crates/db_views/src/registration_application_view.rs index 00cc9267..9963ed46 100644 --- a/crates/db_views/src/registration_application_view.rs +++ b/crates/db_views/src/registration_application_view.rs @@ -287,6 +287,7 @@ mod tests { totp_2fa_secret: inserted_sara_local_user.totp_2fa_secret, totp_2fa_url: inserted_sara_local_user.totp_2fa_url, password_encrypted: inserted_sara_local_user.password_encrypted, + open_links_in_new_tab: inserted_sara_local_user.open_links_in_new_tab, }, creator: Person { id: inserted_sara_person.id, diff --git a/migrations/2023-06-24-072904_add_open_links_in_new_tab_setting/down.sql b/migrations/2023-06-24-072904_add_open_links_in_new_tab_setting/down.sql new file mode 100644 index 00000000..a4dfd50b --- /dev/null +++ b/migrations/2023-06-24-072904_add_open_links_in_new_tab_setting/down.sql @@ -0,0 +1 @@ +alter table local_user drop column open_links_in_new_tab; diff --git a/migrations/2023-06-24-072904_add_open_links_in_new_tab_setting/up.sql b/migrations/2023-06-24-072904_add_open_links_in_new_tab_setting/up.sql new file mode 100644 index 00000000..39a4b44a --- /dev/null +++ b/migrations/2023-06-24-072904_add_open_links_in_new_tab_setting/up.sql @@ -0,0 +1 @@ +alter table local_user add column open_links_in_new_tab boolean default false not null; -- 2.44.1