Commit ce6172e8 authored by Alexis Reigel's avatar Alexis Reigel

allow uploading favicon in appearance settings

parent c8a4d202
...@@ -41,6 +41,13 @@ class Admin::AppearancesController < Admin::ApplicationController ...@@ -41,6 +41,13 @@ class Admin::AppearancesController < Admin::ApplicationController
redirect_to admin_appearances_path, notice: 'Header logo was succesfully removed.' redirect_to admin_appearances_path, notice: 'Header logo was succesfully removed.'
end end
def favicon
@appearance.remove_favicon!
@appearance.save
redirect_to admin_appearances_path, notice: 'Favicon was succesfully removed.'
end
private private
# Use callbacks to share common setup or constraints between actions. # Use callbacks to share common setup or constraints between actions.
...@@ -61,6 +68,8 @@ class Admin::AppearancesController < Admin::ApplicationController ...@@ -61,6 +68,8 @@ class Admin::AppearancesController < Admin::ApplicationController
logo_cache logo_cache
header_logo header_logo
header_logo_cache header_logo_cache
favicon
favicon_cache
new_project_guidelines new_project_guidelines
updated_by updated_by
] ]
......
...@@ -2,7 +2,7 @@ module UploadsActions ...@@ -2,7 +2,7 @@ module UploadsActions
include Gitlab::Utils::StrongMemoize include Gitlab::Utils::StrongMemoize
include SendFileUpload include SendFileUpload
UPLOAD_MOUNTS = %w(avatar attachment file logo header_logo).freeze UPLOAD_MOUNTS = %w(avatar attachment file logo header_logo favicon).freeze
def create def create
link_to_file = UploadService.new(model, params[:file], uploader_class).execute link_to_file = UploadService.new(model, params[:file], uploader_class).execute
......
...@@ -14,6 +14,7 @@ class Appearance < ActiveRecord::Base ...@@ -14,6 +14,7 @@ class Appearance < ActiveRecord::Base
mount_uploader :logo, AttachmentUploader mount_uploader :logo, AttachmentUploader
mount_uploader :header_logo, AttachmentUploader mount_uploader :header_logo, AttachmentUploader
mount_uploader :favicon, FaviconUploader
# Overrides CacheableAttributes.current_without_cache # Overrides CacheableAttributes.current_without_cache
def self.current_without_cache def self.current_without_cache
......
...@@ -55,6 +55,23 @@ ...@@ -55,6 +55,23 @@
.hint .hint
Guidelines parsed with #{link_to "GitLab Flavored Markdown", help_page_path('user/markdown'), target: '_blank'}. Guidelines parsed with #{link_to "GitLab Flavored Markdown", help_page_path('user/markdown'), target: '_blank'}.
%fieldset.app_logo
%legend
Favicon:
.form-group
= f.label :favicon, 'Favicon', class: 'control-label'
.col-sm-10
- if @appearance.favicon?
= image_tag @appearance.favicon.default_without_format_conversion.url, class: 'appearance-light-logo-preview'
- if @appearance.persisted?
%br
= link_to 'Remove favicon', favicon_admin_appearances_path, data: { confirm: "Favicon will be removed. Are you sure?"}, method: :delete, class: "btn btn-remove btn-sm remove-logo"
%hr
= f.hidden_field :favicon_cache
= f.file_field :favicon, class: ''
.hint
Maximum file size is 1MB. The resulting favicons will be cropped to be square and scaled down to a size of 32x32 px.
.form-actions .form-actions
= f.submit 'Save', class: 'btn btn-save append-right-10' = f.submit 'Save', class: 'btn btn-save append-right-10'
- if @appearance.persisted? - if @appearance.persisted?
......
...@@ -102,6 +102,7 @@ namespace :admin do ...@@ -102,6 +102,7 @@ namespace :admin do
get :preview_sign_in get :preview_sign_in
delete :logo delete :logo
delete :header_logos delete :header_logos
delete :favicon
end end
end end
......
...@@ -17,7 +17,7 @@ scope path: :uploads do ...@@ -17,7 +17,7 @@ scope path: :uploads do
# Appearance # Appearance
get "-/system/:model/:mounted_as/:id/:filename", get "-/system/:model/:mounted_as/:id/:filename",
to: "uploads#show", to: "uploads#show",
constraints: { model: /appearance/, mounted_as: /logo|header_logo/, filename: /.+/ } constraints: { model: /appearance/, mounted_as: /logo|header_logo|favicon/, filename: /.+/ }
# Project markdown uploads # Project markdown uploads
get ":namespace_id/:project_id/:secret/:filename", get ":namespace_id/:project_id/:secret/:filename",
......
class AddFaviconToAppearances < ActiveRecord::Migration
DOWNTIME = false
def change
add_column :appearances, :favicon, :string
end
end
...@@ -38,6 +38,7 @@ ActiveRecord::Schema.define(version: 20180529152628) do ...@@ -38,6 +38,7 @@ ActiveRecord::Schema.define(version: 20180529152628) do
t.integer "cached_markdown_version" t.integer "cached_markdown_version"
t.text "new_project_guidelines" t.text "new_project_guidelines"
t.text "new_project_guidelines_html" t.text "new_project_guidelines_html"
t.string "favicon"
end end
create_table "application_setting_terms", force: :cascade do |t| create_table "application_setting_terms", force: :cascade do |t|
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment