Class: CamaleonCms::Admin::MediaController

Inherits:
CamaleonCms::AdminController
  • Object
show all
Defined in:
app/controllers/camaleon_cms/admin/media_controller.rb

Instance Method Summary collapse

Instance Method Details

#actionsObject

do background actions in fog



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 42

def actions
  if params[:media_action] != 'crop_url'
    authorize! :manage, :media
  end
  params[:folder] = params[:folder].gsub("//", "/") if params[:folder].present?
  case params[:media_action]
    when "new_folder"
      render partial: "render_folder_item", locals: { fname: params[:folder].split("/").last, folder: 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'
      r = cama_tmp_upload(params[:url], formats: params[:formats])
      unless r[:error].present?
        params[:file_upload] = r[:file_path]
        upload({remove_source: true})
      else
        render inline: r[:error]
      end
  end
end

#ajaxObject

render media for modal content



33
34
35
36
37
38
39
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 33

def ajax
  @tree = cama_uploader.search(params[:search]) if params[:search].present?
  if params[:partial].present?
    render partial: "files_list", locals: { files: @tree[:files], folders: @tree[:folders] }
  end
  render "index", layout: false unless params[:partial].present?
end

#cropObject

crop a image to save as a new file



14
15
16
17
18
19
20
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 14

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]).set_meta('avatar', res["url"]) if params[:saved_avatar].present? # save current crop image as avatar
  render text: res["url"]
end

#download_private_fileObject

download private files



23
24
25
26
27
28
29
30
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 23

def download_private_file
  f_path = CamaleonCmsLocalUploader::private_file_path(params[:file], current_site)
  if File.exist?(f_path)
    send_file f_path, disposition: 'inline'
  else
    raise ActionController::RoutingError, 'File not found'
  end
end

#indexObject

render media section



7
8
9
10
11
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 7

def index
  authorize! :manage, :media
  @show_file_actions = true
  add_breadcrumb I18n.t("camaleon_cms.admin.sidebar.media")
end

#upload(settings = {}) ⇒ Object

upload files from media uploader



68
69
70
71
72
73
74
75
76
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 68

def upload(settings = {})
  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:{ file: f }) unless f[:error].present?
  render inline: f[:error] if f[:error].present?
end