Module: Binda::ComponentsHelper

Defined in:
app/helpers/binda/components_helper.rb

Instance Method Summary collapse

Instance Method Details

Get the sort index link

This helper generate the a link to the page where to sort components, or a broken link that tells you that you have too many components to go to that page.



9
10
11
12
13
14
15
# File 'app/helpers/binda/components_helper.rb', line 9

def get_sort_index_link
	if @structure.components.length < Component.sort_limit
		link_to "<i class=\"fa fa-random\" aria-hidden=\"true\"></i>Sort #{ @structure.name.humanize.split.map(&:capitalize).join(' ').pluralize }".html_safe, structure_components_sort_index_path, class: 'main-header--link b-btn b-btn-primary'
	else
		link_to "Sort #{ @structure.name.humanize.split.map(&:capitalize).join(' ').pluralize }", '#', class: 'main-header--link b-btn b-btn-primary', onclick: "alert(\"Sorry! It's not possible to sort #{@structure.name.pluralize} anymore. You currently have more than #{Component.sort_limit} #{@structure.name.pluralize} which is the maximum limit.\")"
	end
end

Get sort link by argument

This method returns a URL which contains the current sort options and update just the title one. The URL then is used to change the sorting of the index in which is used.

Rails guide reference --> http://guides.rubyonrails.org/action_controller_overview.html#hash-and-array-parameters

Parameters:

  • arg (string)

    This should be the database column on which sort will be based

Returns:

  • (string)

    The URL with the encoded parameters



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'app/helpers/binda/components_helper.rb', line 60

def get_sort_link_by argument
	arg = "#{argument}".to_sym
	if params[:order].nil? 
		structure_components_path( [@structure], { order: {arg => "DESC"} } )
	else
		order_hash = params[:order].permit(:name, :publish_state).to_h
		if order_hash[arg] == "ASC"
			order_hash[arg] = "DESC"
			structure_components_path( [@structure], { order: order_hash }  )
		else
			order_hash[arg] = "ASC"
			structure_components_path( [@structure], { order: order_hash }  )
		end
	end
end

Get sort link icon by argument

This method returns a Font Awesome icon

Parameters:

  • arg (string)

    This should be the database column on which sort will be based

Returns:

  • (string)

    The icon which needs to be escaped with the html_safe method



83
84
85
86
87
88
89
90
91
92
# File 'app/helpers/binda/components_helper.rb', line 83

def get_sort_link_icon_by arg
	case 
	when params[:order].nil?
		'<i class="fas fa-sort-alpha-down"></i>'
	when params[:order][arg] == "DESC"
		'<i class="fas fa-sort-alpha-up"></i>'
	else
		'<i class="fas fa-sort-alpha-down"></i>'
	end
end

#prepare_description_for_form_hint(field_setting) ⇒ Object

Prepare description for form hint.

This helper return the field description (as string) or false (as boolean) in order to tell Simple Form whether to generate or not the hint html tag.

Parameters:



23
24
25
26
27
28
29
# File 'app/helpers/binda/components_helper.rb', line 23

def prepare_description_for_form_hint(field_setting)
	if field_setting.description.blank?
		return false
	else
		return field_setting.description
	end
end

#prepare_description_for_selections_form_hint(field_setting) ⇒ Object

Prepare description for form hint belonging to select, radio and checkbox fields.

This helper return the field description (as string) or false (as boolean) in order to tell Simple Form whether to generate or not the hint html tag.

Parameters:



38
39
40
41
42
43
44
45
46
47
# File 'app/helpers/binda/components_helper.rb', line 38

def prepare_description_for_selections_form_hint(field_setting)
	description = []
	unless field_setting.description.blank? && field_setting.allow_null?
		description << field_setting.description unless field_setting.description.blank?
		description << I18n.t("binda.null_is_not_allowed") if !field_setting.allow_null? 
		return description.join('. ')
	else
		return false 
	end
end