Make a generic preferred color scheme method

This commit is contained in:
Anton Khorev 2024-12-01 03:04:09 +03:00
parent 045af66d43
commit 3d79f9fd88
5 changed files with 9 additions and 7 deletions

View file

@ -281,15 +281,15 @@ class ApplicationController < ActionController::Base
end end
end end
def preferred_site_color_scheme def preferred_color_scheme(subject)
if current_user if current_user
current_user.preferences.find_by(:k => "site.color_scheme")&.v || "auto" current_user.preferences.find_by(:k => "#{subject}.color_scheme")&.v || "auto"
else else
"auto" "auto"
end end
end end
helper_method :preferred_editor, :preferred_site_color_scheme helper_method :preferred_editor, :preferred_color_scheme
def update_totp def update_totp
if Settings.key?(:totp_key) if Settings.key?(:totp_key)

View file

@ -5,7 +5,7 @@
<%= javascript_include_tag "turbo", :type => "module" %> <%= javascript_include_tag "turbo", :type => "module" %>
<%= javascript_include_tag "application" %> <%= javascript_include_tag "application" %>
<%= javascript_include_tag "i18n/#{I18n.locale}" %> <%= javascript_include_tag "i18n/#{I18n.locale}" %>
<% if preferred_site_color_scheme == "auto" %> <% if preferred_color_scheme(:site) == "auto" %>
<%= stylesheet_link_tag "screen-auto-#{dir}", :media => "screen" %> <%= stylesheet_link_tag "screen-auto-#{dir}", :media => "screen" %>
<% else %> <% else %>
<%= stylesheet_link_tag "screen-manual-#{dir}", :media => "screen" %> <%= stylesheet_link_tag "screen-manual-#{dir}", :media => "screen" %>

View file

@ -1,5 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<%= tag.html :lang => I18n.locale, :dir => dir, :data => { :bs_theme => (preferred_site_color_scheme if preferred_site_color_scheme != "auto") } do %> <%= tag.html :lang => I18n.locale,
:dir => dir,
:data => { :bs_theme => (preferred_color_scheme(:site) if preferred_color_scheme(:site) != "auto") } do %>
<%= render :partial => "layouts/head" %> <%= render :partial => "layouts/head" %>
<body class="<%= body_class %>"> <body class="<%= body_class %>">
<%= render :partial => "layouts/header" %> <%= render :partial => "layouts/header" %>

View file

@ -11,7 +11,7 @@
<%= label_tag "site_color_scheme", t("preferences.show.preferred_site_color_scheme"), :class => "form-label" %> <%= label_tag "site_color_scheme", t("preferences.show.preferred_site_color_scheme"), :class => "form-label" %>
<%= select_tag "site_color_scheme", <%= select_tag "site_color_scheme",
options_for_select(%w[auto light dark].map { |scheme| [t("preferences.show.site_color_schemes.#{scheme}"), scheme] }, options_for_select(%w[auto light dark].map { |scheme| [t("preferences.show.site_color_schemes.#{scheme}"), scheme] },
preferred_site_color_scheme), preferred_color_scheme(:site)),
:class => "form-select" %> :class => "form-select" %>
</div> </div>

View file

@ -23,7 +23,7 @@
<dt class="col-sm-4"><%= t ".preferred_site_color_scheme" %></dt> <dt class="col-sm-4"><%= t ".preferred_site_color_scheme" %></dt>
<dd class="col-sm-8"> <dd class="col-sm-8">
<%= t ".site_color_schemes.#{preferred_site_color_scheme}" %> <%= t ".site_color_schemes.#{preferred_color_scheme(:site)}" %>
</dd> </dd>
</dl> </dl>