Class: CamaleonCms::Admin::MediaController
- Inherits:
-
CamaleonCms::AdminController
- Object
- CamaleonCms::AdminController
- CamaleonCms::Admin::MediaController
- Defined in:
- app/controllers/camaleon_cms/admin/media_controller.rb
Instance Method Summary collapse
-
#actions ⇒ Object
do background actions in fog.
-
#ajax ⇒ Object
render media for modal content.
-
#crop ⇒ Object
crop a image to save as a new file.
-
#download_private_file ⇒ Object
download private files.
-
#index ⇒ Object
render media section.
-
#upload(settings = {}) ⇒ Object
upload files from media uploader.
Instance Method Details
#actions ⇒ Object
do background actions in fog
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 51 def actions if params[:media_action] != 'crop_url' :manage, :media end params[:folder] = params[:folder].gsub("//", "/") if params[:folder].present? case params[:media_action] when "new_folder" params[:folder] = slugify_folder(params[:folder]) render partial: "render_file_item", locals: {files: [cama_uploader.add_folder(params[:folder])]} when "del_folder" cama_uploader.delete_folder(params[:folder]) render inline: "" when "del_file" cama_uploader.delete_file(params[:folder].gsub("//", "/")) render inline: "" when 'crop_url' unless params[:url].start_with?('data:') params[:url] = (params[:url].start_with?('http') ? '' : current_site.the_url(locale: nil)) + params[:url] end r = cama_tmp_upload( params[:url], formats: params[:formats], name: params[:name]) unless r[:error].present? params[:file_upload] = r[:file_path] sett = {remove_source: true} sett[:same_name] = true if params[:same_name].present? sett[:name] = params[:name] if params[:name].present? upload(sett) else render inline: r[:error] end end end |
#ajax ⇒ Object
render media for modal content
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 36 def ajax if current_site.get_option('file_actions_in_modals') == 'yes' @show_file_actions = true end @tree = cama_uploader.search(params[:search]) if params[:search].present? @files = @tree.paginate(page: params[:page], per_page: 100) @next_page = @files.current_page < @files.total_pages ? @files.current_page + 1 : nil if params[:partial].present? render json: {next_page: @next_page, html: render_to_string(partial: "render_file_item", locals: { files: @files })} else render "index", layout: false unless params[:partial].present? end end |
#crop ⇒ Object
crop a image to save as a new file
17 18 19 20 21 22 23 |
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 17 def crop path_image = cama_tmp_upload(params[:cp_img_path])[:file_path] crop_path = cama_crop_image(path_image, params[:ic_w], params[:ic_h], params[:ic_x], params[:ic_y]) res = upload_file(crop_path, {remove_source: true}) CamaleonCms::User.find(params[:saved_avatar]).('avatar', res["url"]) if params[:saved_avatar].present? # save current crop image as avatar render html: res["url"].html_safe end |
#download_private_file ⇒ Object
download private files
26 27 28 29 30 31 32 33 |
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 26 def download_private_file cama_uploader.enable_private_mode! file = cama_uploader.fetch_file("private/#{params[:file]}") send_file file, disposition: 'inline' end |
#index ⇒ Object
render media section
8 9 10 11 12 13 14 |
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 8 def index :manage, :media @show_file_actions = true @files = @tree.paginate(page: params[:page], per_page: 100) @next_page = @files.current_page < @files.total_pages ? @files.current_page + 1 : nil I18n.t("camaleon_cms.admin.sidebar.media") end |
#upload(settings = {}) ⇒ Object
upload files from media uploader
84 85 86 87 88 89 90 91 92 |
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 84 def upload(settings = {}) params[:dimension] = nil if params[:skip_auto_crop].present? f = {error: "File not found."} if params[:file_upload].present? f = upload_file(params[:file_upload], {folder: params[:folder], dimension: params['dimension'], formats: params[:formats], versions: params[:versions], thumb_size: params[:thumb_size]}.merge(settings)) end render(partial: "render_file_item", locals:{ files: [f] }) unless f[:error].present? render inline: f[:error] if f[:error].present? end |