Merge branch 'develop' into szzh

Conflicts:
	db/schema.rb
	public/stylesheets/courses.css
ke_guange
huang 10 years ago
commit 501a8f905b

@ -5,14 +5,17 @@ class ExerciseController < ApplicationController
before_filter :find_course, :only => [:index,:new,:create,:student_exercise_list] before_filter :find_course, :only => [:index,:new,:create,:student_exercise_list]
include ExerciseHelper include ExerciseHelper
include ExerciseHelper
def index def index
if @course.is_public == 0 && !User.current.member_of_course?(@course)
render_403
return
end
remove_invalid_exercise(@course) remove_invalid_exercise(@course)
@is_teacher = User.current.allowed_to?(:as_teacher,@course) @is_teacher = User.current.allowed_to?(:as_teacher,@course)
if @is_teacher if @is_teacher
exercises = @course.exercises exercises = @course.exercises.order("created_at asc")
else else
exercises = @course.exercises.where(:exercise_status => 2) exercises = @course.exercises.where(:exercise_status => 2).order("created_at asc")
end end
@exercises = paginateHelper exercises,20 #分页 @exercises = paginateHelper exercises,20 #分页
respond_to do |format| respond_to do |format|
@ -31,17 +34,24 @@ class ExerciseController < ApplicationController
render_403 render_403
return return
end end
@can_edit_excercise = (!has_commit_exercise?(@exercise.id,User.current.id)) || User.current.admin? exercise_end = Time.parse(format_time(@exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") > Time.now.strftime("%Y-%m-%d %H:%M:%S")
if @exercise.time == -1
@can_edit_excercise = exercise_end
else
@can_edit_excercise = (!has_commit_exercise?(@exercise.id,User.current.id)&& exercise_end) || User.current.admin?
end
@exercise_user = ExerciseUser.where("user_id=? and exercise_id=?", User.current.id, @exercise.id).first @exercise_user = ExerciseUser.where("user_id=? and exercise_id=?", User.current.id, @exercise.id).first
# 学生点击的时候即创建关联,自动保存 # 学生点击的时候即创建关联,自动保存
#eu = ExerciseUser.create(:user_id => User.current, :exercise_id => @exercise.id, :start_at => Time.now, :status => false) #eu = ExerciseUser.create(:user_id => User.current, :exercise_id => @exercise.id, :start_at => Time.now, :status => false)
# 已提交问卷的用户不能再访问该界面 # 已提交问卷的用户不能再访问该界面
=begin
if has_commit_exercise?(@exercise.id, User.current.id) && (!User.current.admin?) if has_commit_exercise?(@exercise.id, User.current.id) && (!User.current.admin?)
respond_to do |format| respond_to do |format|
format.html {render :layout => 'base_courses'} format.html {render :layout => 'base_courses'}
end end
else else
=end
if !@is_teacher && !has_click_exercise?(@exercise.id, User.current.id) if !@is_teacher && !has_click_exercise?(@exercise.id, User.current.id)
eu = ExerciseUser.create(:user_id => User.current.id, :exercise_id => @exercise.id, :start_at => Time.now, :status => false) eu = ExerciseUser.create(:user_id => User.current.id, :exercise_id => @exercise.id, :start_at => Time.now, :status => false)
@exercise_user = ExerciseUser.where("user_id=? and exercise_id=?", User.current.id, @exercise.id).first @exercise_user = ExerciseUser.where("user_id=? and exercise_id=?", User.current.id, @exercise.id).first
@ -52,7 +62,7 @@ class ExerciseController < ApplicationController
respond_to do |format| respond_to do |format|
format.html {render :layout => 'base_courses'} format.html {render :layout => 'base_courses'}
end end
end #end
end end
def new def new
@ -65,7 +75,6 @@ class ExerciseController < ApplicationController
:end_time => "", :end_time => "",
:publish_time => "", :publish_time => "",
:exercise_description => "", :exercise_description => "",
:show_result => "",
:show_result => 1 :show_result => 1
} }
@exercise = Exercise.create option @exercise = Exercise.create option
@ -80,7 +89,7 @@ class ExerciseController < ApplicationController
exercise ||= Exercise.new exercise ||= Exercise.new
exercise.exercise_name = params[:exercise][:exercise_name] exercise.exercise_name = params[:exercise][:exercise_name]
exercise.exercise_description = params[:exercise][:exercise_description] exercise.exercise_description = params[:exercise][:exercise_description]
exercise.end_time = params[:exercise][:end_time] exercise.end_time = Time.at(params[:exercise][:end_time].to_time.to_i + 16*60*60 -1)
exercise.publish_time = params[:exercise][:publish_time] exercise.publish_time = params[:exercise][:publish_time]
exercise.user_id = User.current.id exercise.user_id = User.current.id
exercise.time = params[:exercise][:time] exercise.time = params[:exercise][:time]
@ -104,10 +113,10 @@ class ExerciseController < ApplicationController
def update def update
@exercise.exercise_name = params[:exercise][:exercise_name] @exercise.exercise_name = params[:exercise][:exercise_name]
@exercise.exercise_description = params[:exercise][:exercise_description] @exercise.exercise_description = params[:exercise][:exercise_description]
@exercise.time = params[:exercise][:time] @exercise.time = params[:exercise][:time].blank? ? -1 : params[:exercise][:time]
@exercise.end_time = params[:exercise][:end_time] @exercise.end_time = Time.at(params[:exercise][:end_time].to_time.to_i + 16*60*60 -1)
@exercise.publish_time = params[:exercise][:publish_time] @exercise.publish_time = params[:exercise][:publish_time]
@exercise.show_result = params[:exercise][:show_result] @exercise.show_result = params[:exercise][:show_result].blank? ? 1 : params[:exercise][:show_result]
if @exercise.save if @exercise.save
respond_to do |format| respond_to do |format|
format.js format.js
@ -300,6 +309,7 @@ class ExerciseController < ApplicationController
# 发布试卷 # 发布试卷
def publish_exercise def publish_exercise
@is_teacher = User.current.allowed_to?(:as_teacher,@course) @is_teacher = User.current.allowed_to?(:as_teacher,@course)
@index = params[:index]
@exercise.exercise_status = 2 @exercise.exercise_status = 2
@exercise.publish_time = Time.now @exercise.publish_time = Time.now
if @exercise.save if @exercise.save
@ -314,11 +324,13 @@ class ExerciseController < ApplicationController
# 重新发布的时候会删除所有的答题 # 重新发布的时候会删除所有的答题
def republish_exercise def republish_exercise
@is_teacher = User.current.allowed_to?(:as_teacher,@course) @is_teacher = User.current.allowed_to?(:as_teacher,@course)
@index = params[:index]
@exercise.exercise_questions.each do |exercise_question| @exercise.exercise_questions.each do |exercise_question|
exercise_question.exercise_answers.destroy_all exercise_question.exercise_answers.destroy_all
end end
@exercise.exercise_users.destroy_all @exercise.exercise_users.destroy_all
@exercise.exercise_status = 1 @exercise.exercise_status = 1
@exercise.publish_time = nil
@exercise.save @exercise.save
respond_to do |format| respond_to do |format|
format.js format.js
@ -328,7 +340,7 @@ class ExerciseController < ApplicationController
def student_exercise_list def student_exercise_list
@is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin? @is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin?
@exercise = Exercise.find params[:id] @exercise = Exercise.find params[:id]
@all_exercises = @course.exercises.order("created_at desc") @all_exercises = @course.exercises.where("exercise_status > 1").order("created_at desc")
@exercise_count = @exercise.exercise_users.where('score is not NULL').count @exercise_count = @exercise.exercise_users.where('score is not NULL').count
if @is_teacher || (!@exercise.exercise_users.where(:user_id => User.current.id).empty? && Time.parse(@exercise.end_time.to_s).strftime("%Y-%m-%d-%H-%M-%S") <= Time.now.strftime("%Y-%m-%d-%H-%M-%S")) if @is_teacher || (!@exercise.exercise_users.where(:user_id => User.current.id).empty? && Time.parse(@exercise.end_time.to_s).strftime("%Y-%m-%d-%H-%M-%S") <= Time.now.strftime("%Y-%m-%d-%H-%M-%S"))
@exercise_users_list = @exercise.exercise_users.where('score is not NULL') @exercise_users_list = @exercise.exercise_users.where('score is not NULL')
@ -346,8 +358,8 @@ class ExerciseController < ApplicationController
# 学生提交答卷,选中答案的过程中提交 # 学生提交答卷,选中答案的过程中提交
def commit_answer def commit_answer
eq = ExerciseQuestion.find(params[:exercise_question_id]) eq = ExerciseQuestion.find(params[:exercise_question_id])
# 已提交过的则不允许答题 # 已提交过的且是限时的则不允许答题
if has_commit_exercise?(@exercise.id,User.current.id) && (!User.current.admin?) if (has_commit_exercise?(@exercise.id,User.current.id) && (!User.current.admin?) && @exercise.time != -1) || Time.parse(format_time(@exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") < Time.now.strftime("%Y-%m-%d %H:%M:%S")
render :json => {:text => "failure"} render :json => {:text => "failure"}
return return
end end
@ -364,8 +376,14 @@ class ExerciseController < ApplicationController
ea.exercise_choice_id = params[:exercise_choice_id] ea.exercise_choice_id = params[:exercise_choice_id]
if ea.save if ea.save
# 保存成功返回成功信息及当前以答题百分比 # 保存成功返回成功信息及当前以答题百分比
uncomplete_question = get_uncomplete_question(@exercise, User.current)
if uncomplete_question.count < 1
complete = 1;
else
complete = 0;
end
@percent = get_percent(@exercise,User.current) @percent = get_percent(@exercise,User.current)
render :json => {:text => "ok" ,:percent => format("%.2f" ,@percent)} render :json => {:text => "ok" ,:complete => complete,:percent => format("%.2f" ,@percent)}
else else
#返回失败信息 #返回失败信息
render :json => {:text => "failure"} render :json => {:text => "failure"}
@ -380,8 +398,14 @@ class ExerciseController < ApplicationController
ea.exercise_question_id = params[:exercise_question_id] ea.exercise_question_id = params[:exercise_question_id]
ea.exercise_choice_id = params[:exercise_choice_id] ea.exercise_choice_id = params[:exercise_choice_id]
if ea.save if ea.save
uncomplete_question = get_uncomplete_question(@exercise, User.current)
if uncomplete_question.count < 1
complete = 1;
else
complete = 0;
end
@percent = get_percent(@exercise,User.current) @percent = get_percent(@exercise,User.current)
render :json => {:text => "ok",:percent => format("%.2f" ,@percent)} render :json => {:text => "ok",:complete => complete,:percent => format("%.2f" ,@percent)}
else else
render :json => {:text => "failure"} render :json => {:text => "failure"}
end end
@ -410,8 +434,14 @@ class ExerciseController < ApplicationController
ea.exercise_question_id = params[:exercise_question_id] ea.exercise_question_id = params[:exercise_question_id]
ea.answer_text = params[:answer_text] ea.answer_text = params[:answer_text]
if ea.save if ea.save
uncomplete_question = get_uncomplete_question(@exercise, User.current)
if uncomplete_question.count < 1
complete = 1;
else
complete = 0;
end
@percent = get_percent(@exercise,User.current) @percent = get_percent(@exercise,User.current)
render :json => {:text => ea.answer_text,:percent => format("%.2f",@percent)} render :json => {:text => ea.answer_text,:complete => complete,:percent => format("%.2f",@percent)}
else else
render :json => {:text => "failure"} render :json => {:text => "failure"}
end end
@ -447,6 +477,17 @@ class ExerciseController < ApplicationController
def commit_exercise def commit_exercise
# 老师不需要提交 # 老师不需要提交
if User.current.allowed_to?(:as_teacher,@course) if User.current.allowed_to?(:as_teacher,@course)
if @exercise.publish_time.nil?
@exercise.update_attributes(:show_result => params[:show_result])
@exercise.update_attributes(:exercise_status => 2)
@exercise.update_attributes(:publish_time => Time.now)
redirect_to exercise_url(@exercise)
return
elsif Time.parse(@exercise.publish_time.to_s).strftime("%Y-%m-%d-%H-%M-%S") > Time.now.strftime("%Y-%m-%d-%H-%M-%S")
@exercise.update_attributes(:show_result => params[:show_result])
redirect_to exercise_url(@exercise)
return
end
@exercise.update_attributes(:show_result => params[:show_result]) @exercise.update_attributes(:show_result => params[:show_result])
redirect_to exercise_url(@exercise) redirect_to exercise_url(@exercise)
# REDO: 提示提交成功 # REDO: 提示提交成功
@ -490,7 +531,7 @@ class ExerciseController < ApplicationController
exercise_qustions.each do |question| exercise_qustions.each do |question|
answer = get_user_answer(question, user) answer = get_user_answer(question, user)
standard_answer = get_user_standard_answer(question, user) standard_answer = get_user_standard_answer(question, user)
unless answer.nil? unless answer.empty?
# 问答题有多个答案 # 问答题有多个答案
if question.question_type == 3 if question.question_type == 3
if standard_answer.include?(answer.first.answer_text) if standard_answer.include?(answer.first.answer_text)
@ -532,19 +573,6 @@ class ExerciseController < ApplicationController
eu eu
end end
#获取未完成的题目
def get_uncomplete_question exercise,user
all_questions = exercise.exercise_questions
uncomplete_question = []
all_questions.each do |question|
answers = get_user_answer(question, user)
if answers.nil?
uncomplete_question << question
end
end
uncomplete_question
end
# 获取当前学生回答问题的答案 # 获取当前学生回答问题的答案
def get_user_answer(question,user) def get_user_answer(question,user)
# user_answer = ExerciseAnswer.where("user_id=? and exercise_question_id=?", user.id, question.id).first # user_answer = ExerciseAnswer.where("user_id=? and exercise_question_id=?", user.id, question.id).first
@ -563,7 +591,8 @@ class ExerciseController < ApplicationController
standard_answer = question.exercise_standard_answers.first standard_answer = question.exercise_standard_answers.first
end end
standard_answer standard_answer
end # 是否完成了答题 end
# 是否完成了答题
def get_complete_question(exercise,user) def get_complete_question(exercise,user)
questions = exercise.exercise_questions questions = exercise.exercise_questions
complete_question = [] complete_question = []

@ -76,7 +76,7 @@ class StudentWorkController < ApplicationController
end end
################################################################################################################## ##################################################################################################################
@order,@b_sort,@name,@group = params[:order] || "score",params[:sort] || "desc",params[:name] || "",params[:group] @order,@b_sort,@name,@group = params[:order] || "score",params[:sort] || "desc",params[:name] || "",params[:group]
@homework_commons = @course.homework_commons.order("created_at desc") @homework_commons = @course.homework_commons.where("publish_time <= ?",Time.now.strftime("%Y-%m-%d")).order("created_at desc")
@is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin? @is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin?
@is_evaluation = @homework.homework_detail_manual && @homework.homework_detail_manual.comment_status == 2 && !@is_teacher #是不是匿评 @is_evaluation = @homework.homework_detail_manual && @homework.homework_detail_manual.comment_status == 2 && !@is_teacher #是不是匿评
@show_all = false @show_all = false

@ -107,6 +107,19 @@ module ExerciseHelper
end end
end end
#获取未完成的题目
def get_uncomplete_question exercise,user
all_questions = exercise.exercise_questions
uncomplete_question = []
all_questions.each do |question|
answers = get_user_answer(question, user)
if answers.empty?
uncomplete_question << question
end
end
uncomplete_question
end
#获取文本题答案 #获取文本题答案
def get_anwser_vote_text(question_id,user_id) def get_anwser_vote_text(question_id,user_id)
pv = ExerciseAnswer.find_by_exercise_question_id_and_user_id(question_id,user_id) pv = ExerciseAnswer.find_by_exercise_question_id_and_user_id(question_id,user_id)

@ -1,12 +1,21 @@
<div id="popbox" style="text-align: center;margin-top: 25px"> <div id="popbox" style="text-align: center;margin-top: 25px">
<% if status == 0 %> <% if status == 0 && exercise.time != -1%>
<h3 style="font-weight: normal;color: green">提交成功!您的分数是:<%=@score %>分。</h3> <h3 style="font-weight: normal;color: green">提交成功!您的分数是:<%=@score %>分。</h3>
<%= link_to "确定", exercise_path(),:class => 'commit'%> <%= link_to "确定", exercise_path(),:class => 'commit'%>
<% elsif status == 1 %> <% elsif status == 0 && Time.parse(format_time(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") > Time.now.strftime("%Y-%m-%d %H:%M:%S") %>
<h3 style="font-weight: normal;color: red">您还有尚未作答的题目请完成后再提交!</h3> <h3 style="font-weight: normal;color: green">提交成功!</h3>
<%= link_to "确定", "javascript:void(0)",:onclick => 'hidden_atert_form();',:class => 'commit'%> <%= link_to "确定", exercise_index_path(:course_id => @course.id),:class => 'commit'%>
<% else %> <% elsif status == 1 && Time.parse(format_time(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") > Time.now.strftime("%Y-%m-%d %H:%M:%S")%>
<h3 style="font-weight: normal;color: red">保存成功!</h3>
<%= link_to "确定",exercise_index_path(:course_id => @course.id),:class => 'commit'%>
<% elsif status == 1 && Time.parse(format_time(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") <= Time.now.strftime("%Y-%m-%d %H:%M:%S")%>
<h3 style="font-weight: normal;color: red">时间已到!</h3>
<%= link_to "确定", exercise_path(),:class => 'commit'%>
<% elsif status == 2 %>
<h3 style="font-weight: normal;color: red">发生未知错误,请检查您的网络。</h3> <h3 style="font-weight: normal;color: red">发生未知错误,请检查您的网络。</h3>
<%= link_to "确定", "javascript:void(0)",:onclick => 'hidden_atert_form();',:class => 'commit'%> <%= link_to "确定", "javascript:void(0)",:onclick => 'hidden_atert_form();',:class => 'commit'%>
<% else %>
<h3 style="font-weight: normal;color: green">时间已到!您的分数是:<%=@score %>分。</h3>
<%= link_to "确定", exercise_path(),:class => 'commit'%>
<% end %> <% end %>
</div> </div>

@ -1,63 +1,63 @@
<%= form_for("",:url => update_exercise_question_exercise_index_path(:exercise_question => exercise_question.id),:remote => true) do |f|%> <%= form_for("",:url => update_exercise_question_exercise_index_path(:exercise_question => exercise_question.id),:remote => true) do |f|%>
<!--编辑单选start--> <!--编辑单选start-->
<script type="text/javascript"> <script type="text/javascript">
function resetQuestion<%=exercise_question.id%>() function resetQuestion<%=exercise_question.id%>()
{ {
$("#poll_questions_title_<%=exercise_question.id%>").val("<%= exercise_question.question_title%>") $("#poll_questions_title_<%=exercise_question.id%>").val("<%= exercise_question.question_title%>")
$("#poll_question_score_<%=exercise_question.id %>").val("<%= exercise_question.question_score%>") $("#poll_question_score_<%=exercise_question.id %>").val("<%= exercise_question.question_score%>")
$("#poll_question_standard_answer_<%=exercise_question.id %>").val("<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s)%>") $("#poll_question_standard_answer_<%=exercise_question.id %>").val("<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s)%>")
$("#poll_answers_<%=exercise_question.id%>").html("<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>" + $("#poll_answers_<%=exercise_question.id%>").html("<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>" +
"<li class='ur_item'>" + "<li class='ur_item'>" +
"<label>选项<%=convert_to_char (index+1).to_s %><span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label>" + "<label>选项<%=convert_to_char (index+1).to_s %><span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label>" +
"<input maxlength='200' type='text' name='question_answer[<%=exercise_choice.id %>]' placeholder='输入选项内容' value='<%=exercise_choice.choice_text %>'/>" + "<input maxlength='200' type='text' name='question_answer[<%=exercise_choice.id %>]' placeholder='输入选项内容' value='<%=exercise_choice.choice_text %>'/>" +
"<a class='icon_add' title='向下插入选项' onclick='add_single_answer($(this));'></a>" + "<a class='icon_add' title='向下插入选项' onclick='add_single_answer($(this));'></a>" +
"<a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>" + "<a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>" +
"</li>" + "</li>" +
"<div class='cl'></div>" + "<div class='cl'></div>" +
"<% end%>"); "<% end%>");
} }
</script> </script>
<div class="questionContainer" style="width: 680px;"> <div class="questionContainer" style="width: 680px;">
<div class="ur_editor_title"> <div class="ur_editor_title">
<label>问题:&nbsp;&nbsp;</label> <label>问题:&nbsp;&nbsp;</label>
<input name="question_type" value="<%=exercise_question.question_type %>" type="hidden"> <input name="question_type" value="<%=exercise_question.question_type %>" type="hidden">
<input name="question_title" id="poll_questions_title_<%=exercise_question.id %>" class="questionTitle" placeholder="请输入单选题题目" type="text" value="<%=exercise_question.question_title %>"> <input name="question_title" id="poll_questions_title_<%=exercise_question.id %>" class="questionTitle" placeholder="请输入单选题题目" type="text" value="<%=exercise_question.question_title %>">
</div> </div>
<div class="ur_editor_content"> <div class="ur_editor_content">
<ul> <ul>
<li class="ur_item"> <li class="ur_item">
<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input type="text" id="poll_question_score_<%=exercise_question.id %>" name="question_score" style="width:40px; text-align:center; padding-left:0px;" value="<%= exercise_question.question_score %>">分 <input type="text" id="poll_question_score_<%=exercise_question.id %>" name="question_score" style="width:40px; text-align:center; padding-left:0px;" value="<%= exercise_question.question_score %>">分
</li> </li>
<div class="cl"></div> <div class="cl"></div>
<div id="poll_answers_<%=exercise_question.id%>"> <div id="poll_answers_<%=exercise_question.id%>">
<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %> <% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>
<li class="ur_item"> <li class="ur_item">
<label>选项<%=convert_to_char (index+1).to_s %><span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>选项<%=convert_to_char (index+1).to_s %><span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input maxlength="200" type='text' name='question_answer[<%=exercise_choice.id %>]' placeholder='输入选项内容' value="<%=exercise_choice.choice_text %>"> <input maxlength="200" type='text' name='question_answer[<%=exercise_choice.id %>]' placeholder='输入选项内容' value="<%=exercise_choice.choice_text %>">
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
</li> </li>
<div class="cl"></div> <div class="cl"></div>
<% end %> <% end %>
</div> </div>
<li class="ur_item"> <li class="ur_item">
<label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input id="poll_question_standard_answer_<%=exercise_question.id %>" name="exercise_choice" placeholder="若标准答案为A在此输入A即可" type="text" value="<%=convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>"> <input id="poll_question_standard_answer_<%=exercise_question.id %>" name="exercise_choice" placeholder="若标准答案为A在此输入A即可" type="text" value="<%=convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>">
</li> </li>
<div class="cl"></div> <div class="cl"></div>
</ul> </ul>
</div> </div>
<div class="ur_editor_footer"> <div class="ur_editor_footer">
<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="edit_poll_question($(this),<%= exercise_question.id %>,1);"> <a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="edit_poll_question($(this),<%= exercise_question.id %>,1);">
保存 保存
</a> </a>
<a class="btn btn_light btn_cancel" data-button="cancel" onclick="resetQuestion<%=exercise_question.id%>();pollQuestionCancel(<%= exercise_question.id%>);"> <a class="btn btn_light btn_cancel" data-button="cancel" onclick="resetQuestion<%=exercise_question.id%>();pollQuestionCancel(<%= exercise_question.id%>);">
<%= l(:button_cancel)%> <%= l(:button_cancel)%>
</a> </a>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<!--编辑单选 end--> <!--编辑单选 end-->
<% end%> <% end%>

@ -1,63 +1,63 @@
<%= form_for("",:url => update_exercise_question_exercise_index_path(:exercise_question => exercise_question.id),:remote => true) do |f|%> <%= form_for("",:url => update_exercise_question_exercise_index_path(:exercise_question => exercise_question.id),:remote => true) do |f|%>
<!--编辑单选start--> <!--编辑单选start-->
<script type="text/javascript"> <script type="text/javascript">
function resetQuestion<%=exercise_question.id%>() function resetQuestion<%=exercise_question.id%>()
{ {
$("#poll_questions_title_<%=exercise_question.id%>").val("<%= exercise_question.question_title%>") $("#poll_questions_title_<%=exercise_question.id%>").val("<%= exercise_question.question_title%>")
$("#poll_question_score_<%=exercise_question.id %>").val("<%= exercise_question.question_score%>") $("#poll_question_score_<%=exercise_question.id %>").val("<%= exercise_question.question_score%>")
$("#poll_question_standard_answer_<%=exercise_question.id %>").val("<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s)%>") $("#poll_question_standard_answer_<%=exercise_question.id %>").val("<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s)%>")
$("#poll_answers_<%=exercise_question.id%>").html("<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>" + $("#poll_answers_<%=exercise_question.id%>").html("<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>" +
"<li class='ur_item'>" + "<li class='ur_item'>" +
"<label>选项<%=convert_to_char (index+1).to_s %><span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label>" + "<label>选项<%=convert_to_char (index+1).to_s %><span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label>" +
"<input maxlength='200' type='text' name='question_answer[<%= exercise_choice.id %>]' placeholder='输入选项内容' value='<%=exercise_choice.choice_text %>'/>" + "<input maxlength='200' type='text' name='question_answer[<%= exercise_choice.id %>]' placeholder='输入选项内容' value='<%=exercise_choice.choice_text %>'/>" +
"<a class='icon_add' title='向下插入选项' onclick='add_single_answer($(this));'></a>" + "<a class='icon_add' title='向下插入选项' onclick='add_single_answer($(this));'></a>" +
"<a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>" + "<a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>" +
"</li>" + "</li>" +
"<div class='cl'></div>" + "<div class='cl'></div>" +
"<% end%>"); "<% end%>");
} }
</script> </script>
<div class="questionContainer" style="width: 680px;"> <div class="questionContainer" style="width: 680px;">
<div class="ur_editor_title"> <div class="ur_editor_title">
<label>问题:&nbsp;&nbsp;</label> <label>问题:&nbsp;&nbsp;</label>
<input name="question_type" value="<%=exercise_question.question_type %>" type="hidden"> <input name="question_type" value="<%=exercise_question.question_type %>" type="hidden">
<input name="question_title" id="poll_questions_title_<%=exercise_question.id %>" class="questionTitle" placeholder="请输入多选题题目" type="text" value="<%=exercise_question.question_title %>"> <input name="question_title" id="poll_questions_title_<%=exercise_question.id %>" class="questionTitle" placeholder="请输入多选题题目" type="text" value="<%=exercise_question.question_title %>">
</div> </div>
<div class="ur_editor_content"> <div class="ur_editor_content">
<ul> <ul>
<li class="ur_item"> <li class="ur_item">
<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input type="text" id="poll_question_score_<%=exercise_question.id %>" name="question_score" style="width:40px; text-align:center; padding-left:0px;" value="<%= exercise_question.question_score %>">分 <input type="text" id="poll_question_score_<%=exercise_question.id %>" name="question_score" style="width:40px; text-align:center; padding-left:0px;" value="<%= exercise_question.question_score %>">分
</li> </li>
<div class="cl"></div> <div class="cl"></div>
<div id="poll_answers_<%=exercise_question.id%>"> <div id="poll_answers_<%=exercise_question.id%>">
<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %> <% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>
<li class="ur_item"> <li class="ur_item">
<label>选项<%=convert_to_char (index+1).to_s %><span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>选项<%=convert_to_char (index+1).to_s %><span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input maxlength="200" type='text' name='question_answer[<%= exercise_choice.id %>]' placeholder='输入选项内容' value="<%=exercise_choice.choice_text %>"> <input maxlength="200" type='text' name='question_answer[<%= exercise_choice.id %>]' placeholder='输入选项内容' value="<%=exercise_choice.choice_text %>">
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
</li> </li>
<div class="cl"></div> <div class="cl"></div>
<% end %> <% end %>
</div> </div>
<li class="ur_item"> <li class="ur_item">
<label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input id="poll_question_standard_answer_<%=exercise_question.id %>" name="exercise_choice" placeholder="若标准答案为A,B,C在答案输入框填入ABC即可" type="text" value="<%=convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>"> <input id="poll_question_standard_answer_<%=exercise_question.id %>" name="exercise_choice" placeholder="若标准答案为A,B,C在答案输入框填入ABC即可" type="text" value="<%=convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>">
</li> </li>
<div class="cl"></div> <div class="cl"></div>
</ul> </ul>
</div> </div>
<div class="ur_editor_footer"> <div class="ur_editor_footer">
<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="edit_poll_question($(this),<%= exercise_question.id %>,2);"> <a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="edit_poll_question($(this),<%= exercise_question.id %>,2);">
保存 保存
</a> </a>
<a class="btn btn_light btn_cancel" data-button="cancel" onclick="resetQuestion<%=exercise_question.id%>();pollQuestionCancel(<%= exercise_question.id%>);"> <a class="btn btn_light btn_cancel" data-button="cancel" onclick="resetQuestion<%=exercise_question.id%>();pollQuestionCancel(<%= exercise_question.id%>);">
<%= l(:button_cancel)%> <%= l(:button_cancel)%>
</a> </a>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<!--编辑单选 end--> <!--编辑单选 end-->
<% end%> <% end%>

@ -3,31 +3,37 @@
<div> <div>
<input name="exercise[exercise_name]" maxlength="100" id="exercise_name" class="testTitle mb10" type="text" placeholder="测验标题" value="<%=@exercise.exercise_name%>" /> <input name="exercise[exercise_name]" maxlength="100" id="exercise_name" class="testTitle mb10" type="text" placeholder="测验标题" value="<%=@exercise.exercise_name%>" />
</div> </div>
<%# if edit_mode %> <label class="fl c_grey f14" style="margin-top: 4px;">截止时间:</label>
<!--<label class="fl c_grey f14" style="margin-top: 4px;">发布日期(可选)</label>-->
<%# end %>
<div class="calendar_div fl mr10">
<input type="text" name="exercise[publish_time]" id="exercise_publish_time" placeholder="发布时间" class="InputBox fl W120 calendar_input" readonly="readonly" value="<%= Time.parse(format_time(exercise.publish_time)).strftime("%Y-%m-%d") if exercise.publish_time %>" >
<%= calendar_for('exercise_publish_time')%>
</div>
<%# if edit_mode %>
<!--<label class="fl c_grey f14" style="margin-top: 4px;">截止日期:</label>-->
<%# end %>
<div class="calendar_div fl"> <div class="calendar_div fl">
<input type="text" name="exercise[end_time]" id="exercise_end_time" placeholder="截止时间" class="InputBox fl W120 calendar_input" readonly="readonly" value="<%= Time.parse(format_time(exercise.end_time)).strftime("%Y-%m-%d") if exercise.end_time %>" > <input type="text" name="exercise[end_time]" id="exercise_end_time" placeholder="截止时间" class="InputBox fl W120 calendar_input" readonly="readonly" value="<%= Time.parse(format_time(exercise.end_time)).strftime("%Y-%m-%d") if exercise.end_time %>"/>
<%= calendar_for('exercise_end_time')%> <%= calendar_for('exercise_end_time')%>
</div> </div>
<div class="fl ml10 f14 fontGrey2"><span class="mr5">测验时长:</span><input name="exercise[time]" id="exercise_time" type="text" class="examTime mr5" value="<%=exercise.time %>" />分钟</div> <div class="fl ml15 f14 fontGrey2"><span class="mr5">测验时长:</span><input name="exercise[time]" id="exercise_time" type="text" class="examTime mr5" placeholder="不填即不限时" value="<%=exercise.time if exercise.time!= -1 %>" />分钟</div>
<label class="fl c_grey ml15 f14" style="margin-top: 4px;">发布时间(可选)</label>
<div class="calendar_div fl">
<input type="text" name="exercise[publish_time]" id="exercise_publish_time" placeholder="发布时间(可选)" class="InputBox fl W120 calendar_input" readonly="readonly" value="<%= Time.parse(format_time(exercise.publish_time)).strftime("%Y-%m-%d") if !exercise.publish_time.nil? %>"/>
<%= calendar_for('exercise_publish_time')%>
</div>
<div class="cl"></div> <div class="cl"></div>
<textarea class="testDes mt10" name="exercise[exercise_description]" id="exercise_description" placeholder="发布须知:试题类型有选择和填空两种,其中选择题包括单选题和多选题。您可以在此处填写测验相关说明。" ><%=exercise.exercise_description %></textarea> <textarea class="testDes mt10" name="exercise[exercise_description]" id="exercise_description" placeholder="发布须知:试题类型有选择和填空两种,其中选择题包括单选题和多选题。您可以在此处填写测验相关说明。" ><%=exercise.exercise_description %></textarea>
<div class="ur_editor_footer" style="padding-top: 10px;"> <div class="ur_editor_footer" style="padding-top: 10px;">
<a class="btn_submit c_white" data-button="ok" onclick="pollsSubmit($(this));"> <a class="btn_submit c_white" data-button="ok" onclick="pollsSubmit($(this));">
保存 保存
</a> </a>
<a class="btn_cancel" data-button="cancel" onclick="pollsCancel();"> <a class="btn_cancel" data-button="cancel" onclick="resetHead();pollsCancel();">
<%= l(:button_cancel)%> <%= l(:button_cancel)%>
</a> </a>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% end %> <% end %>
<script type="text/javascript">
function resetHead()
{
$("#exercise_name").val("<%=@exercise.exercise_name%>");
$("#exercise_end_time").val("<%= Time.parse(format_time(exercise.end_time)).strftime("%Y-%m-%d") if exercise.end_time %>");
$("#exercise_time").val("<%=exercise.time if exercise.time!= -1 %>");
$("#exercise_publish_time").val("<%= Time.parse(format_time(exercise.publish_time)).strftime("%Y-%m-%d") if !exercise.publish_time.nil?%>");
$("#exercise_description").val("<%=exercise.exercise_description %>");
}
</script>

@ -8,7 +8,7 @@
$("#poll_answers_<%=exercise_question.id%>").html("<% exercise_question.exercise_standard_answers.reorder("created_at").each_with_index do |exercise_choice,index| %>" + $("#poll_answers_<%=exercise_question.id%>").html("<% exercise_question.exercise_standard_answers.reorder("created_at").each_with_index do |exercise_choice,index| %>" +
"<li class='ur_item'>" + "<li class='ur_item'>" +
"<label>候选答案<span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label>" + "<label>候选答案<span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label>" +
"<input name='exercise_choice[<%=exercise_choice.id %>]' placeholder='请输入候选答案' type='text' value='<%=exercise_choice.answer_text %>'/>" + "<input class='candiate_answer' name='exercise_choice[<%=exercise_choice.id %>]' placeholder='请输入候选答案' type='text' value='<%=exercise_choice.answer_text %>'/>" +
"<a class='icon_add' title='向下插入选项' onclick='add_candidate_answer($(this));'></a>" + "<a class='icon_add' title='向下插入选项' onclick='add_candidate_answer($(this));'></a>" +
"<a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>" + "<a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>" +
@ -24,7 +24,7 @@
<input name="question_type" value="<%=exercise_question.question_type %>" type="hidden"> <input name="question_type" value="<%=exercise_question.question_type %>" type="hidden">
<input name="question_title" id="poll_questions_title_<%=exercise_question.id %>" class="questionTitle" placeholder="请输入填空题的内容(注意:目前填空题暂时仅支持一个空)" type="text" value="<%=exercise_question.question_title %>"> <input name="question_title" id="poll_questions_title_<%=exercise_question.id %>" class="questionTitle" placeholder="请输入填空题的内容(注意:目前填空题暂时仅支持一个空)" type="text" value="<%=exercise_question.question_title %>">
</div> </div>
<div class="ur_editor_content"> <div class="ur_editor_content" id="edit_single">
<ul> <ul>
<li class="ur_item"> <li class="ur_item">
<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
@ -35,7 +35,7 @@
<% exercise_question.exercise_standard_answers.reorder("created_at").each_with_index do |exercise_choice,index| %> <% exercise_question.exercise_standard_answers.reorder("created_at").each_with_index do |exercise_choice,index| %>
<li class="ur_item"> <li class="ur_item">
<label>候选答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>候选答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input name="exercise_choice[<%=exercise_choice.id %>]" placeholder="请输入候选答案" type="text" value="<%=exercise_choice.answer_text %>"/> <input class="candiate_answer" name="exercise_choice[<%=exercise_choice.id %>]" placeholder="请输入候选答案" type="text" value="<%=exercise_choice.answer_text %>"/>
<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a> <a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this));"></a> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this));"></a>
</li> </li>

@ -1,61 +1,60 @@
<%# has_commit = has_commit_poll?(poll.id ,User.current)%> <%# has_commit = has_commit_poll?(poll.id ,User.current)%>
<% exercise_name = exercise.exercise_name.empty? ? l(:label_poll_new) : exercise.exercise_name%> <% exercise_name = exercise.exercise_name.empty? ? l(:label_poll_new) : exercise.exercise_name%>
<% if @is_teacher%> <% if @is_teacher%>
<li title="<%= exercise.exercise_name %>"> <li title="<%= exercise.exercise_name %>">
<div style="width: 310px;float: left;"> <div style="width: 310px;float: left;">
<%# if has_commit %> <%# if has_commit %>
<%#= link_to poll_name, poll_result_poll_path(poll.id), :class => "polls_title polls_title_w fl c_dblue"%> <%#= link_to poll_name, poll_result_poll_path(poll.id), :class => "polls_title polls_title_w fl c_dblue"%>
<%# else %> <%# else %>
<%#= link_to poll_name, exercise_path(poll.id), :class => "polls_title polls_title_w fl c_dblue" %> <%#= link_to poll_name, exercise_path(poll.id), :class => "polls_title polls_title_w fl c_dblue" %>
<%# end %> <%# end %>
<%= link_to exercise_name, exercise_path(exercise.id), :class => "polls_title polls_title_w fl c_dblue" %> <%= link_to (index.to_i+1).to_s+". "+exercise_name, exercise_path(exercise.id), :class => "polls_title polls_title_w fl c_dblue" %>
</div> </div>
</li> </li>
<% if exercise.exercise_status == 1%> <%# if exercise.exercise_status == 2 %>
<li class="pollsbtn fl ml10 pollsbtn_grey">统计结果</li> <!--<li><a class="polls_de fr ml5" onclick="" href="javascript:">关闭</a></li>-->
<% else %> <%# else %>
<li><%= link_to l(:label_statistical_results), student_exercise_list_exercise_path(exercise.id,:course_id => @course.id), :class => "pollsbtn fl ml10"%></li> <!--<li class="polls_de_grey fr ml5" title="发布的问卷才能进行关闭">关闭</li>-->
<% end%> <%# end%>
<% if exercise.exercise_status == 1 %> <%# if exercise.exercise_status == 1%>
<li><a href="javascript:" class="pollsbtn btn_pu fl ml5" onclick="exercise_submit(<%= exercise.id%>,<%= exercise.exercise_name.length %>);">发布试卷</a></li> <!--<li class="polls_de_grey fr ml5">导出</li>-->
<% elsif exercise.exercise_status == 2%> <%# elsif exercise.exercise_status == 2 || exercise.exercise_status == 3 %>
<li><a href="javascript:" class="pollsbtn btn_de fl ml5" onclick="republish_exercise(<%= exercise.id%>);">取消发布</a></li> <!--<li><%#= link_to "导出", export_exercise_exercise_path(exercise.id,:format => "xls"), :class => "polls_de fr ml5"%></li>-->
<% else%> <%# end%>
<li class="pollsbtn fl ml10 pollsbtn_grey" style="margin-left: 5px;" >发布试卷</li> <% if exercise.exercise_status == 1 %>
<% end%> <li><a href="javascript:" class="pollsbtn btn_pu fr mr5" onclick="exercise_submit(<%= exercise.id%>,<%= exercise.exercise_name.length %>,<%=index.to_i %>);">发布试卷</a></li>
<% elsif exercise.exercise_status == 2%>
<%= link_to(l(:button_delete), exercise,:method => :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "polls_de fr ml5 mr10") %> <li><a href="javascript:" class="pollsbtn btn_de fr mr5" onclick="republish_exercise(<%= exercise.id%>,<%=index.to_i %>);">取消发布</a></li>
<% else%>
<% if exercise.exercise_status == 1 %> <li class="pollsbtn fr mr10 pollsbtn_grey" style="margin-left: 5px;" >发布试卷</li>
<li><%= link_to l(:button_edit), edit_exercise_path(exercise.id), :class => "polls_de fr ml5"%></li> <% end%>
<% else%>
<li class="polls_de_grey fr ml5" title="未发布的试卷才能进行编辑">编辑</li> <% if exercise.exercise_status == 1%>
<% end%> <li class="pollsbtn fr mr10 pollsbtn_grey">统计结果</li>
<% else %>
<%# if exercise.exercise_status == 2 %> <li><%= link_to l(:label_statistical_results), student_exercise_list_exercise_path(exercise.id,:course_id => @course.id), :class => "pollsbtn fr mr10"%></li>
<!--<li><a class="polls_de fr ml5" onclick="" href="javascript:">关闭</a></li>--> <% end%>
<%# else %>
<!--<li class="polls_de_grey fr ml5" title="发布的问卷才能进行关闭">关闭</li>--> <%= link_to(l(:button_delete), exercise,:method => :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "polls_de fr ml5 mr10") %>
<%# end%>
<% if exercise.exercise_status == 1 %>
<%# if exercise.exercise_status == 1%> <li><%= link_to l(:button_edit), edit_exercise_path(exercise.id), :class => "polls_de fr ml10"%></li>
<!--<li class="polls_de_grey fr ml5">导出</li>--> <li class="polls_date fr"><%=exercise.publish_time.nil? ? "未发布" : "将于"+format_time(exercise.publish_time.to_s)+"发布"%></li>
<%# elsif exercise.exercise_status == 2 || exercise.exercise_status == 3 %> <% else%>
<!--<li><%#= link_to "导出", export_exercise_exercise_path(exercise.id,:format => "xls"), :class => "polls_de fr ml5"%></li>--> <li class="polls_de_grey fr ml10" title="未发布的试卷才能进行编辑">编辑</li>
<%# end%> <li class="polls_date fr">已发布</li>
<% end%>
<li class="polls_date fr"><%= format_date exercise.created_at.to_date%></li> <% else%>
<% else%> <% if exercise.exercise_status == 2%>
<% if exercise.exercise_status == 2%> <%# if has_commit%>
<%# if has_commit%> <!--li><%#= link_to poll_name, poll_result_poll_path(poll.id), :class => "polls_title polls_title_st fl c_dblue" %></li>
<!--li><%#= link_to poll_name, poll_result_poll_path(poll.id), :class => "polls_title polls_title_st fl c_dblue" %></li> <li class="pollsbtn_tip fl ml5">已答</li-->
<li class="pollsbtn_tip fl ml5">已答</li--> <%#else%>
<%#else%> <%= link_to (index.to_i+1).to_s+". "+exercise_name, exercise_path(exercise.id), :class => "polls_title polls_title_st fl c_dblue"%>
<%= link_to exercise_name, exercise_path(exercise.id), :class => "polls_title polls_title_st fl c_dblue"%> <%#end%>
<%#end%> <% end%>
<% end%> <li class="polls_date fr mr10">截止时间:<%= format_time(exercise.end_time.to_s)%></li>
<li class="polls_date fr mr10"><%= format_date exercise.created_at.to_date%></li>
<% end%> <% end%>

@ -1,194 +1,219 @@
<%= stylesheet_link_tag 'polls', :media => 'all' %> <%= stylesheet_link_tag 'polls', :media => 'all' %>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
$("#RSide").removeAttr("id"); $("#RSide").removeAttr("id");
$("#homework_page_right").css("min-height",$("#LSide").height()-30); $("#homework_page_right").css("min-height",$("#LSide").height()-30);
$("#Container").css("width","1000px"); $("#Container").css("width","1000px");
}); });
//编辑问卷描述之后 //编辑问卷描述之后
var popWindow ; //弹出框的引用 var popWindow ; //弹出框的引用
var importPollPopWindow; //选择导入的弹出框引用 var importPollPopWindow; //选择导入的弹出框引用
function edit_head(){ function edit_head(){
$("#polls_description").val($("#polls_description_div").html()); $("#polls_description").val($("#polls_description_div").html());
} }
$(function(){ $(function(){
//点击空白处 //点击空白处
$(document).bind('click',function(e){ $(document).bind('click',function(e){
//弹出框非空 不是a标签 点击的不是弹出框 ,那么弹出框就会隐藏 //弹出框非空 不是a标签 点击的不是弹出框 ,那么弹出框就会隐藏
if(popWindow && e.target.nodeName != 'A' && !popWindow.is(e.target) && popWindow.has(e.target).length === 0){ // Mark 1 if(popWindow && e.target.nodeName != 'A' && !popWindow.is(e.target) && popWindow.has(e.target).length === 0){ // Mark 1
popWindow.css('display', 'none'); popWindow.css('display', 'none');
} }
if(importPollPopWindow && e.target.nodeName != 'A' && !importPollPopWindow.is(e.target) && importPollPopWindow.has(e.target).length === 0){ if(importPollPopWindow && e.target.nodeName != 'A' && !importPollPopWindow.is(e.target) && importPollPopWindow.has(e.target).length === 0){
importPollPopWindow.css('display', 'none'); importPollPopWindow.css('display', 'none');
} }
}); });
}) })
function dismiss(quest_type,quest_id){ function dismiss(quest_type,quest_id){
popWindow = $("#div_"+quest_type+"_"+quest_id); popWindow = $("#div_"+quest_type+"_"+quest_id);
if(popWindow){ if(popWindow){
popWindow.css('display', 'none'); popWindow.css('display', 'none');
} }
} }
function chooseQuestionType(quest_type,quest_id){ function chooseQuestionType(quest_type,quest_id){
//quest_type 分为 mc mcq single multi //quest_type 分为 mc mcq single multi
//quest_id 是quetion的id 下同 //quest_id 是quetion的id 下同
if(popWindow){ if(popWindow){
popWindow.css('display', 'none'); popWindow.css('display', 'none');
} }
popWindow = $("#div_"+quest_type+"_"+quest_id); popWindow = $("#div_"+quest_type+"_"+quest_id);
$("#div_"+quest_type+"_"+quest_id).click(function(e){ $("#div_"+quest_type+"_"+quest_id).click(function(e){
e.stopPropagation(); //组织冒泡到document.body中去 e.stopPropagation(); //组织冒泡到document.body中去
}); });
$("#div_"+quest_type+"_"+quest_id).css("position", "absolute"); $("#div_"+quest_type+"_"+quest_id).css("position", "absolute");
$("#div_"+quest_type+"_"+quest_id).css("top", $("#add_"+quest_type+"_"+quest_id).offset().top+30); $("#div_"+quest_type+"_"+quest_id).css("top", $("#add_"+quest_type+"_"+quest_id).offset().top+30);
$("#div_"+quest_type+"_"+quest_id).css("left", $("#add_"+quest_type+"_"+quest_id).offset().left-10); $("#div_"+quest_type+"_"+quest_id).css("left", $("#add_"+quest_type+"_"+quest_id).offset().left-10);
if( $("#div_"+quest_type+"_"+quest_id).css('display') == 'block') { if( $("#div_"+quest_type+"_"+quest_id).css('display') == 'block') {
$("#div_"+quest_type+"_"+quest_id).css('display', 'none'); $("#div_"+quest_type+"_"+quest_id).css('display', 'none');
} }
else{ else{
$("#div_"+quest_type+"_"+quest_id).css('display', 'block'); $("#div_"+quest_type+"_"+quest_id).css('display', 'block');
} }
} }
//选择导入调查问卷 //选择导入调查问卷
function importPoll(){ function importPoll(){
importPollPopWindow = $("#import_poll"); importPollPopWindow = $("#import_poll");
$("#import_poll").css("position", "absolute"); $("#import_poll").css("position", "absolute");
$("#import_poll").css("top", $("#import_btn").offset().top+30); $("#import_poll").css("top", $("#import_btn").offset().top+30);
$("#import_poll").css("left", $("#import_btn").offset().left-65); $("#import_poll").css("left", $("#import_btn").offset().left-65);
$("#import_poll").css("display","block") $("#import_poll").css("display","block")
} }
function remote_import(){ function remote_import(){
importPollPopWindow.css('display', 'none'); importPollPopWindow.css('display', 'none');
if($("#import_poll").val() === 0){ if($("#import_poll").val() === 0){
return; return;
}else{ }else{
if(confirm("确认导入问卷"+$("#import_poll").find("option:selected").text()+"?")){ if(confirm("确认导入问卷"+$("#import_poll").find("option:selected").text()+"?")){
$("#import_form").submit(); $("#import_form").submit();
}else{ }else{
return; return;
} }
} }
} }
//添加标题时确定按钮 //添加标题时确定按钮
function add_poll_question(doc,quest_type) function add_poll_question(doc,quest_type)
{ {
var title = $.trim($("#poll_questions_title").val()); var title = $.trim($("#poll_questions_title").val());
var score = $.trim($("#question_score").val()); var score = $.trim($("#question_score").val());
var standard_ans = $.trim($("#question_standard_ans").val()); var standard_ans = $.trim($("#question_standard_ans").val());
if(title.length == 0 || score.length == 0){ if(title.length == 0 || score.length == 0){
alert("题目标题/分数不能为空"); alert("题目标题/分数不能为空");
}else if(quest_type !=3 && standard_ans.length == 0) { }else if(!/^[1-9][0-9]*$/.test(score)) {
alert("标准答案不能为空"); alert("分数必须是非零开头的数字");
}else{ }else if(quest_type !=3 && standard_ans.length == 0) {
doc.parent().parent().parent().submit();} alert("标准答案不能为空");
} }else{
//修改标题时确定按钮 doc.parent().parent().parent().submit();}
function edit_poll_question(doc,id,quest_type) }
{ //修改标题时确定按钮
var title = $.trim($("#poll_questions_title_" + id).val()); function edit_poll_question(doc,id,quest_type)
var score = $.trim($("#poll_question_score_"+ id).val()); {
var standard_ans = $.trim($("#poll_question_standard_answer_" + id).val()); var title = $.trim($("#poll_questions_title_" + id).val());
if(title.length == 0 || score.length == 0){ var score = $.trim($("#poll_question_score_"+ id).val());
alert("题目标题/分数不能为空"); var standard_ans = $.trim($("#poll_question_standard_answer_" + id).val());
}else if(quest_type !=3 && standard_ans.length == 0) { if(title.length == 0 || score.length == 0){
alert("标准答案不能为空"); alert("题目标题/分数不能为空");
}else{ }else if(!/^[1-9][0-9]*$/.test(score)) {
doc.parent().parent().parent().submit();} alert("分数必须是非零开头的数字");
} }else if(quest_type !=3 && standard_ans.length == 0) {
alert("标准答案不能为空");
//问卷头 }else if(quest_type ==3) {
function pollsCancel(){$("#polls_head_edit").hide();$("#polls_head_show").show();} var div = $("#poll_answers_" + id);
function pollsSubmit(doc){ var candiate_answer = $(".candiate_answer",div);
var title = $.trim($("#exercise_name").val()); if(candiate_answer.length > 0) {
if(title.length == 0){ for(i=0;i<candiate_answer.length;i++) {
alert("测验标题不能为空"); if(i<candiate_answer.length-1 && $.trim($(candiate_answer[i]).val()) == "") {
} else if($.trim($("#exercise_publish_time").val()) =="") { continue;
alert("发布时间不能为空"); } else if(i == (candiate_answer.length-1) && $.trim($(candiate_answer[i]).val()) == "") {
} else if($.trim($("#exercise_end_time").val()) =="") { alert("候选答案不能为空");
alert("截止时间不能为空"); } else if($.trim($(candiate_answer[i]).val()) != ""){
} else if($.trim($("#exercise_time").val()) =="") { doc.parent().parent().parent().submit();
alert("考试时长不能为空"); break;
} else if(Date.parse($("#exercise_end_time").val()) <= Date.parse($("#exercise_publish_time").val())) { }
alert("截止时间必须大于发布时间");
} }
else { } else{
doc.parent().parent().parent().submit(); alert("候选答案不能为空");
} }
} }else{
function pollsEdit(){$("#polls_head_edit").show();$("#polls_head_show").hide();} doc.parent().parent().parent().submit();}
// }
function pollQuestionCancel(question_id){
$("#show_poll_questions_"+question_id).show(); //问卷头
$("#edit_poll_questions_"+question_id).hide(); function pollsCancel(){$("#polls_head_edit").hide();$("#polls_head_show").show();}
} function pollsSubmit(doc){
function pollQuestionEdit(question_id){ var title = $.trim($("#exercise_name").val());
$("#show_poll_questions_"+question_id).hide(); if(title.length == 0){
$("#edit_poll_questions_"+question_id).show(); alert("测验标题不能为空");
$("#poll_questions_title_"+question_id).focus(); } else if($.trim($("#exercise_end_time").val()) =="") {
} alert("截止时间不能为空");
//单选题 } else if((Date.parse($("#exercise_end_time").val())+(24*60*60-1)*1000) < Date.now()) {
function add_single_answer(doc) alert("截止时间不能小于当前时间");
{ } else if($.trim($("#exercise_time").val()) !="" && !/^[1-9][0-9]*$/.test($.trim($("#exercise_time").val()))) {
doc.parent().after("<li class='ur_item'><label>选项<span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label><input maxlength='200' type='text' name='question_answer["+new Date().getTime()+"]' placeholder='输入选项内容'/>" + alert("测验时长必须为非零开头的数字");
"<a class='icon_add' title='向下插入选项' onclick='add_single_answer($(this));'></a><a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>"+ } else if($.trim($("#exercise_publish_time").val()) !="" && Date.parse($("#exercise_publish_time").val()) < Date.now()) {
"</li><div class='cl'></div>"); alert("发布时间不能小于当前时间");
} } else if($.trim($("#exercise_publish_time").val()) !="" && Date.parse($("#exercise_end_time").val()) < Date.parse($("#exercise_publish_time").val())) {
function add_candidate_answer(doc) alert("截止时间不能小于发布时间");
{ } else {
doc.parent().after("<li class='ur_item'><label>候选答案<span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label><input maxlength='200' type='text' name='exercise_choice["+new Date().getTime()+"]' placeholder='请输入候选答案(选填)'/>" + doc.parent().parent().parent().submit();
"<a class='icon_add' title='向下插入选项' onclick='add_candidate_answer($(this));'></a><a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>"+ }
"</li><div class='cl'></div>"); }
} function pollsEdit(){$("#polls_head_edit").show();$("#polls_head_show").hide();}
function remove_single_answer(doc) //
{ function pollQuestionCancel(question_id){
if(doc.parent().siblings("li").length == 0) $("#show_poll_questions_"+question_id).show();
{ $("#edit_poll_questions_"+question_id).hide();
alert("选择题至少有一个选项"); }
} function pollQuestionEdit(question_id){
else $("#show_poll_questions_"+question_id).hide();
{ $("#edit_poll_questions_"+question_id).show();
doc.parent().remove(); $("#poll_questions_title_"+question_id).focus();
} }
} //单选题
</script> function add_single_answer(doc)
<div class="homepageRight mt0 ml10"> {
<div class="resources"> doc.parent().after("<li class='ur_item'><label>选项<span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label><input maxlength='200' type='text' name='question_answer["+new Date().getTime()+"]' placeholder='输入选项内容'/>" +
<!-- 头部 --> "<a class='icon_add' title='向下插入选项' onclick='add_single_answer($(this));'></a><a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>"+
<div id="polls_head_show" style="display: none;"> "</li><div class='cl'></div>");
<%= render :partial => 'show_head', :locals => {:exercise => @exercise}%> }
</div> function add_candidate_answer(doc)
<div id="polls_head_edit"> {
<%= render :partial => 'edit_head', :locals => {:exercise => @exercise}%> doc.parent().after("<li class='ur_item'><label>候选答案<span class='ur_index'></span>&nbsp;&nbsp;&nbsp;</label><input maxlength='200' type='text' name='exercise_choice["+new Date().getTime()+"]' placeholder='请输入候选答案(选填)'/>" +
</div> "<a class='icon_add' title='向下插入选项' onclick='add_candidate_answer($(this));'></a><a class='icon_remove' title='删除' onclick='remove_single_answer($(this))'></a>"+
<% current_score = get_current_score @exercise %> "</li><div class='cl'></div>");
<div class="mb5" style="display: <%= current_score == 0 ? "none" : "" %>" id="current_score_div">目前试卷总分:<span class="c_red" id="current_score"><%=current_score %>分</span></div> }
<!-- 问题 --> function remove_single_answer(doc)
<div id="poll_content"> {
<%= render :partial => 'exercise_content', :locals => {:exercise => @exercise}%> if(doc.parent().siblings("li").length == 0)
</div> {
alert("至少有一个选项或一个候选答案");
<div class="testQuestion" id="new_exercise_question"> }
<%= render :partial => 'new_question', :locals => {:exercise => @exercise} %> else
</div><!--选项 end--> {
doc.parent().remove();
<!-- 新增问题 --> }
<div id="new_poll_question"> }
</div> </script>
<div class="homepageRight mt0 ml10">
<div id="exercise_submit"> <div class="resources">
<%= render :partial => 'exercise_submit', :locals => {:exercise => @exercise} %> <!-- 头部 -->
</div> <div id="polls_head_show" style="display: none;">
<div class="cl"></div> <%= render :partial => 'show_head', :locals => {:exercise => @exercise} %>
<!--contentbox end--> </div>
</div> <div id="polls_head_edit">
</div><!--编辑end--> <%= render :partial => 'edit_head', :locals => {:exercise => @exercise} %>
</div>
<% current_score = get_current_score @exercise %>
<div class="mb5" style="display: <%= current_score == 0 ? "none" : "" %>" id="current_score_div">目前试卷总分:<span class="c_red" id="current_score"><%= current_score %>
分</span></div>
<!-- 问题 -->
<div id="poll_content">
<%= render :partial => 'exercise_content', :locals => {:exercise => @exercise} %>
</div>
<div class="testQuestion" id="new_exercise_question">
<%= render :partial => 'new_question', :locals => {:exercise => @exercise} %>
</div>
<!--选项 end-->
<!-- 新增问题 -->
<div id="new_poll_question">
</div>
<div id="exercise_submit">
<%= render :partial => 'exercise_submit', :locals => {:exercise => @exercise} %>
</div>
<div class="cl"></div>
<!--contentbox end-->
</div>
</div><!--编辑end-->

@ -3,6 +3,12 @@
$("#RSide").removeAttr("id"); $("#RSide").removeAttr("id");
$("#homework_page_right").css("min-height",$("#LSide").height()-30); $("#homework_page_right").css("min-height",$("#LSide").height()-30);
$("#Container").css("width","1000px"); $("#Container").css("width","1000px");
<%uncomplete_question =get_uncomplete_question(exercise, User.current) %>;
<% if (uncomplete_question.count < 1) %>
$("#exercise_submit_btn").html("提交");
<% end %>
var end_time = <%=exercise.end_time.to_i%>;
getTime(end_time);
/*start_time = new Date(); /*start_time = new Date();
start_time.setFullYear(<%#=exercise_user.start_at.year%>); start_time.setFullYear(<%#=exercise_user.start_at.year%>);
start_time.setMonth(<%#=exercise_user.start_at.month%>); start_time.setMonth(<%#=exercise_user.start_at.month%>);
@ -17,11 +23,16 @@
function getTime(end_time) { function getTime(end_time) {
//alert(end_time); //alert(end_time);
now = new Date(); now = new Date();
var total_seconds = (now.getTime() - end_time)/1000; var total_seconds = now.getTime()/1000 - end_time;
if (total_seconds > 0) {
$("#exercise_submit_btn").click();
return;
}
setTimeout("getTime("+end_time+");", 1000);
//start = new Date(start_time); //start = new Date(start_time);
//end_time = start_time; //end_time = start_time;
//var total_seconds = total_seconds - 1; //var total_seconds = total_seconds - 1;
var hours = total_seconds / 60 / 60; /*var hours = total_seconds / 60 / 60;
var hoursRound = Math.floor(hours); var hoursRound = Math.floor(hours);
var minutes = total_seconds /60 - (60 * hoursRound); var minutes = total_seconds /60 - (60 * hoursRound);
var minutesRound = Math.floor(minutes); var minutesRound = Math.floor(minutes);
@ -29,9 +40,9 @@
var secondsRound = Math.round(seconds); var secondsRound = Math.round(seconds);
$("#rest_hours").html(hoursRound); $("#rest_hours").html(hoursRound);
$("#rest_minutes").html(minutesRound); $("#rest_minutes").html(minutesRound);
$("#rest_seconds").html(secondsRound); $("#rest_seconds").html(secondsRound);*/
//if(total_seconds >0) { //if(total_seconds >0) {
setTimeout("getTime("+end_time+");", 1000); //setTimeout("getTime("+end_time+");", 1000);
//} //}
} }
</script> </script>
@ -41,8 +52,11 @@
<h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1> <h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1>
<div id="start_time" style="display: none"><%=exercise_user.start_at %></div> <div id="start_time" style="display: none"><%=exercise_user.start_at %></div>
<div class="fontGrey2"> <div class="fontGrey2">
<span class="mr130">开始时间:<%=format_time(exercise_user.start_at.to_s)%></span> <span class="mr100">开始时间:<%=Time.parse(h(exercise_user.start_at)).strftime("%Y-%m-%d %H:%M:%S")%></span>
<span class="mr130">测验时长:<%=exercise.time %>分钟</span> <span class="mr100">截止时间:<%=Time.parse(h(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S")%></span>
<% unless exercise.time == -1 %>
<span class="fr">测验时长:<%=exercise.time %>分钟</span>
<% end %>
<!-- <!--
<span class="fr">剩余时长:<span class="c_red" id="rest_hours"></span>&nbsp;小时&nbsp;<span class="c_red" id="rest_minutes"></span>&nbsp;分钟&nbsp;<span class="c_red" id="rest_seconds"></span>&nbsp;秒</span> <span class="fr">剩余时长:<span class="c_red" id="rest_hours"></span>&nbsp;小时&nbsp;<span class="c_red" id="rest_minutes"></span>&nbsp;分钟&nbsp;<span class="c_red" id="rest_seconds"></span>&nbsp;秒</span>
--> -->
@ -90,6 +104,11 @@
{ {
obj.checked = false; obj.checked = false;
} }
if(dataObj.complete == 1) {
$("#exercise_submit_btn").html("提交");
} else {
$("#exercise_submit_btn").html("保存");
}
} }
}); });
} }
@ -144,6 +163,11 @@
{ {
obj.checked = false; obj.checked = false;
} }
if(dataObj.complete == 1) {
$("#exercise_submit_btn").html("提交");
} else {
$("#exercise_submit_btn").html("保存");
}
} }
}); });
} }
@ -186,12 +210,17 @@
success: function (data) { success: function (data) {
var dataObj = eval(data); var dataObj = eval(data);
obj.value = dataObj.text; obj.value = dataObj.text;
if(dataObj.complete == 1) {
$("#exercise_submit_btn").html("提交");
} else {
$("#exercise_submit_btn").html("保存");
}
} }
}); });
} }
</script> </script>
<input class="fillInput" placeholder="在此填入答案" type="text" value="" onblur="onblur_<%= exercise_question.id %>(this);" <%= @can_edit_excercise?"":"disabled=disabled" %>> <input class="fillInput" placeholder="在此填入答案" type="text" value="<%= get_anwser_vote_text(exercise_question.id,User.current.id).html_safe %>" onblur="onblur_<%= exercise_question.id %>(this);" <%= @can_edit_excercise?"":"disabled=disabled" %>>
</div> </div>
</div> </div>
</div> </div>
@ -199,7 +228,7 @@
<% end %> <% end %>
</div> </div>
<div class="ur_buttons"> <div class="ur_buttons">
<%= link_to l(:button_submit),commit_exercise_exercise_path(exercise), :method => :post,:class => "ur_button_submit",:style => "margin-left:80px;",:format => 'js',:remote=>true %> <%= link_to "保存",commit_exercise_exercise_path(exercise),:id=>"exercise_submit_btn", :method => :post,:class => "ur_button_submit",:style => "margin-left:80px;",:format => 'js',:remote=>true %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<!--contentbox end--> <!--contentbox end-->

@ -10,8 +10,11 @@
<div class="testStatus"><!--头部显示 start--> <div class="testStatus"><!--头部显示 start-->
<h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1> <h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1>
<div class="fontGrey2"> <div class="fontGrey2">
<span class="mr130">开始时间:<%=format_time(exercise_user.start_at.to_s) %></span> <span class="mr100">开始时间:<%=Time.parse(h(exercise_user.start_at)).strftime("%Y-%m-%d %H:%M:%S") %></span>
<span class="mr130">测验时长:<%=exercise.time %>分钟</span> <span class="mr100">截止时间:<%=Time.parse(h(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S")%></span>
<% unless exercise.time == -1 %>
<span class="fr">测验时长:<%=exercise.time %>分钟</span>
<% end %>
<%# time = exercise_user.end_at - exercise_user.start_at %> <%# time = exercise_user.end_at - exercise_user.start_at %>
</div> </div>
<div class="testDesEdit mt5"><%= exercise.exercise_description.nil? ? "" : exercise.exercise_description.html_safe%></div> <div class="testDesEdit mt5"><%= exercise.exercise_description.nil? ? "" : exercise.exercise_description.html_safe%></div>
@ -31,12 +34,12 @@
<span class="ml15 c_red"> <span class="ml15 c_red">
<% answer = get_user_answer(exercise_question, User.current)%> <% answer = get_user_answer(exercise_question, User.current)%>
<% standard_answer = get_user_standard_answer(exercise_question, User.current)%> <% standard_answer = get_user_standard_answer(exercise_question, User.current)%>
<% if answer.first.exercise_choice.choice_position == standard_answer.first.exercise_choice_id %> <% if !answer.empty? && !standard_answer.empty? && answer.first.exercise_choice.choice_position == standard_answer.first.exercise_choice_id %>
<% else %> <% else %>
× ×
<% end %></span><br /> <% end %></span><br />
标准答案:<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %> 标准答案:<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) if exercise_question.exercise_standard_answers.first %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div class="ur_inputs"> <div class="ur_inputs">
@ -70,7 +73,7 @@
<span class="ml15 c_red"> <span class="ml15 c_red">
<% answer = get_user_answer(exercise_question, User.current)%> <% answer = get_user_answer(exercise_question, User.current)%>
<% standard_answer = get_user_standard_answer(exercise_question, User.current)%> <% standard_answer = get_user_standard_answer(exercise_question, User.current)%>
<% if get_mulscore(exercise_question, User.current).to_i == standard_answer.first.exercise_choice_id %> <% if !standard_answer.empty? && get_mulscore(exercise_question, User.current).to_i == standard_answer.first.exercise_choice_id %>
<% else %> <% else %>
× ×
@ -109,12 +112,12 @@
<span class="ml15 c_red"> <span class="ml15 c_red">
<% answer = get_user_answer(exercise_question, User.current)%> <% answer = get_user_answer(exercise_question, User.current)%>
<% standard_answer = get_user_standard_answer(exercise_question, User.current)%> <% standard_answer = get_user_standard_answer(exercise_question, User.current)%>
<% if standard_answer.include?(answer.first.answer_text) %> <% if !answer.empty? && !standard_answer.empty? && standard_answer.include?(answer.first.answer_text) %>
<% else %> <% else %>
× ×
<% end %></span><br /> <% end %></span><br />
标准答案:<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %> 标准答案:<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) if exercise_question.exercise_standard_answers.first %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div> <div>

@ -19,14 +19,9 @@
<% mc_count = exercise.exercise_questions.where("question_type=1").count %> <% mc_count = exercise.exercise_questions.where("question_type=1").count %>
<% mcq_count = exercise.exercise_questions.where("question_type=2").count %> <% mcq_count = exercise.exercise_questions.where("question_type=2").count %>
<% single_count = exercise.exercise_questions.where("question_type=3").count %> <% single_count = exercise.exercise_questions.where("question_type=3").count %>
<p class="f14">当前测验 <p class="f14">当前测验<%if question_count >0%>共有<%= question_count %>道题,其中<%end%><%if mc_count > 0%><%=mc_count %>道单选、<%end%><%if mcq_count > 0%><%=mcq_count %>道多选、<%end%><%if single_count > 0%><%=single_count %>道填空,<%end%>总分为<span class="c_red"><%=current_score %></span>分。
<% if question_count > 0 %>共有<%= question_count %>道题,其中<% end %>
<% if mc_count > 0 %><%= mc_count %>道单选、<% end %>
<% if mcq_count > 0 %><%= mcq_count %>道多选、<% end %>
<% if single_count > 0%><%= single_count %>道填空,<% end %>
总分为<span class="c_red"><%=current_score %></span>分。
<br /><br /> <br /><br />
是否确定提交该测验? <% if exercise.publish_time.nil? %>点击提交后测验将立即发布,<% end %>是否确定提交该测验?
</p> </p>
<div class="polls_btn_box"> <div class="polls_btn_box">
<a class="upload_btn" onclick="exercise_submit();"> <a class="upload_btn" onclick="exercise_submit();">

