Merge branch 'dev_shixun_project' of https://git.trustie.net/jacknudt/trustieforge into dev_shixun_project

Conflicts:
	app/views/shixuns/_settings_challenges_action_tip.html.erb
This commit is contained in:
huang 2017-03-17 17:16:56 +08:00
commit 7771f48eaf
9 changed files with 256 additions and 82 deletions

View File

@ -6,7 +6,9 @@
<div class="panel-list">
<% @challenges.each_with_index do |challenge, index| -%>
<div class=" clearfix panel-inner" id="shixun_index_<%= index %>">
<h4 class="fl panel-inner-title "><i class="fa fa-dot-circle-o font-18 color-green mr5"></i><span class="color-red mr10">第<%= challenge.position %>关</span><%= challenge.subject %></h4>
<h4 class="fl panel-inner-title "><i class="fa fa-dot-circle-o font-18 color-green mr5"></i><span class="color-red mr10">第<%= challenge.position %>关</span>
<%= link_to challenge.subject, shixun_challenge_path(@shixun.id, challenge), :target => "_blank" %>
</h4>
<p class="fr" style="display: none" id="shixun_icon_<%= index %>">
<% unless challenge.position < 2 %>
<a href="<%= index_up_shixun_challenge_path(challenge, :shixun_id => @shixun) %>" title="上移" data-remote="true"><i class="fa fa-long-arrow-up color-grey font-16 mr5" ></i></a>

View File

