Admins set the default mode, contrast and color on Settings > Display, shown as three labelled form rows below the Theme select. Logged-in users' choices are saved on their account and override only the parts they changed; anonymous visitors get the default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 lines
643 B
Ruby
18 lines
643 B
Ruby
# Saves the current user's appearance (sent by theme.js). The body replaces the whole saved
|
|
# choice; an empty object resets the user to the default.
|
|
class TonalmineAppearanceController < ApplicationController
|
|
before_action :require_login
|
|
|
|
def update
|
|
prefs = params.to_unsafe_h.except('controller', 'action', 'tonalmine_appearance')
|
|
errors = RedmineTonalmine::Appearance.errors(prefs)
|
|
if errors.any?
|
|
render json: {errors: errors}, status: :unprocessable_content
|
|
else
|
|
User.current.pref[:tonalmine] = RedmineTonalmine::Appearance.clean(prefs)
|
|
User.current.pref.save
|
|
head :no_content
|
|
end
|
|
end
|
|
end
|