@ -10,9 +10,13 @@
<div class="testStatus"><!--头部显示 start--> <div class="testStatus"><!--头部显示 start-->
<h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1> <h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1>
<div class="fontGrey2"> <div class="fontGrey2">
<span class="mr130">发布时间:<%=format_time(exercise.publish_time.to_s) %></span> <% unless exercise.publish_time.nil? %>
<span class="mr130">截止时间:<%=format_time(exercise.end_time.to_s) %></span> <span class="mr100">发布时间:<%=Time.parse(h(exercise.publish_time)).strftime("%Y-%m-%d %H:%M:%S") %></span>
<span class="fr">测验时长:<%=exercise.time %>分钟</span> <% end %>
<span class="mr100">截止时间:<%=Time.parse(h(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") %></span>
<% if exercise.time != -1 %>
<span class="fr">测验时长:<%=exercise.time %>分钟</span>
<% end %>
</div> </div>
<div class="testDesEdit mt5"><%= exercise.exercise_description.nil? ? "" : exercise.exercise_description.html_safe%></div> <div class="testDesEdit mt5"><%= exercise.exercise_description.nil? ? "" : exercise.exercise_description.html_safe%></div>
<div class="cl"></div> <div class="cl"></div>
@ -92,7 +96,7 @@
<div> <div>
<div class="testEditTitle"> 第<%= list_index+1%>题:<%= exercise_question.question_title %>&nbsp;&nbsp;(<%= exercise_question.question_score %>分) <div class="testEditTitle"> 第<%= list_index+1%>题:<%= exercise_question.question_title %>&nbsp;&nbsp;(<%= exercise_question.question_score %>分)
<br /> <br />
标准答案:<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %> 标准答案:<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) if exercise_question.exercise_standard_answers.first%>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div> <div>

@ -1,25 +1,25 @@
<div class="polls_head"> <div class="polls_head" style="width:730px;">
<h2>所有试卷 <h2>所有试卷
<span><%= @obj_count%></span> <span><%= @obj_count%></span>
</h2> </h2>
<% if @is_teacher%> <% if @is_teacher%>
<%#= link_to "导入", other_poll_poll_index_path(:polls_group_id => @course.id), :remote=>true,:class => "newbtn"%> <%#= link_to "导入", other_poll_poll_index_path(:polls_group_id => @course.id), :remote=>true,:class => "newbtn"%>
<%= link_to "新建试卷 ", new_exercise_path(:course_id => @course.id), :class => "newbtn" %> <%= link_to "新建试卷 ", new_exercise_path(:course_id => @course.id), :class => "newbtn" %>
<% end%> <% end%>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div id="polls_list" class="polls_list"> <div id="polls_list" class="polls_list">
<% @exercises.each do |exercise|%> <% @exercises.each_with_index do |exercise,index|%>
<ul id="exercises_<%= exercise.id %>" class="polls_list_ul"> <ul id="exercises_<%= exercise.id %>" class="polls_list_ul">
<%= render :partial => 'exercise', :locals => {:exercise => exercise} %> <%= render :partial => 'exercise', :locals => {:exercise => exercise,:index => index} %>
</ul> </ul>
<div class="cl"></div> <div class="cl"></div>
<% end%> <% end%>
<ul class="wlist"> <ul class="wlist">
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%> <%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
</ul> </ul>
<div class="cl"></div> <div class="cl"></div>
</div><!--列表end--> </div><!--列表end-->

@ -1,60 +1,62 @@
<%= form_for(ExerciseQuestion.new, <%= form_for(ExerciseQuestion.new,
:html => { :multipart => true }, :html => { :multipart => true },
:url=>create_exercise_question_exercise_path(exercise.id), :url=>create_exercise_question_exercise_path(exercise.id),
:remote=>true ) do |f| %> :remote=>true ) do |f| %>
<div class="questionContainer"> <div class="questionContainer">
<div class="ur_editor_title"> <div class="ur_editor_title">
<label>问题:&nbsp;&nbsp;</label> <label>问题:&nbsp;&nbsp;</label>
<input name="question_type" value="1" type="hidden"> <input name="question_type" value="1" type="hidden">
<input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入单选题题目" type="text"> <input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入单选题题目" type="text">
</div> </div>
<div class="ur_editor_content"> <div class="ur_editor_content">
<ul> <ul>
<li class="ur_item"> <li class="ur_item">
<% score = exercise.exercise_questions.where("question_type=1").last.nil? ? "": exercise.exercise_questions.where("question_type=1").last.question_score %> <% score = exercise.exercise_questions.where("question_type=1").last.nil? ? "": exercise.exercise_questions.where("question_type=1").last.question_score %>
<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input id="question_score" value="<%=score %>" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;">分 <input id="question_score" value="<%=score %>" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;">分
</li> </li>
<div class="cl"></div> <div class="cl"></div>
<li class="ur_item"> <div>
<label>选项A<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input maxlength="200" type='text' name='question_answer[0]' placeholder='输入选项内容'> <label>选项A<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <input maxlength="200" type='text' name='question_answer[0]' placeholder='输入选项内容'>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> <div class="cl"></div>
<label>选项B<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input maxlength="200" type='text' name='question_answer[1]' placeholder='输入选项内容'> <label>选项B<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <input maxlength="200" type='text' name='question_answer[1]' placeholder='输入选项内容'>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> <div class="cl"></div>
<label>选项C<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input maxlength="200" type='text' name='question_answer[2]' placeholder='输入选项内容'/> <label>选项C<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <input maxlength="200" type='text' name='question_answer[2]' placeholder='输入选项内容'/>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> <div class="cl"></div>
<label>选项D<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input maxlength="200" type='text' name='question_answer[3]' placeholder='输入选项内容'/> <label>选项D<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <input maxlength="200" type='text' name='question_answer[3]' placeholder='输入选项内容'/>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> </div>
<label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <div class="cl"></div>
<input id="question_standard_ans" name="exercise_choice" placeholder="若标准答案为A在此输入A即可" type="text"> <li class="ur_item">
</li> <label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<div class="cl"></div> <input id="question_standard_ans" name="exercise_choice" placeholder="若标准答案为A在此输入A即可" type="text">
</ul> </li>
</div> <div class="cl"></div>
<div class="ur_editor_footer"> </ul>
<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),1);"> 保存 </a> </div>
<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();"> 取消 </a> <div class="ur_editor_footer">
</div> <a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),1);"> 保存 </a>
<div class="cl"></div> <a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();"> 取消 </a>
</div> </div>
<div class="cl"></div>
</div>
<% end %> <% end %>

