Commit f04954a2d28cba9eba49afd99026dc4de73bf764
Committed by
Paulo Meireles
1 parent
cc07efdd
Exists in
colab
and in
4 other branches
Assynchornous loading and updating repository state and time
Missing acceptance tests
Showing
8 changed files
with
47 additions
and
38 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | +class Module.Repository | |
| 2 | + constructor: (@project_id, @repository_id) -> | |
| 3 | + | |
| 4 | + poll_state: (last_state) -> | |
| 5 | + $.post '/projects/' + @project_id + '/repositories/' + @repository_id + '/state', | |
| 6 | + last_state: last_state | |
| 7 | + | |
| 8 | + schedule_poll_state: (last_state) -> | |
| 9 | + context = this | |
| 10 | + call = () -> | |
| 11 | + context.poll_state(last_state) | |
| 12 | + | |
| 13 | + setTimeout( call, 15000 ) # Delays in 15s the next call | ... | ... |
app/controllers/repositories_controller.rb
| ... | ... | @@ -12,7 +12,6 @@ class RepositoriesController < ApplicationController |
| 12 | 12 | # GET /projects/1/repositories/1/modules/1.json |
| 13 | 13 | def show |
| 14 | 14 | @configuration = KalibroGem::Entities::Configuration.find(@repository.configuration_id) #FIXME: As soon as the Configuration model gets created refactor this! |
| 15 | - @processing = @repository.last_processing | |
| 16 | 15 | end |
| 17 | 16 | |
| 18 | 17 | # GET projects/1/repositories/new | ... | ... |
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +<p> | |
| 2 | + <strong>State:</strong> | |
| 3 | + <%= @processing.state %> | |
| 4 | +</p> | |
| 5 | + | |
| 6 | +<p> | |
| 7 | + <strong>Creation date:</strong> | |
| 8 | + <%= @processing.date.strftime("%Y/%m/%d at %Hh%M (%z)") %> | |
| 9 | +</p> | |
| 10 | + | |
| 11 | +<% unless @processing.process_times.nil? %> | |
| 12 | + <% @processing.process_times.each do |process_time| %> | |
| 13 | + <p> | |
| 14 | + <strong><%= process_time.state %> time:</strong> | |
| 15 | + <%= humanize_eplased_time(process_time.time) %> | |
| 16 | + </p> | |
| 17 | + <% end %> | |
| 18 | +<% end %> | |
| 0 | 19 | \ No newline at end of file | ... | ... |
app/views/repositories/load_ready_processing.js.erb
| ... | ... | @@ -0,0 +1,2 @@ |
| 1 | +$('div#processing_information').html('<%= escape_javascript(render partial: "processing_information") %>'); | |
| 2 | +Module.Tree.load("<%= escape_javascript(image_tag 'loader.gif') %> Loading data. Please, wait.", <%= @processing.results_root_id %>) | |
| 0 | 3 | \ No newline at end of file | ... | ... |
app/views/repositories/reload_processing.js.erb
| ... | ... | @@ -0,0 +1,3 @@ |
| 1 | +$('div#processing_information').html('<%= escape_javascript(render partial: "processing_information") %>'); | |
| 2 | +repository = new Module.Repository(<%= @repository.project_id %>, <%= @repository.id %>) | |
| 3 | +repository.schedule_poll_state('<%= @processing.state %>') | |
| 0 | 4 | \ No newline at end of file | ... | ... |
app/views/repositories/show.html.erb
| ... | ... | @@ -36,44 +36,20 @@ |
| 36 | 36 | |
| 37 | 37 | <div id="repository-accordion"> |
| 38 | 38 | <h3>Processing information</h3> |
| 39 | - <div> | |
| 40 | - <p> | |
| 41 | - <strong>State:</strong> | |
| 42 | - <%= @processing.state %> | |
| 43 | - </p> | |
| 39 | + <div id="processing_information"><%= image_tag 'loader.gif' %> Loading data. Please, wait.</div> | |
| 44 | 40 | |
| 45 | - <p> | |
| 46 | - <strong>Creation date:</strong> | |
| 47 | - <%= @processing.date.strftime("%Y/%m/%d at %Hh%M (%z)") %> | |
| 48 | - </p> | |
| 41 | + <h3>Modules Tree</h3> | |
| 42 | + <div id="module_tree"><%= image_tag 'loader.gif' %> Loading data. Please, wait.</div> | |
| 49 | 43 | |
| 50 | - <% unless @processing.process_times.nil? %> | |
| 51 | - <% @processing.process_times.each do |process_time| %> | |
| 52 | - <p> | |
| 53 | - <strong><%= process_time.state %> time:</strong> | |
| 54 | - <%= humanize_eplased_time(process_time.time) %> | |
| 55 | - </p> | |
| 56 | - <% end %> | |
| 57 | - <% end %> | |
| 58 | - </div> | |
| 59 | - | |
| 60 | - <% if @processing.ready? %> | |
| 61 | - <h3>Modules Tree</h3> | |
| 62 | - <div id="module_tree"></div> | |
| 63 | - | |
| 64 | - <h3>Metric Results</h3> | |
| 65 | - <div id="metric_results"></div> | |
| 66 | - | |
| 67 | - <% end %> | |
| 44 | + <h3>Metric Results</h3> | |
| 45 | + <div id="metric_results"><%= image_tag 'loader.gif' %> Loading data. Please, wait.</div> | |
| 68 | 46 | </div> |
| 69 | 47 | <script type="text/javascript"> |
| 70 | - <% if @processing.ready? %> | |
| 71 | 48 | $(document).ready(function () { |
| 72 | - Module.Tree.load("<%= escape_javascript(image_tag 'loader.gif') %> Loading data. Please, wait.", <%= @processing.results_root_id %>); | |
| 49 | + (new Module.Repository(<%= @repository.project_id %>, <%= @repository.id %>)).poll_state('') | |
| 73 | 50 | }); |
| 74 | - <% end %> | |
| 75 | 51 | |
| 76 | - //Loads the accorcion | |
| 52 | + //Loads the accordion | |
| 77 | 53 | $(function() { |
| 78 | 54 | $( "#repository-accordion" ).accordion({ |
| 79 | 55 | heightStyle: "content" | ... | ... |
features/repository/show.feature
| ... | ... | @@ -59,10 +59,10 @@ Feature: Show Repository |
| 59 | 59 | And I should see "Configuration" |
| 60 | 60 | And I should see "State" |
| 61 | 61 | And I should see "Creation date" |
| 62 | - And I should not see Metric | |
| 63 | - And I should not see Value | |
| 64 | - And I should not see Weight | |
| 65 | - And I should not see Threshold | |
| 62 | + When I click the "Metric Results" h3 | |
| 63 | + Then I should see "Loading data. Please, wait." | |
| 64 | + When I click the "Modules Tree" h3 | |
| 65 | + Then I should see "Loading data. Please, wait." | |
| 66 | 66 | |
| 67 | 67 | @kalibro_restart @javascript |
| 68 | 68 | Scenario: Should show modules directories root when the process has been finished | ... | ... |
spec/controllers/repositories_controller_spec.rb
| ... | ... | @@ -86,7 +86,6 @@ describe RepositoriesController do |
| 86 | 86 | before :each do |
| 87 | 87 | processing = FactoryGirl.build(:processing) |
| 88 | 88 | |
| 89 | - repository.expects(:last_processing).returns(processing) | |
| 90 | 89 | KalibroGem::Entities::Configuration.expects(:find).with(repository.id).returns(FactoryGirl.build(:configuration)) |
| 91 | 90 | Repository.expects(:find).with(repository.id).returns(repository) |
| 92 | 91 | |
| ... | ... | @@ -101,7 +100,6 @@ describe RepositoriesController do |
| 101 | 100 | before :each do |
| 102 | 101 | processing = FactoryGirl.build(:processing) |
| 103 | 102 | |
| 104 | - repository.expects(:last_processing).returns(processing) | |
| 105 | 103 | KalibroGem::Entities::Configuration.expects(:find).with(repository.id).returns(FactoryGirl.build(:configuration)) |
| 106 | 104 | Repository.expects(:find).with(repository.id).returns(repository) |
| 107 | 105 | ... | ... |