* VRFS-352 - instrument-centric landing page
This commit is contained in:
parent
3ee71634b3
commit
0076f0205a
|
|
@ -328,7 +328,7 @@ module JamRuby
|
|||
|
||||
end
|
||||
|
||||
query = query.where("jam_tracks.status = ?", 'Production') unless user.admin
|
||||
query = query.where("jam_tracks.status = ?", 'Production') unless user && user.admin
|
||||
|
||||
unless options[:genre].blank?
|
||||
query = query.joins(:genres)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ context = window
|
|||
render: () ->
|
||||
|
||||
header = null
|
||||
if @props.band
|
||||
if @props.instrument
|
||||
header = "We Have #{@props.instrument_count} JamTracks With #{@props.instrument} Parts - Play Along With Your Favorites!"
|
||||
else if @props.band
|
||||
header = "#{@props.jam_track.original_artist} Backing Tracks - Complete Multitracks"
|
||||
else if @props.generic?
|
||||
header = "Backing Tracks + Free Amazing App = Unmatched Experience"
|
||||
|
|
@ -39,29 +39,48 @@ rest = context.JK.Rest()
|
|||
{processing: false}
|
||||
|
||||
render: () ->
|
||||
bandBrowseUrl = "/client?artist=#{this.props.jam_track.original_artist}#/jamtrack/search"
|
||||
|
||||
|
||||
isFree = context.JK.currentUserFreeJamTrack
|
||||
|
||||
|
||||
if isFree
|
||||
img =`<img src="/assets/web/button_cta_jamtrack_free.png" />`
|
||||
else
|
||||
img =`<img src="/assets/web/buy-jamtrack-cta.png" />`
|
||||
|
||||
`<div className="cta-holder">
|
||||
<div className="checkout">
|
||||
<a href="/client#/jamtrack/search" onClick={this.redeem} className="cta-free-jamtrack" alt="ClICK HERE TO PICK YOUR FIRST JAMTRACK FREE!">
|
||||
{img}
|
||||
</a>
|
||||
<span className="value-indicator">$1.99 value</span>
|
||||
</div>
|
||||
<br/>
|
||||
<div className="browse-band">
|
||||
<a href={bandBrowseUrl}>or browse all {this.props.band_track_count} {this.props.jam_track.original_artist} backing tracks</a>
|
||||
</div>
|
||||
<br/>
|
||||
<div className="browse-all">
|
||||
<a href="/client?search=#/jamtrack/search">or browse all {this.props.all_track_count} backing tracks!</a>
|
||||
</div>
|
||||
</div>`
|
||||
|
||||
if @props.instrument?
|
||||
getFreeText = "Get \"#{this.props.jam_track.name}\" JamTrack Free Now"
|
||||
instrumentBrowseUrl = "/client?instrument=#{this.props.instrument_id}#/jamtrack/filter"
|
||||
|
||||
`<div className="cta-holder instrument-selection">
|
||||
<div className="checkout">
|
||||
<a href="/client#/jamtrack/search" onClick={this.redeem} className="cta-free-jamtrack" alt="ClICK HERE TO PICK YOUR FIRST JAMTRACK FREE!">
|
||||
{getFreeText}
|
||||
</a>
|
||||
<div className="browse-instrument">
|
||||
<a href={instrumentBrowseUrl}>Or Browse All {this.props.instrument_count} JamTracks With {this.props.instrument} Parts<br/>And Get Your Favorite Free!</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>`
|
||||
else
|
||||
bandBrowseUrl = "/client?artist=#{this.props.jam_track.original_artist}#/jamtrack/search"
|
||||
|
||||
`<div className="cta-holder">
|
||||
<div className="checkout">
|
||||
<a href="/client#/jamtrack/search" onClick={this.redeem} className="cta-free-jamtrack" alt="ClICK HERE TO PICK YOUR FIRST JAMTRACK FREE!">
|
||||
{img}
|
||||
</a>
|
||||
<span className="value-indicator">$1.99 value</span>
|
||||
</div>
|
||||
<br/>
|
||||
<div className="browse-band">
|
||||
<a href={bandBrowseUrl}>or browse all {this.props.band_track_count} {this.props.jam_track.original_artist} backing tracks</a>
|
||||
</div>
|
||||
<br/>
|
||||
<div className="browse-all">
|
||||
<a href="/client?search=#/jamtrack/search">or browse all {this.props.all_track_count} backing tracks!</a>
|
||||
</div>
|
||||
</div>`
|
||||
})
|
||||
|
|
@ -12,10 +12,33 @@
|
|||
var $jamTracksButton = null;
|
||||
var $ctaJamTracksButton = null;
|
||||
|
||||
function computeWeight (jam_track_track, instrument) {
|
||||
var weight;
|
||||
|
||||
if (jam_track_track.track_type == 'Master') {
|
||||
weight = 0
|
||||
}
|
||||
else if (jam_track_track.instrument.id == instrument) {
|
||||
weight = 1 + jam_track_track.position
|
||||
}
|
||||
else {
|
||||
weight = 10000 + jam_track_track.position
|
||||
}
|
||||
return weight;
|
||||
}
|
||||
|
||||
function fetchJamTrack() {
|
||||
rest.getJamTrackWithArtistInfo({plan_code: gon.jam_track_plan_code})
|
||||
.done(function (jam_track) {
|
||||
|
||||
if(gon.instrument_id) {
|
||||
jam_track.tracks.sort(function(a, b) {
|
||||
var aWeight = computeWeight(a, gon.instrument_id)
|
||||
var bWeight = computeWeight(b, gon.instrument_id)
|
||||
return aWeight - bWeight
|
||||
})
|
||||
}
|
||||
|
||||
context._.each(jam_track.tracks, function (track) {
|
||||
|
||||
var $element = $('<div class="jam-track-preview-holder"></div>')
|
||||
|
|
|
|||
|
|
@ -108,6 +108,18 @@ body.web.landing_jamtrack.individual_jamtrack {
|
|||
}
|
||||
|
||||
.cta-holder {
|
||||
|
||||
&.instrument-selection {
|
||||
a {
|
||||
font-size: 18px;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
.browse-instrument {
|
||||
margin-top:20px;
|
||||
text-decoration:underline;
|
||||
}
|
||||
}
|
||||
margin-top:30px;
|
||||
text-align:center;
|
||||
.checkout {
|
||||
|
|
|
|||
|
|
@ -70,18 +70,30 @@ class LandingsController < ApplicationController
|
|||
|
||||
def individual_jamtrack
|
||||
@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]}
|
||||
@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', layout: 'web'
|
||||
end
|
||||
|
||||
|
||||
def individual_jamtrack_band
|
||||
@no_landing_tag = true
|
||||
@jam_track = JamTrack.find_by_slug(params[:plan_code])
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ SampleApp::Application.routes.draw do
|
|||
match '/landing/kick4', to: 'landings#watch_overview_kick4', via: :get, as: 'landing_kick4'
|
||||
match '/landing/jamtracks/:plan_code', to: 'landings#individual_jamtrack', via: :get, as: 'individual_jamtrack'
|
||||
match '/landing/jamtracks/band/:plan_code', to: 'landings#individual_jamtrack_band', via: :get, as: 'individual_jamtrack_band'
|
||||
match '/landing/jamtracks/:instrument/:plan_code', to: 'landings#individual_jamtrack', via: :get, as: 'individual_jamtrack_instrument'
|
||||
# these are the older versions of the landing pages
|
||||
match '/landing/jamtracks/v1/:plan_code', to: 'landings#individual_jamtrack_v1', via: :get, as: 'individual_jamtrack_v1'
|
||||
match '/landing/jamtracks/v1/band/:plan_code', to: 'landings#individual_jamtrack_band_v1', via: :get, as: 'individual_jamtrack_band_v1'
|
||||
|
|
|
|||
|
|
@ -120,5 +120,23 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
|
|||
find('h1', text: 'check out')
|
||||
find('h3', text: 'OR SIGN UP USING YOUR EMAIL')
|
||||
end
|
||||
|
||||
it "instrument version" do
|
||||
visit "/landing/jamtracks/electric%20guitar/acdc-backinblack"
|
||||
|
||||
find('h1', "We Have 1 JamTracks With Electric Guitar Parts - Play Along With Your Favorites!")
|
||||
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
|
||||
if track.master?
|
||||
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
|
||||
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:'Master Mix')
|
||||
else
|
||||
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]')
|
||||
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
|
||||
end
|
||||
end
|
||||
find('a.cta-free-jamtrack').trigger(:click)
|
||||
find('h1', text: 'check out')
|
||||
find('h3', text: 'OR SIGN UP USING YOUR EMAIL')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue