diff --git a/app/assets/images/play-button-1.png b/app/assets/images/play-button-1.png new file mode 100644 index 0000000..bc81f5f Binary files /dev/null and b/app/assets/images/play-button-1.png differ diff --git a/app/assets/javascripts/player/movie.js.coffee b/app/assets/javascripts/player/movie.js.coffee index 563a9ce..c7f7e94 100644 --- a/app/assets/javascripts/player/movie.js.coffee +++ b/app/assets/javascripts/player/movie.js.coffee @@ -2,7 +2,7 @@ class AsciiIo.Movie MIN_DELAY: 0.01 SPEED: 1.0 - constructor: (@model) -> + constructor: (@model, @autoPlay) -> @reset() @startTimeReporter() _.extend(this, Backbone.Events) @@ -22,7 +22,8 @@ class AsciiIo.Movie @model.fetch success: => @trigger('movie-loaded', @model) - @play() + if @autoPlay + @play() timing: -> @model.get('stdout_timing_data') diff --git a/app/assets/javascripts/player/player_view.js.coffee b/app/assets/javascripts/player/player_view.js.coffee index c4e287b..d09ee83 100644 --- a/app/assets/javascripts/player/player_view.js.coffee +++ b/app/assets/javascripts/player/player_view.js.coffee @@ -1,7 +1,7 @@ class AsciiIo.PlayerView extends Backbone.View initialize: (options) -> - @movie = new AsciiIo.Movie(@model) + @movie = new AsciiIo.Movie(@model, options.autoPlay) @movie.load() @terminalView = new AsciiIo.TerminalView( @@ -35,6 +35,8 @@ class AsciiIo.PlayerView extends Backbone.View @movie.on 'movie-loaded', (asciicast) => @terminalView.hideLoadingIndicator() @hudView.setDuration(asciicast.get('duration')) + unless @options.autoPlay + @terminalView.showToggleOverlay() @movie.on 'movie-playback-paused', => @hudView.onPause() diff --git a/app/assets/javascripts/player/terminal_view.js.coffee b/app/assets/javascripts/player/terminal_view.js.coffee index 0031e73..07d208a 100644 --- a/app/assets/javascripts/player/terminal_view.js.coffee +++ b/app/assets/javascripts/player/terminal_view.js.coffee @@ -27,6 +27,7 @@ class AsciiIo.TerminalView extends Backbone.View onClick: -> @trigger('terminal-click') + @hideToggleOverlay() clearScreen: -> # this.lineData.length = 0; @@ -51,6 +52,12 @@ class AsciiIo.TerminalView extends Backbone.View hideLoadingIndicator: -> @$('.loading').remove() + showToggleOverlay: -> + @$el.append('
') + + hideToggleOverlay: -> + @$('.start-prompt').remove() + renderLine: (n, data, cursorX) -> html = [] prevBrush = undefined diff --git a/app/assets/stylesheets/player.css.scss b/app/assets/stylesheets/player.css.scss index 6e90c07..2385c55 100644 --- a/app/assets/stylesheets/player.css.scss +++ b/app/assets/stylesheets/player.css.scss @@ -58,6 +58,18 @@ $color5: #EDC951; bottom: 0; } + .start-prompt { + background-image: url(image-path('play-button-1.png')); + background-repeat: no-repeat; + background-position: center; + z-index: 20; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + } + .line { font-size: 12px; /* background-color: black;*/ diff --git a/app/helpers/asciicasts_helper.rb b/app/helpers/asciicasts_helper.rb index fae75eb..3f7cbc0 100644 --- a/app/helpers/asciicasts_helper.rb +++ b/app/helpers/asciicasts_helper.rb @@ -26,7 +26,9 @@ module AsciicastsHelper time_ago_in_words(asciicast.created_at) + " ago" end - def player_script(asciicast) + def player_script(asciicast, options = {}) + auto_play = options.key?(:auto_play) ? !!options[:auto_play] : false + return < $(function() { @@ -34,7 +36,8 @@ module AsciicastsHelper el: $('.player'), cols: #{asciicast.terminal_columns}, lines: #{asciicast.terminal_lines}, - model: new AsciiIo.Asciicast({ id: #{asciicast.id} }) + model: new AsciiIo.Asciicast({ id: #{asciicast.id} }), + autoPlay: #{auto_play} }); }); diff --git a/app/views/asciicasts/_asciicast.html.erb b/app/views/asciicasts/_asciicast.html.erb index 5e50352..e49804f 100644 --- a/app/views/asciicasts/_asciicast.html.erb +++ b/app/views/asciicasts/_asciicast.html.erb @@ -11,4 +11,4 @@ <% end %>
-<%= player_script(asciicast) %> +<%= player_script(asciicast, :auto_play => local_assigns[:auto_play]) %> diff --git a/app/views/home/show.html.erb b/app/views/home/show.html.erb index 1b68ed0..9f1e9cd 100644 --- a/app/views/home/show.html.erb +++ b/app/views/home/show.html.erb @@ -4,7 +4,7 @@ <%= render :partial => 'asciicasts/asciicast', :object => @asciicast, - :locals => { :skip_description => true } %> + :locals => { :skip_description => true, :auto_play => false } %>

<%= link_to 'Use it!', installation_path, :class => "btn btn-primary btn-large" %>