diff --git a/admin/app/admin/user_source.rb b/admin/app/admin/user_source.rb new file mode 100644 index 000000000..50f9a93af --- /dev/null +++ b/admin/app/admin/user_source.rb @@ -0,0 +1,30 @@ +ActiveAdmin.register JamRuby::User, :as => 'UserSource' do + + menu :label => 'User Campaigns', :parent => 'Users' + + config.sort_order = 'created_at DESC' + config.batch_actions = false + config.clear_action_items! + config.filters = false + + index do + column "Email" do |user| + user.email + end + column "Bought TestDrive" do |user| + !user.most_recent_test_drive_purchase.nil? ? "Yes" : "No" + end + column "UTM Source" do |user| + user.origin_utm_source + end + column "UTM Medium" do |user| + user.origin_utm_medium + end + column "UTM Campaign" do |user| + user.origin_utm_campaign + end + column "Referrer" do |user| + user.origin_referrer + end + end +end diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index 91321138e..86c35c534 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -2090,7 +2090,7 @@ module JamRuby LessonBooking.unprocessed(self).where(lesson_type: LessonBooking::LESSON_TYPE_PAID).first end - def most_recent_test_drive_purchase + def most_recent_test_drive_purchase lesson_purchases.where('lesson_package_type_id in (?)', LessonPackageType.test_drive_package_ids).order('created_at desc').first end diff --git a/web/app/assets/javascripts/globals.js b/web/app/assets/javascripts/globals.js index d59831d01..3954949c6 100644 --- a/web/app/assets/javascripts/globals.js +++ b/web/app/assets/javascripts/globals.js @@ -228,7 +228,7 @@ "Electric Guitar": { "client_id": 50, "server_id": "electric guitar" }, "Keyboard": { "client_id": 60, "server_id": "keyboard" }, "Piano": { "client_id": 61, "server_id": "piano" }, - "Upright Bass": { "client_id": 62, "server_id": "upright bass" }, + "Upright Bass": { "client_id": 62, "server_id": "double bass" }, "Voice": { "client_id": 70, "server_id": "voice" }, "Flute": { "client_id": 80, "server_id": "flute" }, "Clarinet": { "client_id": 90, "server_id": "clarinet" }, @@ -250,6 +250,9 @@ "Other": { "client_id": 250, "server_id": "other" } }; + + + context.JK.client_to_server_instrument_map = { 10: { "server_id": "acoustic guitar" }, 20: { "server_id": "bass guitar" }, @@ -259,7 +262,7 @@ 50: { "server_id": "electric guitar" }, 60: { "server_id": "keyboard" }, 61: { "server_id": "piano"} , - 62: { "server_id": "upright bass"} , + 62: { "server_id": "double bass"} , 70: { "server_id": "voice" }, 80: { "server_id": "flute" }, 90: { "server_id": "clarinet" }, @@ -283,10 +286,21 @@ context.JK.instrument_id_to_instrument = {}; + context.JK.server_to_client_instrument_alpha = []; + (function() { $.each(context.JK.server_to_client_instrument_map, function(key, value) { context.JK.instrument_id_to_instrument[value.server_id] = { client_id: value.client_id, display: key } + context.JK.server_to_client_instrument_alpha.push({ client_id: value.client_id, display: key, server_id: value.server_id }) }); + + context.JK.server_to_client_instrument_alpha.sort(function(a, b){ + if ( a.display < b.display ) + return -1; + if ( a.display > b.display ) + return 1; + return 0; + }); })(); diff --git a/web/app/assets/javascripts/react-components/ConfigureLiveTracksDialog.js.jsx.coffee b/web/app/assets/javascripts/react-components/ConfigureLiveTracksDialog.js.jsx.coffee index 4b3cc4cf9..f45531854 100644 --- a/web/app/assets/javascripts/react-components/ConfigureLiveTracksDialog.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/ConfigureLiveTracksDialog.js.jsx.coffee @@ -29,8 +29,8 @@ ConfigureTracksStore = @ConfigureTracksStore instruments = [] instruments.push(``) - for displayName, value of context.JK.server_to_client_instrument_map - instruments.push(``) + for instrument in context.JK.server_to_client_instrument_alpha + instruments.push(``) vsts = [] @@ -134,8 +134,8 @@ ConfigureTracksStore = @ConfigureTracksStore midiInstruments = [] instruments = [] - for displayName, value of context.JK.server_to_client_instrument_map - instruments.push(``) + for instrument in context.JK.server_to_client_instrument_alpha + instruments.push(``) selectedMidiInterface = '' selectedInstrument = context.JK.client_to_server_instrument_map[50].server_id # default to electric guitar