26bb50412c
This caches the result of Appearance.first in a similar fashion to how ApplicationSetting instances are cached. We also add some NOT NULL constraints to the table and correct the timestamp types. Fixes gitlab-org/gitlab-ce#36066, fixes gitlab-org/gitlab-ce#31698
58 lines
1.3 KiB
Ruby
58 lines
1.3 KiB
Ruby
class Admin::AppearancesController < Admin::ApplicationController
|
|
before_action :set_appearance, except: :create
|
|
|
|
def show
|
|
end
|
|
|
|
def preview
|
|
render 'preview', layout: 'devise'
|
|
end
|
|
|
|
def create
|
|
@appearance = Appearance.new(appearance_params)
|
|
|
|
if @appearance.save
|
|
redirect_to admin_appearances_path, notice: 'Appearance was successfully created.'
|
|
else
|
|
render action: 'show'
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @appearance.update(appearance_params)
|
|
redirect_to admin_appearances_path, notice: 'Appearance was successfully updated.'
|
|
else
|
|
render action: 'show'
|
|
end
|
|
end
|
|
|
|
def logo
|
|
@appearance.remove_logo!
|
|
|
|
@appearance.save
|
|
|
|
redirect_to admin_appearances_path, notice: 'Logo was succesfully removed.'
|
|
end
|
|
|
|
def header_logos
|
|
@appearance.remove_header_logo!
|
|
@appearance.save
|
|
|
|
redirect_to admin_appearances_path, notice: 'Header logo was succesfully removed.'
|
|
end
|
|
|
|
private
|
|
|
|
# Use callbacks to share common setup or constraints between actions.
|
|
def set_appearance
|
|
@appearance = Appearance.current || Appearance.new
|
|
end
|
|
|
|
# Only allow a trusted parameter "white list" through.
|
|
def appearance_params
|
|
params.require(:appearance).permit(
|
|
:title, :description, :logo, :logo_cache, :header_logo, :header_logo_cache,
|
|
:updated_by
|
|
)
|
|
end
|
|
end
|