diff --git a/app/assets/javascripts/artists.js b/app/assets/javascripts/artists.js index d1800736a..2d89c5e21 100644 --- a/app/assets/javascripts/artists.js +++ b/app/assets/javascripts/artists.js @@ -53,8 +53,9 @@ $.ajax({ url: "/artists.json", data: { - "search[name]": "*" + req.term + "*", + "search[name]": req.term + "*", "search[is_active]": true, + "search[order]": "post_count", "limit": 10 }, method: "get", diff --git a/app/controllers/artists_controller.rb b/app/controllers/artists_controller.rb index e38fff9ea..d56df0b49 100644 --- a/app/controllers/artists_controller.rb +++ b/app/controllers/artists_controller.rb @@ -38,7 +38,7 @@ class ArtistsController < ApplicationController def index search_params = params[:search].present? ? params[:search] : params - @artists = Artist.includes(:urls).search(search_params).order("id desc").paginate(params[:page], :limit => params[:limit], :search_count => params[:search]) + @artists = Artist.includes(:urls).search(search_params).paginate(params[:page], :limit => params[:limit], :search_count => params[:search]) respond_with(@artists) do |format| format.xml do render :xml => @artists.to_xml(:include => [:urls], :root => "artists") diff --git a/app/models/artist.rb b/app/models/artist.rb index accb734b1..64d691771 100644 --- a/app/models/artist.rb +++ b/app/models/artist.rb @@ -419,11 +419,13 @@ class Artist < ActiveRecord::Base params[:order] ||= params.delete(:sort) case params[:order] when "name" - q = q.reorder("artists.name") + q = q.order("artists.name") when "updated_at" - q = q.reorder("artists.updated_at desc") + q = q.order("artists.updated_at desc") + when "post_count" + q = q.joins(:tag).order("tags.post_count desc") else - q = q.reorder("artists.id desc") + q = q.order("artists.id desc") end if params[:is_active] == "true" diff --git a/app/views/artists/_search.html.erb b/app/views/artists/_search.html.erb index 42a49edcc..3c256ff8d 100644 --- a/app/views/artists/_search.html.erb +++ b/app/views/artists/_search.html.erb @@ -15,7 +15,7 @@