453 lines
14 KiB
Ruby
453 lines
14 KiB
Ruby
class LandingsController < ApplicationController
|
|
|
|
include LandingsHelper
|
|
|
|
respond_to :html
|
|
|
|
before_filter :posa_http_basic_auth, only: [:posa_activation]
|
|
|
|
def watch_bands
|
|
@promo_buzz = PromoBuzz.active
|
|
|
|
if Rails.application.config.use_promos_on_homepage
|
|
@promo_latest = PromoLatest.active
|
|
else
|
|
@promo_latest, start = Feed.index(nil, limit: 10)
|
|
end
|
|
|
|
page = params['p'].to_i
|
|
|
|
if page == 2
|
|
render 'watch_bands_2', layout: 'web'
|
|
elsif page == 3
|
|
render 'watch_bands_3', layout: 'web'
|
|
else
|
|
render 'watch_bands_1', layout: 'web'
|
|
end
|
|
end
|
|
|
|
def watch_overview_kick
|
|
render 'watch_kick', layout: 'web'
|
|
end
|
|
|
|
def watch_overview_kick2
|
|
render 'watch_kick_2', layout: 'web'
|
|
end
|
|
|
|
def watch_overview_kick3
|
|
render 'watch_kick_3', layout: 'web'
|
|
end
|
|
|
|
def watch_overview_kick4
|
|
render 'watch_kick_4', layout: 'web'
|
|
end
|
|
|
|
def watch_overview
|
|
@promo_buzz = PromoBuzz.active
|
|
|
|
if Rails.application.config.use_promos_on_homepage
|
|
@promo_latest = PromoLatest.active
|
|
else
|
|
@promo_latest, start = Feed.index(nil, limit: 10)
|
|
end
|
|
|
|
page = params['p'].to_i
|
|
|
|
if page == 2
|
|
render 'watch_overview_2', layout: 'web'
|
|
elsif page == 3
|
|
render 'watch_overview_3', layout: 'web'
|
|
else
|
|
render 'watch_overview_1', layout: 'web'
|
|
end
|
|
end
|
|
|
|
def watch_bands_tight
|
|
render 'watch_bands_tight', layout: 'web'
|
|
end
|
|
|
|
def watch_overview_tight
|
|
render 'watch_overview_tight', layout: 'web'
|
|
end
|
|
|
|
def jam_class_students
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
@free = false
|
|
|
|
package_name = params['utm-teachers']
|
|
if package_name
|
|
package = TestDrivePackage.find_by_name(package_name)
|
|
|
|
if package
|
|
package_data = {}
|
|
package_data[:id] = package.id
|
|
package_data[:name] = package.name
|
|
package_data[:package_type] = package.package_type
|
|
teachers = []
|
|
package.test_drive_package_teachers.each do |package_teacher|
|
|
teacher = package_teacher.user
|
|
teachers.push({id: teacher.id, name: teacher.name, first_name: teacher.first_name,last_name: teacher.last_name, biography: teacher.teacher.short_bio, photo_url: teacher.photo_url})
|
|
end
|
|
package_data[:teachers] = teachers
|
|
|
|
@package_data = package_data
|
|
end
|
|
|
|
end
|
|
|
|
@page_data = {free: @free, package: @package_data}
|
|
|
|
render 'jam_class_students', layout: 'web'
|
|
end
|
|
|
|
def jam_class_students_free
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
@free = true
|
|
|
|
@page_data = {free: @free}
|
|
|
|
render 'jam_class_students', layout: 'web'
|
|
end
|
|
|
|
def jam_class_teachers
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
render 'jam_class_teachers', layout: 'web'
|
|
end
|
|
|
|
def jam_class_affiliates
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
render 'jam_class_affiliates', layout: 'web'
|
|
end
|
|
|
|
def jam_class_schools
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
render 'jam_class_schools', layout: 'web'
|
|
end
|
|
|
|
def jam_class_education
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
render 'jam_class_education', layout: 'web'
|
|
end
|
|
|
|
def jam_class_retailers
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
render 'jam_class_retailers', layout: 'web'
|
|
end
|
|
|
|
def individual_jamtrack
|
|
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
instrument_id = nil
|
|
instrument_name = nil
|
|
instrument_count = 0
|
|
if params[:instrument]
|
|
instrument = params[:instrument].downcase.sub('-', ' ')
|
|
instrument = Instrument.find_by_id(instrument)
|
|
instrument_id = instrument.id if instrument
|
|
instrument_name = instrument.description
|
|
query, next_ptr, instrument_count = JamTrack.index({instrument: instrument_id}, current_user)
|
|
end
|
|
@jam_track = JamTrack.find_by_slug(params[:plan_code])
|
|
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code]) unless @jam_track
|
|
|
|
if @jam_track.nil?
|
|
redirect_to '/client/#jamtrack'
|
|
return
|
|
end
|
|
|
|
band_jam_track_count = @jam_track.band_jam_track_count
|
|
jam_track_count = JamTrack.count
|
|
@title = individual_jamtrack_title(false, params[:generic], @jam_track)
|
|
@description = individual_jamtrack_desc(false, params[:generic], @jam_track)
|
|
@page_data = {jam_track: @jam_track, all_track_count: jam_track_count, band_track_count: band_jam_track_count, band: false, generic: params[:generic], instrument: instrument_name, instrument_id: instrument_id, instrument_count: instrument_count}
|
|
gon.jam_track_plan_code = @jam_track.plan_code if @jam_track
|
|
gon.generic = params[:generic]
|
|
gon.instrument_id = instrument_id
|
|
gon.env = Rails.env
|
|
render 'individual_jamtrack', layout: 'web'
|
|
end
|
|
|
|
|
|
|
|
def individual_jamtrack_band
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
@jam_track = JamTrack.find_by_slug(params[:plan_code])
|
|
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code]) unless @jam_track
|
|
|
|
if @jam_track.nil?
|
|
redirect_to '/client/#jamtrack'
|
|
return
|
|
end
|
|
|
|
band_jam_track_count = @jam_track.band_jam_track_count
|
|
jam_track_count = JamTrack.count
|
|
@title = individual_jamtrack_title(true, params[:generic], @jam_track)
|
|
@description = individual_jamtrack_desc(true, params[:generic], @jam_track)
|
|
@page_data = {jam_track: @jam_track, all_track_count: jam_track_count, band_track_count: band_jam_track_count, band: true, generic: params[:generic]}
|
|
gon.jam_track_plan_code = @jam_track.plan_code if @jam_track
|
|
gon.generic = params[:generic]
|
|
render 'individual_jamtrack', layout: 'web'
|
|
end
|
|
|
|
def individual_jamtrack_v2
|
|
@no_landing_tag = true
|
|
instrument_id = nil
|
|
instrument_name = nil
|
|
instrument_count = 0
|
|
if params[:instrument]
|
|
instrument = params[:instrument].downcase.sub('-', ' ')
|
|
instrument = Instrument.find_by_id(instrument)
|
|
instrument_id = instrument.id if instrument
|
|
instrument_name = instrument.description
|
|
query, next_ptr, instrument_count = JamTrack.index({instrument: instrument_id}, current_user)
|
|
end
|
|
@jam_track = JamTrack.find_by_slug(params[:plan_code])
|
|
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code]) unless @jam_track
|
|
band_jam_track_count = @jam_track.band_jam_track_count
|
|
jam_track_count = JamTrack.count
|
|
@title = individual_jamtrack_title(false, params[:generic], @jam_track)
|
|
@description = individual_jamtrack_desc(false, params[:generic], @jam_track)
|
|
@page_data = {jam_track: @jam_track, all_track_count: jam_track_count, band_track_count: band_jam_track_count, band: false, generic: params[:generic], instrument: instrument_name, instrument_id: instrument_id, instrument_count: instrument_count}
|
|
gon.jam_track_plan_code = @jam_track.plan_code if @jam_track
|
|
gon.generic = params[:generic]
|
|
gon.instrument_id = instrument_id
|
|
render 'individual_jamtrack_v2', layout: 'web'
|
|
end
|
|
|
|
|
|
def individual_jamtrack_band_v2
|
|
@no_landing_tag = true
|
|
@jam_track = JamTrack.find_by_slug(params[:plan_code])
|
|
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code]) unless @jam_track
|
|
band_jam_track_count = @jam_track.band_jam_track_count
|
|
jam_track_count = JamTrack.count
|
|
@title = individual_jamtrack_title(true, params[:generic], @jam_track)
|
|
@description = individual_jamtrack_desc(true, params[:generic], @jam_track)
|
|
@page_data = {jam_track: @jam_track, all_track_count: jam_track_count, band_track_count: band_jam_track_count, band: true, generic: params[:generic]}
|
|
gon.jam_track_plan_code = @jam_track.plan_code if @jam_track
|
|
gon.generic = params[:generic]
|
|
render 'individual_jamtrack_v2', layout: 'web'
|
|
end
|
|
|
|
def individual_jamtrack_v1
|
|
@no_landing_tag = true
|
|
@show_cta_free_jamtrack = true
|
|
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code])
|
|
gon.jam_track_plan_code = params[:plan_code] ? "jamtrack-" + params[:plan_code] : nil
|
|
gon.generic = params[:generic]
|
|
render 'individual_jamtrack_v1', layout: 'web'
|
|
end
|
|
|
|
def individual_jamtrack_band_v1
|
|
@no_landing_tag = true
|
|
@show_cta_free_jamtrack = true
|
|
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code])
|
|
gon.jam_track_plan_code = params[:plan_code] ? "jamtrack-" + params[:plan_code] : nil
|
|
|
|
render 'individual_jamtrack_band_v1', layout: 'web'
|
|
end
|
|
|
|
def product_jamblaster
|
|
enable_olark
|
|
render 'product_jamblaster', layout: 'web'
|
|
end
|
|
|
|
def product_platform
|
|
enable_olark
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
render 'product_platform', layout: 'web'
|
|
end
|
|
|
|
def product_jamtracks
|
|
enable_olark
|
|
gon.generic = true
|
|
gon.just_previews = true
|
|
jam_track = JamTrack.select('plan_code').where(plan_code: Rails.application.config.nominated_jam_track).first
|
|
unless jam_track
|
|
jam_track = JamTrack.first
|
|
end
|
|
|
|
gon.jam_track_plan_code = jam_track.plan_code if jam_track
|
|
render 'product_jamtracks', layout: 'web'
|
|
end
|
|
|
|
def affiliate_program
|
|
render 'affiliate_program', layout: 'web'
|
|
end
|
|
|
|
def redeem_giftcard
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
render 'redeem_giftcard', layout: 'web'
|
|
end
|
|
|
|
def buy_gift_card
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@show_after_black_bar_border = true
|
|
@jam_track = JamTrack.find_by_slug('elton-john-rocket-man')
|
|
@jam_track = JamTrack.first unless @jam_track
|
|
|
|
instrument_id = nil
|
|
instrument_name = nil
|
|
instrument_count = 0
|
|
|
|
band_jam_track_count = @jam_track.band_jam_track_count
|
|
jam_track_count = JamTrack.count
|
|
@title = individual_jamtrack_title(false, params[:generic], @jam_track)
|
|
@description = individual_jamtrack_desc(false, params[:generic], @jam_track)
|
|
@page_data = {jam_track: @jam_track, all_track_count: jam_track_count, band_track_count: band_jam_track_count, band: false, generic: params[:generic], instrument: instrument_name, instrument_id: instrument_id, instrument_count: instrument_count}
|
|
gon.jam_track_plan_code = @jam_track.plan_code if @jam_track
|
|
gon.generic = params[:generic]
|
|
gon.instrument_id = instrument_id
|
|
|
|
render 'buy_gift_card', layout: 'web'
|
|
end
|
|
|
|
def school_student_register
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
|
|
@school = School.find_by_id(params[:id])
|
|
|
|
if @school.nil?
|
|
redirect_to '/signup'
|
|
return
|
|
end
|
|
|
|
@title = 'Become a student with ' + @school.name
|
|
@description = "Using JamKazam, take online lessons with the music school " + @school.name
|
|
@preview = !params[:preview].nil?
|
|
@invitation = SchoolInvitation.find_by_invitation_code(params[:invitation_code]) if params[:invitation_code]
|
|
defaultEmail = ''
|
|
if @invitation
|
|
defaultEmail = @invitation.email
|
|
end
|
|
|
|
|
|
@page_data = {school: @school, invitation_code: params[:invitation_code], defaultEmail: defaultEmail, preview: @preview}
|
|
render 'school_student_register', layout: 'web'
|
|
end
|
|
|
|
def school_teacher_register
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@school = School.find_by_id(params[:id])
|
|
|
|
if @school.nil?
|
|
redirect_to '/signup'
|
|
return
|
|
end
|
|
|
|
|
|
@title = 'Become a teacher with ' + @school.name
|
|
@description = "Using JamKazam, teach online lessons with the music school " + @school.name
|
|
@preview = !params[:preview].nil?
|
|
|
|
|
|
@invitation = SchoolInvitation.find_by_invitation_code(params[:invitation_code]) if params[:invitation_code]
|
|
defaultEmail = ''
|
|
if @invitation
|
|
defaultEmail = @invitation.email
|
|
end
|
|
|
|
|
|
@page_data = {school: @school, invitation_code: params[:invitation_code], defaultEmail: defaultEmail, preview: @preview}
|
|
render 'school_teacher_register', layout: 'web'
|
|
end
|
|
|
|
def school_teacher_list
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@school = School.find_by_id(params[:id])
|
|
|
|
if @school.nil?
|
|
redirect_to '/signup'
|
|
return
|
|
end
|
|
|
|
|
|
@title = 'Our teachers at ' + @school.name
|
|
@description = "View the profile and pick a teacher right for you from " + @school.name
|
|
@preview = !params[:preview].nil?
|
|
|
|
schoolRabl = Rabl::Renderer.json(@school, 'api_schools/show')
|
|
|
|
@page_data = {school: @school, preview: @preview, rabl: schoolRabl}
|
|
render 'school_teacher_list', layout: 'web'
|
|
end
|
|
|
|
|
|
def retailer_teacher_register
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@retailer = Retailer.find_by_id(params[:id])
|
|
|
|
if @retailer.nil?
|
|
redirect_to '/signup'
|
|
return
|
|
end
|
|
|
|
|
|
@title = 'Become a teacher with ' + @retailer.name
|
|
@description = "Using JamKazam, teach online lessons with " + @retailer.name
|
|
@preview = !params[:preview].nil?
|
|
|
|
@invitation = RetailerInvitation.find_by_invitation_code(params[:invitation_code]) if params[:invitation_code]
|
|
defaultEmail = ''
|
|
if @invitation
|
|
defaultEmail = @invitation.email
|
|
end
|
|
|
|
|
|
@page_data = {retailer: @retailer, invitation_code: params[:invitation_code], defaultEmail: defaultEmail, preview: @preview}
|
|
render 'retailer_teacher_register', layout: 'web'
|
|
end
|
|
|
|
def posa_activation
|
|
@no_landing_tag = true
|
|
@landing_tag_play_learn_earn = true
|
|
@retailer = Retailer.find_by_slug(params[:slug])
|
|
|
|
if @retailer.nil?
|
|
redirect_to '/signup'
|
|
return
|
|
end
|
|
|
|
|
|
|
|
@page_data = {retailer: @retailer, has_teachers: @retailer.teachers.count > 0}
|
|
render 'posa_activation', layout: 'web'
|
|
end
|
|
end
|
|
|