@ -1,60 +1,62 @@
<%= form_for(ExerciseQuestion.new, <%= form_for(ExerciseQuestion.new,
:html => { :multipart => true }, :html => { :multipart => true },
:url=>create_exercise_question_exercise_path(exercise.id), :url=>create_exercise_question_exercise_path(exercise.id),
:remote=>true ) do |f| %> :remote=>true ) do |f| %>
<div class="questionContainer"> <div class="questionContainer">
<div class="ur_editor_title"> <div class="ur_editor_title">
<label>问题:&nbsp;&nbsp;</label> <label>问题:&nbsp;&nbsp;</label>
<input name="question_type" value="2" type="hidden"> <input name="question_type" value="2" type="hidden">
<input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入多选题题目" type="text"> <input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入多选题题目" type="text">
</div> </div>
<div class="ur_editor_content"> <div class="ur_editor_content">
<ul> <ul>
<li class="ur_item"> <li class="ur_item">
<% score = exercise.exercise_questions.where("question_type=2").last.nil? ? "": exercise.exercise_questions.where("question_type=2").last.question_score %> <% score = exercise.exercise_questions.where("question_type=2").last.nil? ? "": exercise.exercise_questions.where("question_type=2").last.question_score %>
<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input id="question_score" value="<%=score %>" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;">分 <input id="question_score" value="<%=score %>" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;">分
</li> </li>
<div class="cl"></div> <div class="cl"></div>
<li class="ur_item"> <div>
<label>选项A<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input maxlength="200" type='text' name='question_answer[0]' placeholder='输入选项内容'> <label>选项A<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <input maxlength="200" type='text' name='question_answer[0]' placeholder='输入选项内容'>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> <div class="cl"></div>
<label>选项B<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input maxlength="200" type='text' name='question_answer[1]' placeholder='输入选项内容'> <label>选项B<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <input maxlength="200" type='text' name='question_answer[1]' placeholder='输入选项内容'>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> <div class="cl"></div>
<label>选项C<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input maxlength="200" type='text' name='question_answer[2]' placeholder='输入选项内容'> <label>选项C<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <input maxlength="200" type='text' name='question_answer[2]' placeholder='输入选项内容'>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> <div class="cl"></div>
<label>选项D<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input maxlength="200" type='text' name='question_answer[3]' placeholder='输入选项内容'> <label>选项D<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <input maxlength="200" type='text' name='question_answer[3]' placeholder='输入选项内容'>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> </div>
<label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <div class="cl"></div>
<input id="question_standard_ans" name="exercise_choice" placeholder="若标准答案为A,B,C在答案输入框填入ABC即可" type="text"> <li class="ur_item">
</li> <label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<div class="cl"></div> <input id="question_standard_ans" name="exercise_choice" placeholder="若标准答案为A,B,C在答案输入框填入ABC即可" type="text">
</ul> </li>
</div> <div class="cl"></div>
<div class="ur_editor_footer"> </ul>
<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),2);"> 保存 </a> </div>
<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();"> 取消 </a> <div class="ur_editor_footer">
</div> <a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),2);"> 保存 </a>
<div class="cl"></div> <a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();"> 取消 </a>
</div> </div>
<div class="cl"></div>
</div>
<% end %> <% end %>

