Pr0 play button

openid
Marcin Kulik 13 years ago
parent 71f8fed196
commit 306c1619ab

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

@ -2,7 +2,7 @@ class AsciiIo.Movie
MIN_DELAY: 0.01 MIN_DELAY: 0.01
SPEED: 1.0 SPEED: 1.0
constructor: (@model) -> constructor: (@model, @autoPlay) ->
@reset() @reset()
@startTimeReporter() @startTimeReporter()
_.extend(this, Backbone.Events) _.extend(this, Backbone.Events)
@ -22,7 +22,8 @@ class AsciiIo.Movie
@model.fetch @model.fetch
success: => success: =>
@trigger('movie-loaded', @model) @trigger('movie-loaded', @model)
@play() if @autoPlay
@play()
timing: -> timing: ->
@model.get('stdout_timing_data') @model.get('stdout_timing_data')

@ -1,7 +1,7 @@
class AsciiIo.PlayerView extends Backbone.View class AsciiIo.PlayerView extends Backbone.View
initialize: (options) -> initialize: (options) ->
@movie = new AsciiIo.Movie(@model) @movie = new AsciiIo.Movie(@model, options.autoPlay)
@movie.load() @movie.load()
@terminalView = new AsciiIo.TerminalView( @terminalView = new AsciiIo.TerminalView(
@ -35,6 +35,8 @@ class AsciiIo.PlayerView extends Backbone.View
@movie.on 'movie-loaded', (asciicast) => @movie.on 'movie-loaded', (asciicast) =>
@terminalView.hideLoadingIndicator() @terminalView.hideLoadingIndicator()
@hudView.setDuration(asciicast.get('duration')) @hudView.setDuration(asciicast.get('duration'))
unless @options.autoPlay
@terminalView.showToggleOverlay()
@movie.on 'movie-playback-paused', => @movie.on 'movie-playback-paused', =>
@hudView.onPause() @hudView.onPause()

@ -27,6 +27,7 @@ class AsciiIo.TerminalView extends Backbone.View
onClick: -> onClick: ->
@trigger('terminal-click') @trigger('terminal-click')
@hideToggleOverlay()
clearScreen: -> clearScreen: ->
# this.lineData.length = 0; # this.lineData.length = 0;
@ -51,6 +52,12 @@ class AsciiIo.TerminalView extends Backbone.View
hideLoadingIndicator: -> hideLoadingIndicator: ->
@$('.loading').remove() @$('.loading').remove()
showToggleOverlay: ->
@$el.append('<div class="start-prompt">')
hideToggleOverlay: ->
@$('.start-prompt').remove()
renderLine: (n, data, cursorX) -> renderLine: (n, data, cursorX) ->
html = [] html = []
prevBrush = undefined prevBrush = undefined

@ -58,6 +58,18 @@ $color5: #EDC951;
bottom: 0; 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 { .line {
font-size: 12px; font-size: 12px;
/* background-color: black;*/ /* background-color: black;*/

@ -26,7 +26,9 @@ module AsciicastsHelper
time_ago_in_words(asciicast.created_at) + " ago" time_ago_in_words(asciicast.created_at) + " ago"
end end
def player_script(asciicast) def player_script(asciicast, options = {})
auto_play = options.key?(:auto_play) ? !!options[:auto_play] : false
return <<EOS.html_safe return <<EOS.html_safe
<script> <script>
$(function() { $(function() {
@ -34,7 +36,8 @@ module AsciicastsHelper
el: $('.player'), el: $('.player'),
cols: #{asciicast.terminal_columns}, cols: #{asciicast.terminal_columns},
lines: #{asciicast.terminal_lines}, lines: #{asciicast.terminal_lines},
model: new AsciiIo.Asciicast({ id: #{asciicast.id} }) model: new AsciiIo.Asciicast({ id: #{asciicast.id} }),
autoPlay: #{auto_play}
}); });
}); });
</script> </script>

@ -11,4 +11,4 @@
<% end %> <% end %>
</div> </div>
<%= player_script(asciicast) %> <%= player_script(asciicast, :auto_play => local_assigns[:auto_play]) %>

@ -4,7 +4,7 @@
<%= render :partial => 'asciicasts/asciicast', <%= render :partial => 'asciicasts/asciicast',
:object => @asciicast, :object => @asciicast,
:locals => { :skip_description => true } %> :locals => { :skip_description => true, :auto_play => false } %>
<p> <p>
<%= link_to 'Use it!', installation_path, :class => "btn btn-primary btn-large" %> <%= link_to 'Use it!', installation_path, :class => "btn btn-primary btn-large" %>

Loading…
Cancel
Save