sort by followers

This commit is contained in:
Kyle Drake 2015-06-06 15:09:15 -07:00
parent 6452442f42
commit 3023c8badd
2 changed files with 9 additions and 2 deletions

View file

@ -43,6 +43,12 @@ def browse_sites_dataset
end
case params[:sort_by]
when 'followers'
site_dataset = site_dataset.association_left_join :follows
site_dataset.select_all! :sites
site_dataset.select_append! Sequel.lit("count(follows.site_id) AS follow_count")
site_dataset.group! :sites__id
site_dataset.order! :follow_count.desc, :updated_at.desc
when 'supporters'
site_dataset.exclude! plan_type: nil
site_dataset.exclude! plan_type: 'free'
@ -81,7 +87,7 @@ def browse_sites_dataset
site_dataset.where! ['sites.is_nsfw = ?', (params[:is_nsfw] == 'true' ? true : false)]
if params[:tag]
if params[:tag] && params[:sort_by] != 'followers'
site_dataset = site_dataset.association_join(:tags).select_all(:sites)
site_dataset.where! ['tags.name = ?', params[:tag]]
site_dataset.where! ['tags.is_nsfw = ?', (params[:is_nsfw] == 'true' ? true : false)]

View file

@ -26,6 +26,7 @@
<div class="select-Container">
<select name="sort_by" id="sort_by" class="input-Select">
<option value="last_updated" <%= params[:sort_by] == 'last_updated' ? 'selected' : '' %>>Last Updated</option>
<option value="followers" <%= params[:sort_by] == 'followers' ? 'selected' : '' %>>Most Followers</option>
<option value="supporters" <%= params[:sort_by] == 'supporters' ? 'selected' : '' %>>Neocities Supporters</option>
<option value="featured" <%= params[:sort_by] == 'featured' ? 'selected' : '' %>>Featured</option>
<option value="views" <%= params[:sort_by] == 'views' ? 'selected' : '' %>>Most Views</option>
@ -48,7 +49,7 @@
<div class="col col-50 filter">
<form method="GET" action="browse">
<fieldset class="grouping">
<% unless is_education? %>
<% unless is_education? || params[:sort_by] == 'followers' %>
<label class="text-Label" for="tag"><span class="hide-on-mobile">Search by </span>Tag:</label>
<input class="input-Area typeahead" id="tag" name="tag" type="text" placeholder="pokemon" value="<%= params[:tag] %>" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" dir="auto">
<input style="vertical-align: -4px;margin-left: 4px;" type="submit" class="btn-Action" value="Search">