From c976c567d7c4e2ecb51ac41a1c285af2ee98bd53 Mon Sep 17 00:00:00 2001 From: Marcin Kulik Date: Mon, 5 Mar 2012 22:52:14 +0100 Subject: [PATCH] Loading indicator --- app/assets/images/loader.gif | Bin 0 -> 16543 bytes .../javascripts/player/player_view.js.coffee | 2 ++ .../javascripts/player/terminal_view.js.coffee | 6 ++++++ app/assets/stylesheets/asciicasts.css.scss | 12 ++++++++++++ 4 files changed, 20 insertions(+) create mode 100644 app/assets/images/loader.gif diff --git a/app/assets/images/loader.gif b/app/assets/images/loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..ba071797d2af80abbd8015bf65ff28f8429ea606 GIT binary patch literal 16543 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 @$el.append(@terminalView.$el) @terminalView.afterInsertedToDom() + @terminalView.showLoadingIndicator() @hudView = new AsciiIo.HudView() @$el.append(@hudView.$el) @@ -32,6 +33,7 @@ class AsciiIo.PlayerView extends Backbone.View @movie.seek(percent) @movie.on 'movie-loaded', (asciicast) => + @terminalView.hideLoadingIndicator() @hudView.setDuration(asciicast.get('duration')) @movie.on 'movie-playback-paused', => diff --git a/app/assets/javascripts/player/terminal_view.js.coffee b/app/assets/javascripts/player/terminal_view.js.coffee index 7fac04f..0031e73 100644 --- a/app/assets/javascripts/player/terminal_view.js.coffee +++ b/app/assets/javascripts/player/terminal_view.js.coffee @@ -45,6 +45,12 @@ class AsciiIo.TerminalView extends Backbone.View height = @$el.height() @$el.css(width: width + 'px', height: height + 'px') + showLoadingIndicator: -> + @$el.append('
') + + hideLoadingIndicator: -> + @$('.loading').remove() + renderLine: (n, data, cursorX) -> html = [] prevBrush = undefined diff --git a/app/assets/stylesheets/asciicasts.css.scss b/app/assets/stylesheets/asciicasts.css.scss index eaff551..4fbb50a 100644 --- a/app/assets/stylesheets/asciicasts.css.scss +++ b/app/assets/stylesheets/asciicasts.css.scss @@ -50,6 +50,18 @@ $color5: #EDC951; overflow-x: hidden; cursor: pointer; + .loading { + background-image: url(image-path('loader.gif')); + background-repeat: no-repeat; + background-position: center; + z-index: 10; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + } + .line { font-size: 12px; /* background-color: black;*/