* VRFS-3449 - updates for direct landing pages
This commit is contained in:
parent
0d075a9568
commit
e7b50ca4a8
|
|
@ -1,6 +1,6 @@
|
|||
<%- headers = ['Artist Name', 'Song Name', 'Direct Landing', 'Generic Direct Landing', 'Band Landing'] -%>
|
||||
<%= CSV.generate_line headers %><%- @jam_tracks.each do |jam_track| -%><%= CSV.generate_line([jam_track.original_artist, jam_track.name,
|
||||
"https://www.jamkazam.com/landing/jamtracks/#{jam_track.short_plan_code}",
|
||||
"https://www.jamkazam.com/landing/jamtracks/#{jam_track.short_plan_code}?generic=1",
|
||||
"https://www.jamkazam.com/landing/jamtracks/band/#{jam_track.short_plan_code}"
|
||||
"https://www.jamkazam.com/landing/jamtracks/#{jam_track.slug}",
|
||||
"https://www.jamkazam.com/landing/jamtracks/#{jam_track.slug}?generic=1",
|
||||
"https://www.jamkazam.com/landing/jamtracks/band/#{jam_track.slug}"
|
||||
]) %><%- end -%>
|
||||
|
|
@ -301,4 +301,5 @@ repair_band_profile.sql
|
|||
jam_track_onboarding_enhancements.sql
|
||||
jam_track_name_drop_unique.sql
|
||||
jam_track_searchability.sql
|
||||
harry_fox_agency.sql
|
||||
harry_fox_agency.sql
|
||||
jam_track_slug.sql
|
||||
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE jam_tracks ADD COLUMN slug VARCHAR(2000) UNIQUE;
|
||||
|
|
@ -444,6 +444,7 @@ module JamRuby
|
|||
jam_track.alternative_license_status = false
|
||||
jam_track.hfa_license_desired = true
|
||||
jam_track.server_fixation_date = Time.now
|
||||
jam_track.slug = metadata['slug'] || jam_track.generate_slug
|
||||
|
||||
if is_tency_storage?
|
||||
jam_track.vendor_id = metadata[:id]
|
||||
|
|
@ -1743,11 +1744,20 @@ module JamRuby
|
|||
def remove_s3_special_chars(filename)
|
||||
filename.tr('/&@:,$=+?;\^`><{}[]#%~|', '')
|
||||
end
|
||||
|
||||
def generate_slugs
|
||||
JamTrack.all.each do |jam_track|
|
||||
jam_track.generate_slug
|
||||
jam_track.save!
|
||||
end
|
||||
end
|
||||
|
||||
def onboarding_exceptions
|
||||
JamTrack.all.each do |jam_track|
|
||||
jam_track.onboarding_exceptions
|
||||
end
|
||||
end
|
||||
|
||||
def synchronize_all(options)
|
||||
importers = []
|
||||
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ module JamRuby
|
|||
validates :hfa_license_number, numericality: {only_integer: true}, :allow_nil => true
|
||||
validates :hfa_song_code, length: {maximum: 200}
|
||||
validates :album_title, length: {maximum: 200}
|
||||
validates :slug, uniqueness: true
|
||||
|
||||
validates_format_of :reproduction_royalty_amount, with: /^\d+\.*\d{0,4}$/, :allow_blank => true
|
||||
validates_format_of :licensor_royalty_amount, with: /^\d+\.*\d{0,4}$/, :allow_blank => true
|
||||
|
|
@ -431,5 +432,15 @@ module JamRuby
|
|||
plan_code[prefix.length..-1]
|
||||
end
|
||||
|
||||
# http://stackoverflow.com/questions/4308377/ruby-post-title-to-slug
|
||||
def sluggarize(field)
|
||||
field.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
|
||||
end
|
||||
|
||||
def generate_slug
|
||||
self.slug = sluggarize(original_artist) + '-' + sluggarize(name)
|
||||
puts "Self.slug #{self.slug}"
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ context.JK.JamTrackPreview = class JamTrackPreview
|
|||
@playButton = @root.find('.play-button')
|
||||
@stopButton = @root.find('.stop-button')
|
||||
@instrumentIcon = @root.find('.instrument-icon')
|
||||
@instrumentPart = @root.find('.instrument-part')
|
||||
@instrumentName = @root.find('.instrument-name')
|
||||
@part = @root.find('.part')
|
||||
@loading = @root.find('.loading')
|
||||
|
|
@ -64,7 +65,7 @@ context.JK.JamTrackPreview = class JamTrackPreview
|
|||
if @options.master_adds_line_break
|
||||
part = '"' + @jamTrack.name + '"' + ' by ' + @jamTrack.original_artist
|
||||
|
||||
@part.html("#{part}") if part != ''
|
||||
@part.text("#{part}") if part != ''
|
||||
@part.addClass('adds-line-break')
|
||||
else
|
||||
|
||||
|
|
@ -79,6 +80,7 @@ context.JK.JamTrackPreview = class JamTrackPreview
|
|||
@part.text("(#{part})") if part != ''
|
||||
|
||||
|
||||
@instrumentPart.text(@instrumentName.text() + ' ' + @part.text())
|
||||
|
||||
if @jamTrackTrack.preview_mp3_url?
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ context = window
|
|||
|
||||
watchVideo: (e) ->
|
||||
e.preventDefault()
|
||||
window.open("/popups/youtube/player?id=askHvcCoNfw", 'What Are JamTracks?', 'scrollbars=yes,toolbar=no,status=no,height=282,width=500')
|
||||
window.open("/popups/youtube/player?id=askHvcCoNfw", 'What Are JamTracks?', 'scrollbars=yes,toolbar=no,status=no,height=540,width=960')
|
||||
|
||||
render: () ->
|
||||
|
||||
|
|
@ -14,7 +14,7 @@ context = window
|
|||
else if @props.generic?
|
||||
header = "Backing Tracks + Free Amazing App = Unmatched Experience"
|
||||
else
|
||||
header = "#{@props.jam_track.name} Backing Track by #{@props.jam_track.original_artist}"
|
||||
header = "\"#{@props.jam_track.name}\" Backing Track by #{@props.jam_track.original_artist}"
|
||||
|
||||
|
||||
`<div className="one_by_two">
|
||||
|
|
|
|||
|
|
@ -41,20 +41,27 @@ rest = context.JK.Rest()
|
|||
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 src="/assets/web/button_cta_jamtrack_free.png" />
|
||||
{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} AC/DC backing tracks</a>
|
||||
<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#/jamtrack/search">or browse all {this.props.all_track_count} backing tracks!</a>
|
||||
<a href="/client?search=#/jamtrack/search">or browse all {this.props.all_track_count} backing tracks!</a>
|
||||
</div>
|
||||
</div>`
|
||||
})
|
||||
|
|
@ -21,16 +21,27 @@
|
|||
margin-left:10px;
|
||||
}
|
||||
|
||||
.instrument-part {
|
||||
display:inline-block;
|
||||
white-space:nowrap;
|
||||
overflow:hidden;
|
||||
text-overflow:ellipsis;
|
||||
vertical-align: middle;
|
||||
margin-left:10px;
|
||||
}
|
||||
|
||||
.instrument-name {
|
||||
display:inline;
|
||||
vertical-align: middle;
|
||||
margin-left:10px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
.part {
|
||||
display:inline;
|
||||
vertical-align: middle;
|
||||
margin-left:4px;
|
||||
display:none;
|
||||
}
|
||||
.play-button, .stop-button {
|
||||
vertical-align:middle;
|
||||
|
|
|
|||
|
|
@ -48,12 +48,10 @@ body.web.landing_jamtrack.individual_jamtrack {
|
|||
}
|
||||
}
|
||||
.watch-video {
|
||||
position:absolute;
|
||||
bottom:25px;
|
||||
position:relative;
|
||||
top:40px;
|
||||
text-align:center;
|
||||
display:block;
|
||||
width: 50%;
|
||||
left: 20%;
|
||||
font-size:16px;
|
||||
}
|
||||
|
||||
|
|
@ -92,6 +90,10 @@ body.web.landing_jamtrack.individual_jamtrack {
|
|||
|
||||
.jam-track-preview {
|
||||
font-size:12px;
|
||||
|
||||
.instrument-part {
|
||||
width:175px
|
||||
}
|
||||
}
|
||||
|
||||
.cta-holder {
|
||||
|
|
|
|||
|
|
@ -70,26 +70,28 @@ class LandingsController < ApplicationController
|
|||
|
||||
def individual_jamtrack
|
||||
@no_landing_tag = true
|
||||
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code])
|
||||
@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]}
|
||||
gon.jam_track_plan_code = params[:plan_code] ? "jamtrack-" + params[:plan_code] : nil
|
||||
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_band
|
||||
@no_landing_tag = true
|
||||
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code])
|
||||
@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 = params[:plan_code] ? "jamtrack-" + params[:plan_code] : nil
|
||||
gon.jam_track_plan_code = @jam_track.plan_code if @jam_track
|
||||
gon.generic = params[:generic]
|
||||
render 'individual_jamtrack', layout: 'web'
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ script type="text/template" id='template-jam-track-preview'
|
|||
a href="#" class='play-button {{data.color}}'
|
||||
a.hidden href="#" class='stop-button {{data.color}}'
|
||||
img.instrument-icon hoveraction="instrument" data-instrument-id="" width="24" height="24"
|
||||
.instrument-part
|
||||
.instrument-name
|
||||
.part
|
||||
.loading.spinner-small.hidden
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ SitemapGenerator::Sitemap.create do
|
|||
add(corp_about_path, priority: 0.9)
|
||||
|
||||
JamTrack.all.each do |jam_track|
|
||||
shortened_plan_code = jam_track.short_plan_code
|
||||
add(individual_jamtrack_path(shortened_plan_code), priority:0.9)
|
||||
add(individual_jamtrack_band_path(shortened_plan_code), priority:0.9)
|
||||
slug = jam_track.slug
|
||||
add(individual_jamtrack_path(slug), priority:0.9)
|
||||
add(individual_jamtrack_band_path(slug), priority:0.9)
|
||||
end
|
||||
|
||||
Recording.popular_recordings.each do |recording|
|
||||
|
|
|
|||
|
|
@ -82,6 +82,10 @@ namespace :jam_tracks do
|
|||
JamTrackImporter.onboarding_exceptions
|
||||
end
|
||||
|
||||
task generate_slugs: :environment do |task, arg|
|
||||
JamTrackImporter.generate_slugs
|
||||
end
|
||||
|
||||
task sync_all: :environment do |task, args|
|
||||
JamTrackImporter.synchronize_all(skip_audio_upload:false)
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue