Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
admin_toolbox / lib / admin_toolbox / tools / sortable.rb
Size: Mime:
module AdminToolbox
  module Tools
    module Sortable
      def self.included(base)
        base.send(:collection_action, :sort, :method => :post) do
          params[param_name].each_with_index do |id, index|
            resource_class.unscoped.where(id: id).update_all(position_field => index + 1)
          end

          head :ok
        end

        base.controller do
          def position_field
            :position
          end

          def param_name
            resource_class.model_name.singular.to_sym
          end
        end

        base.send(:config).sort_order = "#{base.controller.new.position_field}_asc"
      end
    end
  end
end