Module: ActiveAdmin::AwesomeNestedSet::Helper
- Defined in:
- lib/active_admin/awesome_nested_set/helper.rb
Instance Method Summary collapse
-
#sortable_tree_columns ⇒ Object
Call this inside your index do…end block to make your resource sortable.
-
#sortable_tree_indented_column(column_name) ⇒ Object
Call this inside your index do…end block to make a column indented for improved readability.
-
#sortable_tree_member_actions ⇒ Object
Call this inside your resource definition to add the needed member actions for your sortable resource.
Instance Method Details
#sortable_tree_columns ⇒ Object
Call this inside your index do…end block to make your resource sortable.
Example:
#app/admin/players.rb
ActiveAdmin.register Player do
index do
# This adds columns for moving up and down.
sortable_tree_columns
#...
column :firstname
column :lastname
default_actions
end
end
48 49 50 51 52 53 54 55 |
# File 'lib/active_admin/awesome_nested_set/helper.rb', line 48 def sortable_tree_columns column "▲".html_safe do |resource| link_to("▲".html_safe, self.send(:"move_up_admin_#{resource.class.model_name.underscore.gsub("/", "_")}_path", resource), :class => "arrow") if resource.left_sibling end column "▼".html_safe do |resource| link_to("▼".html_safe, self.send(:"move_down_admin_#{resource.class.model_name.underscore.gsub("/", "_")}_path", resource), :class => "arrow") if resource.right_sibling end end |
#sortable_tree_indented_column(column_name) ⇒ Object
Call this inside your index do…end block to make a column indented for improved readability.
Requires ‘depth’ be included in the resource
Example:
#app/admin/players.rb
ActiveAdmin.register Player do
index do
#...
# This indents the firstname column based upon the :depth property
sortable_tree_indented_column :firstname
column :lastname
#...
end
end
22 23 24 25 26 27 28 29 30 |
# File 'lib/active_admin/awesome_nested_set/helper.rb', line 22 def sortable_tree_indented_column column_name column column_name do |resource| if resource.respond_to?("depth") "<span style=\"padding-left:#{resource.depth*24}px\">• #{resource[column_name]}</span>".html_safe else resource[column_name] end end end |
#sortable_tree_member_actions ⇒ Object
Call this inside your resource definition to add the needed member actions for your sortable resource.
Example:
#app/admin/players.rb
ActiveAdmin.register Player do
# Sort players by position
config.sort_order = 'lft_asc'
# Add member actions for positioning.
sortable_tree_member_actions
end
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/active_admin/awesome_nested_set/helper.rb', line 71 def sortable_tree_member_actions member_action :move_up do unless resource.left_sibling redirect_to :back, :notice => I18n.t('awesome_nested_set.illegal_move_up', :resource => resource_class.to_s.camelize.constantize.model_name.human ) return end resource.move_left redirect_to :back, :notice => I18n.t('awesome_nested_set.moved_up', :resource => resource_class.to_s.camelize.constantize.model_name.human ) end member_action :move_down do unless resource.right_sibling redirect_to :back, :notice => I18n.t('awesome_nested_set.illegal_move_down', :resource => resource_class.to_s.camelize.constantize.model_name.human ) return end resource.move_right redirect_to :back, :notice => I18n.t('awesome_nested_set.moved_down', :resource => resource_class.to_s.camelize.constantize.model_name.human ) end end |