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