* Add: #406 ユーザーのカスタムCSS * Fix lint * Fix lint * カスタムCSSの保存先を変更 * キャッシュを考慮して別URLに変更
This commit is contained in:
parent
5ffd7593f1
commit
665c632d66
28 changed files with 283 additions and 4 deletions
|
@ -283,6 +283,10 @@ module User::HasSettings
|
|||
settings['web.hide_favourite_menu']
|
||||
end
|
||||
|
||||
def setting_use_custom_css
|
||||
settings['web.use_custom_css']
|
||||
end
|
||||
|
||||
def allows_report_emails?
|
||||
settings['notification_emails.report']
|
||||
end
|
||||
|
|
16
app/models/custom_css.rb
Normal file
16
app/models/custom_css.rb
Normal file
|
@ -0,0 +1,16 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
#
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: custom_csses
|
||||
#
|
||||
# id :bigint(8) not null, primary key
|
||||
# user_id :bigint(8) not null
|
||||
# css :string default(""), not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
#
|
||||
class CustomCss < ApplicationRecord
|
||||
belongs_to :user
|
||||
end
|
|
@ -101,6 +101,8 @@ class User < ApplicationRecord
|
|||
accepts_nested_attributes_for :invite_request, reject_if: ->(attributes) { attributes['text'].blank? && !Setting.require_invite_text }
|
||||
validates :invite_request, presence: true, on: :create, if: :invite_text_required?
|
||||
|
||||
has_one :custom_css, inverse_of: :user, dependent: :destroy
|
||||
|
||||
validates :email, presence: true, email_address: true
|
||||
|
||||
validates_with UserEmailValidator, if: -> { ENV['EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION'] == 'true' || !confirmed? }
|
||||
|
@ -227,6 +229,22 @@ class User < ApplicationRecord
|
|||
prepare_returning_user!
|
||||
end
|
||||
|
||||
def disable_css
|
||||
false
|
||||
end
|
||||
|
||||
def custom_css_text
|
||||
custom_css&.css.to_s
|
||||
end
|
||||
|
||||
def custom_css_text=(val)
|
||||
if custom_css.present?
|
||||
custom_css.update!(css: val)
|
||||
else
|
||||
CustomCss.create!(user: self, css: val)
|
||||
end
|
||||
end
|
||||
|
||||
def pending?
|
||||
!approved?
|
||||
end
|
||||
|
|
|
@ -55,6 +55,7 @@ class UserSettings
|
|||
setting :use_blurhash, default: true
|
||||
setting :use_pending_items, default: false
|
||||
setting :use_system_font, default: false
|
||||
setting :use_custom_css, default: false
|
||||
setting :content_font_size, default: 'medium', in: %w(medium large x_large xx_large)
|
||||
setting :bookmark_category_needed, default: false
|
||||
setting :disable_swiping, default: false
|
||||
|
|
|
@ -63,6 +63,8 @@ class UserSettings::Setting
|
|||
case default_value
|
||||
when TrueClass, FalseClass
|
||||
ActiveModel::Type::Boolean.new
|
||||
when Integer
|
||||
ActiveModel::Type::Integer.new
|
||||
else
|
||||
ActiveModel::Type::String.new
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue