Commit 1c31fda6eed536f74ceeef71e7b2f12cb866ea45

Authored by Alessandro Palmeira + Carlos Morais
Committed by Carlos Morais
1 parent c72e0722

[Mezuro] Ajax selecting partials

plugins/mezuro/public/javascripts/dynamic.js
1 1 function dynamic($) {
2   - $('.module-result-link').click(show_module_result);
  2 + $.get(endpoint('project_state'), {}, select_project_partial);
3 3 }
4 4  
5 5 function endpoint(action){
6   - var profile = jQuery('#ids').attr('data-profile');
7   - var project = jQuery('#ids').attr('data-content');
  6 + var profile = jQuery('#project-content').attr('data-profile');
  7 + var project = jQuery('#project-content').attr('data-content');
8 8 return '/profile/' + profile + '/plugins/mezuro/' + action + '/' + project;
9 9 }
10 10  
  11 +function select_project_partial(state){
  12 + var action;
  13 + if (state == 'ERROR')
  14 + action = 'project_error';
  15 + else if (state == 'READY')
  16 + action = 'project_result';
  17 + else
  18 + action = 'project_processing';
  19 + jQuery.get(endpoint(action), {}, show_project_content);
  20 +}
  21 +
  22 +function show_project_content(content){
  23 + jQuery('#project-content').html(content);
  24 + jQuery('.module-result-link').click(show_module_result);
  25 + return false;
  26 +}
  27 +
11 28 function show_module_result(){
12 29 var module_name = jQuery(this).attr('data-module-name');
13 30 jQuery('#module-result').html("Loading results for " + module_name + "...");
14   - jQuery.get(endpoint('module_result'), {module_name: module_name}, show_result_table);
  31 + jQuery.get(endpoint('module_result'), { module_name: module_name }, show_result_table);
15 32 return false;
16 33 }
17 34  
18 35 function show_result_table(content){
19 36 jQuery('#module-result').html(content);
20 37 }
21   -
22   -function show_autoreload($){
23   - jQuery('#autoreload').html('Loading results for ...' + project_name); // #FIXME
24   - jQuery.get(endpoint('project_result'), {project_name: project_name}, show_page_with_results);
25   - return false;
26   -}
27   -
28   -function show_page_with_results(content){
29   - var done = true; // FIXME; test the content in some way
30   - if (done) {
31   - jQuery('#autoreload').html(content);
32   - } else {
33   - var wait = 10; // FIXME; how many seconds to wait?
34   - setTimeout(function() {
35   - show_autoreload(jQuery);
36   - }, wait * 1000);
37   - }
38   -}
39 38 \ No newline at end of file
... ...
plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb
... ... @@ -59,10 +59,9 @@ class MezuroPluginProfileControllerTest < ActionController::TestCase
59 59 should 'get project processing' do
60 60 create_project_content
61 61 Kalibro::Client::ProjectClient.expects(:project).with(@name).returns(@project)
62   - @project.expects(:state).returns("LOADING")
63 62 get :project_processing, :profile => @profile.identifier, :id => @content.id
64 63 assert_response 200
65   - assert_select('h3', 'Service is loading Qt-Calculator...')
  64 + assert_select('h3', 'Service is processing Qt-Calculator...')
66 65 end
67 66  
68 67 should 'get error state if project has error' do
... ...
plugins/mezuro/views/content_viewer/_project_processing.rhtml
1   -<h3><%= _('Service is ') + project.state.downcase + ' ' + project.name + '...' %></h3>
2 1 \ No newline at end of file
  2 +<h3><%= _('Service is processing ') + project.name + '...' %></h3>
3 3 \ No newline at end of file
... ...
plugins/mezuro/views/content_viewer/show_project.rhtml
... ... @@ -29,15 +29,9 @@
29 29  
30 30 <br />
31 31  
32   -<% if ! @project.error.nil? %>
33   - <%= render :partial => 'content_viewer/project_error', :locals => { :project => @project } %>
34   -<% elsif @project.state.end_with?('ING') #Loading or analyzing%>
35   - <%= render :partial => 'content_viewer/project_processing', :locals => { :project => @project } %>
36   -<% elsif @project.state == 'READY' %>
37   - <%= render :partial => 'content_viewer/project_result', :locals => { :project_result => @page.project_result } %>
38   -<% end %>
39   -
40   -<div id="ids" data-profile="<%= @page.profile.identifier %>" data-content='<%= @page.id %>'/>
  32 +<div id="project-content" data-profile="<%= @page.profile.identifier %>" data-content='<%= @page.id %>'>
  33 + <%= _('Loading project content...') %>
  34 +</div>
41 35  
42 36 <script type="text/javascript">
43 37 jQuery(dynamic);
... ...