Skip to content

Commit cc70881

Browse files
committed
added shared/_sorting partial for rendering sorting options
1 parent 0469e1f commit cc70881

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

app/views/shared/_sorting.html.erb

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<%#
2+
"Renders a sorting widget
3+
4+
Variables:
5+
types : Array<String> of available sorting types
6+
? default_order : Defualt sorting order, if any
7+
? default_type : Default sorting type, if any
8+
"%>
9+
10+
<%
11+
# Defaults
12+
default_order = defined?(default_order) ? default_order : nil
13+
default_type = defined?(default_type) ? default_type : nil
14+
%>
15+
16+
<div class="flex gap-sm">
17+
<div class="button-list is-gutterless">
18+
<% [:asc, :desc].each do |order| %>
19+
<% is_active = params[:order]&.to_sym == order || (params[:order].nil? && default_order == order) %>
20+
<%= link_to order.to_s.humanize, request.params.merge(order: order),
21+
class: "button is-muted is-outlined #{'is-active' if is_active}",
22+
role: 'button',
23+
aria: { label: "#{ order.to_s.humanize }ending order" } %>
24+
<% end %>
25+
</div>
26+
27+
<div class="button-list is-gutterless">
28+
<% types.each do |type| %>
29+
<% is_active = params[:sort] == type || (params[:sort].nil? && default_type.to_s == type) %>
30+
<%= link_to type.humanize, request.params.merge(sort: type),
31+
class: "button is-muted is-outlined #{'is-active' if is_active}",
32+
role: 'button',
33+
aria: { label: "Sort by #{type.humanize.downcase}" } %>
34+
<% end %>
35+
</div>
36+
</div>

0 commit comments

Comments
 (0)