app/controllers/refinery/admin/images_controller.rb in refinerycms-images-2.1.5 vs app/controllers/refinery/admin/images_controller.rb in refinerycms-images-3.0.0
- old
+ new
@@ -1,27 +1,27 @@
module Refinery
module Admin
class ImagesController < ::Refinery::AdminController
crudify :'refinery/image',
- :order => "created_at DESC",
- :sortable => false,
- :xhr_paging => true
+ include: [:translations],
+ order: "updated_at DESC",
+ sortable: false
- before_filter :change_list_mode_if_specified, :init_dialog
+ before_action :change_list_mode_if_specified, :init_dialog
def new
@image = ::Refinery::Image.new if @image.nil?
- @url_override = refinery.admin_images_path(:dialog => from_dialog?)
+ @url_override = refinery.admin_images_path(dialog: from_dialog?)
end
# This renders the image insert dialog
def insert
self.new if @image.nil?
- @url_override = refinery.admin_images_path(request.query_parameters.merge(:insert => true))
+ @url_override = refinery.admin_images_path(request.query_parameters.merge(insert: true))
if params[:conditions].present?
extra_condition = params[:conditions].split(',')
extra_condition[1] = true if extra_condition[1] == "true"
@@ -32,90 +32,87 @@
find_all_images(({extra_condition[0] => extra_condition[1]} if extra_condition.present?))
search_all_images if searching?
paginate_images
- render :action => "insert"
+ render 'insert'
end
def create
@images = []
begin
- unless params[:image].present? and params[:image][:image].is_a?(Array)
- @images << (@image = ::Refinery::Image.create(params[:image]))
- else
+ if params[:image].present? && params[:image][:image].is_a?(Array)
params[:image][:image].each do |image|
- @images << (@image = ::Refinery::Image.create({:image => image}.merge(params[:image].except(:image))))
+ params[:image][:image_title] = params[:image][:image_title].presence || auto_title(image.original_filename)
+ @images << (@image = ::Refinery::Image.create({image: image}.merge(image_params.except(:image))))
end
+ else
+ @images << (@image = ::Refinery::Image.create(image_params))
end
- rescue Dragonfly::FunctionManager::UnableToHandle
+ rescue NotImplementedError
logger.warn($!.message)
@image = ::Refinery::Image.new
end
- unless params[:insert]
+ if params[:insert]
+ # if all uploaded images are ok redirect page back to dialog, else show current page with error
if @images.all?(&:valid?)
- flash.notice = t('created', :scope => 'refinery.crudify', :what => "'#{@images.map(&:title).join("', '")}'")
+ @image_id = @image.id if @image.persisted?
+ @image = nil
+ end
+
+ self.insert
+ else
+ if @images.all?(&:valid?)
+ flash.notice = t('created', scope: 'refinery.crudify', what: "'#{@images.map(&:image_title).join("', '")}'")
if from_dialog?
@dialog_successful = true
- render :nothing => true, :layout => true
+ render '/refinery/admin/dialog_success', layout: true
else
redirect_to refinery.admin_images_path
end
else
self.new # important for dialogs
- render :action => 'new'
+ render 'new'
end
- else
- # if all uploaded images are ok redirect page back to dialog, else show current page with error
- if @images.all?(&:valid?)
- @image_id = @image.id if @image.persisted?
- @image = nil
- end
-
- self.insert
end
end
def update
- attributes_before_assignment = @image.attributes
- @image.attributes = params[:image]
+ @image.attributes = image_params
if @image.valid? && @image.save
- flash.notice = t(
- 'refinery.crudify.updated',
- :what => "'#{@image.title}'"
- )
+ flash.notice = t('refinery.crudify.updated', what: "'#{@image.title}'")
- unless from_dialog?
- unless params[:continue_editing] =~ /true|on|1/
- redirect_back_or_default refinery.admin_images_path
- else
- unless request.xhr?
- redirect_to :back
- else
- render :partial => '/refinery/message'
- end
- end
- else
+ if from_dialog?
self.index
@dialog_successful = true
render :index
+ else
+ if params[:continue_editing] =~ /true|on|1/
+ if request.xhr?
+ render partial: '/refinery/message'
+ else
+ redirect_to :back
+ end
+ else
+ redirect_back_or_default refinery.admin_images_path
+ end
end
else
@thumbnail = Image.find params[:id]
- unless request.xhr?
- render :action => 'edit'
- else
- render :partial => '/refinery/admin/error_messages', :locals => {
- :object => @image,
- :include_object_name => true
+ if request.xhr?
+ render partial: '/refinery/admin/error_messages', locals: {
+ object: @image,
+ include_object_name: true
}
+ else
+ render 'edit'
end
end
end
- protected
+ protected
def init_dialog
@app_dialog = params[:app_dialog].present?
@field = params[:field]
@update_image = params[:update_image]
@@ -130,14 +127,30 @@
Refinery::Images.preferred_image_view = params[:view]
end
end
def paginate_images
- @images = @images.paginate(:page => params[:page], :per_page => Image.per_page(from_dialog?, !@app_dialog))
+ @images = @images.paginate(page: params[:page], per_page: Image.per_page(from_dialog?, !@app_dialog))
end
def restrict_controller
super unless action_name == 'insert'
+ end
+
+ def auto_title(filename)
+ CGI::unescape(filename.to_s).gsub(/\.\w+$/, '').titleize
+ end
+
+ def image_params
+ params.require(:image).permit(permitted_image_params)
+ end
+
+ private
+
+ def permitted_image_params
+ [
+ :image, :image_size, :image_title, :image_alt
+ ]
end
end
end
end