Created
April 22, 2016 18:46
-
-
Save dcalixto/d75d778fb4cd2586884216b8a30bf4af to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <ul class="organiser__group organiser__group--sort"> | |
| <%= content_tag(:li, class: ("active" if params[:sort] == "park" || params[:sort] == nil)) do %> | |
| <%= link_to "By Park", coasters_path(sort_parameters(:park, page: 1)), remote: true %> | |
| <% end %> | |
| <%= content_tag(:li, class: ("active" if params[:sort] == "alphabetically")) do %> | |
| <%= link_to "Alphabetically", coasters_path(sort_parameters(:alphabetically, page: 1)), remote: true %></li> | |
| <% end %> | |
| <%= content_tag(:li, class: ("active" if params[:sort] == "order")) do %> | |
| <%= link_to "Order ridden", coasters_path(sort_parameters(:order, page: 1)), remote: true %> | |
| <% end %> | |
| </ul> | |
| <ul class="organiser__group organiser__group--filter"> | |
| <%= content_tag(:li, class: ("active" if params[:type] == "steel")) do %> | |
| <%= link_to "Steel", coasters_path(type_parameters("steel", page: 1)), remote: true %> | |
| <% end %> | |
| <%= content_tag(:li, class: ("active" if params[:type] == "wood")) do %> | |
| <%= link_to "Wood", coasters_path(type_parameters("wood", page: 1)), remote: true %> | |
| <% end %> | |
| <%= content_tag(:li, class: ("active" if params[:type] == "powered")) do %> | |
| <%= link_to "Powered", coasters_path(type_parameters("powered", page: 1)), remote: true %> | |
| <% end %> | |
| </ul> | |
| <ul class="organiser__group organiser__group--filter"> | |
| <%= content_tag(:li, class: ("active" if params[:letters] == "#")) do %> | |
| <%= link_to "#", coasters_path(letter_parameters("#", page: 1)), remote: true %> | |
| <% end %> | |
| <%= content_tag(:li, class: ("active" if params[:letters] == "a-e")) do %> | |
| <%= link_to "A-E", coasters_path(letter_parameters("a-e", page: 1)), remote: true %> | |
| <% end %> | |
| <%= content_tag(:li, class: ("active" if params[:letters] == "f-j")) do %> | |
| <%= link_to "F-J", coasters_path(letter_parameters("f-j", page: 1)), remote: true %> | |
| <% end %> | |
| <%= content_tag(:li, class: ("active" if params[:letters] == "k-o")) do %> | |
| <%= link_to "K-O", coasters_path(letter_parameters("k-o", page: 1)), remote: true %> | |
| <% end %> | |
| <%= content_tag(:li, class: ("active" if params[:letters] == "p-t")) do %> | |
| <%= link_to "P-T", coasters_path(letter_parameters("p-t", page: 1)), remote: true %> | |
| <% end %> | |
| <%= content_tag(:li, class: ("active" if params[:letters] == "u-z")) do %> | |
| <%= link_to "U-Z", coasters_path(letter_parameters("u-z", page: 1)), remote: true %> | |
| <% end %> | |
| </ul> | |
| <ul class="organiser__group organiser__group--filter"> | |
| <%= content_tag(:li, class: ("active" if params[:misc] == "milestones")) do %> | |
| <%= link_to "Milestones", coasters_path(misc_parameters("milestones", page: 1)), remote: true %> | |
| <% end %> | |
| </ul> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module CoasterHelper | |
| # Add the type parameter to URL if not already there and remove if they are | |
| def type_parameters(type, options = {}) | |
| parameters = params.dup | |
| if params[:type] == type | |
| # Remove type | |
| parameters.delete(:type) | |
| else | |
| # Add type to new parameters variable | |
| parameters.merge!(type: type) | |
| end | |
| # Merge any parameters passed in via options | |
| parameters.merge(options) | |
| end | |
| # Add the letters parameter to URL if not already there and remove if they are | |
| def letter_parameters(letters, options = {}) | |
| parameters = params.dup | |
| if params[:letters] == letters | |
| # Remove letters | |
| parameters.delete(:letters) | |
| else | |
| # Add letters to new parameters variable | |
| parameters.merge!(letters: letters) | |
| end | |
| # Merge any parameters passed in via options | |
| parameters.merge(options) | |
| end | |
| # Add the misc parameter to URL if not already there and remove if they are | |
| def misc_parameters(misc, options = {}) | |
| parameters = params.dup | |
| if params[:misc] == misc | |
| # Remove misc | |
| parameters.delete(:misc) | |
| else | |
| # Add misc to new parameters variable | |
| parameters.merge!(misc: misc) | |
| end | |
| # Merge any parameters passed in via options | |
| parameters.merge(options) | |
| end | |
| # Add the sort parameter to URL | |
| def sort_parameters(sort, options = {}) | |
| parameters = params.dup | |
| # Add sort to new parameters variable | |
| parameters.merge!(sort: sort) | |
| # Merge any parameters passed in via options | |
| parameters.merge(options) | |
| end | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| if params[:letters] || params[:type] || params[:misc] || params[:country] | |
| @coasters = Coaster.uniques | |
| if params[:type] | |
| filter_by_type | |
| # Determine order based on whether 'letters' parameter is present | |
| if params[:letters] | |
| # Order by coaster name | |
| params[:sort] = 'alphabetically' unless params[:sort] | |
| else | |
| # Order by park name then coaster name | |
| params[:sort] = 'park' unless params[:sort] | |
| end | |
| end | |
| if params[:letters] | |
| filter_by_letters | |
| # Determine order based on whether 'type' parameter is present | |
| if params[:type] | |
| # Order by park name then coaster name | |
| params[:sort] = 'park' unless params[:sort] | |
| else | |
| # Order by coaster name | |
| params[:sort] = 'alphabetically' unless params[:sort] | |
| end | |
| end | |
| if params[:misc] | |
| filter_by_misc | |
| end | |
| if params[:country] | |
| filter_by_country | |
| end | |
| else | |
| @coasters = Coaster.uniques | |
| end | |
| if params[:sort] == 'order' | |
| @coasters = @coasters.except(:order).order('coasters.order_ridden ASC') | |
| elsif params[:sort] == 'park' | |
| @coasters = @coasters.joins(:park).order('parks.name ASC').order('coasters.name ASC') | |
| elsif params[:sort] == 'alphabetically' | |
| @coasters = @coasters.except(:order).order('coasters.name ASC') | |
| else | |
| @coasters = @coasters.joins(:park).order('coasters.name ASC').order('parks.name ASC') | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment