diff --git a/admin/app/admin/jam_track_right.rb b/admin/app/admin/jam_track_right.rb index 6892b6aaf..f9f665bb9 100644 --- a/admin/app/admin/jam_track_right.rb +++ b/admin/app/admin/jam_track_right.rb @@ -47,9 +47,11 @@ ActiveAdmin.register JamRuby::JamTrackRight, :as => 'JamTrackRights' do form do |f| f.inputs 'New Jam Track Right' do - f.input :jam_track, :required=>true, collection: JamTrack.all, include_blank: false - f.input :user, :required=>true, collection: User.all, include_blank: false - f.input :can_download, :required => true, as: :boolean + #f.input :jam_track, :required=>true, collection: JamTrack.all, include_blank: false + f.input :jam_track, :required=>true, :as => :autocomplete, :url => autocomplete_jam_track_name_admin_jam_tracks_path, hint: 'Select a jamtrack to give to this user' + #f.input :user, :required=>true, collection: User.all, include_blank: false + f.input :user, :required=>true, :as => :autocomplete, :url => autocomplete_user_email_admin_users_path, hint: 'Give a free jamtrack to this user' + f.input :can_download, :required => true, as: :boolean, :input_html => { :checked => 'checked' } end f.actions end diff --git a/admin/app/admin/jam_tracks.rb b/admin/app/admin/jam_tracks.rb index 0a306db1b..e357ae2c8 100644 --- a/admin/app/admin/jam_tracks.rb +++ b/admin/app/admin/jam_tracks.rb @@ -1,5 +1,7 @@ ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do + collection_action :autocomplete_jam_track_name, :method => :get + menu :label => 'JamTracks', :parent => 'JamTracks' config.sort_order = 'name_asc' @@ -19,6 +21,19 @@ ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do form :partial => 'form' + + controller do + + # this actually searches on first name, last name, and email, because of get_autocomplete_items defined below + autocomplete :jam_track, :name, :full => true, :display_value => :autocomplete_display_name + + def get_autocomplete_items(parameters) + JamTrack.select("name, original_artist, id").where(["name ILIKE ? OR original_artist ILIKE ?", "%#{parameters[:term]}%", "%#{parameters[:term]}%"]) + end + + end + + index do # actions # use this for all view/edit/delete links diff --git a/admin/config/initializers/jam_tracks.rb b/admin/config/initializers/jam_tracks.rb index 60537c467..119841ae4 100644 --- a/admin/config/initializers/jam_tracks.rb +++ b/admin/config/initializers/jam_tracks.rb @@ -3,4 +3,8 @@ class JamRuby::JamTrack # add a custom validation + def autocomplete_display_name + "#{original_artist} - #{name}" + end + end diff --git a/admin/config/routes.rb b/admin/config/routes.rb index 701629a45..4dd029239 100644 --- a/admin/config/routes.rb +++ b/admin/config/routes.rb @@ -20,6 +20,10 @@ JamAdmin::Application.routes.draw do post :user_latencies, on: :collection post :user_latency_recommendation, on: :collection end + + resources :jam_tracks do + get :autocomplete_jam_track_name, :on => :collection + end end namespace :admin do diff --git a/jam-ui/src/helpers/analytics.js b/jam-ui/src/helpers/analytics.js index 06cfa7705..b6b2dbf68 100644 --- a/jam-ui/src/helpers/analytics.js +++ b/jam-ui/src/helpers/analytics.js @@ -29,7 +29,7 @@ export const logPageView = (path) => { } catch(error) { console.log("Error logging page view", error); - } + } } else { ignoredFirstPageView = true;