Sha256: 021828ca1c12472aed4feedfc89ae4bd45f36a41131969379238b68ce8dec191

Contents?: true

Size: 1.69 KB

Versions: 42

Compression:

Stored size: 1.69 KB

Contents

module Rao
  module Component
    # Usage:
    #
    #     # app/models/gallery.rb
    #     class Picture < ActiveRecord::Base
    #       has_many :pictures, -> { order(position: :asc) }
    #       # ...
    #     end
    #
    #     # app/models/picture.rb
    #     class Picture < ActiveRecord::Base
    #       acts_as_list scope: :gallery
    #       # ...
    #     end
    #
    #     # app/galleries/index.html.haml
    #     = collection_table(collection: @pictures) do |table|
    #       = table.acts_as_list_actions scope: :gallery_id
    #
    # You will have to add a repositioning route to your resource:
    #
    #     # config/routes.rb:
    #     Rails.application.routes do
    #       resources :picture do
    #         post :reposition, on: :member
    #       end
    #       # ...
    #     end
    #
    # Additionally you will need a controller action to handle the reponsitioning.
    # Include Rao::ResourcesController::ActsAsListConcern from rao-resource_controller
    # if you don't want to implement it yourself:
    #
    #     # app/controllers/pictures_controller.rb
    #     class PicturesController < ApplicationController
    #       include Rao::ResourcesController::ActsAsListConcern
    #       # ...
    #     end
    #
    module CollectionTable::ActsAsListConcern
      extend ActiveSupport::Concern

      def acts_as_list_actions(options = {}, &block)
        options.reverse_merge!(render_as: :acts_as_list, title: '', scope: nil)

        scope = options.delete(:scope)
        scope = "#{scope}_id".intern if scope.is_a?(Symbol) && scope.to_s !~ /_id$/

        options.merge(scope: scope)

        column(:acts_as_list_actions, options, &block)
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
rao-component-0.0.52.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.51.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.50.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.49.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.48.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.47.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.46.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.45.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.44.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.43.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.42.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.41.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.40.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.39.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.38.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.37.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.36.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.35.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.34.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb
rao-component-0.0.33.pre app/concerns/rao/component/collection_table/acts_as_list_concern.rb