actually let's make the delay time configurable
parent
9d55cfc6ad
commit
0fb1e7888e
|
@ -55,6 +55,7 @@ class Settings::PreferencesController < Settings::BaseController
|
|||
:setting_max_public_history,
|
||||
:setting_roar_lifespan,
|
||||
:setting_delayed_roars,
|
||||
:setting_delayed_for,
|
||||
|
||||
:setting_default_privacy,
|
||||
:setting_default_sensitive,
|
||||
|
|
|
@ -39,6 +39,7 @@ class UserSettingsDecorator
|
|||
user.settings['max_public_history'] = max_public_history_preference if change?('setting_max_public_history')
|
||||
user.settings['roar_lifespan'] = roar_lifespan_preference if change?('setting_roar_lifespan')
|
||||
user.settings['delayed_roars'] = delayed_roars_preference if change?('setting_delayed_roars')
|
||||
user.settings['delayed_for'] = delayed_for_preference if change?('setting_delayed_for')
|
||||
|
||||
user.settings['notification_emails'] = merged_notification_emails if change?('notification_emails')
|
||||
user.settings['interactions'] = merged_interactions if change?('interactions')
|
||||
|
@ -136,6 +137,10 @@ class UserSettingsDecorator
|
|||
settings['setting_roar_lifespan']
|
||||
end
|
||||
|
||||
def delayed_for_preference
|
||||
settings['setting_delayed_for']
|
||||
end
|
||||
|
||||
def delayed_roars_preference
|
||||
settings['setting_delayed_roars']
|
||||
end
|
||||
|
|
|
@ -127,6 +127,7 @@ class User < ApplicationRecord
|
|||
:max_public_history,
|
||||
:roar_lifespan,
|
||||
:delayed_roars,
|
||||
:delayed_for,
|
||||
|
||||
:auto_play_gif,
|
||||
:default_sensitive,
|
||||
|
@ -309,6 +310,10 @@ class User < ApplicationRecord
|
|||
@delayed_roars ||= (settings.delayed_roars || false)
|
||||
end
|
||||
|
||||
def delayed_for
|
||||
@_delayed_for ||= (settings.delayed_for || 60)
|
||||
end
|
||||
|
||||
def defaults_to_local_only?
|
||||
@defaults_to_local_only ||= (settings.default_local || false)
|
||||
end
|
||||
|
|
|
@ -59,7 +59,8 @@ class PostStatusService < BaseService
|
|||
else
|
||||
return unless process_status!
|
||||
if @options[:delayed] || @account&.user&.delayed_roars?
|
||||
delay_until = Time.now.utc + 1.minute
|
||||
delay_for = [5, @account&.user&.delayed_for.to_i].max
|
||||
delay_until = Time.now.utc + delay_for.seconds
|
||||
opts = {
|
||||
visibility: @visibility,
|
||||
local_only: @local_only,
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
|
||||
.fields-group
|
||||
= f.input :setting_delayed_roars, as: :boolean, wrapper: :with_label
|
||||
= f.input :setting_delayed_for, collection: [5, 10, 15, 30, 60, 120, 180, 300, 360, 600, 1800, 3600], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.delayed_for.#{item}")]) }, selected: [5, current_user.delayed_for.to_i].max
|
||||
|
||||
%hr#settings_other/
|
||||
|
||||
|
|
|
@ -118,7 +118,8 @@ en:
|
|||
setting_default_language: Posting language
|
||||
setting_default_privacy: Post privacy
|
||||
setting_roar_lifespan: Auto-delete new roars after
|
||||
setting_delayed_roars: Delayed publishing of roars for proofreading (1 min)
|
||||
setting_delayed_roars: Delayed publishing of roars for proofreading
|
||||
setting_delayed_for: Delay for
|
||||
setting_default_local: Default to Monsterpit-only roars (in Glitch flavour)
|
||||
setting_always_local: Don't send your roars outside Monsterpit
|
||||
setting_rawr_federated: Show raw world timeline (may contain offensive content!)
|
||||
|
@ -168,6 +169,19 @@ en:
|
|||
username: Username
|
||||
username_or_email: Username or Email
|
||||
whole_word: Whole word
|
||||
delayed_for:
|
||||
5: 5 seconds
|
||||
10: 10 seconds
|
||||
15: 15 seconds
|
||||
30: 30 seconds
|
||||
60: 1 minute
|
||||
120: 2 minutes
|
||||
180: 3 minutes
|
||||
300: 5 minutes
|
||||
360: 6 minutes
|
||||
600: 10 minutes
|
||||
1800: 30 minutes
|
||||
3600: 1 hour
|
||||
lifespan:
|
||||
'0': No limit
|
||||
1: 1 day
|
||||
|
|
Loading…
Reference in New Issue