Sha256: 6ead9a1c249e660afae5f5f69e3869b93eae04397d6f800a11e8e87bb29da769
Contents?: true
Size: 1.19 KB
Versions: 5
Compression:
Stored size: 1.19 KB
Contents
module Spina module Admin class MediaPickerController < AdminController before_action :set_media_folders before_action :set_selected_images def show @images = Image.where(media_folder: @media_folder).order(created_at: :desc).page(params[:page]).per(25) @mode = params[:mode] if selected_ids.any? @images = @images.reorder(Arel.sql("CASE WHEN id IN(#{selected_ids.join(', ')}) THEN 0 ELSE 1 END, created_at DESC")) end respond_to do |format| format.html { render layout: false } format.js { render :infinite_scroll if params[:page].present? } end end private def set_media_folders @media_folders = MediaFolder.order(:name).joins(:images).uniq @media_folder = MediaFolder.find(params[:media_folder_id]) if params[:media_folder_id].present? end def set_selected_images @selected_images = Image.where(id: selected_ids).sort_by{|image| selected_ids.index(image.id)} end def selected_ids params[:selected_ids].present? ? params[:selected_ids].map(&:to_i) : [] end helper_method :selected_ids end end end
Version data entries
5 entries across 5 versions & 1 rubygems