@ -8,7 +8,7 @@
<input name="question_type" value="3" type="hidden"> <input name="question_type" value="3" type="hidden">
<input maxlength="250" class="questionTitle" name="question_title" id="poll_questions_title" placeholder="请输入填空题的内容(注意:目前填空题暂时仅支持一个空)" type="text"> <input maxlength="250" class="questionTitle" name="question_title" id="poll_questions_title" placeholder="请输入填空题的内容(注意:目前填空题暂时仅支持一个空)" type="text">
</div> </div>
<div class="ur_editor_content"> <div class="ur_editor_content" id="new_single">
<ul> <ul>
<li class="ur_item"> <li class="ur_item">
<% score = exercise.exercise_questions.where("question_type=3").last.nil? ? "": exercise.exercise_questions.where("question_type=3").last.question_score %> <% score = exercise.exercise_questions.where("question_type=3").last.nil? ? "": exercise.exercise_questions.where("question_type=3").last.question_score %>
@ -16,26 +16,28 @@
<input id="question_score" value="<%= score%>" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;">分 <input id="question_score" value="<%= score%>" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;">分
</li> </li>
<div class="cl"></div> <div class="cl"></div>
<li class="ur_item"> <div>
<label>候选答案一<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input name="exercise_choice[0]" placeholder="请输入候选答案一" type="text"> <label>候选答案一<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a> <input class="candiate_answer" name="exercise_choice[0]" placeholder="请输入候选答案一" type="text">
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> <div class="cl"></div>
<label>候选答案二<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input name="exercise_choice[1]" placeholder="请输入候选答案二(选填)" type="text"> <label>候选答案二<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a> <input class="candiate_answer" name="exercise_choice[1]" placeholder="请输入候选答案二(选填)" type="text">
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
<div class="cl"></div> </li>
<li class="ur_item"> <div class="cl"></div>
<label>候选答案三<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <li class="ur_item">
<input name="exercise_choice[2]" placeholder="请输入候选答案三(选填)" type="text"> <label>候选答案三<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a> <input class="candiate_answer" name="exercise_choice[2]" placeholder="请输入候选答案三(选填)" type="text">
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> <a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>
</li> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
</li>
</div>
<div class="cl"></div> <div class="cl"></div>
</ul> </ul>
</div> </div>

@ -1,111 +1,111 @@
<div> <div>
<div class="testEditTitle"> 第<%= exercise_question.question_number%>题.(<%= exercise_question.question_score %>分)<br /> <div class="testEditTitle"> 第<%= exercise_question.question_number%>题.(<%= exercise_question.question_score %>分)<br />
<%= exercise_question.question_title %> <%= exercise_question.question_title %>
<span class="ml10">(<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>)</span> <span class="ml10">(<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>)</span>
</div> </div>
<%= link_to("", delete_exercise_question_exercise_index_path(:exercise_question => exercise_question.id, :quest_num => exercise_question.question_number), <%= link_to("", delete_exercise_question_exercise_index_path(:exercise_question => exercise_question.id, :quest_num => exercise_question.question_number),
method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "ur_icon_de") %> method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "ur_icon_de") %>
<a class="ur_icon_edit" title="编辑" onclick="pollQuestionEdit(<%= exercise_question.id%>);"></a> <a class="ur_icon_edit" title="编辑" onclick="pollQuestionEdit(<%= exercise_question.id%>);"></a>
<a class='ur_icon_add' title='向下插入' id="add_mc_<%=exercise_question.id%>" onclick="dismiss('mc',<%=exercise_question.id%>);insert_MC('mc',<%=exercise_question.question_number%>,<%=exercise_question.id%>);"></a> <a class='ur_icon_add' title='向下插入' id="add_mc_<%=exercise_question.id%>" onclick="dismiss('mc',<%=exercise_question.id%>);insert_MC('mc',<%=exercise_question.question_number%>,<%=exercise_question.id%>);"></a>
<div class="cl"></div> <div class="cl"></div>
<div class="ur_inputs"> <div class="ur_inputs">
<table class="ur_table" style="width:675px;"> <table class="ur_table" style="width:675px;">
<tbody> <tbody>
<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %> <% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>
<tr> <tr>
<td> <td>
<label> <label>
<input class="ur_radio" type="radio" name="<%= exercise_question %>" value="<%= exercise_choice.choice_text%>" > <input class="ur_radio" type="radio" name="<%= exercise_question %>" value="<%= exercise_choice.choice_text%>" >
<%= convert_to_char((index+1).to_s)%>&nbsp;&nbsp;<%= exercise_choice.choice_text%> <%= convert_to_char((index+1).to_s)%>&nbsp;&nbsp;<%= exercise_choice.choice_text%>
</label> </label>
</td> </td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>
</table> </table>
</div> </div>
</div><!--单选题显示 end--> </div><!--单选题显示 end-->
<!-- 新增问题 --> <!-- 新增问题 -->
<div id="insert_new_poll_question_mc_<%=exercise_question.id%>"> <div id="insert_new_poll_question_mc_<%=exercise_question.id%>">
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
function insert_MC(quest_type,quest_num,quest_id){ function insert_MC(quest_type,quest_num,quest_id){
var forms = $("form.new_exercise_question"); var forms = $("form.new_exercise_question");
if($.trim($("#insert_new_poll_question_"+quest_type+"_"+quest_id).html()) == "") { if($.trim($("#insert_new_poll_question_"+quest_type+"_"+quest_id).html()) == "") {
if(forms.length > 0){ if(forms.length > 0){
alert("请先保存正在编辑的题目再新建。"); alert("请先保存正在编辑的题目再新建。");
} else{ } else{
<% score =exercise_question.question_score %> <% score =exercise_question.question_score %>
$("#insert_new_poll_question_"+quest_type+"_"+quest_id).html( $("#insert_new_poll_question_"+quest_type+"_"+quest_id).html(
'<%= form_for(ExerciseQuestion.new,:html=>{:multipart=>true},:url=>create_exercise_question_exercise_path(exercise_question.exercise.id),:remote=>true) do |f|%>'+ '<%= form_for(ExerciseQuestion.new,:html=>{:multipart=>true},:url=>create_exercise_question_exercise_path(exercise_question.exercise.id),:remote=>true) do |f|%>'+
' <div class="questionContainer" style="width: 680px;"> '+ ' <div class="questionContainer" style="width: 680px;"> '+
'<div class="ur_editor_title"> '+ '<div class="ur_editor_title"> '+
'<label>问题:&nbsp;&nbsp;</label>'+ '<label>问题:&nbsp;&nbsp;</label>'+
'<input type="hidden" name="quest_id" value="'+quest_id+'"/>'+ '<input type="hidden" name="quest_id" value="'+quest_id+'"/>'+
'<input type="hidden" name="quest_num" value="'+quest_num+'"/>'+ '<input type="hidden" name="quest_num" value="'+quest_num+'"/>'+
'<input type="hidden" name="question_type" value="1"/>'+ '<input type="hidden" name="question_type" value="1"/>'+
'<input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入单选题题目" type="text"/>'+ '<input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入单选题题目" type="text"/>'+
'</div>'+ '</div>'+
'<div class="ur_editor_content">'+ '<div class="ur_editor_content">'+
'<ul>'+ '<ul>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input value="<%=score %>" id="question_score" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;"/>分'+ '<input value="<%=score %>" id="question_score" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;"/>分'+
'</li>'+ '</li><div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>选项A<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>选项A<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input maxlength="200" type="text" name="question_answer[0]" placeholder="输入选项内容"/>'+ '<input maxlength="200" type="text" name="question_answer[0]" placeholder="输入选项内容"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>选项B<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>选项B<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input maxlength="200" type="text" name="question_answer[1]" placeholder="输入选项内容"/>'+ '<input maxlength="200" type="text" name="question_answer[1]" placeholder="输入选项内容"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>选项C<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>选项C<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input maxlength="200" type="text" name="question_answer[2]" placeholder="输入选项内容"/>'+ '<input maxlength="200" type="text" name="question_answer[2]" placeholder="输入选项内容"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>选项D<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>选项D<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input maxlength="200" type="text" name="question_answer[3]" placeholder="输入选项内容"/>'+ '<input maxlength="200" type="text" name="question_answer[3]" placeholder="输入选项内容"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li></div>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input name="exercise_choice" id="question_standard_ans" placeholder="若标准答案为A在此输入A即可" type="text">'+ '<input name="exercise_choice" id="question_standard_ans" placeholder="若标准答案为A在此输入A即可" type="text">'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'</ul>'+ '</ul>'+
'</div>'+ '</div>'+
'<div class="ur_editor_footer">'+ '<div class="ur_editor_footer">'+
'<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),1);">'+ '<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),1);">'+
'保存'+ '保存'+
'</a>'+ '</a>'+
'<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();">'+ '<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();">'+
'<%= l(:button_cancel)%>'+ '<%= l(:button_cancel)%>'+
'</a>'+ '</a>'+
'</div>'+ '</div>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'</div>'+ '</div>'+
'<% end%>' '<% end%>'
); );
$("#poll_questions_title").focus(); $("#poll_questions_title").focus();
} }
} }
else { else {
$("#insert_new_poll_question_"+quest_type+"_"+quest_id).html(""); $("#insert_new_poll_question_"+quest_type+"_"+quest_id).html("");
} }
} }
</script> </script>

