Split up AttachmentUploader.
This commit is contained in:
parent
c801df81fb
commit
4ef6ffaad3
10 changed files with 44 additions and 22 deletions
|
@ -23,7 +23,7 @@ class Group < Namespace
|
|||
validate :avatar_type, if: ->(user) { user.avatar_changed? }
|
||||
validates :avatar, file_size: { maximum: 200.kilobytes.to_i }
|
||||
|
||||
mount_uploader :avatar, AttachmentUploader
|
||||
mount_uploader :avatar, AvatarUploader
|
||||
|
||||
after_create :post_create_hook
|
||||
after_destroy :post_destroy_hook
|
||||
|
|
|
@ -138,7 +138,7 @@ class Project < ActiveRecord::Base
|
|||
if: ->(project) { project.avatar && project.avatar_changed? }
|
||||
validates :avatar, file_size: { maximum: 200.kilobytes.to_i }
|
||||
|
||||
mount_uploader :avatar, AttachmentUploader
|
||||
mount_uploader :avatar, AvatarUploader
|
||||
|
||||
# Scopes
|
||||
scope :sorted_by_activity, -> { reorder(last_activity_at: :desc) }
|
||||
|
|
|
@ -177,7 +177,7 @@ class User < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
mount_uploader :avatar, AttachmentUploader
|
||||
mount_uploader :avatar, AvatarUplaoder
|
||||
|
||||
# Scopes
|
||||
scope :admins, -> { where(admin: true) }
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
class AttachmentUploader < CarrierWave::Uploader::Base
|
||||
storage :file
|
||||
|
||||
after :store, :reset_events_cache
|
||||
|
||||
def store_dir
|
||||
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||
end
|
||||
|
@ -22,15 +20,7 @@ class AttachmentUploader < CarrierWave::Uploader::Base
|
|||
false
|
||||
end
|
||||
|
||||
def secure_url
|
||||
Gitlab.config.gitlab.relative_url_root + "/files/#{model.class.to_s.underscore}/#{model.id}/#{file.filename}"
|
||||
end
|
||||
|
||||
def file_storage?
|
||||
self.class.storage == CarrierWave::Storage::File
|
||||
end
|
||||
|
||||
def reset_events_cache(file)
|
||||
model.reset_events_cache if model.is_a?(User)
|
||||
end
|
||||
end
|
||||
|
|
32
app/uploaders/avatar_uploader.rb
Normal file
32
app/uploaders/avatar_uploader.rb
Normal file
|
@ -0,0 +1,32 @@
|
|||
# encoding: utf-8
|
||||
|
||||
class AvatarUploader < CarrierWave::Uploader::Base
|
||||
storage :file
|
||||
|
||||
after :store, :reset_events_cache
|
||||
|
||||
def store_dir
|
||||
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||
end
|
||||
|
||||
def image?
|
||||
img_ext = %w(png jpg jpeg gif bmp tiff)
|
||||
if file.respond_to?(:extension)
|
||||
img_ext.include?(file.extension.downcase)
|
||||
else
|
||||
# Not all CarrierWave storages respond to :extension
|
||||
ext = file.path.split('.').last.downcase
|
||||
img_ext.include?(ext)
|
||||
end
|
||||
rescue
|
||||
false
|
||||
end
|
||||
|
||||
def file_storage?
|
||||
self.class.storage == CarrierWave::Storage::File
|
||||
end
|
||||
|
||||
def reset_events_cache(file)
|
||||
model.reset_events_cache if model.is_a?(User)
|
||||
end
|
||||
end
|
|
@ -18,9 +18,9 @@
|
|||
- note = event.target
|
||||
- if note.attachment.url
|
||||
- if note.attachment.image?
|
||||
= link_to note.attachment.secure_url, target: '_blank' do
|
||||
= image_tag note.attachment.secure_url, class: 'note-image-attach'
|
||||
= link_to note.attachment.url, target: '_blank' do
|
||||
= image_tag note.attachment.url, class: 'note-image-attach'
|
||||
- else
|
||||
= link_to note.attachment.secure_url, target: "_blank", class: 'note-file-attach' do
|
||||
= link_to note.attachment.url, target: "_blank", class: 'note-file-attach' do
|
||||
%i.fa.fa-paperclip
|
||||
= note.attachment_identifier
|
||||
|
|
|
@ -57,10 +57,10 @@
|
|||
- if note.attachment.url
|
||||
.note-attachment
|
||||
- if note.attachment.image?
|
||||
= link_to note.attachment.secure_url, target: '_blank' do
|
||||
= image_tag note.attachment.secure_url, class: 'note-image-attach'
|
||||
= link_to note.attachment.url, target: '_blank' do
|
||||
= image_tag note.attachment.url, class: 'note-image-attach'
|
||||
.attachment
|
||||
= link_to note.attachment.secure_url, target: "_blank" do
|
||||
= link_to note.attachment.url, target: "_blank" do
|
||||
%i.fa.fa-paperclip
|
||||
= note.attachment_identifier
|
||||
= link_to delete_attachment_project_note_path(@project, note),
|
||||
|
|
|
@ -110,7 +110,7 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
|
|||
end
|
||||
|
||||
step 'I should see new group "Owned" avatar' do
|
||||
Group.find_by(name: "Owned").avatar.should be_instance_of AttachmentUploader
|
||||
Group.find_by(name: "Owned").avatar.should be_instance_of AvatarUploader
|
||||
Group.find_by(name: "Owned").avatar.url.should == "/uploads/group/avatar/#{ Group.find_by(name:"Owned").id }/gitlab_logo.png"
|
||||
end
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ class Spinach::Features::Profile < Spinach::FeatureSteps
|
|||
end
|
||||
|
||||
step 'I should see new avatar' do
|
||||
@user.avatar.should be_instance_of AttachmentUploader
|
||||
@user.avatar.should be_instance_of AvatarUploader
|
||||
@user.avatar.url.should == "/uploads/user/avatar/#{ @user.id }/gitlab_logo.png"
|
||||
end
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ class Spinach::Features::Project < Spinach::FeatureSteps
|
|||
end
|
||||
|
||||
step 'I should see new project avatar' do
|
||||
@project.avatar.should be_instance_of AttachmentUploader
|
||||
@project.avatar.should be_instance_of AvatarUploader
|
||||
url = @project.avatar.url
|
||||
url.should == "/uploads/project/avatar/#{ @project.id }/gitlab_logo.png"
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue