Class: CamaleonCms::Admin::MediaController

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

Overview

Camaleon CMS is a content management system

Copyright (C) 2015 by Owen Peredo Diaz
Email: [email protected]
This program is free software: you can redistribute it and/or modify   it under the terms of the GNU Affero General Public License as  published by the Free Software Foundation, either version 3 of the  License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the  GNU Affero General Public License (GPLv3) for more details.

Instance Method Summary collapse

Instance Method Details

#actionsObject

do background actions in fog


45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 45

def actions
  authorize! :manager, :media
  params[:folder] = params[:folder].gsub("//", "/") if params[:folder].present?
  case params[:media_action]
    when "new_folder"
      cama_uploader_add_folder(params[:folder])
      render partial: "render_folder_item", locals: { fname: params[:folder].split("/").last}
    when "del_folder"
      cama_uploader_destroy_folder(params[:folder])
      render inline: ""
    when "del_file"
      cama_uploader_destroy_file(params[:folder].gsub("//", "/"))
      render inline: ""
  end
end

#ajaxObject

render media for modal content


39
40
41
42
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 39

def ajax
  render partial: "files_list" if params[:partial].present?
  render "index", layout: false unless params[:partial].present?
end

#cropObject

crop a image to save as a new file


23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 23

def crop
  path_image = Rails.root.join("tmp", File.basename(params[:cp_img_path])).to_s
  if current_site.get_option("filesystem_type", "local") == "local"
    FileUtils.cp(Rails.root.join("public", "media", params[:cp_img_path].scan(/\/media\/(.*)/).first.first).to_s, path_image)
  else
    File.open(path_image, 'wb'){ |fo| fo.write(open(params[:cp_img_path]).read) }
  end
  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})
  if params[:saved_avatar].present?
    CamaleonCms::User.find(params[:saved_avatar]).set_meta('avatar', res["url"])
  end
  render text: res["url"]
end

#indexObject

render media section


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

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

#uploadObject

upload files from media uploader


62
63
64
65
66
67
68
69
70
71
72
73
# File 'app/controllers/camaleon_cms/admin/media_controller.rb', line 62

def upload
  f = {error: "File not found."}
  if params[:file_upload].present?
    f = upload_file(params[:file_upload], {folder: params[:folder]})
  end

  unless f[:error].present?
    render partial: "render_file_item", locals:{ file: f }
  else
    render inlien: f[:error]
  end
end