@ -23,58 +23,98 @@
</script>
<div id="shixun_form">
<li class="clearfix">
<label class=" panel-form-label fl"><span class="c_red mr5">*</span>名称:</label>
<label class="panel-form-label fl"><span class="c_red mr5">*</span>名称:</label>
<%= f.text_field :subject, :class => "panel-form-width-690 panel-form-height-30 fl", :no_label => true, :placeholder => "请输入当前任务的名称(此信息将提前泄露给学员)" %>
<span style="display: none" class="c_red ml90" id="new_shixun_name">任务名称不能为空</span>
</li>
<li class="clearfix">
<label class=" panel-form-label fl">预备知识:</label>
<label class="panel-form-label fl">预备知识:</label>
<%= f.text_area :ready_knowledge, :class => "panel-form-width-690 panel-form-height-150 fl task-textarea-pd", :no_label => true, :placeholder => "请输入完成当前任务依赖的知识点或者其它相关信息,指导学员完成任务" %>
</li>
<li class="clearfix">
<label class=" panel-form-label fl"><span class="c_red mr5">*</span>过关任务:</label>
<label class="panel-form-label fl"><span class="c_red mr5">*</span>过关任务:</label>
<%= f.text_area :task_pass, :class => "panel-form-width-690 panel-form-height-150 fl task-textarea-pd", :no_label => true %>
<span style="display: none" class="c_red ml90" id="new_shixun_pass">过关任务不能为空</span>
</li>
<li class="clearfix">
<label class=" panel-form-label fl">样例设置:</label>
<ul class="fl task-bg-grey">
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb fl" name="sample_inputs_label">样例1</span>
<span class="color-grey fr" style="font-size:12px;">温馨提示:输入样例供学员参考。</span>
<a href="javascript:void(0)" title="增加" class="sample_icon_add"><i class="fa fa-plus-circle color-grey font-16 ml10 fl mt12"></i></a>
</p>
<input type="text" class="panel-form-width-670 panel-form-height-30 mb10" name="sample[input][]" id="textarea_sample_input_test" placeholder="样例输入" />
<input type="text" class="panel-form-width-670 panel-form-height-30" name="sample[output][]" id="textarea_sample_output_test" placeholder="样例输出" />
</li>
</ul>
<% if params[:action] == "edit" && @challenge.challenge_samples.count > 0 %>
<% @challenge.challenge_samples.each_with_index do |sample, index| %>
<label class="panel-form-label fl">样例设置:</label>
<ul class="fl task-bg-grey">
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb fl" name="sample_inputs_label">样例<%= index + 1%></span>
<% if index == 0 %>
<span class="color-grey fr" style="font-size:12px;">温馨提示:输入样例供学员参考。</span>
<% end %>
<a href="javascript:void(0)" title="增加" class="sample_icon_add"><i class="fa fa-plus-circle color-grey font-16 ml10 fl mt12"></i></a>
<% if index > 0 %>
<a href="javascript:void(0)" title="删除" class="sample_icon_remove"><i class="fa fa-times-circle color-grey font-16 ml10 fl mt12"></i></a>
<% end %>
</p>
<input type="text" class="panel-form-width-670 panel-form-height-30 mb10" name="sample[input][]" id="textarea_sample_input_test" placeholder="样例输入" value="<%= sample.input %>" />
<input type="text" class="panel-form-width-670 panel-form-height-30" name="sample[output][]" id="textarea_sample_output_test" placeholder="样例输出" value="<%= sample.output %>" />
</li>
</ul>
<% end %>
<% else %>
<label class="panel-form-label fl">样例设置:</label>
<ul class="fl task-bg-grey">
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb fl" name="sample_inputs_label">样例1</span>
<span class="color-grey fr" style="font-size:12px;">温馨提示:输入样例供学员参考。</span>
<a href="javascript:void(0)" title="增加" class="sample_icon_add"><i class="fa fa-plus-circle color-grey font-16 ml10 fl mt12"></i></a>
</p>
<input type="text" class="panel-form-width-670 panel-form-height-30 mb10" name="sample[input][]" id="textarea_sample_input_test" placeholder="样例输入" />
<input type="text" class="panel-form-width-670 panel-form-height-30" name="sample[output][]" id="textarea_sample_output_test" placeholder="样例输出" />
</li>
</ul>
<% end %>
</li>
<li class="clearfix">
<label class=" panel-form-label fl">测试集设置:</label>
<ul class="fl task-bg-grey ">
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb fl" name="inputs_label">测试1</span>
<span class="color-grey fr" style="font-size:12px;">温馨提示:在学员"提交评测"时进行自动检测。</span>
<a href="javascript:void(0);" title="增加" class="test_icon_add"><i class="fa fa-plus-circle color-grey font-16 ml10 fl mt12"></i></a>
</p>
<input type="text" class="panel-form-width-670 panel-form-height-30 mb10" name="program[input][]" id="textarea_input_test" placeholder="测试输入" />
<input type="text" class="panel-form-width-670 panel-form-height-30" name="program[output][]" id="textarea_output_test" placeholder="测试输出" />
</li>
</ul>
<% if params[:action] == "edit" && @challenge.test_sets.count > 0 %>
<% @challenge.test_sets.each_with_index do |test, index| %>
<label class="panel-form-label fl">测试集设置:</label>
<ul class="fl task-bg-grey">
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb fl" name="inputs_label">测试<%= index + 1 %></span>
<% if index == 0%>
<span class="color-grey fr" style="font-size:12px;">温馨提示:在学员"提交评测"时进行自动检测。</span>
<% end %>
<a href="javascript:void(0);" title="增加" class="test_icon_add"><i class="fa fa-plus-circle color-grey font-16 ml10 fl mt12"></i></a>
<% if index > 0 %>
<a href="javascript:void(0);" title="删除" class="test_icon_remove"><i class="fa fa-times-circle color-grey font-16 ml10 fl mt12"></i></a>
<% end %>
</p>
<input type="text" class="panel-form-width-670 panel-form-height-30 mb10" name="program[input][]" id="textarea_input_test" value="<%= test.input %>"/>
<input type="text" class="panel-form-width-670 panel-form-height-30" name="program[output][]" id="textarea_output_test" value="<%= test.output %>" />
</li>
</ul>
<% end %>
<% else %>
<label class="panel-form-label fl">测试集设置:</label>
<ul class="fl task-bg-grey">
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb fl" name="inputs_label">测试1</span>
<span class="color-grey fr" style="font-size:12px;">温馨提示:在学员"提交评测"时进行自动检测。</span>
<a href="javascript:void(0);" title="增加" class="test_icon_add"><i class="fa fa-plus-circle color-grey font-16 ml10 fl mt12"></i></a>
</p>
<input type="text" class="panel-form-width-670 panel-form-height-30 mb10" name="program[input][]" id="textarea_input_test" placeholder="测试输入" />
<input type="text" class="panel-form-width-670 panel-form-height-30" name="program[output][]" id="textarea_output_test" placeholder="测试输出" />
</li>
</ul>
<% end %>
</li>
<li class="clearfix">
<label class=" panel-form-label fl"> 知识/技能点:</label>
<div class="fl task-bd-grey">
<div class="task-tag tag-grey mb10 mr10 fl">
<button data-dismiss="alert" class="close fr mt3 ml5" type="button">×</button>
使用交互模式的 Python3 解释器
</div>
<button class="close fl mt3 mr10" type="button" onclick="$('#add_shixun_skill').slideToggle();">+</button>
<button class="close fl mt3 mr10" type="button" onclick="$('#add_shixun_skill').slideToggle();" id="add_knowledge">+</button>
<div class="task-tag tag-grey mb10 mr10 fl undis" id="add_shixun_skill">
<button data-dismiss="alert" class="close fr mt3 ml5" type="button" onclick="$('#add_shixun_skill').slideToggle();">×</button>
<input type="text" class="task-tag-input" placeholder="请输入知识/技能点" />
<input type="text" class="task-tag-input" onblur="add_tag();" placeholder="请输入知识/技能点" />
</div>
</div>
</li>
@ -91,11 +131,30 @@
</li>
<li class="clearfix">
<a href="javascript:void(0)" class="task-btn task-btn-green fr mr10" onclick="challenge_create()">保存</a>
<a href="javascript:void(0)" class=" task-btn fr mr10">取消</a>
<a href="javascript:void(0)" class="task-btn fr mr10">取消</a>
</li>
</div>
<script type="text/javascript">
function add_tag(){
var num = $(".task-bd-grey").children('div').length;
var val = $(".task-tag-input").val().trim();
if (val != ""){
testLength = $(".task-tag-input").val().trim().length;
$("#add_knowledge").before("<div class='task-tag tag-grey mb10 mr10 fl' id='knowledge_" + num + "'>" +
"<button data-dismiss='alert' class='close fr mt3 ml5' type='button' onclick='close_tag(this)'>×</button>" +
"<input style='width:"+ testLength*12 +"px' class='knowledge_frame' name='knowledge[input][]' value='" + val +"'>" +
" </div>");
$(".task-tag-input").attr("value","");
}
}
function close_tag(thisObj){
// 获取父节点的id
var obj = thisObj.parentNode.id;
$("#"+obj).remove();
}
$(function () {
var bt = baidu.template;
bt.LEFT_DELIMITER = '<!';

View File

@ -5,34 +5,135 @@
<script>
sd_create_editor_from_data(<%= @challenge.id %>, null, "100%", "<%= @challenge.class.name %>");
</script>
<div class="mt10 mb10" id =issue_show_total"">
<div class="banner-big f16 fontGrey3">
任务详情
<a href="<%= new_shixun_challenge_path(@shixun) %>" class="sy_btn_green fr" >新建</a>
</div>
<div class="container-big mt10" style="float:left;">
<div class="pro_page_box">
<div class="problem_main borderBottomNone">
<div id="issue_detail_show">
<%= @challenge.subject %>
</div>
<div>
<%= link_to "提交评测", {:controller => 'challenges', :action => "challenge_build", :id => @challenge, :shixun_id => @shixun}, :class => "task-display-span bBlue mt10", :onclick => "training_task_submmit();", :remote => true %>
</div>
<div class="task-pm-content mb20">
<div class="task-pm-box mt20">
<div class="panel-header clearfix">
<h3 class="fl mt5">阶段详情</h3>
</div>
<div class="panel-form">
<div class="clearfix mb20">
<h3 class="fl panel-inner-title"><span class="color-red mr10">第<%= @challenge.position %>关</span><%= @challenge.subject %></h3>
<p class="fr">
<a href="#" title="编辑"><i class="fa fa-pencil-square-o color-grey font-16 mr5"></i></a>
<a href="#" title="删除"><i class="fa fa-trash-o color-grey font-16 mr5"></i></a>
<a href="#" title="复制"><i class="fa fa-files-o color-grey font-16 mr5"></i></a>
</p>
</div>
<% unless @outputs.nil? %>
<% @outputs.each do |output| %>
<%= output %>
<% end %>
<% end %>
<!--problem_main end-->
<div style="clear: both;"></div>
<ul>
<li class="clearfix">
<label class="panel-form-label fl">预备知识:</label>
<div class="fl task-bg-grey">
<%= @challenge.ready_knowledge.blank? ? "无" : (h @challenge.ready_knowledge.html_safe) %>
</div>
</li>
<li class="clearfix">
<label class="panel-form-label fl"><span class="c_red mr5">*</span>过关任务:</label>
<div class="fl task-bg-grey">
<%= h @challenge.task_pass.html_safe %>
</div>
</li>
<li class="clearfix">
<label class="panel-form-label fl">样例设置:</label>
<ul class="fl task-bg-grey">
<% if @challenge.challenge_samples.count > 0 %>
<% @challenge.challenge_samples.each_with_index do |sample, index| %>
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb">样例<%= index + 1 %></span>
</p>
<div class="clearfix"><span class="fl fb">样例输入:</span><p class="fl"><%= sample.input %></p></div>
<div class="clearfix"><span class="fl fb">样例输出:</span><p class="fl"><%= sample.output %></p></div>
</li>
<% end %>
<% else %>
<% end %>
</ul>
</li>
<li class="clearfix">
<label class="panel-form-label fl">测试集设置:</label>
<ul class="fl task-bg-grey">
<% if @challenge.test_sets.count > 0 %>
<% @challenge.test_sets.each_with_index do |test, index| %>
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb">测试集<%= index + 1 %></span>
</p>
<div class="clearfix"><span class="fl fb">测试输入:</span><p class="fl"><%= test.input %></p></div>
<div class="clearfix"><span class="fl fb">测试输出:</span><p class="fl"><%= test.output %></p></div>
</li>
<% end %>
<% else %>
<% end %>
</ul>
</li>
<li class="clearfix">
<label class="panel-form-label fl"> 知识/技能点:</label>
<div class="fl task-bd-grey">
<div class="task-tag tag-grey mb10 mr10 fl">
使用交互模式的 Python3 解释器
</div>
<div class="task-tag tag-grey mb10 mr10 fl">
简单使用 vim 编写脚本文件并执行这个脚本文件
</div>
<div class="task-tag tag-grey mb10 mr10 fl">
Python 语法:缩进
</div>
<div class="task-tag tag-grey mb10 mr10 fl">
规范代码风格和注释
</div>
</div>
</li>
<li class="clearfix">
<label class=" panel-form-label fl"> 参考答案:</label>
<div class="fl task-bg-grey">
<%= @challenge.answer.blank? ? "无" : (h @challenge.answer.html_safe) %>
</div>
</li>
<li class="clearfix">
<label class="panel-form-label fl"><span class="c_red mr5">*</span>分值设定:</label>
<div class="fl task-bg-grey">
<%= @challenge.score %>分
</div>
</li>
<li class="clearfix">
<a href="#" class="task-btn task-btn-green fr">保存</a>
<a href="#" class="task-btn fr mr10">取消</a>
</li>
</ul>
</div>
</div>
<div class="cl"></div>
</div>
<% if false %>
<div class="mt10 mb10" id ="issue_show_total">
<div class="banner-big f16 fontGrey3">
任务详情
<a href="<%= new_shixun_challenge_path(@shixun) %>" class="sy_btn_green fr" >新建</a>
</div>
<div class="container-big mt10" style="float:left;">
<div class="pro_page_box">
<div class="problem_main borderBottomNone">
<div id="issue_detail_show">
<%= @challenge.subject %>
</div>
<div>
<%= link_to "提交评测", {:controller => 'challenges', :action => "challenge_build", :id => @challenge, :shixun_id => @shixun}, :class => "task-display-span bBlue mt10", :onclick => "training_task_submmit();", :remote => true %>
</div>
</div>
<% unless @outputs.nil? %>
<% @outputs.each do |output| %>
<%= output %>
<% end %>
<% end %>
<!--problem_main end-->
<div style="clear: both;"></div>
</div>
</div>
<div class="cl"></div>
</div>
<% end %>

View File

@ -18,10 +18,12 @@
<a href="<%= @zip_path %>" class="btn_zipdown fl ml10" onclick="">ZIP下载</a>
<% end %>
<div class="fr ">
<div class="fr">
<label class="pro-fenzhi-label fl">克隆网址</label>
<input type="text" id="copy_rep_content" class="pro-fenzhi-input fl" value="<%= @repos_url.to_s.lstrip %>"/>
<a href="javascript:void(0);" alt="点击复制版本库地址" onclick="jsCopy()" title="点击复制版本库地址" class="fl pro-fenzhi-a"><i class="icon-copy"></i></a>
<a href="javascript:void(0);" alt="点击复制版本库地址" onclick="jsCopy()" title="点击复制版本库地址" class="fl pro-fenzhi-a">
<i class="fa fa-copy" style="font-size:12px"></i>
</a>
</div>
</div>

View File

@ -2,9 +2,6 @@
<%= render :partial => "shixuns/settings_challenges_result_tip" %>
</div>
<div class="task-setting-tab">
<div id="training_project_filter_tip">
<%= render :partial => "shixuns/settings_challenges_action_tip" %>
</div>
<div class="panel-form">
<ul>
<%= form_tag(url_for(:controller => 'shixuns', :action => 'add_script', :id => @shixun), :method => "post", :remote => true, :id => "project_script_form") do %>
@ -14,6 +11,9 @@
<span id ="shixun_script_tip" class="c_red ml85" style="display: none">内容不能为空</span>
</li>
<li class="clearfix">
<div id="training_project_filter_tip">
<%= render :partial => "shixuns/settings_challenges_action_tip" %>
</div>
<a href="javascript:void(0)" class="task-btn task-btn-green fr mr10" onclick="project_script_commit()">保存</a>
</li>
<% end %>

View File

@ -2,6 +2,6 @@
<% if @shixun.status == 1 %>
<a class="fr sy_btn_green mb10">已开启</a>
<% else %>
<%= link_to "开启实训", shixun_job_create_shixun_path(@shixun), :class => "fr sy_btn_green mb10", :remote => true %>
<%= link_to "开启实训", shixun_job_create_shixun_path(@shixun), :class => "task-btn task-btn-green fr mr10", :remote => true %>
<% end %>
<% end %>

View File

@ -1,3 +1,3 @@
<% if @notice %>
<div class="alert alert-orange ml15 mr15 mb10"><p><%= @notice %></p></div>
<div class="alert alert-orange ml15 mr15 mb10 mt10"><p><%= @notice %></p></div>
<% end %>

View File

@ -1149,8 +1149,8 @@ ActiveRecord::Schema.define(:version => 20170317022557) do
t.string "name"
t.integer "user_id"
t.text "description"
t.date "publish_time"
t.date "end_time"
t.datetime "publish_time"
t.datetime "end_time"
t.integer "homework_type", :default => 1
t.string "late_penalty"
t.integer "course_id"
@ -1247,6 +1247,19 @@ ActiveRecord::Schema.define(:version => 20170317022557) do
t.datetime "updated_at", :null => false
end
create_table "ii", :force => true do |t|
t.integer "project_id"
t.string "author_login"
t.string "rep_identifier"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "sonar_version", :default => 0
t.string "path"
t.string "branch"
t.string "language"
t.string "sonar_name"
end
create_table "innodb_monitor", :id => false, :force => true do |t|
t.integer "a"
end
@ -2124,21 +2137,17 @@ ActiveRecord::Schema.define(:version => 20170317022557) do
t.string "name"
t.text "description"
t.text "script"
t.boolean "is_public", :default => true
t.boolean "is_public", :default => true
t.integer "parent_id"
t.integer "user_id"
t.integer "gpid"
t.integer "forked_count", :default => 0
t.integer "visits", :default => 0
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "forked_count", :default => 0
t.integer "visits", :default => 0
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "changeset_num"
t.integer "forked_form"
t.integer "status", :default => 0
t.text "ready_knowledge"
t.text "task_pass"
t.text "answer"
t.integer "score"
t.integer "status", :default => 0
end
create_table "softapplications", :force => true do |t|
@ -2434,7 +2443,7 @@ ActiveRecord::Schema.define(:version => 20170317022557) do
t.datetime "updated_at", :null => false
t.integer "author_id"
t.integer "status", :limit => 1, :default => 0
t.integer "position", :limit => 1
t.integer "position", :limit => 1, :default => 0
t.integer "result", :default => 0
end

View File

@ -157,3 +157,4 @@ textarea.task-textarea-pd{ padding-bottom: 0px; padding-top:0px;}
.task-setting-tab{ height:600px;}
.task-pd15-box{ padding:15px;}
.mb20{margin-bottom: 20px;}
input.knowledge_frame{height:30px;line-height:30px;border:none;background:#f3f5f7;}