From f04954a2d28cba9eba49afd99026dc4de73bf764 Mon Sep 17 00:00:00 2001 From: Rafael Reggiani Manzo Date: Mon, 2 Dec 2013 17:58:15 -0200 Subject: [PATCH] Assynchornous loading and updating repository state and time --- app/assets/javascripts/repository.js.coffee | 13 +++++++++++++ app/controllers/repositories_controller.rb | 1 - app/views/repositories/_processing_information.html.erb | 18 ++++++++++++++++++ app/views/repositories/load_ready_processing.js.erb | 2 ++ app/views/repositories/reload_processing.js.erb | 3 +++ app/views/repositories/show.html.erb | 38 +++++++------------------------------- features/repository/show.feature | 8 ++++---- spec/controllers/repositories_controller_spec.rb | 2 -- 8 files changed, 47 insertions(+), 38 deletions(-) create mode 100644 app/assets/javascripts/repository.js.coffee create mode 100644 app/views/repositories/_processing_information.html.erb diff --git a/app/assets/javascripts/repository.js.coffee b/app/assets/javascripts/repository.js.coffee new file mode 100644 index 0000000..998c79e --- /dev/null +++ b/app/assets/javascripts/repository.js.coffee @@ -0,0 +1,13 @@ +class Module.Repository + constructor: (@project_id, @repository_id) -> + + poll_state: (last_state) -> + $.post '/projects/' + @project_id + '/repositories/' + @repository_id + '/state', + last_state: last_state + + schedule_poll_state: (last_state) -> + context = this + call = () -> + context.poll_state(last_state) + + setTimeout( call, 15000 ) # Delays in 15s the next call diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 254cd63..f990507 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -12,7 +12,6 @@ class RepositoriesController < ApplicationController # GET /projects/1/repositories/1/modules/1.json def show @configuration = KalibroGem::Entities::Configuration.find(@repository.configuration_id) #FIXME: As soon as the Configuration model gets created refactor this! - @processing = @repository.last_processing end # GET projects/1/repositories/new diff --git a/app/views/repositories/_processing_information.html.erb b/app/views/repositories/_processing_information.html.erb new file mode 100644 index 0000000..155dc4d --- /dev/null +++ b/app/views/repositories/_processing_information.html.erb @@ -0,0 +1,18 @@ +

+ State: + <%= @processing.state %> +

+ +

+ Creation date: + <%= @processing.date.strftime("%Y/%m/%d at %Hh%M (%z)") %> +

+ +<% unless @processing.process_times.nil? %> + <% @processing.process_times.each do |process_time| %> +

+ <%= process_time.state %> time: + <%= humanize_eplased_time(process_time.time) %> +

+ <% end %> +<% end %> \ No newline at end of file diff --git a/app/views/repositories/load_ready_processing.js.erb b/app/views/repositories/load_ready_processing.js.erb index e69de29..53a6766 100644 --- a/app/views/repositories/load_ready_processing.js.erb +++ b/app/views/repositories/load_ready_processing.js.erb @@ -0,0 +1,2 @@ +$('div#processing_information').html('<%= escape_javascript(render partial: "processing_information") %>'); +Module.Tree.load("<%= escape_javascript(image_tag 'loader.gif') %> Loading data. Please, wait.", <%= @processing.results_root_id %>) \ No newline at end of file diff --git a/app/views/repositories/reload_processing.js.erb b/app/views/repositories/reload_processing.js.erb index e69de29..b77db6f 100644 --- a/app/views/repositories/reload_processing.js.erb +++ b/app/views/repositories/reload_processing.js.erb @@ -0,0 +1,3 @@ +$('div#processing_information').html('<%= escape_javascript(render partial: "processing_information") %>'); +repository = new Module.Repository(<%= @repository.project_id %>, <%= @repository.id %>) +repository.schedule_poll_state('<%= @processing.state %>') \ No newline at end of file diff --git a/app/views/repositories/show.html.erb b/app/views/repositories/show.html.erb index a30fea3..8803489 100644 --- a/app/views/repositories/show.html.erb +++ b/app/views/repositories/show.html.erb @@ -36,44 +36,20 @@

Processing information

-
-

- State: - <%= @processing.state %> -

+
<%= image_tag 'loader.gif' %> Loading data. Please, wait.
-

- Creation date: - <%= @processing.date.strftime("%Y/%m/%d at %Hh%M (%z)") %> -

+

Modules Tree

+
<%= image_tag 'loader.gif' %> Loading data. Please, wait.
- <% unless @processing.process_times.nil? %> - <% @processing.process_times.each do |process_time| %> -

- <%= process_time.state %> time: - <%= humanize_eplased_time(process_time.time) %> -

- <% end %> - <% end %> -
- - <% if @processing.ready? %> -

Modules Tree

-
- -

Metric Results

-
- - <% end %> +

Metric Results

+
<%= image_tag 'loader.gif' %> Loading data. Please, wait.