版本库局部刷新;测评提交结果展示;隐藏展示
This commit is contained in:
parent
1aa86067ee
commit
a7dbc3e822
|
|
@ -46,8 +46,7 @@ class GamesController < ApplicationController
|
|||
logger.info("7777************#{@entries} ")
|
||||
end
|
||||
logger.info("88888************#{@entries} ")
|
||||
@latest_output = @game.latest_output.try(:out_put).to_s
|
||||
outputs = @game.outputs
|
||||
@test_cases = @game_challenge.test_sets
|
||||
(@myshixun.games.count == @game_challenge.position && @game.status ==2) ? @had_done = 1 : @had_done = 0
|
||||
if outputs.count == 0
|
||||
@results = []
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
class TestSet < ActiveRecord::Base
|
||||
attr_accessible :challenge_id, :input, :output, :game_id
|
||||
default_scope :order => 'id desc'
|
||||
attr_accessible :challenge_id, :input, :output, :game_id, :actual_output
|
||||
belongs_to :challenge
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,27 +1,80 @@
|
|||
<div class="col-width fl content-submit ml15 mt15">
|
||||
<div class="panel-header ">
|
||||
<h3 >操作</h3>
|
||||
</div>
|
||||
<div class="content-submitbox">
|
||||
<a href="#" class="task-btn mb10">保存修改</a>
|
||||
<% if @game.status == 0 %>
|
||||
<%= link_to "提交评测", { :controller => 'games',
|
||||
:action => "game_build",
|
||||
:id => @game,
|
||||
:myshixun_id => @myshixun},
|
||||
:class => "task-btn task-btn-green",
|
||||
:onclick => "training_task_submmit();",
|
||||
:remote => true %>
|
||||
<% elsif @game.status == 2 %>
|
||||
<a class="task-btn mb10">评测中..</a>
|
||||
<% elsif @game.status == 1 %>
|
||||
<%= link_to "下 一 步 ", {:controller => 'games',
|
||||
:action => "next_step",
|
||||
:id => @game,
|
||||
:myshixun_id => @myshixun},
|
||||
:class => "task-btn task-btn-green",
|
||||
:onclick => "training_task_submmit();",
|
||||
:remote => true %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<span class="mt10 -flex ml15">耗时:<%= game_spend_time(@game.created_at, @game.updated_at) %></span>
|
||||
<% if @game.status == 0 %>
|
||||
<a href="javascript:void(0)" class="task-btn task-btn-blue mr15 mt8" onclick="training_task_submmit();">评测</a>
|
||||
<% elsif @game.status == 1 %>
|
||||
<a class="task-btn mb10">评测中..</a>
|
||||
<% elsif @game.status == 2 %>
|
||||
<%= link_to "下 一 步 ", {:controller => 'games',:action => "next_step", :id => @game,
|
||||
:myshixun_id => @myshixun},
|
||||
:class => "task-btn task-btn-blue mr15 mt8",
|
||||
:onclick => "training_task_submmit();",
|
||||
:remote => true %>
|
||||
<% end %>
|
||||
|
||||
<script>
|
||||
function training_task_submmit(){
|
||||
var i = 0;
|
||||
$("#ajax-indicator").show();
|
||||
$("#game_commit").html("<a class='task-btn mb10'>评测中..</a>");
|
||||
$.ajax({
|
||||
url: '<%= game_build_myshixun_game_path(@game, :myshixun_id => @myshixun) %>',
|
||||
success: function (){
|
||||
//移除载入
|
||||
var temp = $("#ajax-indicator").children('span')[0];
|
||||
$("#ajax-indicator").children('span')[0].remove();
|
||||
$("#ajax-indicator").css('border', 0);
|
||||
$("#ajax-indicator").css('padding', 0);
|
||||
|
||||
var intId = setInterval(function(){
|
||||
var ajaxTimeoutTest = $.ajax({
|
||||
url: '<%= game_status_myshixun_game_path(@game, :myshixun_id => @myshixun) %>',
|
||||
timeout : 50000,
|
||||
data:'test',
|
||||
success:function(data){
|
||||
//如果查到了,就退出
|
||||
// i变量用来统计setInterval执行了多少次,便于统计访问时间
|
||||
i = i + 1;
|
||||
if(data.status == 2 || data.status == 0){
|
||||
clearInterval(intId);
|
||||
// 显示载入
|
||||
$("#ajax-indicator").html(temp);
|
||||
$("#ajax-indicator").css('border', "1px solid #bbb");
|
||||
$("#ajax-indicator").css('padding', "0.6em");
|
||||
var html = bt('t:exec_results',{status: data.status, results: data.results, had_done: data.had_done});
|
||||
$("#code_results").html(html);
|
||||
console.log(data.output)
|
||||
$("#game_test_output").html(data.output)
|
||||
var html = bt('t:extend_exec_results',{status: data.status, output: data.output, results: data.results, had_done: data.had_done});
|
||||
$("#extend_code_results").html(html);
|
||||
if(data.status == 2){
|
||||
if( data.had_done == 0 ) {
|
||||
var htmlvalue = "<%= j (render :partial => 'games/pass_game_show', :locals => { :game=> @game, :myshixun => @myshixun, :had_done => 0}) %>";
|
||||
}else{
|
||||
var htmlvalue = "<%= j (render :partial => 'games/pass_game_show', :locals => { :game=> @game, :myshixun => @myshixun, :had_done => 1}) %>";
|
||||
}
|
||||
// 传递具体屏幕的宽高,实现不同浏览器与不同分辨率都能撑满屏幕
|
||||
pop_box_new2(htmlvalue, window.innerWidth, window.innerHeight);
|
||||
}
|
||||
}
|
||||
// 访问30次,即60s后后台还未改变状态即执行
|
||||
if(i == 30){
|
||||
$.ajax({
|
||||
url: '<%= change_status_myshixun_game_path(@game, :myshixun_id => @myshixun) %>',
|
||||
success:function(data){
|
||||
clearInterval(intId);
|
||||
var html = bt('t:exec_results',{status: data.status, output: data.output, results: data.results, had_done: data.had_done});
|
||||
$("#code_results").html(html);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
complete: function(XMLHttpRequest,status){if(status=='timeout'){
|
||||
ajaxTimeoutTest.abort();
|
||||
clearInterval(intId);
|
||||
}}
|
||||
});
|
||||
}, 2000);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
|
@ -15,45 +15,27 @@
|
|||
<div class="-layout-v -fit">
|
||||
<div class="-flex -scroll task-padding16">
|
||||
<p class="color-orange mb10"><i class="fa fa-exclamation-circle font-16" ></i><span class="ml5 mr5">0/11</span> 编译错误</p>
|
||||
<div class="-task-ces-box mb10 clearfix">
|
||||
<div class="-task-ces-top">
|
||||
<i class="fa fa-caret-down" ></i>
|
||||
<span>测试集 1</span>
|
||||
</div>
|
||||
<div class="-task-ces-info">
|
||||
<ul>
|
||||
<li><span class="-task-ces-info-left color-blue">输入:</span><span>param1:1</span></li>
|
||||
<li><span class="-task-ces-info-left color-blue">实际输出:</span><span>空</span></li>
|
||||
<li><span class="-task-ces-info-left color-blue">期望输出:</span><span>3</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="-task-ces-box mb10 clearfix">
|
||||
<div class="-task-ces-top">
|
||||
<i class="fa fa-caret-right" ></i>
|
||||
<span>测试集 2</span>
|
||||
</div>
|
||||
<div class="-task-ces-info">
|
||||
</div>
|
||||
</div>
|
||||
<div class="-task-ces-box mb10 clearfix">
|
||||
<div class="-task-ces-top">
|
||||
<i class="fa fa-caret-right" ></i>
|
||||
<span>测试集 3</span>
|
||||
<i class="fa fa-lock fr mt8" ></i>
|
||||
</div>
|
||||
<div class="-task-ces-info">
|
||||
</div>
|
||||
</div>
|
||||
<div class="-task-ces-box mb10 clearfix">
|
||||
<div class="-task-ces-top">
|
||||
<i class="fa fa-caret-right" ></i>
|
||||
<span>测试集 4</span>
|
||||
<i class="fa fa-exclamation-circle color-orange fr mt8" ></i>
|
||||
</div>
|
||||
<div class="-task-ces-info">
|
||||
</div>
|
||||
</div>
|
||||
<% @test_cases.each_with_index do |test_case, index| %>
|
||||
<div class="-task-ces-box mb10 clearfix">
|
||||
<div class="-task-ces-top">
|
||||
<i class="fa fa-caret-down" ></i>
|
||||
<span>测试集 <%= index + 1 %></span>
|
||||
<% unless test_case.is_public? %>
|
||||
<i class="fa fa-lock fr mt8" ></i>
|
||||
<% end %>
|
||||
<% unless test_case.result? %>
|
||||
<i class="fa fa-exclamation-circle color-orange fr mt8" ></i>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="-task-ces-info">
|
||||
<ul>
|
||||
<li><span class="-task-ces-info-left color-blue">输入:</span><span><%= test_case.input %></span></li>
|
||||
<li><span class="-task-ces-info-left color-blue">实际输出:</span><span><%= test_case.actual_output %></span></li>
|
||||
<li><span class="-task-ces-info-left color-blue">期望输出:</span><span><%= test_case.output %></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -69,11 +69,12 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--按钮的操作-->
|
||||
<div class="-layout-h -center -bg-grey-90 -grey-20 -bg-darkblack " style="height:48px; ">
|
||||
<div class="-flex -layout-h" >
|
||||
<span class="mt10 -flex ml15">耗时:1天5小时10分钟</span>
|
||||
<a href="#" class="task-btn task-btn-blue mr15 mt8">测评</a>
|
||||
<div class="-flex -layout-h" id="game_operate_action">
|
||||
<%= render :partial => "games/code_actions" %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
class AddActualOutputToTestSets < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :test_sets, :actual_output, :string
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
class AddHiddenToTestSets < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :test_sets, :is_public, :boolean, :default => true
|
||||
add_column :test_sets, :result, :boolean, :default => true
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue