diff --git a/ruby/lib/jam_ruby/models/jam_track_right.rb b/ruby/lib/jam_ruby/models/jam_track_right.rb
index f28410e02..f0749dc94 100644
--- a/ruby/lib/jam_ruby/models/jam_track_right.rb
+++ b/ruby/lib/jam_ruby/models/jam_track_right.rb
@@ -344,7 +344,7 @@ module JamRuby
stats['count'] = result['total'].to_i
stats['signing_count'] = result['signing_count'].to_i
stats['redeemed_count'] = result['redeem_count'].to_i
- stats['redeemed_and_dl_count'] = result['redeem_and_dl_count'].to_i
+ stats['redeemed_and_dl_count'] = result['redeemed_and_dl_count'].to_i
stats['purchased_count'] = stats['count'] - stats['redeemed_count']
stats
end
diff --git a/web/app/assets/javascripts/jam_track_preview.js.coffee b/web/app/assets/javascripts/jam_track_preview.js.coffee
index a02a45896..585b500dd 100644
--- a/web/app/assets/javascripts/jam_track_preview.js.coffee
+++ b/web/app/assets/javascripts/jam_track_preview.js.coffee
@@ -9,7 +9,7 @@ context.JK.JamTrackPreview = class JamTrackPreview
@EVENTS = context.JK.EVENTS
@rest = context.JK.Rest()
@logger = context.JK.logger
- @options = options || {master_shows_duration: false, color:'gray', add_line_break: false}
+ @options = options || {master_shows_duration: false, color:'gray', add_line_break: false, preload_master:false}
@app = app
@jamTrack = jamTrack
@jamTrackTrack = jamTrackTrack
@@ -19,7 +19,9 @@ context.JK.JamTrackPreview = class JamTrackPreview
@instrumentIcon = null
@instrumentName = null
@part = null
+ @loaded = false
@loading = null
+ @loadingText = null
template = $('#template-jam-track-preview')
throw "no jam track preview template" if not template.exists()
@@ -31,6 +33,7 @@ context.JK.JamTrackPreview = class JamTrackPreview
@instrumentName = @root.find('.instrument-name')
@part = @root.find('.part')
@loading = @root.find('.loading')
+ @loadingText = @root.find('.loading-text')
@playButton.on('click', @play)
@stopButton.on('click', @stop)
@@ -91,6 +94,16 @@ context.JK.JamTrackPreview = class JamTrackPreview
if @no_audio
@playButton.addClass('disabled')
@stopButton.addClass('disabled')
+ else
+ if @options.preload_master && @jamTrackTrack.track_type == 'Master'
+ @sound = new Howl({
+ src: @urls,
+ autoplay: false,
+ loop: false,
+ volume: 1.0,
+ preload: true,
+ onload: @onHowlerLoad
+ onend: @onHowlerEnd})
onDestroyed: () =>
@sound.unload()
@@ -108,7 +121,9 @@ context.JK.JamTrackPreview = class JamTrackPreview
@removeNowPlaying()
onHowlerLoad: () =>
- @loading.addClass('hidden')
+ @loaded = true
+ @loading.fadeOut();
+ @loadingText.fadeOut(); #addClass('hidden')
play: (e) =>
if e?
@@ -129,7 +144,9 @@ context.JK.JamTrackPreview = class JamTrackPreview
onload: @onHowlerLoad
onend: @onHowlerEnd})
+ unless @loaded
@loading.removeClass('hidden')
+ @loadingText.removeClass('hidden')
@logger.debug("play issued for jam track preview")
diff --git a/web/app/assets/javascripts/web/individual_jamtrack.js b/web/app/assets/javascripts/web/individual_jamtrack.js
index 9eff40023..82863ad74 100644
--- a/web/app/assets/javascripts/web/individual_jamtrack.js
+++ b/web/app/assets/javascripts/web/individual_jamtrack.js
@@ -44,7 +44,7 @@
$previews.append($element);
- new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false, color:'black', master_adds_line_break: true})
+ new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false, color:'black', master_adds_line_break: true, preload_master:true})
})
$previews.append('
')
diff --git a/web/app/assets/javascripts/web/individual_jamtrack_band.js b/web/app/assets/javascripts/web/individual_jamtrack_band.js
index c05f58772..aaac3ca8c 100644
--- a/web/app/assets/javascripts/web/individual_jamtrack_band.js
+++ b/web/app/assets/javascripts/web/individual_jamtrack_band.js
@@ -34,7 +34,7 @@
$previews.append($element);
- new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false, color:'black', master_adds_line_break:true})
+ new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false, color:'black', master_adds_line_break:true, preload_master:true})
})
$previews.append('
')
diff --git a/web/app/assets/stylesheets/client/jamTrackPreview.css.scss b/web/app/assets/stylesheets/client/jamTrackPreview.css.scss
index 37b871e77..c3cae6e81 100644
--- a/web/app/assets/stylesheets/client/jamTrackPreview.css.scss
+++ b/web/app/assets/stylesheets/client/jamTrackPreview.css.scss
@@ -69,6 +69,19 @@
}
}
+ .loading-text {
+ position:absolute;
+ right:-135px;
+ top:0;
+ padding:0 3px;
+ font-style:italic;
+ z-index:1;
+ -webkit-border-radius:10px;
+ -moz-border-radius:10px;
+ border-radius:10px;
+ border:0 solid black;
+ }
+
.adds-line-break {
display:block;
margin-left:66px;
diff --git a/web/app/assets/stylesheets/client/jamtrack.css.scss b/web/app/assets/stylesheets/client/jamtrack.css.scss
index 0bbce8be2..238465fdd 100644
--- a/web/app/assets/stylesheets/client/jamtrack.css.scss
+++ b/web/app/assets/stylesheets/client/jamtrack.css.scss
@@ -198,6 +198,11 @@
.jam-track-preview {
font-size:11px;
white-space:nowrap;
+
+ .loading-text {
+ right:-115px;
+ background-color:#262626;
+ }
}
.jamtrack-action {
diff --git a/web/app/views/clients/_jam_track_preview.html.slim b/web/app/views/clients/_jam_track_preview.html.slim
index 1fe91fb33..bf6f22d40 100644
--- a/web/app/views/clients/_jam_track_preview.html.slim
+++ b/web/app/views/clients/_jam_track_preview.html.slim
@@ -6,4 +6,5 @@ script type="text/template" id='template-jam-track-preview'
img.instrument-icon hoveraction="instrument" data-instrument-id="" width="24" height="24"
.instrument-name
.part
- .loading.spinner-small.hidden
\ No newline at end of file
+ .loading.spinner-small.hidden
+ .loading-text.hidden preview loading
\ No newline at end of file