From be1b507354cee5abe30f20f617328da92e77db65 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 28 Feb 2017 17:22:00 +0800 Subject: [PATCH] =?UTF-8?q?ajax=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 17 +++++++++++++++-- app/views/projects/_act_training_tasks.html.erb | 5 +++-- app/views/projects/_project_activities.html.erb | 4 +++- app/views/projects/task_execute.js.erb | 3 ++- .../training_tasks/_action_status.html.erb | 10 +++++++++- 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 2f83e8476..af8a9dacb 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -901,7 +901,20 @@ class ProjectsController < ApplicationController begin res = uri_exec uri, params # 任务开启成功后创建一条留言提示,并发布 - @training_task.update_attribute(:status, 2) + # @training_task.update_attribute(:status, 2) + # 轮询获取 + for i in 0..10 do + sleep(10) + status = TrainingTask.where(:id => @training_task.id).first.try(:status) + if (status == 1 || status == 0) + @training_task.status = status + break + if i == 120 + break + end + end + end + return rescue Exception => e puts e @@ -948,7 +961,7 @@ class ProjectsController < ApplicationController def training_task_status status = params[:status].to_i task_id = params[:taskId] - message = Base64.decode64(params[:msg]) + message = Base64.decode64(params[:msg]) unless params[:msg].blank? begin @training_task = TrainingTask.find(task_id) # 如果已经执行成功过,则不重复执行 diff --git a/app/views/projects/_act_training_tasks.html.erb b/app/views/projects/_act_training_tasks.html.erb index a0251c144..a7403f948 100644 --- a/app/views/projects/_act_training_tasks.html.erb +++ b/app/views/projects/_act_training_tasks.html.erb @@ -1,3 +1,4 @@ +<% project = Project.find(project_id) %> <% unless activity.author.nil? %>
@@ -11,7 +12,7 @@ TO <%= link_to activity.project.name.to_s+" | 实训任务", project_training_tasks_path(activity.project), :class => "newsBlue ml15"%>
- <% if !@project.is_child_training_project? && User.current.logged? && (is_project_manager?(User.current.id, project_id) || activity.author_id == User.current.id) %> + <% if !project.is_child_training_project? && User.current.logged? && (is_project_manager?(User.current.id, project_id) || activity.author_id == User.current.id) %>
  • @@ -46,7 +47,7 @@
    <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => activity} %>
    - <% if @project.is_child_training_project? %> + <% if project.is_child_training_project? %>
    <%= render :partial => "training_tasks/action_status", :locals => {:activity => activity} %>
    diff --git a/app/views/projects/_project_activities.html.erb b/app/views/projects/_project_activities.html.erb index 7a2689759..534cde37d 100644 --- a/app/views/projects/_project_activities.html.erb +++ b/app/views/projects/_project_activities.html.erb @@ -42,7 +42,9 @@ <%= render :partial => 'projects/act_issues', :locals => {:activity => activity.forge_act, :user_activity_id => activity.id, :project_id => activity.project_id} %> <% when "TrainingTask" %> <% if User.current.admin? || is_project_manager?(User.current.id, @project.id) || is_project_manager?(User.current, @project.try(:forked_from_project_id)) %> - <%= render :partial => 'projects/act_training_tasks', :locals => {:activity => activity.forge_act, :user_activity_id => activity.id, :project_id => activity.project_id} %> +
    + <%= render :partial => 'projects/act_training_tasks', :locals => {:activity => activity.forge_act, :user_activity_id => activity.id, :project_id => activity.project_id} %> +
    <% end %> <% when "Message" %> diff --git a/app/views/projects/task_execute.js.erb b/app/views/projects/task_execute.js.erb index e6528db39..114ab6960 100644 --- a/app/views/projects/task_execute.js.erb +++ b/app/views/projects/task_execute.js.erb @@ -1,2 +1,3 @@ $("#training_project_task_status_<%= @training_task.id %>").html('<%= escape_javascript( render :partial => 'training_tasks/action_status', :locals => {:activity => @training_task}) %>'); -$("#training_task_details").html('<%= escape_javascript( render :partial => 'training_tasks/training_task_details', :locals => {:activity => @training_task, :project_id => @project.id}) %>'); \ No newline at end of file +$("#training_task_details").html('<%= escape_javascript( render :partial => 'training_tasks/training_task_details', :locals => {:activity => @training_task, :project_id => @project.id}) %>'); +$("#project_show_training_task_<%= @training_task.project_id %>").html('<%= escape_javascript( render :partial => 'projects/act_training_tasks', :locals => {:activity => @training_task, :user_activity_id => @training_task.id, :project_id => @training_task.project_id}) %>'); \ No newline at end of file diff --git a/app/views/training_tasks/_action_status.html.erb b/app/views/training_tasks/_action_status.html.erb index ed5a48dca..0f813b69f 100644 --- a/app/views/training_tasks/_action_status.html.erb +++ b/app/views/training_tasks/_action_status.html.erb @@ -6,11 +6,19 @@ 当前任务正在后台测评中,稍后将显示您的任务完成情况...... <% else %> <% if User.current.member_of?(@project) && @project.is_child_training_project? %> - <%= link_to "提交评测", task_execute_project_path(@project, :training_task_id => activity.id), :class => "task-display-span bBlue mt10", :remote => true %> +
    + <%= link_to "提交评测", task_execute_project_path(@project, :training_task_id => activity.id), :class => "task-display-span bBlue mt10", :onclick => "training_task_submmit();", :remote => true %> +
    <% end %> <% end %>
+ +