Add Fedibird new features policy setting
This commit is contained in:
parent
1e6fbdea3a
commit
52177c5400
18 changed files with 76 additions and 1 deletions
|
@ -77,6 +77,7 @@ class Settings::PreferencesController < Settings::BaseController
|
|||
:setting_hide_following_count,
|
||||
:setting_hide_followers_count,
|
||||
:setting_disable_joke_appearance,
|
||||
:setting_new_features_policy,
|
||||
notification_emails: %i(follow follow_request reblog favourite emoji_reaction mention digest report pending_account trending_tag),
|
||||
interactions: %i(must_be_follower must_be_following must_be_following_dm)
|
||||
)
|
||||
|
|
|
@ -42,5 +42,6 @@ export const enable_limited_timeline = getMeta('enable_limited_timeline');
|
|||
export const enableReaction = getMeta('enable_reaction');
|
||||
export const show_reply_tree_button = getMeta('show_reply_tree_button');
|
||||
export const disable_joke_appearance = getMeta('disable_joke_appearance');
|
||||
export const new_features_policy = getMeta('new_features_policy');
|
||||
|
||||
export default initialState;
|
||||
|
|
|
@ -702,6 +702,12 @@ html {
|
|||
color: $fedibird-theme-color;
|
||||
background-color: rgba($fedibird-theme-color, 0.1);
|
||||
}
|
||||
|
||||
.beta_features {
|
||||
border-color: $gold-star;
|
||||
color: $gold-star;
|
||||
background-color: rgba($gold-star, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
.fedibird_features {
|
||||
|
@ -710,6 +716,12 @@ html {
|
|||
background-color: rgba($fedibird-theme-color, 0.1);
|
||||
}
|
||||
|
||||
.beta_features {
|
||||
border-color: $gold-star;
|
||||
color: $gold-star;
|
||||
background-color: rgba($gold-star, 0.1);
|
||||
}
|
||||
|
||||
.compose-form .compose-form__warning {
|
||||
border-color: $ui-highlight-color;
|
||||
background-color: rgba($ui-highlight-color, 0.1);
|
||||
|
|
|
@ -204,6 +204,8 @@
|
|||
.account-role,
|
||||
.fedibird_features,
|
||||
.simple_form .fedibird_features,
|
||||
.beta_features,
|
||||
.simple_form .beta_features,
|
||||
.simple_form .recommended {
|
||||
padding: 4px 8px;
|
||||
border-radius: 17px;
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
&.boolean {
|
||||
.fedibird_features,
|
||||
.beta_features,
|
||||
.recommended { margin: 0 8px }
|
||||
|
||||
.label_input>label { padding-top: 3px }
|
||||
|
|
|
@ -203,7 +203,9 @@
|
|||
|
||||
.account-role,
|
||||
.fedibird_features,
|
||||
.beta_features,
|
||||
.simple_form .fedibird_features,
|
||||
.simple_form .beta_features,
|
||||
.simple_form .recommended {
|
||||
display: inline-block;
|
||||
padding: 4px 6px;
|
||||
|
@ -227,14 +229,24 @@
|
|||
background-color: rgba(lighten($error-red, 12%), 0.1);
|
||||
border-color: rgba(lighten($error-red, 12%), 0.5);
|
||||
}
|
||||
|
||||
&.float {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
.fedibird_features,
|
||||
.simple_form .fedibird_features {
|
||||
background-color: rgba($fedibird-theme-color, 0.5);
|
||||
background-color: rgba($fedibird-theme-color, 0.5);
|
||||
border: 1px solid $fedibird-theme-color;
|
||||
}
|
||||
|
||||
.beta_features,
|
||||
.simple_form .beta_features {
|
||||
background-color: rgba($gold-star, 0.5);
|
||||
border: 1px solid $gold-star;
|
||||
}
|
||||
|
||||
.account__header__fields {
|
||||
max-width: 100vw;
|
||||
padding: 0;
|
||||
|
|
|
@ -103,6 +103,7 @@ code {
|
|||
}
|
||||
|
||||
.fedibird_features,
|
||||
.beta_features,
|
||||
.recommended {
|
||||
position: absolute;
|
||||
margin: 0 4px;
|
||||
|
|
|
@ -510,4 +510,13 @@ body.rtl {
|
|||
.circle-link .circle-delete-button {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fedibird_features,
|
||||
.simple_form .fedibird_features,
|
||||
.beta_features,
|
||||
.simple_form .beta_features {
|
||||
&.float {
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,6 +71,7 @@ class UserSettingsDecorator
|
|||
user.settings['hide_following_count'] = hide_following_count_preference if change?('setting_hide_following_count')
|
||||
user.settings['hide_followers_count'] = hide_followers_count_preference if change?('setting_hide_followers_count')
|
||||
user.settings['disable_joke_appearance'] = disable_joke_appearance_preference if change?('setting_disable_joke_appearance')
|
||||
user.settings['new_features_policy'] = new_features_policy if change?('setting_new_features_policy')
|
||||
end
|
||||
|
||||
def merged_notification_emails
|
||||
|
@ -241,6 +242,10 @@ class UserSettingsDecorator
|
|||
boolean_cast_setting 'setting_disable_joke_appearance'
|
||||
end
|
||||
|
||||
def new_features_policy
|
||||
settings['setting_new_features_policy']
|
||||
end
|
||||
|
||||
def boolean_cast_setting(key)
|
||||
ActiveModel::Type::Boolean.new.cast(settings[key])
|
||||
end
|
||||
|
|
|
@ -132,6 +132,7 @@ class User < ApplicationRecord
|
|||
:place_tab_bar_at_bottom,:show_tab_bar_label, :enable_limited_timeline, :enable_reaction,
|
||||
:show_reply_tree_button,
|
||||
:hide_statuses_count, :hide_following_count, :hide_followers_count, :disable_joke_appearance,
|
||||
:new_features_policy,
|
||||
|
||||
to: :settings, prefix: :setting, allow_nil: false
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ class InitialStateSerializer < ActiveModel::Serializer
|
|||
store[:enable_reaction] = object.current_account.user.setting_enable_reaction
|
||||
store[:show_reply_tree_button] = object.current_account.user.setting_show_reply_tree_button
|
||||
store[:disable_joke_appearance] = object.current_account.user.setting_disable_joke_appearance
|
||||
store[:new_features_policy] = object.current_account.user.setting_new_features_policy
|
||||
else
|
||||
store[:auto_play_gif] = Setting.auto_play_gif
|
||||
store[:display_media] = Setting.display_media
|
||||
|
|
|
@ -42,6 +42,10 @@
|
|||
|
||||
%h4= t 'preferences.fedibird_features'
|
||||
|
||||
.fields-group
|
||||
%span.fedibird_features.float Fedibird
|
||||
= f.input :setting_new_features_policy, collection: ['conservative', 'default', 'tester'], label_method: lambda { |item| t("simple_form.labels.defaults.setting_new_features_policy_#{item}") }, hint: t("simple_form.hints.defaults.setting_new_features_policy"), as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label
|
||||
|
||||
.fields-group
|
||||
= f.input :setting_show_follow_button_on_timeline, as: :boolean, wrapper: :with_label, fedibird_features: true
|
||||
|
||||
|
|
|
@ -24,9 +24,18 @@ module FedibirdFeaturesComponent
|
|||
end
|
||||
end
|
||||
|
||||
module BetaFeaturesComponent
|
||||
def beta_features(_wrapper_options = nil)
|
||||
return unless options[:beta_features]
|
||||
options[:label_text] = ->(raw_label_text, _required_label_text, _label_present) { safe_join([raw_label_text, ' ', content_tag(:span, I18n.t('simple_form.beta_features'), class: 'beta_features')]) }
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
SimpleForm.include_component(AppendComponent)
|
||||
SimpleForm.include_component(RecommendedComponent)
|
||||
SimpleForm.include_component(FedibirdFeaturesComponent)
|
||||
SimpleForm.include_component(BetaFeaturesComponent)
|
||||
|
||||
SimpleForm.setup do |config|
|
||||
# Wrappers are used by the form builder to generate a
|
||||
|
@ -85,6 +94,7 @@ SimpleForm.setup do |config|
|
|||
b.wrapper tag: :div, class: :label_input do |ba|
|
||||
ba.optional :recommended
|
||||
ba.optional :fedibird_features
|
||||
ba.optional :beta_features
|
||||
ba.use :label
|
||||
|
||||
ba.wrapper tag: :div, class: :label_input__wrapper do |bb|
|
||||
|
|
|
@ -1231,6 +1231,7 @@ en:
|
|||
too_few_options: must have more than one item
|
||||
too_many_options: can't contain more than %{max} items
|
||||
preferences:
|
||||
beta_features: Beta features
|
||||
fedibird_features: Fedibird features
|
||||
other: Other
|
||||
posting_defaults: Posting defaults
|
||||
|
|
|
@ -1176,6 +1176,7 @@ ja:
|
|||
too_few_options: は複数必要です
|
||||
too_many_options: は%{max}個までです
|
||||
preferences:
|
||||
beta_features: ベータ機能
|
||||
fedibird_features: Fedibirdの機能
|
||||
other: その他
|
||||
posting_defaults: デフォルトの投稿設定
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
en:
|
||||
simple_form:
|
||||
beta_features: Beta
|
||||
fedibird_features: Fedibird
|
||||
hints:
|
||||
account_alias:
|
||||
|
@ -64,6 +65,7 @@ en:
|
|||
setting_hide_following_count: The number of following will be hidden in your profile
|
||||
setting_hide_network: Who you follow and who follows you will be hidden on your profile
|
||||
setting_hide_statuses_count: The number of post will be hidden in your profile
|
||||
setting_new_features_policy: Set the acceptance policy when new features are added to Fedibird. The recommended setting will enable many new features, so set it to disabled if it is not desirable
|
||||
setting_noindex: Affects your public profile and post pages
|
||||
setting_place_tab_bar_at_bottom: When using a touch device, you can operate tabs within the reach of your fingers.
|
||||
setting_show_application: The application you use to post will be displayed in the detailed view of your posts
|
||||
|
@ -209,6 +211,10 @@ en:
|
|||
setting_hide_following_count: Hide your following count
|
||||
setting_hide_network: Hide your social graph
|
||||
setting_hide_statuses_count: Hide your post count
|
||||
setting_new_features_policy: Policy for new features
|
||||
setting_new_features_policy_tester: Participate in the beta test
|
||||
setting_new_features_policy_conservative: Leave it disabled. I use it if necessary
|
||||
setting_new_features_policy_default: Follow recommendations (default)
|
||||
setting_noindex: Opt-out of search engine indexing
|
||||
setting_place_tab_bar_at_bottom: Place the tab bar at the bottom
|
||||
setting_reduce_motion: Reduce motion in animations
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
ja:
|
||||
simple_form:
|
||||
beta_features: ベータ
|
||||
fedibird_features: Fedibird
|
||||
hints:
|
||||
account_alias:
|
||||
|
@ -64,6 +65,7 @@ ja:
|
|||
setting_hide_following_count: フォロー数をプロフィールページで見られないようにします
|
||||
setting_hide_network: フォローとフォロワーの情報がプロフィールページで見られないようにします
|
||||
setting_hide_statuses_count: 投稿数をプロフィールページで見られないようにします
|
||||
setting_new_features_policy: Fedibirdに新しい機能が追加された時の受け入れポリシーを設定します。推奨設定は多くの新機能を有効にするので、望ましくない場合は無効に設定してください
|
||||
setting_noindex: 公開プロフィールおよび各投稿ページに影響します
|
||||
setting_place_tab_bar_at_bottom: タッチデバイス使用時に、タブの操作を指の届く範囲で行えます
|
||||
setting_show_application: 投稿するのに使用したアプリが投稿の詳細ビューに表示されるようになります
|
||||
|
@ -209,6 +211,10 @@ ja:
|
|||
setting_hide_following_count: フォロー数を隠す
|
||||
setting_hide_network: 繋がりを隠す
|
||||
setting_hide_statuses_count: 投稿数を隠す
|
||||
setting_new_features_policy: 新機能へのポリシー
|
||||
setting_new_features_policy_conservative: 無効にしておき、自分で判断する
|
||||
setting_new_features_policy_default: 推奨に従う(デフォルト)
|
||||
setting_new_features_policy_tester: ベータテストに参加する
|
||||
setting_noindex: 検索エンジンによるインデックスを拒否する
|
||||
setting_place_tab_bar_at_bottom: タブバーを下に配置する
|
||||
setting_reduce_motion: アニメーションの動きを減らす
|
||||
|
|
|
@ -56,6 +56,7 @@ defaults: &defaults
|
|||
hide_following_count: false
|
||||
hide_followers_count: false
|
||||
disable_joke_appearance: false
|
||||
new_features_policy: 'default'
|
||||
notification_emails:
|
||||
follow: false
|
||||
reblog: false
|
||||
|
|
Loading…
Reference in a new issue