Sha256: 8ca2fdb1d72ab5431839e36fc3646ccecfa60769a77771d501a36a86c7077baa
Contents?: true
Size: 1.71 KB
Versions: 2
Compression:
Stored size: 1.71 KB
Contents
class Skyline::Content::Editors::JoinableListController < Skyline::Skyline2Controller helper "skyline/content" before_filter :get_classes def index @filter = filter_from_params_or_default @elements = @target_klass.paginate_for_cms(:page => params[:page], :per_page => 10, :self_referential => false, :filter => @filter).all @title_field = @target_klass.fields[@target_klass.settings.title_field] end def new if @assoc.through_reflection @target = @target_klass.find(params[:target_id]) @object = @source_object.send(@assoc.through_reflection.name).build(@assoc.source_reflection.name => @target) else @object = @target_klass.find(params[:target_id]) end end def cancel end protected def get_classes @source_klass = @implementation.content_class(params[:source_type]) @source_object = @source_klass.find_by_id(params[:source_id]) || @source_klass.new @assoc = @source_klass.reflect_on_association(params[:association].to_sym) @target_klass = @assoc.klass end def default_url_options(options) options.update(:source_type => params[:source_type], :source_id => params[:source_id], :association => params[:association]) end # GEt filter from params, or use default if defined def filter_from_params_or_default # First priority is params return params[:filter] if params.has_key?(:filter) || params.has_key?("filter") # Field field = @source_klass.fields[@assoc.name] return {} if !field || field.default_filter.blank? if field.default_filter.kind_of?(Proc) filter = field.default_filter.call(@source_object) else filter = field.default_filter end filter || {} end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
skylinecms-3.3.0 | app/controllers/skyline/content/editors/joinable_list_controller.rb |
skylinecms-3.2.0 | app/controllers/skyline/content/editors/joinable_list_controller.rb |