@ -1,109 +1,109 @@
<div> <div>
<div class="testEditTitle"> 第<%= exercise_question.question_number%>题.(<%= exercise_question.question_score %>分)<br /> <div class="testEditTitle"> 第<%= exercise_question.question_number%>题.(<%= exercise_question.question_score %>分)<br />
<%= exercise_question.question_title %> <%= exercise_question.question_title %>
<span class="ml10">(<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>)</span> <span class="ml10">(<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>)</span>
</div> </div>
<%= link_to("", delete_exercise_question_exercise_index_path(:exercise_question => exercise_question.id, :quest_num => exercise_question.question_number), <%= link_to("", delete_exercise_question_exercise_index_path(:exercise_question => exercise_question.id, :quest_num => exercise_question.question_number),
method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "ur_icon_de") %> method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "ur_icon_de",:title => "删除") %>
<a class="ur_icon_edit" title="编辑" onclick="pollQuestionEdit(<%= exercise_question.id%>);"></a> <a class="ur_icon_edit" title="编辑" onclick="pollQuestionEdit(<%= exercise_question.id%>);"></a>
<a class='ur_icon_add' title='向下插入' id="add_mcq_<%=exercise_question.id%>" onclick="dismiss('mcq',<%=exercise_question.id%>);insert_MCQ('mcq',<%=exercise_question.question_number%>,<%=exercise_question.id%>);"></a> <a class='ur_icon_add' title='向下插入' id="add_mcq_<%=exercise_question.id%>" onclick="dismiss('mcq',<%=exercise_question.id%>);insert_MCQ('mcq',<%=exercise_question.question_number%>,<%=exercise_question.id%>);"></a>
<div class="cl"></div> <div class="cl"></div>
<div class="ur_inputs"> <div class="ur_inputs">
<table class="ur_table" style="width:675px;"> <table class="ur_table" style="width:675px;">
<tbody> <tbody>
<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %> <% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>
<tr> <tr>
<td> <td>
<label> <label>
<input class="ur_radio" type="checkbox" name="<%= exercise_question %>" value="<%= exercise_choice.choice_text%>" > <input class="ur_radio" type="checkbox" name="<%= exercise_question %>" value="<%= exercise_choice.choice_text%>" >
<%= convert_to_char((index+1).to_s)%>&nbsp;&nbsp;<%= exercise_choice.choice_text%> <%= convert_to_char((index+1).to_s)%>&nbsp;&nbsp;<%= exercise_choice.choice_text%>
</label> </label>
</td> </td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>
</table> </table>
</div> </div>
</div><!--多选题显示 end--> </div><!--多选题显示 end-->
<!-- 新增问题 --> <!-- 新增问题 -->
<div id="insert_new_poll_question_mcq_<%=exercise_question.id%>"> <div id="insert_new_poll_question_mcq_<%=exercise_question.id%>">
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
function insert_MCQ(quest_type,quest_num,quest_id){ function insert_MCQ(quest_type,quest_num,quest_id){
var forms = $("form.new_exercise_question"); var forms = $("form.new_exercise_question");
if($.trim($("#insert_new_poll_question_"+quest_type+"_"+quest_id).html()) == ""){ if($.trim($("#insert_new_poll_question_"+quest_type+"_"+quest_id).html()) == ""){
if(forms.length > 0){ if(forms.length > 0){
alert("请先保存正在编辑的题目再新建。"); alert("请先保存正在编辑的题目再新建。");
} else { } else {
<% score =exercise_question.question_score %> <% score =exercise_question.question_score %>
$("#insert_new_poll_question_"+quest_type+"_"+quest_id).html( $("#insert_new_poll_question_"+quest_type+"_"+quest_id).html(
'<%= form_for(ExerciseQuestion.new,:html=>{:multipart=>true},:url=>create_exercise_question_exercise_path(exercise_question.exercise.id),:remote=>true) do |f|%>'+ '<%= form_for(ExerciseQuestion.new,:html=>{:multipart=>true},:url=>create_exercise_question_exercise_path(exercise_question.exercise.id),:remote=>true) do |f|%>'+
' <div class="questionContainer" style="width: 680px;"> '+ ' <div class="questionContainer" style="width: 680px;"> '+
'<div class="ur_editor_title"> '+ '<div class="ur_editor_title"> '+
'<label>问题:&nbsp;&nbsp;</label>'+ '<label>问题:&nbsp;&nbsp;</label>'+
'<input type="hidden" name="quest_id" value="'+quest_id+'"/>'+ '<input type="hidden" name="quest_id" value="'+quest_id+'"/>'+
'<input type="hidden" name="quest_num" value="'+quest_num+'"/>'+ '<input type="hidden" name="quest_num" value="'+quest_num+'"/>'+
'<input type="hidden" name="question_type" value="2"/>'+ '<input type="hidden" name="question_type" value="2"/>'+
'<input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入多选题题目" type="text"/>'+ '<input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入多选题题目" type="text"/>'+
'</div>'+ '</div>'+
'<div class="ur_editor_content">'+ '<div class="ur_editor_content">'+
'<ul>'+ '<ul>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input value="<%= score %>" id="question_score" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;"/>分'+ '<input value="<%= score %>" id="question_score" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;"/>分'+
'</li>'+ '</li><div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>选项A<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>选项A<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input maxlength="200" type="text" name="question_answer[0]" placeholder="输入选项内容"/>'+ '<input maxlength="200" type="text" name="question_answer[0]" placeholder="输入选项内容"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>选项B<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>选项B<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input maxlength="200" type="text" name="question_answer[1]" placeholder="输入选项内容"/>'+ '<input maxlength="200" type="text" name="question_answer[1]" placeholder="输入选项内容"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>选项C<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>选项C<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input maxlength="200" type="text" name="question_answer[2]" placeholder="输入选项内容"/>'+ '<input maxlength="200" type="text" name="question_answer[2]" placeholder="输入选项内容"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>选项D<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>选项D<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input maxlength="200" type="text" name="question_answer[3]" placeholder="输入选项内容"/>'+ '<input maxlength="200" type="text" name="question_answer[3]" placeholder="输入选项内容"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li></div>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input name="exercise_choice" id="question_standard_ans" placeholder="若标准答案为A,B,C在答案输入框填入ABC即可" type="text">'+ '<input name="exercise_choice" id="question_standard_ans" placeholder="若标准答案为A,B,C在答案输入框填入ABC即可" type="text">'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'</ul>'+ '</ul>'+
'</div>'+ '</div>'+
'<div class="ur_editor_footer">'+ '<div class="ur_editor_footer">'+
'<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),2);">'+ '<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),2);">'+
'保存'+ '保存'+
'</a>'+ '</a>'+
'<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();">'+ '<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();">'+
'<%= l(:button_cancel)%>'+ '<%= l(:button_cancel)%>'+
'</a>'+ '</a>'+
'</div>'+ '</div>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'</div>'+ '</div>'+
'<% end%>' '<% end%>'
); );
$("#poll_questions_title").focus(); $("#poll_questions_title").focus();
} }
}else { }else {
$("#insert_new_poll_question_"+quest_type+"_"+quest_id).html(""); $("#insert_new_poll_question_"+quest_type+"_"+quest_id).html("");
} }
} }
</script> </script>

@ -3,9 +3,14 @@
<!-- <a class='ur_icon_add' title='导入' id="import_btn" onclick="importPoll();"></a> --> <!-- <a class='ur_icon_add' title='导入' id="import_btn" onclick="importPoll();"></a> -->
<h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1> <h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1>
<div class="fontGrey2"> <div class="fontGrey2">
<span class="mr100">发布时间:<%=Time.parse(format_time(exercise.publish_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.publish_time%></span> <% unless exercise.publish_time.nil? %>
<span class="mr100">截止时间:<%=Time.parse(format_time(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.end_time %></span> <span class="mr100">发布时间:<%=Time.parse(h(exercise.publish_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.publish_time%></span>
<span>测验时长:<%= exercise.time %>分钟</span></div> <% end %>
<span class="mr100">截止时间:<%=Time.parse(h(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.end_time %></span>
<% if exercise.time != -1 %>
<span>测验时长:<%= exercise.time %>分钟</span>
<% end %>
</div>
<div class="testDesEdit mt5"><%= exercise.exercise_description.nil? ? "" : exercise.exercise_description.html_safe%></div> <div class="testDesEdit mt5"><%= exercise.exercise_description.nil? ? "" : exercise.exercise_description.html_safe%></div>
<div class="cl"></div> <div class="cl"></div>
<div class="cl"></div> <div class="cl"></div>

@ -1,85 +1,85 @@
<div> <div>
<div class="testEditTitle"> 第<%= exercise_question.question_number%>题.(<%= exercise_question.question_score %>分)<br /> <div class="testEditTitle"> 第<%= exercise_question.question_number%>题.(<%= exercise_question.question_score %>分)<br />
<%= exercise_question.question_title %> <%= exercise_question.question_title %>
</div> </div>
<%= link_to("", delete_exercise_question_exercise_index_path(:exercise_question => exercise_question.id, :quest_num => exercise_question.question_number), <%= link_to("", delete_exercise_question_exercise_index_path(:exercise_question => exercise_question.id, :quest_num => exercise_question.question_number),
method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "ur_icon_de") %> method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "ur_icon_de",:title => "删除") %>
<a class="ur_icon_edit" title="编辑" onclick="pollQuestionEdit(<%= exercise_question.id%>);"></a> <a class="ur_icon_edit" title="编辑" onclick="pollQuestionEdit(<%= exercise_question.id%>);"></a>
<a class='ur_icon_add' title='向下插入' id="add_single_<%=exercise_question.id%>" onclick="dismiss('single',<%=exercise_question.id%>);insert_SINGLE('single',<%=exercise_question.question_number%>,<%=exercise_question.id%>);"></a> <a class='ur_icon_add' title='向下插入' id="add_single_<%=exercise_question.id%>" onclick="dismiss('single',<%=exercise_question.id%>);insert_SINGLE('single',<%=exercise_question.question_number%>,<%=exercise_question.id%>);"></a>
<div class="cl"></div> <div class="cl"></div>
<div> <div>
<% exercise_question.exercise_standard_answers.reorder("created_at").each_with_index do |exercise_choice,index| %> <% exercise_question.exercise_standard_answers.reorder("created_at").each_with_index do |exercise_choice,index| %>
候选答案:<%= exercise_choice.answer_text%><br /> 候选答案:<%= exercise_choice.answer_text%><br />
<% end %> <% end %>
</div> </div>
</div> </div>
<!-- 新增问题 --> <!-- 新增问题 -->
<div id="insert_new_poll_question_single_<%=exercise_question.id%>"> <div id="insert_new_poll_question_single_<%=exercise_question.id%>">
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
function insert_SINGLE(quest_type,quest_num,quest_id){ function insert_SINGLE(quest_type,quest_num,quest_id){
var forms = $("form.new_exercise_question"); var forms = $("form.new_exercise_question");
if($.trim($("#insert_new_poll_question_"+quest_type+"_"+quest_id).html()) == "") { if($.trim($("#insert_new_poll_question_"+quest_type+"_"+quest_id).html()) == "") {
if(forms.length > 0){ if(forms.length > 0){
alert("请先保存正在编辑的题目再新建。"); alert("请先保存正在编辑的题目再新建。");
} else { } else {
<% score =exercise_question.question_score %> <% score =exercise_question.question_score %>
$("#insert_new_poll_question_"+quest_type+"_"+quest_id).html( $("#insert_new_poll_question_"+quest_type+"_"+quest_id).html(
'<%= form_for(ExerciseQuestion.new,:html=>{:multipart=>true},:url=>create_exercise_question_exercise_path(exercise_question.exercise.id),:remote=>true) do |f|%>'+ '<%= form_for(ExerciseQuestion.new,:html=>{:multipart=>true},:url=>create_exercise_question_exercise_path(exercise_question.exercise.id),:remote=>true) do |f|%>'+
' <div class="questionContainer" style="width: 680px;"> '+ ' <div class="questionContainer" style="width: 680px;"> '+
'<div class="ur_editor_title"> '+ '<div class="ur_editor_title"> '+
'<label>问题:&nbsp;&nbsp;</label>'+ '<label>问题:&nbsp;&nbsp;</label>'+
'<input type="hidden" name="quest_id" value="'+quest_id+'"/>'+ '<input type="hidden" name="quest_id" value="'+quest_id+'"/>'+
'<input type="hidden" name="quest_num" value="'+quest_num+'"/>'+ '<input type="hidden" name="quest_num" value="'+quest_num+'"/>'+
'<input type="hidden" name="question_type" value="3"/>'+ '<input type="hidden" name="question_type" value="3"/>'+
'<input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入填空题的内容(注意:目前填空题暂时仅支持一个空)" type="text"/>'+ '<input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入填空题的内容(注意:目前填空题暂时仅支持一个空)" type="text"/>'+
'</div>'+ '</div>'+
'<div class="ur_editor_content">'+ '<div class="ur_editor_content" id="new_single">'+
'<ul>'+ '<ul>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input value="<%= score %>" id="question_score" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;"/>分'+ '<input value="<%= score %>" id="question_score" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;"/>分'+
'</li>'+ '</li><div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>候选答案一<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>候选答案一<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input type="text" name="exercise_choice[0]" placeholder="请输入候选答案一"/>'+ '<input class="candiate_answer" type="text" name="exercise_choice[0]" placeholder="请输入候选答案一"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>候选答案二<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>候选答案二<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input type="text" name="exercise_choice[1]" placeholder="请输入候选答案二(选填)"/>'+ '<input class="candiate_answer" type="text" name="exercise_choice[1]" placeholder="请输入候选答案二(选填)"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'<li class="ur_item">'+ '<li class="ur_item">'+
'<label>候选答案三<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+ '<label>候选答案三<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>'+
'<input maxlength="200" type="text" name="exercise_choice[2]" placeholder="请输入候选答案三(选填)"/>'+ '<input class="candiate_answer" type="text" name="exercise_choice[2]" placeholder="请输入候选答案三(选填)"/>'+
'<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>'+ '<a class="icon_add" title="向下插入选项" onclick="add_candidate_answer($(this));"></a>'+
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+ '<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
'</li>'+ '</li></div>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'</ul>'+ '</ul>'+
'</div>'+ '</div>'+
'<div class="ur_editor_footer">'+ '<div class="ur_editor_footer">'+
'<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),3);">'+ '<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this),3);">'+
'保存'+ '保存'+
'</a>'+ '</a>'+
'<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();">'+ '<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();">'+
'<%= l(:button_cancel)%>'+ '<%= l(:button_cancel)%>'+
'</a>'+ '</a>'+
'</div>'+ '</div>'+
'<div class="cl"></div>'+ '<div class="cl"></div>'+
'</div>'+ '</div>'+
'<% end%>' '<% end%>'
); );
$("#poll_questions_title").focus(); $("#poll_questions_title").focus();
} }
} else { } else {
$("#insert_new_poll_question_"+quest_type+"_"+quest_id).html(""); $("#insert_new_poll_question_"+quest_type+"_"+quest_id).html("");
} }
} }
</script> </script>

@ -1,4 +1,4 @@
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'commit_alert',:locals => {:status => @status}) %>'); $('#ajax-modal').html('<%= escape_javascript(render :partial => 'commit_alert',:locals => {:status => @status,:exercise =>@exercise}) %>');
showModal('ajax-modal', '270px'); showModal('ajax-modal', '270px');
$('#ajax-modal').css('height','110px'); $('#ajax-modal').css('height','110px');
$('#ajax-modal').siblings().remove(); $('#ajax-modal').siblings().remove();

@ -1,63 +1,68 @@
<%= stylesheet_link_tag 'polls', :media => 'all' %> <%= stylesheet_link_tag 'polls', :media => 'all' %>
<script type="text/javascript"> <script type="text/javascript">
function republish_exercise(exercise_id) $(function(){
{ $("#RSide").css("width","730px");
$('#ajax-modal').html("<div id='popbox02'>" + $("#homework_page_right").css("min-height",$("#LSide").height()-30);
"<div class='upload_con'>" + $("#Container").css("width","1000px");
"<div class='upload_box'>" + });
"<p class='polls_box_p'>取消发布后学生答题将会被清空<br />是否确定取消发布该测验?</p>" + function republish_exercise(exercise_id,index)
"<div class='polls_btn_box'>" + {
"<a href='/exercise/"+ exercise_id +"/republish_exercise' class='upload_btn' onclick='clickCanel();' data-remote='true'>确&nbsp;&nbsp;定</a>" + $('#ajax-modal').html("<div id='popbox02'>" +
"<a class='upload_btn upload_btn_grey' onclick='clickCanel();'>取&nbsp;&nbsp;消</a>" + "<div class='upload_con'>" +
"</div>" + "<div class='upload_box'>" +
"<div class='cl'></div>" + "<p class='polls_box_p'>取消发布后学生答题将会被清空<br />是否确定取消发布该测验?</p>" +
"</div>" + "<div class='polls_btn_box'>" +
"</div>" + "<a href='/exercise/"+ exercise_id +"/republish_exercise?index="+index+"' class='upload_btn' onclick='clickCanel();' data-remote='true'>确&nbsp;&nbsp;定</a>" +
"</div>"); "<a class='upload_btn upload_btn_grey' onclick='clickCanel();'>取&nbsp;&nbsp;消</a>" +
showModal('ajax-modal', '310px'); "</div>" +
$('#ajax-modal').css('height','120px'); "<div class='cl'></div>" +
$('#ajax-modal').siblings().remove(); "</div>" +
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" + "</div>" +
"<a onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>"); "</div>");
$('#ajax-modal').parent().removeClass("alert_praise"); showModal('ajax-modal', '310px');
$('#ajax-modal').parent().css("top","").css("left",""); $('#ajax-modal').css('height','120px');
$('#ajax-modal').parent().addClass("popbox_polls"); $('#ajax-modal').siblings().remove();
} $('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
"<a onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
function clickCanel(){hideModal("#popbox02");} $('#ajax-modal').parent().removeClass("alert_praise");
$('#ajax-modal').parent().css("top","").css("left","");
function exercise_submit(exercise_id,exercise_name) $('#ajax-modal').parent().addClass("popbox_polls");
{ }
if(exercise_name == 0)
{ function clickCanel(){hideModal("#popbox02");}
alert("试卷标题不能为空");
} function exercise_submit(exercise_id,exercise_name,index)
else {
{ if(exercise_name == 0)
$('#ajax-modal').html("<div id='popbox02'>" + {
"<div class='upload_con'>" + alert("试卷标题不能为空");
"<div class='upload_box'>" + }
"<p class='polls_box_p'>测验发布后将不能对测验进行修改,<br />是否确定发布该测验?</p>" + else
"<div class='polls_btn_box'>" + {
"<a href='/exercise/"+ exercise_id +"/publish_exercise' class='upload_btn' onclick='clickCanel();' data-remote='true'>确&nbsp;&nbsp;定</a>" + $('#ajax-modal').html("<div id='popbox02'>" +
"<a class='upload_btn upload_btn_grey' onclick='clickCanel();'>取&nbsp;&nbsp;消</a>" + "<div class='upload_con'>" +
"</div>" + "<div class='upload_box'>" +
"<div class='cl'></div>" + "<p class='polls_box_p'>测验发布后将不能对测验进行修改,<br />是否确定发布该测验?</p>" +
"</div>" + "<div class='polls_btn_box'>" +
"</div>" + "<a href='/exercise/"+ exercise_id +"/publish_exercise?index="+index+"' class='upload_btn' onclick='clickCanel();' data-remote='true'>确&nbsp;&nbsp;定</a>" +
"</div>"); "<a class='upload_btn upload_btn_grey' onclick='clickCanel();'>取&nbsp;&nbsp;消</a>" +
showModal('ajax-modal', '310px'); "</div>" +
$('#ajax-modal').css('height','120px'); "<div class='cl'></div>" +
$('#ajax-modal').siblings().remove(); "</div>" +
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" + "</div>" +
"<a href='javascript:' onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>"); "</div>");
$('#ajax-modal').parent().removeClass("alert_praise"); showModal('ajax-modal', '310px');
$('#ajax-modal').parent().css("top","").css("left",""); $('#ajax-modal').css('height','120px');
$('#ajax-modal').parent().addClass("popbox_polls"); $('#ajax-modal').siblings().remove();
} $('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
} "<a href='javascript:' onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
$('#ajax-modal').parent().removeClass("alert_praise");
</script> $('#ajax-modal').parent().css("top","").css("left","");
<div class="polls_content02" id="exercise"> $('#ajax-modal').parent().addClass("popbox_polls");
<%= render :partial => 'exercises_list'%> }
}
</script>
<div class="polls_content02" id="exercise" style="width: 730px;">
<%= render :partial => 'exercises_list'%>
</div><!--问卷内容end--> </div><!--问卷内容end-->

@ -1,4 +1,4 @@
$("#exercises_<%= @exercise.id %>").html("<%= escape_javascript(render :partial => 'exercise',:locals => {:exercise => @exercise}) %>"); $("#exercises_<%= @exercise.id %>").html("<%= escape_javascript(render :partial => 'exercise',:locals => {:exercise => @exercise,:index =>@index}) %>");
$('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_memo_create_succ)}) %>"); $('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_memo_create_succ)}) %>");
showModal('ajax-modal', '250px'); showModal('ajax-modal', '250px');
//$('#ajax-modal').css('height','111px'); //$('#ajax-modal').css('height','111px');

@ -1,4 +1,4 @@
$("#exercises_<%= @exercise.id %>").html("<%= escape_javascript(render :partial => 'exercise',:locals => {:exercise => @exercise}) %>"); $("#exercises_<%= @exercise.id %>").html("<%= escape_javascript(render :partial => 'exercise',:locals => {:exercise => @exercise,:index => @index}) %>");
$('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_poll_republish_success)}) %>"); $('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_poll_republish_success)}) %>");
showModal('ajax-modal', '250px'); showModal('ajax-modal', '250px');
//$('#ajax-modal').css('height','80px'); //$('#ajax-modal').css('height','80px');

@ -73,7 +73,7 @@
<ul> <ul>
<% @all_exercises.each_with_index do |exercise,index |%> <% @all_exercises.each_with_index do |exercise,index |%>
<li class="pr10"> <li class="pr10">
<%= link_to "作业#{@all_exercises.count - index}#{exercise.exercise_name}",''%> <%= link_to "测验#{@all_exercises.count - index}#{exercise.exercise_name}",student_exercise_list_exercise_path(exercise.id,:course_id => @course.id)%>
<%#= link_to "第#{@homework_commons.count - index}次作业",student_work_index_path(:homework => homework_common.id)%> <%#= link_to "第#{@homework_commons.count - index}次作业",student_work_index_path(:homework => homework_common.id)%>
</li> </li>
<% end%> <% end%>

@ -605,7 +605,7 @@ ActiveRecord::Schema.define(:version => 20151127011351) do
end end
create_table "exercise_questions", :force => true do |t| create_table "exercise_questions", :force => true do |t|
t.text "question_title" t.string "question_title"
t.integer "question_type" t.integer "question_type"
t.integer "question_number" t.integer "question_number"
t.integer "exercise_id" t.integer "exercise_id"
@ -634,7 +634,7 @@ ActiveRecord::Schema.define(:version => 20151127011351) do
end end
create_table "exercises", :force => true do |t| create_table "exercises", :force => true do |t|
t.text "exercise_name" t.string "exercise_name"
t.text "exercise_description" t.text "exercise_description"
t.integer "course_id" t.integer "course_id"
t.integer "exercise_status" t.integer "exercise_status"
@ -1151,6 +1151,10 @@ ActiveRecord::Schema.define(:version => 20151127011351) do
create_table "org_members", :force => true do |t| create_table "org_members", :force => true do |t|
t.integer "user_id" t.integer "user_id"
t.integer "organization_id" t.integer "organization_id"
<<<<<<< HEAD
t.string "role"
=======
>>>>>>> 1ae514ca4857d7e2ad53b338731c1e01f899fb4d
t.datetime "created_at", :null => false t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
end end

@ -1156,7 +1156,7 @@ a:hover.btn_cancel{ color:#666;}
.mr118 {margin-right:118px !important;} .mr118 {margin-right:118px !important;}
.questionContainer {width:698px; border:1px solid #cbcbcb;background:#eeeeee; padding:10px; margin-bottom:10px;} .questionContainer {width:698px; border:1px solid #cbcbcb;background:#eeeeee; padding:10px; margin-bottom:10px;}
.questionTitle{ width:644px; height:30px; border:1px solid #cbcbcb; padding-left:5px; background:#fff;} .questionTitle{ width:644px; height:30px; border:1px solid #cbcbcb; padding-left:5px; background:#fff;}
.examTime {width:40px; border:1px solid #cbcbcb; outline:none; height:28px; text-align:center; padding-left:0px; } .examTime {width:90px; border:1px solid #cbcbcb; outline:none; height:28px; text-align:center; padding-left:0px; }
.testStatus{width:698px; border:1px solid #cbcbcb; padding:10px; margin-bottom:10px; background:#ffffff; position:relative; color:#767676;} .testStatus{width:698px; border:1px solid #cbcbcb; padding:10px; margin-bottom:10px; background:#ffffff; position:relative; color:#767676;}
.testEdit{ background:url(images/icons.png) 0px -272px no-repeat; width:16px; height:27px; display:block;float:right; bottom:10px; right:10px; position:absolute;} .testEdit{ background:url(images/icons.png) 0px -272px no-repeat; width:16px; height:27px; display:block;float:right; bottom:10px; right:10px; position:absolute;}
a:hover.testEdit{ background:url(images/icons.png) -21px -272px no-repeat;} a:hover.testEdit{ background:url(images/icons.png) -21px -272px no-repeat;}
@ -1166,6 +1166,7 @@ a:hover.testEdit{ background:url(images/icons.png) -21px -272px no-repeat;}
.questionEditContainer {border:1px solid #cbcbcb;background:#eeeeee; padding:10px; margin-bottom:10px; margin-top:10px;} .questionEditContainer {border:1px solid #cbcbcb;background:#eeeeee; padding:10px; margin-bottom:10px; margin-top:10px;}
.fillInput {border:1px solid #cbcbcb; padding-left:5px; background-color:#ffffff; width:693px; height:30px; color:#888888;} .fillInput {border:1px solid #cbcbcb; padding-left:5px; background-color:#ffffff; width:693px; height:30px; color:#888888;}
.mr130 {margin-right:130px;} .mr130 {margin-right:130px;}
.mr100 {margin-right:100px;}
.ur_button_submit{ display:block; width:106px; height:31px; margin:0 auto; background:#15bccf; color:#fff; font-size:16px; text-align:center; padding-top:4px; margin-bottom:10px; } .ur_button_submit{ display:block; width:106px; height:31px; margin:0 auto; background:#15bccf; color:#fff; font-size:16px; text-align:center; padding-top:4px; margin-bottom:10px; }
/*20151123课程排行榜Tim*/ /*20151123课程排行榜Tim*/

@ -89,7 +89,7 @@ a:hover.btn_cancel{ color:#666;}
.ur_question_title{ width:534px; height:30px; border:1px solid #cbcbcb; padding-left:5px; margin-right:10px; background:#fff;} .ur_question_title{ width:534px; height:30px; border:1px solid #cbcbcb; padding-left:5px; margin-right:10px; background:#fff;}
.ur_editor_title{ margin-bottom:10px;} .ur_editor_title{ margin-bottom:10px;}
.ur_editor_content{ } .ur_editor_content{ }
.ur_item{ margin-bottom:5px; height:32px; } .ur_item{ margin-bottom:5px; height:32px; line-height: 32px; vertical-align: middle; }
.ur_item input{ width:324px; height:30px;border:1px solid #cbcbcb; padding-left:5px; float:left; margin-right:10px; background:#fff;} .ur_item input{ width:324px; height:30px;border:1px solid #cbcbcb; padding-left:5px; float:left; margin-right:10px; background:#fff;}
.ur_item label{ float:left;} .ur_item label{ float:left;}
.icon_add{ background:url(images/icons.png) 0px -310px no-repeat; width:16px; height:27px; display:block;float:left; margin-right:5px;} .icon_add{ background:url(images/icons.png) 0px -310px no-repeat; width:16px; height:27px; display:block;float:left; margin-right:5px;}

Loading…
Cancel
Save