Merge branch 'rep_quality' into dev_newrep

dev_newrep
huang 9 years ago
commit 137d62ae5d

@ -184,14 +184,24 @@ class CoursesController < ApplicationController
if params[:incourse] if params[:incourse]
results = searchmember_by_name(student_homework_score(0,0,0,"desc"), q) results = searchmember_by_name(student_homework_score(0,0,0,"desc"), q)
elsif params[:ingroup] elsif params[:ingroup]
@group = CourseGroup.find(params[:search_group_id]) if params[:search_group_id] == "-1"
results = searchmember_by_name(student_homework_score(@group.id,0,0,"desc"), q) @group = -1
results = searchmember_by_name(student_homework_score(-1,0,0,"desc"), q)
else
@group = CourseGroup.find(params[:search_group_id])
results = searchmember_by_name(student_homework_score(@group.id,0,0,"desc"), q)
end
end end
@is_remote = true @is_remote = true
#@result_count = results.count #@result_count = results.count
#@results = paginateHelper results, 10 #@results = paginateHelper results, 10
@results = results @results = results
@search_name = q @search_name = q
@limit = 50
@page = params[:page].nil? ? 1 : params['page'].to_i
@members_count = @results.count
@mem_pages = Paginator.new @members_count, @limit, @page
@results = paginateHelper @results, @limit
end end
def addgroups def addgroups
@ -208,6 +218,12 @@ class CoursesController < ApplicationController
@is_remote = true @is_remote = true
@members = student_homework_score(0,0, 10,@score_sort_by) @members = student_homework_score(0,0, 10,@score_sort_by)
@course_groups = @course.course_groups @course_groups = @course.course_groups
@limit = 50
@page = params[:page].nil? ? 1 : params['page'].to_i
@members_count = @members.count
@no_group_count = @members_count - @course.members.where("course_group_id != 0").count
@mem_pages = Paginator.new @members_count, @limit, @page
@members = paginateHelper @members, @limit
end end
def deletegroup def deletegroup
@ -219,6 +235,12 @@ class CoursesController < ApplicationController
@score_sort_by = "desc" @score_sort_by = "desc"
@members = student_homework_score(0,0, 10,@score_sort_by) @members = student_homework_score(0,0, 10,@score_sort_by)
@course_groups = @course.course_groups @course_groups = @course.course_groups
@limit = 50
@page = params[:page].nil? ? 1 : params['page'].to_i
@members_count = @members.count
@no_group_count = @members_count - @course.members.where("course_group_id != 0").count
@mem_pages = Paginator.new @members_count, @limit, @page
@members = paginateHelper @members, @limit
end end
def updategroupname def updategroupname
@ -232,6 +254,12 @@ class CoursesController < ApplicationController
@is_remote = true @is_remote = true
@members = student_homework_score(0,0, 10,"desc") @members = student_homework_score(0,0, 10,"desc")
@course_groups = @course.course_groups @course_groups = @course.course_groups
@limit = 50
@page = params[:page].nil? ? 1 : params['page'].to_i
@members_count = @members.count
@no_group_count = @members_count - @course.members.where("course_group_id != 0").count
@mem_pages = Paginator.new @members_count, @limit, @page
@members = paginateHelper @members, @limit
end end
def valid_ajax def valid_ajax
@ -268,6 +296,7 @@ class CoursesController < ApplicationController
member.course_group_id = params[:course_group_id].to_i member.course_group_id = params[:course_group_id].to_i
member.save member.save
@course_groups = @course.course_groups @course_groups = @course.course_groups
@no_group_count = @course.student.count - @course.members.where("course_group_id != 0").count
@canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1'
respond_to do |format| respond_to do |format|
format.js format.js
@ -283,6 +312,7 @@ class CoursesController < ApplicationController
@group = group @group = group
@course_groups = @course.course_groups @course_groups = @course.course_groups
@no_group_count = @course.student.count - @course.members.where("course_group_id != 0").count
search_group_members group search_group_members group
end end
@ -294,6 +324,7 @@ class CoursesController < ApplicationController
member.save member.save
@group = group @group = group
@course_groups = @course.course_groups @course_groups = @course.course_groups
@no_group_count = @course.student.count - @course.members.where("course_group_id != 0").count
search_group_members group search_group_members group
end end
@ -304,14 +335,22 @@ class CoursesController < ApplicationController
@is_remote = true @is_remote = true
@sort_type = 'score' @sort_type = 'score'
@score_sort_by = "desc" @score_sort_by = "desc"
if params[:group_id] && params[:group_id] != "0" if params[:group_id] && params[:group_id] != "0" && params[:group_id] != "-1"
@group = CourseGroup.find(params[:group_id]) @group = CourseGroup.find(params[:group_id])
@results = student_homework_score(@group.id,0, 0,"desc") @results = student_homework_score(@group.id,0, 0,"desc")
# @results = paginateHelper @results, 10 # @results = paginateHelper @results, 10
elsif params[:group_id] && params[:group_id] == "-1"
@group = -1
@results = student_homework_score(-1, 0, 10,"desc")
else else
page_from = params[:page].nil? ? 0 : (params[:page].to_i - 1) page_from = params[:page].nil? ? 0 : (params[:page].to_i - 1)
@results = student_homework_score(0,page_from, 10,"desc") @results = student_homework_score(0,page_from, 10,"desc")
end end
@limit = 50
@page = params[:page].nil? ? 1 : params['page'].to_i
@members_count = @results.count
@mem_pages = Paginator.new @members_count, @limit, @page
@results = paginateHelper @results, @limit
end end
def member def member
@ -332,10 +371,15 @@ class CoursesController < ApplicationController
@members = @all_members @members = @all_members
when '2' when '2'
if @course.open_student == 1 || User.current.member_of_course?(@course) || User.current.admin? if @course.open_student == 1 || User.current.member_of_course?(@course) || User.current.admin?
@limit = 50
@subPage_title = l :label_student_list @subPage_title = l :label_student_list
page = params[:page].nil? ? 0 : (params['page'].to_i - 1) @page = params[:page].nil? ? 1 : params['page'].to_i
@all_members = student_homework_score(0,page, 10,@score_sort_by,@sort_type) @all_members = student_homework_score(0, @page - 1, @limit, @score_sort_by, @sort_type)
@members = @all_members @members_count = @all_members.count
@no_group_count = @members_count - @course.members.where("course_group_id != 0").count
@mem_pages = Paginator.new @members_count, @limit, @page
@members = paginateHelper @all_members, @limit
@left_nav_type = 9
else else
render_403 render_403
return return
@ -378,25 +422,35 @@ class CoursesController < ApplicationController
group_id = params[:group_id] group_id = params[:group_id]
if !@search_name.nil? if !@search_name.nil?
if group_id == '0' if group_id == '0'
page = params[:page].nil? ? 0 : (params['page'].to_i - 1) #page = params[:page].nil? ? 0 : (params['page'].to_i - 1)
@results = searchmember_by_name(student_homework_score(0,0,0,@score_sort_by,@sort_type), @search_name) @results = searchmember_by_name(student_homework_score(0,0,0,@score_sort_by,@sort_type), @search_name)
@result_count = @results.count
# @results = paginateHelper @results, 10 # @results = paginateHelper @results, 10
elsif group_id == '-1'
@group = -1
@results = searchmember_by_name(student_homework_score(-1,0,0,@score_sort_by,@sort_type), @search_name)
else else
@group = CourseGroup.find(group_id) @group = CourseGroup.find(group_id)
@results = searchmember_by_name(student_homework_score(group_id, 0, 0,@score_sort_by,@sort_type),@search_name) @results = searchmember_by_name(student_homework_score(group_id, 0, 0,@score_sort_by,@sort_type),@search_name)
@result_count = @results.count
# @results = paginateHelper @results, 10 # @results = paginateHelper @results, 10
end end
else else
if group_id == '0' if group_id == '0'
page = params[:page].nil? ? 0 : (params['page'].to_i - 1) page = params[:page].nil? ? 0 : (params['page'].to_i - 1)
@results = student_homework_score(0,page, 10,@score_sort_by,@sort_type) @results = student_homework_score(0,page, 10,@score_sort_by,@sort_type)
elsif group_id == '-1'
@group = -1
@results = student_homework_score(-1,0, 10,@score_sort_by,@sort_type)
else else
@group = CourseGroup.find(group_id) @group = CourseGroup.find(group_id)
@results = student_homework_score(group_id, 0, 0,@score_sort_by,@sort_type) @results = student_homework_score(group_id, 0, 0,@score_sort_by,@sort_type)
end end
end end
@limit = 50
@page = params[:page].nil? ? 1 : params['page'].to_i
@members_count = @results.count
@no_group_count = @members_count - @course.members.where("course_group_id != 0").count
@mem_pages = Paginator.new @members_count, @limit, @page
@results = paginateHelper @results, @limit
end end
# 显示每个学生的作业评分详情 # 显示每个学生的作业评分详情
def show_member_score def show_member_score
@ -1149,7 +1203,7 @@ class CoursesController < ApplicationController
#统计 #统计
def statistics_course def statistics_course
@left_nav_type = 9 @left_nav_type = 10
respond_to do |format| respond_to do |format|
format.html {render :layout => 'base_courses'} format.html {render :layout => 'base_courses'}
end end
@ -1223,7 +1277,6 @@ class CoursesController < ApplicationController
def student_homework_score(groupid,start_from, nums, score_sort_by, sort_type = 'score') def student_homework_score(groupid,start_from, nums, score_sort_by, sort_type = 'score')
start_from = start_from * nums start_from = start_from * nums
sql_select = ""
if groupid == 0 if groupid == 0
sql_select = "SELECT members.*,( sql_select = "SELECT members.*,(
SELECT SUM(student_works.work_score) SELECT SUM(student_works.work_score)
@ -1231,13 +1284,49 @@ class CoursesController < ApplicationController
WHERE student_works.homework_common_id = homework_commons.id WHERE student_works.homework_common_id = homework_commons.id
AND homework_commons.course_id = #{@course.id} AND homework_commons.course_id = #{@course.id}
AND student_works.user_id = members.user_id AND student_works.user_id = members.user_id
) AS score,(SELECT (message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 + ) AS score,(SELECT max(message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 +
resource_num*5 + journal_num*1 + homework_journal_num*1 ) FROM `course_contributor_scores` AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id resource_num*5 + journal_num*1 + homework_journal_num*1 ) FROM `course_contributor_scores` AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id
) AS act_score ) AS act_score,(SELECT SUM(exercise_users.score) FROM exercise_users,exercises WHERE exercise_users.exercise_id = exercises.id
AND exercises.course_id = #{@course.id} AND exercise_users.user_id = members.user_id) AS ex_score,
(SELECT max(student_id) FROM user_extensions WHERE user_extensions.user_id = members.user_id) AS student_id,
(SELECT max(message_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS message_num,
(SELECT max(message_reply_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS message_reply_num,
(SELECT max(news_reply_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS news_reply_num,
(SELECT max(news_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS news_num,
(SELECT max(resource_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS resource_num,
(SELECT max(journal_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS journal_num,
(SELECT max(homework_journal_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS homework_journal_num,
(SELECT COUNT(ss.id) FROM student_works AS ss ,homework_commons AS hc WHERE ss.homework_common_id = hc.id AND hc.course_id = #{@course.id} AND ss.work_status != 0 AND ss.user_id = members.user_id) AS homework_num,
(SELECT COUNT(eu.id) FROM exercise_users AS eu,exercises WHERE eu.exercise_id = exercises.id AND exercises.course_id = #{@course.id} AND exercises.end_time >= eu.created_at AND eu.user_id = members.user_id) AS exercise_num
FROM members FROM members
JOIN students_for_courses JOIN students_for_courses
ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id
WHERE members.course_id = #{@course.id} ORDER BY #{sort_type} #{score_sort_by}" WHERE members.course_id = #{@course.id} ORDER BY #{sort_type} #{score_sort_by}"
elsif groupid == -1
sql_select = "SELECT members.*,(
SELECT SUM(student_works.work_score)
FROM student_works,homework_commons
WHERE student_works.homework_common_id = homework_commons.id
AND homework_commons.course_id = #{@course.id}
AND student_works.user_id = members.user_id
) AS score,(SELECT max(message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 +
resource_num*5 + journal_num*1 + homework_journal_num*1 ) FROM `course_contributor_scores` AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id
) AS act_score,(SELECT SUM(exercise_users.score) FROM exercise_users,exercises WHERE exercise_users.exercise_id = exercises.id
AND exercises.course_id = #{@course.id} AND exercise_users.user_id = members.user_id) AS ex_score,
(SELECT max(student_id) FROM user_extensions WHERE user_extensions.user_id = members.user_id) AS student_id,
(SELECT max(message_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS message_num,
(SELECT max(message_reply_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS message_reply_num,
(SELECT max(news_reply_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS news_reply_num,
(SELECT max(news_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS news_num,
(SELECT max(resource_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS resource_num,
(SELECT max(journal_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS journal_num,
(SELECT max(homework_journal_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS homework_journal_num,
(SELECT COUNT(ss.id) FROM student_works AS ss ,homework_commons AS hc WHERE ss.homework_common_id = hc.id AND hc.course_id = #{@course.id} AND ss.work_status != 0 AND ss.user_id = members.user_id) AS homework_num,
(SELECT COUNT(eu.id) FROM exercise_users AS eu,exercises WHERE eu.exercise_id = exercises.id AND exercises.course_id = #{@course.id} AND exercises.end_time >= eu.created_at AND eu.user_id = members.user_id) AS exercise_num
FROM members
JOIN students_for_courses
ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id
WHERE members.course_id = #{@course.id} AND members.course_group_id = 0 ORDER BY #{sort_type} #{score_sort_by}"
else else
sql_select = "SELECT members.*,( sql_select = "SELECT members.*,(
SELECT SUM(student_works.work_score) SELECT SUM(student_works.work_score)
@ -1247,7 +1336,18 @@ class CoursesController < ApplicationController
AND student_works.user_id = members.user_id AND student_works.user_id = members.user_id
) AS score,(SELECT (message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 + ) AS score,(SELECT (message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 +
resource_num*5 + journal_num*1 + homework_journal_num*1 ) FROM `course_contributor_scores` AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id resource_num*5 + journal_num*1 + homework_journal_num*1 ) FROM `course_contributor_scores` AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id
) AS act_score ) AS act_score,(SELECT SUM(exercise_users.score) FROM exercise_users,exercises WHERE exercise_users.exercise_id = exercises.id
AND exercises.course_id = #{@course.id} AND exercise_users.user_id = members.user_id) AS ex_score,
(SELECT max(student_id) FROM user_extensions WHERE user_extensions.user_id = members.user_id) AS student_id,
(SELECT max(message_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS message_num,
(SELECT max(message_reply_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS message_reply_num,
(SELECT max(news_reply_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS news_reply_num,
(SELECT max(news_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS news_num,
(SELECT max(resource_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS resource_num,
(SELECT max(journal_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS journal_num,
(SELECT max(homework_journal_num) FROM course_contributor_scores AS ccs WHERE ccs.course_id = #{@course.id} AND ccs.user_id = members.user_id) AS homework_journal_num,
(SELECT COUNT(ss.id) FROM student_works AS ss ,homework_commons AS hc WHERE ss.homework_common_id = hc.id AND hc.course_id = #{@course.id} AND ss.work_status != 0 AND ss.user_id = members.user_id) AS homework_num,
(SELECT COUNT(eu.id) FROM exercise_users AS eu,exercises WHERE eu.exercise_id = exercises.id AND exercises.course_id = #{@course.id} AND exercises.end_time >= eu.created_at AND eu.user_id = members.user_id) AS exercise_num
FROM members FROM members
JOIN students_for_courses JOIN students_for_courses
ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id
@ -1284,25 +1384,32 @@ class CoursesController < ApplicationController
#sheet1.row(0).default_format = blue #sheet1.row(0).default_format = blue
#sheet1.row(0).concat([l(:excel_user_id),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_mail),l(:excel_class),l(:excel_f_score),l(:excel_commit_time)]) #sheet1.row(0).concat([l(:excel_user_id),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_mail),l(:excel_class),l(:excel_f_score),l(:excel_commit_time)])
sheet1[0,0] = "课程编号" sheet1[0,0] = "课程编号"
sheet1[0,1] = course.id sheet1[0,1] = course.syllabus.id
sheet1[1,0] = "课程学期" sheet1[1,0] = "课程名称"
sheet1[1,1] = course.time.to_s+""+course.term sheet1[1,1] = course.syllabus.title
sheet1[2,0] = "课程名称" sheet1[2,0] = "班级编号"
sheet1[2,1] = course.name sheet1[2,1] = course.id
sheet1[3,0] = "教师团队" sheet1[3,0] = "班级学期"
sheet1[3,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_name}.join('、') sheet1[3,1] = course.time.to_s+""+course.term
sheet1[4,0] = "主讲教师" sheet1[4,0] = "班级名称"
sheet1[4,1] = course.teacher.show_name sheet1[4,1] = course.name
sheet1[5,0] = "排名" sheet1[5,0] = "教师团队"
sheet1[5,1] = "学生姓名" sheet1[5,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_name}.join('、')
sheet1[5,2] = "昵称" sheet1[6,0] = "主讲教师"
sheet1[5,3] = "学号" sheet1[6,1] = course.teacher.show_name
sheet1[7,0] = "排名"
sheet1[7,1] = "学生姓名"
sheet1[7,2] = "昵称"
sheet1[7,3] = "学号"
for i in 0 ... homeworks.count for i in 0 ... homeworks.count
sheet1[5,i+4] = ""+(i+1).to_s+"" sheet1[7,i+4] = ""+(i+1).to_s+""
end end
sheet1[5,homeworks.count+4] = "总成绩" sheet1[7,homeworks.count+4] = "作业得分"
sheet1[5,homeworks.count+5] = "活跃度" sheet1[7,homeworks.count+5] = "测评得分"
count_row = 6 sheet1[7,homeworks.count+6] = "社区得分"
sheet1[7,homeworks.count+7] = "总得分"
sheet1[7,homeworks.count+8] = "分班"
count_row = 8
members.each_with_index do |member, i| members.each_with_index do |member, i|
sheet1[count_row,0]= i+1 sheet1[count_row,0]= i+1
sheet1[count_row,1] = member.user.lastname.to_s + member.user.firstname.to_s sheet1[count_row,1] = member.user.lastname.to_s + member.user.firstname.to_s
@ -1318,36 +1425,47 @@ class CoursesController < ApplicationController
sheet1[count_row,j+4] = score <0 ? 0:score.round(2) sheet1[count_row,j+4] = score <0 ? 0:score.round(2)
end end
end end
sheet1[count_row,homeworks.count+4] = member.score.nil? ? 0:member.score.round(2) hw_score = member.score.nil? ? 0 : member.score
sheet1[count_row,homeworks.count+5] = member.act_score.nil? ? 0:member.act_score ex_score = member.ex_score.nil? ? 0 : member.ex_score
act_score = member.act_score.nil? ? 0 : member.act_score
sum = hw_score + ex_score + act_score
sheet1[count_row,homeworks.count+4] = hw_score.round(2)
sheet1[count_row,homeworks.count+5] = ex_score
sheet1[count_row,homeworks.count+6] = act_score
sheet1[count_row,homeworks.count+7] = sum.round(2)
sheet1[count_row,homeworks.count+8] = member.course_group_id == 0 ? "暂无" : member.course_group.name
count_row += 1 count_row += 1
end end
homeworks.each_with_index do |home, i| homeworks.each_with_index do |home, i|
sheet = book.create_worksheet :name => "#{i+1}次作业" sheet = book.create_worksheet :name => "#{i+1}次作业"
sheet[0,0] = "课程编号" sheet[0,0] = "课程编号"
sheet[0,1] = course.id sheet[0,1] = course.syllabus.id
sheet[1,0] = "课程学期" sheet[1,0] = "课程名称"
sheet[1,1] = course.time.to_s+""+course.term sheet[1,1] = course.syllabus.title
sheet[2,0] = "课程名称" sheet[2,0] = "班级编号"
sheet[2,1] = course.name sheet[2,1] = course.id
sheet[3,0] = "教师团队" sheet[3,0] = "班级学期"
sheet[3,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_name}.join('、') sheet[3,1] = course.time.to_s+""+course.term
sheet[4,0] = "主讲教师" sheet[4,0] = "班级名称"
sheet[4,1] = course.teacher.show_name sheet[4,1] = course.name
sheet[4,0] = "作业批次" sheet[5,0] = "教师团队"
sheet[4,1] = "#{i+1}次作业" sheet[5,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_name}.join('、')
sheet[4,0] = "作业名称" sheet[6,0] = "主讲教师"
sheet[4,1] = home.name sheet[6,1] = course.teacher.show_name
sheet[6,0] = "作业批次"
sheet[6,1] = "#{i+1}次作业"
sheet[6,0] = "作业名称"
sheet[6,1] = home.name
if home.homework_type == 1 #普通作业 if home.homework_type == 1 #普通作业
if home.anonymous_comment ==0 if home.anonymous_comment ==0
sheet.row(5).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_name),l(:excel_homework_des), sheet.row(7).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_name),l(:excel_homework_des),
l(:excel_t_score),l(:excel_ta_score), l(:excel_n_score),l(:excel_a_penalty),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)]) l(:excel_t_score),l(:excel_ta_score), l(:excel_n_score),l(:excel_a_penalty),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)])
else else
sheet.row(5).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_name),l(:excel_homework_des), sheet.row(7).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_name),l(:excel_homework_des),
l(:excel_t_score),l(:excel_ta_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)]) l(:excel_t_score),l(:excel_ta_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)])
end end
count_row = 6 count_row = 8
items = home.student_works.order("work_score desc") items = home.student_works.order("work_score desc")
items.each_with_index do |stu, j| items.each_with_index do |stu, j|
sheet[count_row,0]= j + 1 sheet[count_row,0]= j + 1
@ -1373,13 +1491,13 @@ class CoursesController < ApplicationController
end end
elsif home.homework_type == 2 #编程作业 elsif home.homework_type == 2 #编程作业
if home.anonymous_comment ==0 if home.anonymous_comment ==0
sheet.row(5).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_name),l(:excel_homework_des), sheet.row(7).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_name),l(:excel_homework_des),
l(:excel_t_score),l(:excel_ta_score), l(:excel_s_score),l(:excel_n_score),l(:excel_a_penalty),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)]) l(:excel_t_score),l(:excel_ta_score), l(:excel_s_score),l(:excel_n_score),l(:excel_a_penalty),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)])
else else
sheet.row(5).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_name),l(:excel_homework_des), sheet.row(7).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_name),l(:excel_homework_des),
l(:excel_t_score),l(:excel_ta_score), l(:excel_s_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)]) l(:excel_t_score),l(:excel_ta_score), l(:excel_s_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)])
end end
count_row = 6 count_row = 8
items = home.student_works.order("work_score desc") items = home.student_works.order("work_score desc")
items.each_with_index do |stu, j| items.each_with_index do |stu, j|
sheet[count_row,0]= j + 1 sheet[count_row,0]= j + 1
@ -1406,13 +1524,13 @@ class CoursesController < ApplicationController
end end
elsif home.homework_type == 3 #分组作业 elsif home.homework_type == 3 #分组作业
if home.anonymous_comment ==0 if home.anonymous_comment ==0
sheet.row(5).concat([l(:excel_rank),l(:excel_group_member),l(:excel_homework_name),l(:excel_homework_project),l(:excel_homework_des), sheet.row(7).concat([l(:excel_rank),l(:excel_group_member),l(:excel_homework_name),l(:excel_homework_project),l(:excel_homework_des),
l(:excel_t_score),l(:excel_ta_score),l(:excel_n_score),l(:excel_a_penalty),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)]) l(:excel_t_score),l(:excel_ta_score),l(:excel_n_score),l(:excel_a_penalty),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)])
else else
sheet.row(5).concat([l(:excel_rank),l(:excel_group_member),l(:excel_homework_name),l(:excel_homework_project),l(:excel_homework_des), sheet.row(7).concat([l(:excel_rank),l(:excel_group_member),l(:excel_homework_name),l(:excel_homework_project),l(:excel_homework_des),
l(:excel_t_score),l(:excel_ta_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)]) l(:excel_t_score),l(:excel_ta_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)])
end end
count_row = 6 count_row = 8
items = home.student_works.order("work_score desc") items = home.student_works.order("work_score desc")
items.each_with_index do |stu, j| items.each_with_index do |stu, j|
sheet[count_row,0] = j + 1 sheet[count_row,0] = j + 1

@ -58,27 +58,26 @@ class IssuesController < ApplicationController
include ApplicationHelper include ApplicationHelper
def index def index
# 为了性能所有用了两种模式issue的@query查询所有的没有优势
# 但是对过滤条件很有有时
if params[:set_filter] != "1" if params[:set_filter] != "1"
@project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base' @project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base'
@issues_filter = Issue.where(:project_id => @project.id).order('updated_on desc') if User.current.member_of?(@project)
@issues_filter = Issue.where(:project_id => @project.id).order('updated_on desc')
else
@issues_filter = Issue.where(:project_id => @project.id, :is_private => 0).order('updated_on desc')
end
open_and_close_num(@project)
@issue_count = @issues_filter.count @issue_count = @issues_filter.count
@limit = 10 @limit = 10
@is_remote = true @is_remote = true
@issue_pages = Paginator.new @issue_count, @limit, params['page'] || 1 @issue_pages = Paginator.new @issue_count, @limit, params['page'] || 1
@offset ||= @issue_pages.offset @offset ||= @issue_pages.offset
@issues = paginateHelper @issues_filter, @limit @issues = paginateHelper @issues_filter, @limit
# if params[:set_filter]
# @set_filter = params[:set_filter]
# end
# @issue_count_by_group = @query.issue_count_by_group
respond_to do |format| respond_to do |format|
format.js format.js
format.html { render :template => 'issues/index', :layout => @project_base_tag }#by young format.html { render :template => 'issues/index', :layout => @project_base_tag }#by young
format.api {Issue.load_visible_relations(@issues) if include_in_api_response?('relations')} format.api {Issue.load_visible_relations(@issues) if include_in_api_response?('relations')}
# format.json { render :json => @issues.map { |issue| issue.to_json}} #:json => @issues.map { |issue| issue.to_json}
# format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") }
# format.csv { send_data(query_to_csv(@issues, @query, params), :type => 'text/csv; header=present', :filename => 'issues.csv') }
# format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'issues.pdf') }
format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls" format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls"
send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename)) send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
} }
@ -88,20 +87,8 @@ class IssuesController < ApplicationController
sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria) sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria)
sort_update(@query.sortable_columns) sort_update(@query.sortable_columns)
@query.sort_criteria = sort_criteria.to_a @query.sort_criteria = sort_criteria.to_a
@project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base' @project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base'
if @query.valid? if @query.valid?
# case params[:format]
# when 'csv', 'pdf'
# @limit = 10#Setting.issues_export_limit.to_i
# when 'atom'
# @limit = 10#Setting.feeds_limit.to_i
# when 'xml', 'json'
# @offset, @limit = api_offset_and_limit({:limit => 10})
# else
# @limit = 10#per_page_option
# end
@tracker_id = params[:tracker_id] @tracker_id = params[:tracker_id]
@assign_to_id = params[:assigned_to_id] @assign_to_id = params[:assigned_to_id]
@author_id = params[:author_id] @author_id = params[:author_id]
@ -111,9 +98,6 @@ class IssuesController < ApplicationController
@fixed_version_id = params[:fixed_version_id] @fixed_version_id = params[:fixed_version_id]
@issue_count = @query.issue_count @issue_count = @query.issue_count
@test = params[:test] @test = params[:test]
# @issue_pages = Paginator.new @issue_count, @limit, params['page']
# params[:page] = (params[:page] || 1).to_i + 1 #页码需要加1
# @offset ||= @issue_pages.offset
@project_sort = 'issues.updated_on desc' @project_sort = 'issues.updated_on desc'
if params[:test] != "0" if params[:test] != "0"
case @test case @test
@ -127,6 +111,7 @@ class IssuesController < ApplicationController
@project_sort = 'issues.updated_on asc' @project_sort = 'issues.updated_on asc'
end end
end end
open_and_close_num(@project)
@issues_filter_assign_count = @query.issues.select{|issue| issue.assigned_to_id == User.current.id }.count @issues_filter_assign_count = @query.issues.select{|issue| issue.assigned_to_id == User.current.id }.count
@issues_filter_author_count = @query.issues.select{|issue| issue.author_id == User.current.id }.count @issues_filter_author_count = @query.issues.select{|issue| issue.author_id == User.current.id }.count
@issues_filter = @query.issues(:order => @project_sort) @issues_filter = @query.issues(:order => @project_sort)
@ -135,35 +120,17 @@ class IssuesController < ApplicationController
@issue_pages = Paginator.new @issue_count, @limit, params['page'] || 1 @issue_pages = Paginator.new @issue_count, @limit, params['page'] || 1
@offset ||= @issue_pages.offset @offset ||= @issue_pages.offset
@issues = paginateHelper @issues_filter, @limit @issues = paginateHelper @issues_filter, @limit
# if params[:set_filter] respond_to do |format|
# @set_filter = params[:set_filter] format.js
# end format.html { render :template => 'issues/index', :layout => @project_base_tag }#by young
# @issue_count_by_group = @query.issue_count_by_group format.api {Issue.load_visible_relations(@issues) if include_in_api_response?('relations')}
if params[:export_issue_hidden] == "1" # format.json { render :json => @issues.map { |issue| issue.to_json}} #:json => @issues.map { |issue| issue.to_json}
# index(:format=>'xls', :export_issue_hidden => 0) format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") }
params[:export_issue_hidden] = "0" format.csv { send_data(query_to_csv(@issues, @query, params), :type => 'text/csv; header=present', :filename => 'issues.csv') }
redirect_to project_issues_path(:project_id => @project, :format => 'xls') format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'issues.pdf') }
format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls"
# respond_to do |format| send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
# format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls" }
# send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
# return
# }
# return
# end
else
respond_to do |format|
format.js
format.html { render :template => 'issues/index', :layout => @project_base_tag }#by young
format.api {Issue.load_visible_relations(@issues) if include_in_api_response?('relations')}
# format.json { render :json => @issues.map { |issue| issue.to_json}} #:json => @issues.map { |issue| issue.to_json}
format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") }
format.csv { send_data(query_to_csv(@issues, @query, params), :type => 'text/csv; header=present', :filename => 'issues.csv') }
format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'issues.pdf') }
format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls"
send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
}
end
end end
else else
respond_to do |format| respond_to do |format|
@ -174,12 +141,21 @@ class IssuesController < ApplicationController
end end
end end
end end
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound
render_404 render_404
end end
# 获取issue的开启统计数
def open_and_close_num project
if User.current.member_of?(project)
@issue_open_count = Issue.where("project_id=#{project.id} and status_id in (1,2,3,4,6)").count
@issue_close_count = Issue.where(:project_id => project.id, :status_id => 5 ).count
else
@issue_open_count = Issue.where("project_id=#{project.id} and status_id in (1,2,3,4,6) and is_private = 0").count
@issue_close_count = Issue.where(:project_id => project.id, :status_id => 5, :is_private => 0).count
end
end
def show def show
# 打开编辑内容 # 打开编辑内容
@is_edit = true unless params[:edit].nil? @is_edit = true unless params[:edit].nil?

@ -47,6 +47,9 @@ class MessagesController < ApplicationController
all_comments = [] all_comments = []
@replies = get_all_children(all_comments, @topic) @replies = get_all_children(all_comments, @topic)
@reply_count = @replies.count @reply_count = @replies.count
@page = params[:page] ? params[:page].to_i + 1 : 0
@limit = 10
@replies = @replies[@page * @limit..@page * @limit + 9]
@reply = Message.new(:subject => "RE: #{@message.subject}") @reply = Message.new(:subject => "RE: #{@message.subject}")
if @course if @course
#@replies = @topic.children. #@replies = @topic.children.
@ -57,7 +60,11 @@ class MessagesController < ApplicationController
#all #all
#@replies = paginateHelper messages_replies,10 #@replies = paginateHelper messages_replies,10
@left_nav_type = 2 @left_nav_type = 2
render :action => "show", :layout => "base_courses"#by young respond_to do |format|
format.js
format.html {render :layout => 'base_courses'}
end
#render :action => "show", :layout => "base_courses"#by young
elsif @project elsif @project
#@reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page #@reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page
# @replies = @topic.children. # @replies = @topic.children.
@ -66,8 +73,10 @@ class MessagesController < ApplicationController
# limit(@reply_pages.per_page). # limit(@reply_pages.per_page).
# offset(@reply_pages.offset). # offset(@reply_pages.offset).
# all # all
respond_to do |format|
render :action => "show", :layout => "base_projects"#by young format.js
format.html {render :layout => 'base_projects'}
end
else else
# @reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page # @reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page
# @replies = @topic.children. # @replies = @topic.children.
@ -78,7 +87,10 @@ class MessagesController < ApplicationController
# all # all
@organization = @org_subfield.organization @organization = @org_subfield.organization
render :action => "show", :layout => "base_org"#by young respond_to do |format|
format.js
format.html {render :layout => 'base_org'}
end
end end
end end

@ -171,6 +171,10 @@ class NewsController < ApplicationController
result = cs.show_course_news params,User.current result = cs.show_course_news params,User.current
@news = result[:news] @news = result[:news]
@comments = result[:comments] @comments = result[:comments]
@comments_count = @comments.count
@page = params[:page] ? params[:page].to_i + 1 : 0
@limit = 10
@comments = @comments[@page * @limit..@page * @limit + 9]
@comment = Comment.new @comment = Comment.new
#@comments = @news.comments #@comments = @news.comments
#@comments.reverse! if User.current.wants_comments_in_reverse_order? #@comments.reverse! if User.current.wants_comments_in_reverse_order?
@ -179,12 +183,23 @@ class NewsController < ApplicationController
@course = Course.find(@news.course_id) @course = Course.find(@news.course_id)
if @course if @course
@left_nav_type = 4 @left_nav_type = 4
render :layout => 'base_courses' respond_to do |format|
format.js
format.html {render :layout => 'base_courses'}
end
end
elsif @project
respond_to do |format|
format.js
format.html {render :layout => 'base_projects'}
end end
elsif @news.org_subfield_id elsif @news.org_subfield_id
@org_subfield = OrgSubfield.find(@news.org_subfield_id) @org_subfield = OrgSubfield.find(@news.org_subfield_id)
@organization = @org_subfield.organization @organization = @org_subfield.organization
render :layout => 'base_org' respond_to do |format|
format.js
format.html {render :layout => 'base_org'}
end
end end
end end

@ -106,13 +106,13 @@ class StudentWorkController < ApplicationController
rescue Timeout::Error rescue Timeout::Error
tEndtime = Time.now tEndtime = Time.now
tUsedtime = (tEndtime.to_i-tStarttime.to_i)*1000+(tEndtime.usec - tStarttime.usec)/1000 tUsedtime = (tEndtime.to_i-tStarttime.to_i)*1000+(tEndtime.usec - tStarttime.usec)/1000
logger.debug "program_test_ex user wait time = #{tUsedtime} 毫秒" logger.info "program_test_ex user wait time = #{tUsedtime} 毫秒"
#status 0:答案正确 -5program_test_ex 函数出错 -4judge代码出错 -3http超时 -2:编译错误 -1:答案错误 2:程序运行超时 #status 0:答案正确 -5program_test_ex 函数出错 -4judge代码出错 -3http超时 -2:编译错误 -1:答案错误 2:程序运行超时
resultObj[:status] = -3 resultObj[:status] = -3
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>-3,:wait_time=>tUsedtime,:student_work_id=>student_work.id) CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>-3,:wait_time=>tUsedtime,:student_work_id=>student_work.id)
rescue => e rescue => e
#-4 judge代码 出错 #-4 judge代码 出错
logger.debug "program_test_error #{e}" logger.info "program_test_error #{e}"
resultObj[:status] = -4 resultObj[:status] = -4
tmpstatus = -4 tmpstatus = -4
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id) CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id)
@ -217,7 +217,7 @@ class StudentWorkController < ApplicationController
end end
rescue rescue
#-5 program_test_ex 函数出错 #-5 program_test_ex 函数出错
logger.debug "program_test_error 2" logger.info "program_test_error 2"
resultObj[:status] = -5 resultObj[:status] = -5
tmpstatus = -5 tmpstatus = -5
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id) CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id)

@ -625,7 +625,7 @@ class UsersController < ApplicationController
visible_course_ids = visible_course.empty? ? "(-1)" : "(" + visible_course.map{|course| course.id}.join(",") + ")" visible_course_ids = visible_course.empty? ? "(-1)" : "(" + visible_course.map{|course| course.id}.join(",") + ")"
@homeworks = HomeworkCommon.where("course_id in #{visible_course_ids} and publish_time <= '#{Date.today}'").order("#{@order} #{@b_sort}") @homeworks = HomeworkCommon.where("course_id in #{visible_course_ids} and publish_time <= '#{Date.today}'").order("#{@order} #{@b_sort}")
end end
@type = params[:type] @type = params[:type] ? params[:type] : '1'
@limit = 10 @limit = 10
@is_remote = true @is_remote = true
@hw_count = @homeworks.count @hw_count = @homeworks.count
@ -808,7 +808,7 @@ class UsersController < ApplicationController
#@homeworks = @homeworks.where("homework_type = 3").reorder("#{@order} #{@b_sort}") #@homeworks = @homeworks.where("homework_type = 3").reorder("#{@order} #{@b_sort}")
end end
end end
@type = params[:type] @type = params[:type] ? params[:type] : '1'
@property = params[:property] @property = params[:property]
@is_import = params[:is_import] @is_import = params[:is_import]
@limit = params[:is_import].to_i == 1 ? 15 : 10 @limit = params[:is_import].to_i == 1 ? 15 : 10
@ -1033,7 +1033,7 @@ class UsersController < ApplicationController
update_org_activity(homework.class,homework.id) update_org_activity(homework.class,homework.id)
flash[:notice] = l(:notice_successful_create) flash[:notice] = l(:notice_successful_create)
redirect_to student_work_index_url(:homework => params[:homework]) redirect_to student_work_index_url(:homework => params[:homework], :tab => 2)
else else
render_403 render_403
end end
@ -3200,6 +3200,7 @@ class UsersController < ApplicationController
ori = Attachment.find_by_id(send_id) ori = Attachment.find_by_id(send_id)
# 如果该附件已经存课程中,则只更新附件创建时间 # 如果该附件已经存课程中,则只更新附件创建时间
mul_container.attachments.each do |att| mul_container.attachments.each do |att|
@exist = false
if att.id == ori.id || (!att.copy_from.nil? && !ori.copy_from.nil? && att.copy_from == ori.copy_from) || att.copy_from == ori.id || att.id == ori.copy_from if att.id == ori.id || (!att.copy_from.nil? && !ori.copy_from.nil? && att.copy_from == ori.copy_from) || att.copy_from == ori.id || att.id == ori.copy_from
att.created_on = Time.now att.created_on = Time.now
att.save att.save

@ -3311,17 +3311,32 @@ def get_reply_parents_no_root parents_rely, comment
parents_rely parents_rely
end end
def get_all_children_ex result, jour
if jour.kind_of? Message
jour.children.includes(:author, :praise_tread_cache).each do |jour_child|
result << jour_child
get_all_children_ex result, jour_child
end
elsif (jour.kind_of? JournalsForMessage) || (jour.kind_of? BlogComment) || (jour.kind_of? OrgDocumentComment)
jour.children.each do |jour_child|
result << jour_child
get_all_children_ex result, jour_child
end
end
result
end
#获取所有子节点 #获取所有子节点
def get_all_children result, jour def get_all_children result, jour
if jour.kind_of? Message if jour.kind_of? Message
jour.children.includes(:author, :praise_tread_cache).each do |jour_child| jour.children.includes(:author, :praise_tread_cache).each do |jour_child|
result << jour_child result << jour_child
get_all_children result, jour_child get_all_children_ex result, jour_child
end end
elsif (jour.kind_of? JournalsForMessage) || (jour.kind_of? BlogComment) || (jour.kind_of? OrgDocumentComment) elsif (jour.kind_of? JournalsForMessage) || (jour.kind_of? BlogComment) || (jour.kind_of? OrgDocumentComment)
jour.children.each do |jour_child| jour.children.each do |jour_child|
result << jour_child result << jour_child
get_all_children result, jour_child get_all_children_ex result, jour_child
end end
end end
if jour.respond_to?(:created_on) if jour.respond_to?(:created_on)

@ -60,9 +60,9 @@ module IssuesHelper
def states_done_ratio(issue) def states_done_ratio(issue)
done_ratio = issue.done_ratio done_ratio = issue.done_ratio
if done_ratio == 100 if done_ratio == 100
"<span class='c_green'>#{l(:label_done_ratio_endding)}</span>".html_safe "<span class='c_green' style='display:inline-block;'>#{l(:label_done_ratio_endding)}</span>".html_safe
else else
"<span class='c_orange'>#{l(:label_done_ratio_doing)}</span>".html_safe "<span class='c_orange' style='display:inline-block;'>#{l(:label_done_ratio_doing)}</span>".html_safe
end end
end end

@ -38,11 +38,13 @@
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%=homework.name%>'> <td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%=homework.name%>'>
<%=link_to(homework.try(:name), student_work_index_path(:homework => homework.id))%> <%=link_to(homework.try(:name), student_work_index_path(:homework => homework.id))%>
</td> </td>
<% if homework.course %>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%=homework.course.name%>'> <td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%= homework.course.nil? ? "" : homework.course.name %>'>
<%= link_to(homework.course.name, course_path(homework.course.id)) %> <% if homework.course %>
<%= link_to homework.course.name, course_path(homework.course.id) %>
<% end %>
</td> </td>
<% end %>
<td align="center" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<% if homework.try(:user).try(:realname) == ' '%><%= homework.try(:user)%><% else %><%=homework.try(:user).try(:realname) %><% end %>'> <td align="center" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<% if homework.try(:user).try(:realname) == ' '%><%= homework.try(:user)%><% else %><%=homework.try(:user).try(:realname) %><% end %>'>
<% if homework.try(:user).try(:realname) == ' '%> <% if homework.try(:user).try(:realname) == ' '%>
<%= link_to(homework.try(:user), user_path(homework.user_id)) %> <%= link_to(homework.try(:user), user_path(homework.user_id)) %>

@ -106,7 +106,8 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, @article).count %> <% all_replies = get_all_children(all_comments, @article) %>
<% count= all_replies.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<div class="homepagePostReplyBanner"> <div class="homepagePostReplyBanner">
<div class="homepagePostReplyBannerCount">回复 <div class="homepagePostReplyBannerCount">回复
@ -119,8 +120,7 @@
<div class="homepagePostReplyBannerTime"></div> <div class="homepagePostReplyBannerTime"></div>
</div> </div>
<% all_comments = []%> <% comments = all_replies %>
<% comments = get_all_children(all_comments, @article) %>
<% if count > 0 %> <% if count > 0 %>
<div class="" id="reply_div_<%= @article.id %>"> <div class="" id="reply_div_<%= @article.id %>">
<% comments.each do |comment| %> <% comments.each do |comment| %>

@ -46,12 +46,12 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, activity).count %> <% all_repies = get_all_children(all_comments, activity) %>
<% count = all_repies.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id, :homepage => 1} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id, :homepage => 1} %>
<% all_comments = []%> <% comments = all_repies[0..2] %>
<% comments = get_all_children(all_comments, activity)[0..2] %>
<% if count > 0 %> <% if count > 0 %>
<div class="" id="reply_div_<%= user_activity_id %>"> <div class="" id="reply_div_<%= user_activity_id %>">
<%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'BlogComment', :activity_id =>activity.id, :homepage => 1, :user_id => activity.author_id}%> <%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'BlogComment', :activity_id =>activity.id, :homepage => 1, :user_id => activity.author_id}%>

@ -5,12 +5,6 @@
<%= form_tag({:controller => 'calendars', :action => 'show', :project_id => @project}, <%= form_tag({:controller => 'calendars', :action => 'show', :project_id => @project},
:method => :get, :id => 'query_form') do %> :method => :get, :id => 'query_form') do %>
<%= hidden_field_tag 'set_filter', '1' %> <%= hidden_field_tag 'set_filter', '1' %>
<fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>">
<legend onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend>
<div style="<%= @query.new_record? ? "" : "display: none;" %>">
<%= render :partial => 'queries/filters', :locals => {:query => @query} %>
</div>
</fieldset>
<p style="float:right;"> <p style="float:right;">
<%= link_to_previous_month(@year, @month) %> | <%= link_to_next_month(@year, @month) %> <%= link_to_previous_month(@year, @month) %> | <%= link_to_next_month(@year, @month) %>
</p> </p>
@ -42,5 +36,5 @@
<% html_title(l(:label_calendar)) -%> <% html_title(l(:label_calendar)) -%>
<script> <script>
$("#RSide").css("width","730px"); $(".project_r_h").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
</script> </script>

@ -24,10 +24,9 @@
<span class="tip"><%= render_issue_tooltip i %></span> <span class="tip"><%= render_issue_tooltip i %></span>
</div> </div>
<% else %> <% else %>
<span class="icon icon-package"> <span class="icon icon-package"></span>
<%= h("#{i.project} -") unless @project && @project == i.project %> <%= h("#{i.project} -") unless @project && @project == i.project %>
<%= link_to_version i%> <%= link_to_version i%>
</span>
<% end %> <% end %>
<% end %> <% end %>
</td> </td>

@ -1,10 +1,10 @@
<div class="st_list"> <div class="sy_class_fenban clear">
<div class="st_search" id="search_members"> <div id="search_members">
<%= render :partial => 'searchmembers' %> <%= render :partial => 'searchmembers' %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div class="st_addclass" id="st_groups"> <div id="st_groups">
<%= render :partial => 'new_groups_name', :locals => {:course_groups => @course_groups} %> <%= render :partial => 'new_groups_name', :locals => {:course_groups => @course_groups} %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
@ -13,4 +13,3 @@
<%= render :partial => 'new_member_list', :locals => {:members => members} %> <%= render :partial => 'new_member_list', :locals => {:members => members} %>
</div> </div>
</div> <!-- st_list end--> </div> <!-- st_list end-->
<div class="cl"></div>

@ -7,9 +7,9 @@
span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;} span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;}
div.ke-toolbar .ke-outline{border:none;} div.ke-toolbar .ke-outline{border:none;}
div.respond-form .reply_btn{margin-left:565px;margin-top:5px;} div.respond-form .reply_btn{margin-left:625px;margin-top:5px;}
div.recall_con{width:570px;} div.recall_con{width:570px;}
div.recall_con .reply_btn{margin-left:525px;margin-top:5px;} div.recall_con .reply_btn{margin-left:585px;margin-top:5px;}
/*.ke-container{height: 80px !important;}*/ /*.ke-container{height: 80px !important;}*/
</style> </style>
<%= content_for(:header_tags) do %> <%= content_for(:header_tags) do %>
@ -19,7 +19,7 @@
<script > <script >
init_KindEditor_data('',80); init_KindEditor_data('',80);
</script> </script>
<div class="msg_box fl mb10" id='leave-message'> <div class="msg_box fl mb10" id='leave-message' style="width:730px;">
<h4><%= l(:label_leave_message) %></h4> <h4><%= l(:label_leave_message) %></h4>
<% if !User.current.logged?%> <% if !User.current.logged?%>

@ -5,7 +5,7 @@
<div class="ping_dispic"> <div class="ping_dispic">
<%= link_to image_tag(url_to_avatar(journal.user),:width => '46',:height => '46'), user_path(journal.user) %> <%= link_to image_tag(url_to_avatar(journal.user),:width => '46',:height => '46'), user_path(journal.user) %>
</div> </div>
<div class="ping_discon upload_img" style="width: 610px;" onmouseover="$('#delete_reply_<%=journal.id %>').show();" onmouseout="$('#delete_reply_<%=journal.id %>').hide();"> <div class="ping_discon upload_img" style="width: 670px;" onmouseover="$('#delete_reply_<%=journal.id %>').show();" onmouseout="$('#delete_reply_<%=journal.id %>').hide();">
<div class="ping_distop f14"> <div class="ping_distop f14">
<!-- <a style=" font-weight:bold; color:#15bccf; margin-right:30px; background:none;" target="_blank" href="#">gugu01</a> --> <!-- <a style=" font-weight:bold; color:#15bccf; margin-right:30px; background:none;" target="_blank" href="#">gugu01</a> -->
<span> <span>

@ -1,56 +1,42 @@
<ul> <ul>
<li style=" color:#8b8b8b;">分班:</li> <li class="fl mt5" style="color:#8b8b8b;">分班:</li>
<li class="classbox" id="course_group_0"> <li class="fl sy_fenban_list mr10 mb10 ml10" id="course_group_0">
<%= link_to l(:label_all), searchgroupmembers_course_path(@course,:group_id => 0), :onclick => "checkclass('course_group_0')", method: 'get', remote: true%> <%= link_to l(:label_all), searchgroupmembers_course_path(@course,:group_id => 0), :onclick => "checkclass('course_group_0')", method: 'get', remote: true%>
</li> </li>
<li class="fl sy_fenban_list mr10 mb10" id="course_group_1">
<%= link_to "未分班", searchgroupmembers_course_path(@course,:group_id => -1), :onclick => "checkclass('course_group_0')", method: 'get', remote: true, :class => 'fl mr5'%>
<span class="fl sy_cgrey">(<%=@no_group_count %>人)</span>
</li>
<% unless course_groups.nil? %> <% unless course_groups.nil? %>
<% course_groups.each do |group| %> <% course_groups.each do |group| %>
<% group_name = " #{ group.name}( <span class='c_red'>#{group.members.count.to_s}人</span>)".html_safe %> <%# group_name = " #{ group.name}( <span class='c_red'>#{group.members.count.to_s}人</span>)".html_safe %>
<li class="classbox" style="margin-bottom: 5px;"> <li class="fl sy_fenban_list clear mr10 mb10">
<%= link_to group_name, searchgroupmembers_course_path(@course,:group_id => group.id), method: 'get', remote: true,:onclick => "checkclass('group_name_#{group.id}')"%> <%= link_to group.name, searchgroupmembers_course_path(@course,:group_id => group.id), class: 'fl mr5', method: 'get', remote: true,:onclick => "checkclass('group_name_#{group.id}')"%>
<span class="fl sy_cgrey mr5">(<%=group.members.count.to_s %>人)</span>
<% if @canShowCode%> <% if @canShowCode%>
<a href="javascript:void(0)" class="sy_icons_edit fl" onclick="$('#edit_group_name').val('<%= group.name%>');$('#edit_group_id').val('<%= group.id%>');$('#edit_group_form').slideToggle();"></a>
<% if group.members.empty?%> <% if group.members.empty?%>
<%= link_to '', deletegroup_course_path(:group_id => group.id), :method => 'delete', :remote => true, <%= link_to '', deletegroup_course_path(:group_id => group.id), :method => 'delete', :remote => true,
:data => {confirm: l(:label_delete_group)}, :data => {confirm: l(:label_delete_group)},
:class => 'f_1', :class => 'sy_icons_del fl'
:style => "width: 11px;height: 16px;margin-top:3px;margin-left:5px;background: url(/images/pic_del.gif) no-repeat 0 0;" %>
%>
<% else%> <% else%>
<a href="javascript:" onClick="alert('温馨提示:已有学生加入该班级,不能删除该班级,仅可编辑班级名称。');" style="margin-right:4px;" > <a href="javascript:void(0)" onClick="alert('温馨提示:已有学生加入该班级,不能删除该班级,仅可编辑班级名称。');" class="sy_icons_del fl"></a>
<img src="/images/pic_del.gif" width="11" height="12" alt="删除班级" title="删除该班级" />
</a>
<% end%> <% end%>
<a href="javascript:void(0)" class="f_l" style="padding-left: 5px;" onclick="$('#group_name_<%= group.id %>').val('<%= group.name%>');$('#edit_group_<%= group.id %>').slideToggle();$('#new_group_name').hide();">
<img src="/images/pic_edit.png" width="14" height="15" alt="编辑班级" />
</a>
<% end %>
</li>
<!-- 编辑分班 -->
<li>
<% if @canShowCode%>
<%= form_tag(updategroupname_course_path(@course,:group_id => group.id), method: 'get', remote:true, :id => 'update_group_'+group.id.to_s) do %>
<span id="edit_group_<%= group.id %>" style="display:none; vertical-align: middle;" class=" f_l">
<input type="text" id="group_name_<%= group.id%>" name="group_name" size="20" class="isTxt w90 f_l" maxlength="20" />
<input type="button" class="submit f_l" onclick="edit_group('group_name_<%= group.id%>','<%= valid_ajax_course_path%>','<%= @course.id%>','<%= group.id%>');"/>
</span>
<% end %>
<% end %> <% end %>
</li> </li>
<% end %> <% end %>
<% end %> <!-- 编辑分班 -->
<% if @canShowCode%>
<% if @canShowCode %> <li id="edit_group_form" class="fl mr10 mb10 clear undis">
<li style="margin-left:15px;margin-top: 2px;"> <%= form_tag(updategroupname_course_path(@course), method: 'get', remote:true, :id => 'update_group_form') do %>
<a href="javascript:void(0)" class="st_add f_l" onclick="$('#group_name').value='';$('#new_group_name').slideToggle();$('#edit_group_36').hide();">+添加分班</a> <input type="hidden" name="group_id" id="edit_group_id"/>
</li> <input class="fl mr5 sy_fenban_input" id="edit_group_name"name="group_name" size="20" maxlength="20"/>
<li > <a href="javascript:void(0)" class="sy_btn_blue fl mr5" onclick="edit_group('edit_group_name','<%= valid_ajax_course_path%>','<%= @course.id%>','edit_group_id');">确定</a>
<span id="new_group_name" style="display:none; vertical-align: middle;" class="ml10 f_l"> <a href="javascript:void(0)" class="sy_btn_grey fl" onclick="$('#edit_group_form').hide(); $('#edit_group_id').val(''); $('#edit_group_name').val('');">取消</a>
<%= form_tag( addgroups_course_path(@course), method: 'get',:remote=>true,:id => 'add_group_name') do %> <% end %>
<input type="text" id="group_name" name="group_name" size="20" class="isTxt w90 f_l" maxlength="20" />
<input type="button" class="submit f_l" onclick="add_group('<%= valid_ajax_course_path%>','<%= @course.id%>');"/>
<% end %>
</span>
</li> </li>
<% end %>
<% end %> <% end %>
</ul> </ul>

@ -1,123 +1,156 @@
<!-- 加入分班 -->
<div style="margin-left: 15px">
<% if User.current.logged? && User.current.member_of_course?(@course) && @group %>
<%= join_in_course_group(@course.course_groups,@group, User.current) unless @canShowCode %>
<span style="font-size: 12px; float: left; margin-right: 5px">
<%= l(:label_current_group)%>:&nbsp;
<%= @group.name %>
</span>
<% end %>
</div>
<div class="cl"></div>
<% if members.any? %> <% if members.any? %>
<% if @result_count %> <table class="sy_new_table clear sy_new_table_width" cellpadding="0" cellspacing="0">
<p style="font-size: 18px;"> <thead>
<%= l(:label_search_member_count) %> <tr class="clear">
<%= @result_count %> <th class="sy_th7">序号</th>
<%= l(:label_member_people) %> <th class="sy_th15">姓名</th>
<th class="sy_th15">
<%= link_to '学号', member_score_sort_course_path(:sort_type => 'student_id', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? (@group == -1 ? -1 : @group.id) : 0), :search_name => (@search_name ? @search_name : nil)), :result => members, method: 'get', remote: true, :style => 'color:#000000;'%>
<% if @sort_type == "student_id" && @score_sort_by == 'desc' %>
<a href="javascript:void(0)" class="sy_sortdownbtn"></a>
<% elsif @sort_type == "student_id" && @score_sort_by == 'asc' %>
<a href="javascript:void(0)" class="sy_sortupbtn"></a>
<% end %>
</th>
<th class="sy_th0 sy_fenban_tap">
<%= link_to '作业得分', member_score_sort_course_path(:sort_type => 'score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? (@group == -1 ? -1 : @group.id) : 0), :search_name => (@search_name ? @search_name : nil)), :result => members, method: 'get', remote: true, :style => 'color:#000000;'%>
<% if @sort_type == "score" && @score_sort_by == 'desc' %>
<a href="javascript:void(0)" class="sy_sortdownbtn"></a>
<% elsif @sort_type == "score" && @score_sort_by == 'asc' %>
<a href="javascript:void(0)" class="sy_sortupbtn"></a>
<% end %>
<div class="sy_fenban_show undis" >
<p>积分规则<br/>
班级作业的得分总和</p>
</div>
</th>
<th class="sy_th0 sy_fenban_tap">
<%= link_to '测评得分', member_score_sort_course_path(:sort_type => 'ex_score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? (@group == -1 ? -1 : @group.id) : 0), :search_name => (@search_name ? @search_name : nil)), :result => members, method: 'get', remote: true, :style => 'color:#000000;'%>
<% if @sort_type == "ex_score" && @score_sort_by == 'desc' %>
<a href="javascript:void(0)" class="sy_sortdownbtn"></a>
<% elsif @sort_type == "ex_score" && @score_sort_by == 'asc' %>
<a href="javascript:void(0)" class="sy_sortupbtn"></a>
<% end %>
<div class="sy_fenban_show undis" >
<p>积分规则<br/>
班级测验的得分总和</p>
</div>
</th>
<th class="sy_th0 sy_fenban_tap">
<%= link_to '社区得分', member_score_sort_course_path(:sort_type => 'act_score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? (@group == -1 ? -1 : @group.id) : 0),:search_name => (@search_name ? @search_name : nil)) ,:result => members,method: 'get', remote: true, :style => 'color:#000000;'%>
<% if @sort_type == "act_score" && @score_sort_by == 'desc' %>
<a href="javascript:" class= "sy_sortdownbtn"></a>
<% elsif @sort_type == "act_score" && @score_sort_by == 'asc' %>
<a href="javascript:" class= "sy_sortupbtn"></a>
<% end %>
<div class="sy_fenban_show undis" >
<p>积分规则<br/>
资源发布:资源数 x 5 <br>
问答发布:发帖数 x 2 <br>
通知发布:通知数 x 1 <br>
问答回复:回复数 x 1 <br>
作业留言:留言数 x 1 <br>
通知留言:留言数 x 1 <br>
班级留言:留言数 x 1 <br>
总得分为以上得分之和
</p> </p>
<div class="cl"></div> </div>
<% end %> </th>
<th class="sy_th0 sy_fenban_tap">总得分
<div class="st_box"> <div class="sy_fenban_show undis" style="width:180px;">
<ul class="st_box_top"> <p>积分规则<br/>
<li class="ml50" style="padding-right: 5px;"><span class="fontGrey6 fb">姓名</span></li> 作业得分+测评得分+社区得分</p>
<li class="ml10" style="padding-right: 15px;"><span class="fontGrey6 fb">学号</span></li> </div>
<% unless @course.course_groups.empty? %> </th>
<li style="padding-right: 55px; margin-left: 160px;"><span class="fontGrey6 fb">分班</span></li> <th class="sy_th13">分班</th>
<% end %> </tr>
<li class="st_list_score <%= @course.course_groups.empty? ? 'ml250' : 'ml10' %>"> </thead>
<%= link_to '英雄榜', member_score_sort_course_path(:sort_type => 'score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0),:search_name => (@search_name ? @search_name : nil)) ,:result => members,method: 'get', remote: true, :class => 'ml35'%> <tbody>
<% if @sort_type == "score" && @score_sort_by == 'desc' %> <% members.each_with_index do |member, i| %>
<a id="pic" href="javascript:" class= "st_down"></a> <tr class="clear">
<% elsif @sort_type == "score" && @score_sort_by == 'asc' %> <% user = member.user %>
<a id="pic" href="javascript:" class= "st_up"></a> <% hw_score = member.score.nil? ? 0 : member.score %>
<% end %> <% ex_score = member.ex_score.nil? ? 0 : member.ex_score %>
</li> <% act_score = member.act_score.nil? ? 0 : member.act_score %>
<li class="st_list_score"> <% sum = hw_score + ex_score + act_score %>
<%= link_to '活跃度', member_score_sort_course_path(:sort_type => 'act_score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0),:search_name => (@search_name ? @search_name : nil)) ,:result => members,method: 'get', remote: true, :class => 'ml35'%> <td><%= (@page - 1) * @limit + i + 1 %></td>
<% if @sort_type == "act_score" && @score_sort_by == 'desc' %> <td>
<a id="pic" href="javascript:" class= "st_down"></a> <%= link_to image_tag(url_to_avatar(user), :width => "30", :height => "30", :style => "display:block;"), user_path(member.user_id), :class => 'sy_class_users_st fl mt5 mr5' ,:alt => "用户头像" %>
<% elsif @sort_type == "act_score" && @score_sort_by == 'asc' %> <span class="fl sy_class_users_st_name" title="<%= user.show_name %>"><%= user.show_name %></span>
<a id="pic" href="javascript:" class= "st_up"></a> </td>
<% end %> <td>
</li> <span class="sy_class_users_st_num" title="<%= user.user_extensions.student_id %>"><%= user.user_extensions.student_id %></span>
<li class="ml20"><span class="fontGrey6 fb">加入时间</span></li> </td>
</ul> <td>
<div class="cl"></div><!--st_box_top end--> <%= link_to format("%0.2f", hw_score), {
:action => 'show_member_score',
<% members.each do |member| %> :member_id => member.id,
<div class="st_boxlist"> :remote => true},
<a href="javascript:" class="st_img"> :class => "" %>
<%= member.user.nil? ? '' : (image_tag(url_to_avatar(member.user), :width => 32, :height => 32)) %> </td>
</a> <td><%= ex_score %></td>
<ul> <td>
<li> <%= link_to act_score, {
<%= link_to("#{l(:label_bidding_user_studentname)}<span class='hidden st_info_block'>#{member.user.show_name}</span>".html_safe,user_path(member.user)) %> :action => 'show_member_act_score',
</li> :member_id => member.id,
<br/> :remote => true},
<% unless member.user.user_extensions.student_id == ''%> :class => '' %>
<li><%= link_to("#{l(:label_bidding_user_studentcode)}<span class='hidden st_info_block'>#{member.user.user_extensions.student_id}</span>".html_safe,user_path(member.user)) %></li> </td>
<% end%> <td class="pr">
</ul> <span class="sum_score_tip"><%= format("%0.2f", sum) %></span>
<% unless @course.course_groups.empty? %> <div class="sy_tips_box_inner undis" style="left: 215px; top: -60px; text-align: left;">
<% if User.current.allowed_to?(:as_teacher, @course) || User.current.admin? %> <span style="top: 75px;"></span>
<% if @course.course_groups.nil? || @group %> <p >
<div class="select-class-option fl" style="margin-left: 5px;"> <font class="fb"><%= user.show_name %></font><br/>
<span style="width: 100px; text-align: center; float: left;" class="hidden"><%=member.course_group_id == 0 ? "暂无" : member.course_group.name %></span> 资源&nbsp;&nbsp;&nbsp;&nbsp;发布数:<%= member.resource_num.nil? ? 0 : member.resource_num %><br/>
</div> <font class="mr15">问答&nbsp;&nbsp;&nbsp;&nbsp;发布数:<%= member.message_num.nil? ? 0 : member.message_num %></font>回复数:<%= member.message_reply_num.nil? ? 0 : member.message_reply_num %><br/>
<% else %> <font class="mr15">通知&nbsp;&nbsp;&nbsp;&nbsp;提交数:<%= member.news_num.nil? ? 0 : member.news_num %></font>留言数:<%= member.news_reply_num.nil? ? 0 : member.news_reply_num %><br/>
<%= form_tag({:controller => 'courses', :action => 'teacher_assign_group', :id => @course.id,:user_id => member.user_id},:remote=>'true', :method => 'post', :id=>"join_group_form_#{member.id}", :class => 'query_form') do %> <font class="mr15">作业&nbsp;&nbsp;&nbsp;&nbsp;提交数:<%= member.homework_num.nil? ? 0 : member.homework_num %></font>留言数:<%= member.homework_journal_num.nil? ? 0 : member.homework_journal_num %><br/>
<div class="select-class-option fl" style="margin-left: 5px;"><span style="width: 100px; text-align: center; float: left;" class="hidden"><%=member.course_group_id == 0 ? "暂无" : member.course_group.name %></span> 班级&nbsp;&nbsp;&nbsp;&nbsp;留言数:<%= member.journal_num.nil? ? 0 : member.journal_num %><br />
<a style="display: inline-block;" href="javascript:void(0)" class="pic_edit2 ml5"></a> 测验&nbsp;&nbsp;&nbsp;&nbsp;提交数:<%= member.exercise_num.nil? ? 0 : member.exercise_num %>
</div> </p>
<%= select( :name,:group_id, course_group_option(@course),
{ :include_blank => false,:selected => member.course_group_id},
{:onchange=>"join_group_function('#join_group_form_#{member.id}');", :id =>"course_group_id", :name => "course_group_id",:class=>"w125 undis class-edit fl", :style => "margin-left: 5px;"}) %>
<% end %>
<% end %>
<% else %>
<div class="select-class-option fl" style="margin-left: 5px;">
<span style="width: 100px; text-align: center; float: left;" class="hidden"><%=member.course_group_id == 0 ? "暂无" : member.course_group.name %></span>
</div>
<% end %>
<% end %>
<%= link_to format("%0.2f",member.score.nil? ? 0 : member.score.to_s), {
:action => 'show_member_score',
:member_id => member.id,
:remote => true},
:class => "st_list_score c_red #{@course.course_groups.empty? ? 'ml130' : ''}" %>
<%= link_to member.act_score.nil? ? 0 : member.act_score.to_s, {
:action => 'show_member_act_score',
:member_id => member.id,
:remote => true},
:class => 'st_list_score c_red' %>
<span class="fr mr15 c_grey"><%= format_date(member.created_on)%></span>
<%= call_hook(:view_projects_settings_members_table_row, { :course => @course, :member => member}) %>
</div> </div>
<div class="cl"></div> </td>
<% end; reset_cycle %> <td>
</div> <% if User.current.allowed_to?(:as_teacher, @course) || User.current.admin? || User.current == user %>
<% if @course.course_groups.empty? %>
<!--<ul class="wlist"> <%=member.course_group_id == 0 ? "暂无" : member.course_group.name %>
<% #= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => @is_remote, :flag => true%> <% else %>
</ul>--> <%= form_tag({:controller => 'courses', :action => 'teacher_assign_group', :id => @course.id,:user_id => member.user_id},:remote=>'true', :method => 'post', :id=>"join_group_form_#{member.id}", :class => 'query_form') do %>
<div class="select-class-option">
<span class="hidden" style="display:inline-block; vertical-align:middle; max-width:70px;"><%=member.course_group_id == 0 ? "暂无" : member.course_group.name %></span>
<a href="javascript:void(0)" class="sy_icons_edit pic_edit_icon" alt="编辑" style="background-position:0 5px;"></a>
</div>
<%= select( :name,:group_id, course_group_option(@course),
{ :include_blank => false,:selected => member.course_group_id},
{:onchange=>"join_group_function('#join_group_form_#{member.id}');", :id =>"course_group_id", :name => "course_group_id",:class=>"w100 undis class-edit sy_fenban_select", :style => "margin-left: 5px;"}) %>
<% end %>
<% end %>
<% else %>
<%=member.course_group_id == 0 ? "暂无" : member.course_group.name %>
<% end %>
</td>
</tr>
<% end %>
</tbody>
</table>
<div style="text-align:center;">
<div class="pages" style="width:auto; display:inline-block;">
<ul id="homework_pository_ref_pages">
<%= pagination_links_full @mem_pages, @members_count, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true%>
</ul>
<div class="cl"></div>
</div>
</div>
<% else%> <% else%>
<p class="nodata"> <p class="nodata">
<%= l(:label_no_data) %> <%= l(:label_no_data) %>
</p> </p>
<% end%> <% end %>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
/*$(".select-class-option").mouseover(function(){ $(".pic_edit_icon").click(function(){
$(this).children(".pic_edit2").css("display","inline-block");
});
$(".select-class-option").mouseout(function(){
$(this).children(".pic_edit2").css("display","none");
});*/
$(".pic_edit2").click(function(){
$(this).parent().hide(); $(this).parent().hide();
$(this).parent().next().show(); $(this).parent().next().show();
}); });
@ -137,12 +170,33 @@
$('.class-edit').css('display','none'); $('.class-edit').css('display','none');
$('.select-class-option').show(); $('.select-class-option').show();
}); });
$('.class-edit,.pic_edit2').bind('click',function(e){ $('.class-edit,.pic_edit_icon').bind('click',function(e){
stopPropagation(e); stopPropagation(e);
}); });
}); });
function join_group_function(id){ function join_group_function(id){
$(id).submit(); $(id).submit();
} }
$(".sy_new_table tr").each(function(){
$(this).mouseenter(function(){
$(".sy_tips_box_inner").hide();
$(this).children().eq(6).children().eq(1).stop();
$(this).children().eq(6).children().eq(1).show();
});
$(this).mouseleave(function(){
$(this).children().eq(6).children().eq(1).delay(500).hide(0);
});
});
$(".sy_tips_box_inner").each(function(){
$(this).mouseover(function(){
$(this).stop();
$(this).show();
});
$(this).mouseout(function(){
$(this).delay(500).hide(0);
});
});
</script> </script>

@ -1,11 +1,35 @@
<%= form_tag( searchmembers_course_path(@course), method: 'get',:class => "f_l",:remote=>true,:id => "search_student") do %> <div class="clear mb10">
<%= text_field_tag 'name', params[:name], name: "name", :class => 'st_search_input', :placeholder => '输入学生登录名、姓名、学号进行搜索'%> <% if @canShowCode %>
<% if @group %> <a href="javascript:void(0)" class="sy_btn_green fl mr10" onclick="$('#group_name').value='';$('#new_group_name').slideToggle();">添加分班</a>
<%= hidden_field "search_group_id", params[:search_group_id],:value => "#{@group.id}", name: 'search_group_id' %> <div class="fl" id="new_group_name" style="display:none; vertical-align: middle;">
<input type="hidden" name="ingroup"> <%= form_tag( addgroups_course_path(@course), method: 'get',:remote=>true,:id => 'add_group_name') do %>
<% else %> <input type="text" id="group_name" name="group_name" size="20" class="fl mr5 sy_fenban_input" placeholder="例如A班" maxlength="20" />
<input type="hidden" name="incourse"> <a href="javascript:void(0)" class="sy_btn_blue fl mr5" onclick="add_group('<%= valid_ajax_course_path%>','<%= @course.id%>');">确定</a>
<a href="javascript:void(0)" class="sy_btn_grey fl" onclick="$('#group_name').value='';$('#new_group_name').slideToggle();">取消</a>
<% end %>
</div>
<% end %>
<div class="hw_search_box fr">
<%= form_tag( searchmembers_course_path(@course), method: 'get',:class => "f_l",:remote=>true,:id => "search_student") do %>
<input class="hw_search-input" name="name" id="search_member_input" placeholder="输入学生登录名/姓名/学号进行搜索" type="text">
<% if @group %>
<%= hidden_field "search_group_id", params[:search_group_id],:value => "#{@group == -1 ? -1 : @group.id}", name: 'search_group_id' %>
<input type="hidden" name="ingroup">
<% else %>
<input type="hidden" name="incourse">
<% end %>
<% end %> <% end %>
<% end %> <a href="javascript:void(0)" class="hw_btn_search" onclick="$('#search_student').submit();"></a>
<a href="javascript:" class="f_l" onclick="$('#search_student').submit();">搜索</a> </div>
<%= link_to l(:label_export_excel), export_course_member_excel_course_path(@course,:format => 'xls'),:class=>'xls'%> </div>
<script>
$(function(){
$("#search_member_input").keypress(function(e){
var name = $.trim($('#search_member_input').val());
if (e.keyCode == '13' && name != "" && name.length != 0) {
$(this).parent().submit();
}
})
});
</script>

@ -45,7 +45,8 @@
<%= link_to( "", new_exercise_path(:course_id => @course.id), :class => 'sy_class_add', :title =>"新建试卷") if is_teacher %> <%= link_to( "", new_exercise_path(:course_id => @course.id), :class => 'sy_class_add', :title =>"新建试卷") if is_teacher %>
</li> </li>
<% end %> <% end %>
<% if (User.current.logged? && @course.open_student == 1) || (User.current.member_of_course?(@course)) || User.current.admin? %> <% group_count = @course.course_groups.count %>
<% if show_nav?(group_count) && ((User.current.logged? && @course.open_student == 1) || (User.current.member_of_course?(@course)) || User.current.admin?) %>
<li> <li>
<%=link_to "分班", course_member_path(@course, :role => 2) %> <%=link_to "分班", course_member_path(@course, :role => 2) %>
</li> </li>

@ -1,2 +1,4 @@
$("#st_groups").html("<%= escape_javascript( render :partial => 'new_groups_name', locals: {:course_groups => @course_groups})%>"); $("#st_groups").html("<%= escape_javascript( render :partial => 'new_groups_name', locals: {:course_groups => @course_groups})%>");
$("#member_content").html("<%= escape_javascript( render :partial => 'new_member_list', :locals => {:members => @members})%>"); $("#member_content").html("<%= escape_javascript( render :partial => 'new_member_list', :locals => {:members => @members})%>");
$('#group_name').val('');
$('#new_group_name').hide();

@ -2,7 +2,7 @@
<!-- <#%= stylesheet_link_tag 'css', :media => 'all' %> --> <!-- <#%= stylesheet_link_tag 'css', :media => 'all' %> -->
<div class="courseRSide fl"> <div class="courseRSide fl">
<div class="project_r_h"> <div class="project_r_h" style="width:730px;">
<h2 class="project_h2"><%= l(:label_contest_userresponse) %></h2> <h2 class="project_h2"><%= l(:label_contest_userresponse) %></h2>
</div> </div>

@ -1,17 +1,35 @@
<div class="courseRSide fl" id="homework_page_right"> <% if @role.to_i == 1 %>
<div class="project_r_h"> <div class="courseRSide fl" id="homework_page_right">
<h2 class="project_h2 fl"><%= @subPage_title%></h2> <div class="project_r_h">
<% if User.current.allowed_to?(:as_teacher,@course) %> <h2 class="project_h2 fl"><%= @subPage_title%></h2>
<span class="fr f14 fontGrey2" style="height: 40px; line-height: 40px; margin-right: 15px;"> <% if User.current.allowed_to?(:as_teacher,@course) %>
<%=link_to "成员管理", :controller => 'courses', :action => 'settings', :id => @course.id, :tab=>'member' %> <span class="fr f14 fontGrey2" style="height: 40px; line-height: 40px; margin-right: 15px;">
</span> <%=link_to "成员管理", :controller => 'courses', :action => 'settings', :id => @course.id, :tab=>'member', :class => 'hw_more_li' %>
<% end %> </span>
<% end %>
</div>
<%= render :partial => 'course_teacher', :locals => {:members => @members} %>
</div>
<% else %>
<div class="sy_class_r sy_class_nobg fr ml10">
<div class="sy_class_r_head mb10">
<h3><%= @subPage_title %></h3>
<div class="hw_more_box">
<ul>
<li class="hw_more_icons">
<ul class="hw_more_txt">
<li><%= link_to l(:label_export_excel), export_course_member_excel_course_path(@course,:format => 'xls'), :class => 'hw_more_li'%></li>
<% if User.current.allowed_to?(:as_teacher,@course) %>
<li>
<%=link_to "成员管理", {:controller => 'courses', :action => 'settings', :id => @course.id, :tab => 'member'}, :class => 'hw_more_li' %>
</li>
<% end %>
</ul>
</li>
</ul>
</div>
</div>
<%= render :partial => 'course_student', :locals => {:members => @members} %>
</div> </div>
<% if @subPage_title == l(:label_student_list)%> <% end %>
<%= render :partial => 'course_student', :locals => {:members => @members} %>
<% else%>
<%= render :partial => 'course_teacher', :locals => {:members => @members} %>
<% end%>
</div>

@ -1,5 +1,5 @@
<div class="courseRSide fl" id="homework_page_right"> <div class="courseRSide fl" id="homework_page_right">
<div class="project_r_h"> <div class="project_r_h" style="width:730px;">
<h2 class="project_h2"><%= l(:label_course_modify_settings)%></h2> <h2 class="project_h2"><%= l(:label_course_modify_settings)%></h2>
</div> </div>
<script> <script>

@ -98,7 +98,7 @@
<div class="reTop mb5"> <div class="reTop mb5">
<%= form_tag( search_course_files_path(@course), method: 'get',:class => "re_search",:remote=>true) do %> <%= form_tag( search_course_files_path(@course), method: 'get',:class => "re_search",:remote=>true) do %>
<%= text_field_tag 'name', params[:name], name: "name", :class => 'researchBox fl',:style=>"padding: 0px"%> <%= text_field_tag 'name', params[:name], name: "name", :class => 'researchBox fl',:style=>"padding: 0px"%>
<%= submit_tag "内搜索", :class => "blueBtn mr5 fl",:name => "incourse",:id => "incourse" %> <%= submit_tag "内搜索", :class => "blueBtn mr5 fl",:name => "incourse",:id => "incourse" %>
<%#= submit_tag "全站搜索", :class => "blueBtn mr5 fl",:name => "insite",:id => "insite" %> <%#= submit_tag "全站搜索", :class => "blueBtn mr5 fl",:name => "insite",:id => "insite" %>
<% if is_course_teacher(User.current,@course) || (@course.publish_resource==1 && User.current.member_of_course?(@course) ) %> <% if is_course_teacher(User.current,@course) || (@course.publish_resource==1 && User.current.member_of_course?(@course) ) %>
<input class="blueBtn fr mr5" value="上传资源" onclick="course_files_upload();"> <input class="blueBtn fr mr5" value="上传资源" onclick="course_files_upload();">

@ -319,5 +319,5 @@
<% end %> <% end %>
<script> <script>
$("#RSide").css("width","730px"); $(".project_r_h").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
</script> </script>

@ -1,6 +1,6 @@
<%= render :partial => 'users/user_homework_list', :locals => {:homework_commons => homework_commons,:page => 0,:course_id => course_id} %> <%= render :partial => 'users/user_homework_list', :locals => {:homework_commons => homework_commons,:page => 0,:course_id => course_id} %>
<div style="width:210px; text-align:center; margin:0 auto;"> <div style=" text-align:center;">
<ul class="wlist" style=" border:none; display:inline-block; float:none; margin-top:10px;"> <ul class="wlist" style=" border:none; display:inline-block; float:none; margin-top:10px;">
<%= 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>

@ -47,7 +47,7 @@
<% elsif @homework.homework_type == 2 %> <% elsif @homework.homework_type == 2 %>
<p class="c_red mb5">已有<%=committed_work_count %>个学生提交作品,不允许再修改作业类型和测试集。</p> <p class="c_red mb5">已有<%=committed_work_count %>个学生提交作品,不允许再修改作业类型和测试集。</p>
<% elsif @homework.homework_type == 3 %> <% elsif @homework.homework_type == 3 %>
<p class="c_red mb5">已有<%=committed_work_count %>个学生提交作品,不允许再修改作业类型和分组设置。</p> <p class="c_red mb5">已有<%=committed_work_count %>个学生提交作品,不允许再修改作业类型和分组设置(可扩大分组范围)。</p>
<% end %> <% end %>
<% elsif stu_pro_count != 0 && @homework.homework_type == 3 %> <% elsif stu_pro_count != 0 && @homework.homework_type == 3 %>
<p class="c_red mb5">已有<%=stu_pro_count %>个学生关联项目,不允许再修改作业类型。</p> <p class="c_red mb5">已有<%=stu_pro_count %>个学生关联项目,不允许再修改作业类型。</p>

@ -0,0 +1 @@
<span class="issues_nav_tag ml5" ><%= @issue_count %></span>

@ -10,10 +10,6 @@
<div class=" fl ml5"> <div class=" fl ml5">
<div class="issues_list_titlebox clear"> <div class="issues_list_titlebox clear">
<a href="<%= issue_path(activity) %>" class="issues_list_title fl" target="_blank" title="<%= activity.subject.to_s %>"><%= activity.subject.to_s %></a> <a href="<%= issue_path(activity) %>" class="issues_list_title fl" target="_blank" title="<%= activity.subject.to_s %>"><%= activity.subject.to_s %></a>
<% if activity.journals.count > 0%>
<span class="issues_icons_mes fl mr5 ml5"></span>
<span class="fl mr5 mt3"><%= activity.journals.count %></span>
<% end %>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<div class="issues_list_small"> <div class="issues_list_small">
@ -58,7 +54,12 @@
<li class="c_grey" style="width: 60px; padding-right: 10px" title="<%= activity.fixed_version %>"><%= activity.fixed_version %></li> <li class="c_grey" style="width: 60px; padding-right: 10px" title="<%= activity.fixed_version %>"><%= activity.fixed_version %></li>
<li class="issues_list_min c_grey" ><%= activity.status.name%></li> <li class="issues_list_min c_grey" ><%= activity.status.name%></li>
<li class="<%=(activity.done_ratio == 100 ? 'c_red' : 'c_green') %>"><%= activity.done_ratio %>%</li> <li class="<%=(activity.done_ratio == 100 ? 'c_red' : 'c_green') %>"><%= activity.done_ratio %>%</li>
<li class="issues_list_min"> <li class="issues_list_min pr">
<% if activity.journals.count > 0%>
<span class="issues_icons_mes fl mr5" style="margin-top:-3px;"></span>
<span class="fl mr5"><%= activity.journals.count %></span>
<% end %>
<div class="undis" style="position: absolute; <%= activity.journals.count >0 ? 'top:15px;' : 'top:-15px;' %>">
<%= link_to "", issue_path(activity.id, :edit => 'true'), :class => 'sy_icons_edit fl mt15', :accesskey => accesskey(:edit) if activity.editable? && User.current.allowed_to?(:edit_issues, activity.project) %> <%= link_to "", issue_path(activity.id, :edit => 'true'), :class => 'sy_icons_edit fl mt15', :accesskey => accesskey(:edit) if activity.editable? && User.current.allowed_to?(:edit_issues, activity.project) %>
<% if !defined?(project_id) && !defined?(user_id) %> <% if !defined?(project_id) && !defined?(user_id) %>
<%= link_to "", issue_path(activity.id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %> <%= link_to "", issue_path(activity.id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %>
@ -67,8 +68,32 @@
<% elsif defined?(user_id) %> <% elsif defined?(user_id) %>
<%= link_to "", issue_path(activity.id, :page_classify => "user_page", :page_id => user_id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %> <%= link_to "", issue_path(activity.id, :page_classify => "user_page", :page_id => user_id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %>
<% end %> <% end %>
</div>
</li> </li>
</ul> </ul>
</div> </div>
<% end %> <% end %>
<script>
$(".issues_list_box").mouseover(function(){
var iconOrder;
var iconSize = $(this).children().eq(2).children().eq(5).children().size();
if(iconSize > 1){
iconOrder = 2;
} else{
iconOrder = 0;
}
$(this).children().eq(2).children().eq(5).children().eq(iconOrder).show();
});
$(".issues_list_box").mouseout(function(){
var iconOrder;
var iconSize = $(this).children().eq(2).children().eq(5).children().size();
if(iconSize > 1){
iconOrder = 2;
} else{
iconOrder = 0;
}
$(this).children().eq(2).children().eq(5).children().eq(iconOrder).hide();
});
</script>

@ -47,12 +47,30 @@
// }); // });
} }
function remote_function_export() { function remote_function_export(project_id) {
$("#export_issue_hidden").attr("value","1"); // $("#export_issue_hidden").attr("value","1");
// $("#issue_query_form").attr("format","xls"); // $("#issue_query_form").attr("set_filter","1");
$("#issue_query_form").submit(); // $("#issue_query_form").attr("action","/projects/"+project_id+"/issues.xls");
// $("#issue_query_form").submit();
// $("#issue_query_form").attr("action","/projects/"+project_id+"/issues");
// $("#issue_query_form").removeAttr("format"); // $("#issue_query_form").removeAttr("format");
$("#export_issue_hidden").attr("value","0"); // $("#issue_query_form").attr("set_filter","0");
// $("#export_issue_hidden").attr("value","0");
var tracker_id = $("#tracker_id").attr("value");
var subject = $("#v_subject").attr("value");
var assigned_to_id = $("#assigned_to_id").attr("value");
var fixed_version_id = $("#fixed_version_id").attr("value");
var status_id = $("#status_id").attr("value");
var done_ratio = $("#done_ratio").attr("value");
var test = $("#test").attr("value");
var author_id = $("#author_id").attr("value");
var issue_create_date_start = $("#issue_date_start_issue_export").attr("value");
var issue_create_date_end = $("#issue_date_end_issue_export").attr("value");
$("#sendexcel").attr("href","/projects/"+project_id+"/issues.xls?export=true&set_filter=1&tracker_id="+tracker_id+"&assigned_to_id="+assigned_to_id+"&fixed_version_id="+fixed_version_id+"&status_id="+status_id+"&done_ratio="+done_ratio+"&test="+test+"&author_id="+author_id+"&subject="+subject+"&issue_create_date_start="+issue_create_date_start+"&issue_create_date_end="+issue_create_date_end);
///projects/1811/issues.xls?export=true&set_filter=1
} }
// function nh_reset_form() { // function nh_reset_form() {
@ -104,16 +122,16 @@
<a href="<%= new_project_issue_path(@project)%>" class="sy_btn_green fl mr10">新 增</a> <a href="<%= new_project_issue_path(@project)%>" class="sy_btn_green fl mr10">新 增</a>
<div class="issues_statistics fl"> <div class="issues_statistics fl">
<ul> <ul>
<li>所有<a class="issues_greycirbg_btn "><%= @project.project_score.issue_num %></a></li> <li>所有<a class="issues_greycirbg_btn "><%= @issues_filter.count %></a></li>
<li>开启<a class="issues_greycirbg_btn "><%#= @issues_filter_assign_count %><%= @project.issues.where('status_id in (1,2,3,4,6)').visible.all.count %></a></li> <li>开启<a class="issues_greycirbg_btn "><%#= @issues_filter_assign_count %><%= @issue_open_count %></a></li>
<li>关闭<a class="issues_greycirbg_btn "><%#= @issues_filter_author_count %><%= @project.issues.where(:status_id => 5 ).visible.all.count %></a></li> <li>关闭<a class="issues_greycirbg_btn "><%#= @issues_filter_author_count %><%= @issue_close_count %></a></li>
</ul> </ul>
</div><!--issues_statistics end--> </div><!--issues_statistics end-->
<!--<input type="button" class="hw_btn_blue fr" value="导出EXCEL" onclick="remote_function_export()">--> <!--<input type="button" class="hw_btn_blue fr" value="导出EXCEL" onclick="remote_function_export('<%= @project.id %>')">-->
<a href="<%=project_issues_path(:project_id => @project, :format => 'xls', :export => true, :set_filter => "1")%>" class="hw_btn_blue fr" alt="导出EXCEL" onclick="remote_function_export()">导出EXCEL</a> <a href="<%=project_issues_path(:project_id => @project, :format => 'xls', :export => true, :set_filter => "1")%>" id="sendexcel" class="hw_btn_blue fr" alt="导出EXCEL" onclick="remote_function_export('<%= @project.id %>')">导出EXCEL</a>
</div> </div>
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %> <% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
<%= form_tag({:controller => 'issues', :action => 'index', :project_id => @project},:remote=>'true', :method => :get,:id=>"issue_query_form", :class => 'query_form') do %> <%= form_tag({:controller => 'issues', :action => 'index', :project_id => @project},:remote=>'xls', :method => :get,:id=>"issue_query_form", :class => 'query_form') do %>
<%= hidden_field_tag 'set_filter', '1' %> <%= hidden_field_tag 'set_filter', '1' %>
<%= hidden_field_tag 'export_issue_hidden', '0' %> <%= hidden_field_tag 'export_issue_hidden', '0' %>
<!--<input id="exprot_issues_hidden" value="0" type="hidden">--> <!--<input id="exprot_issues_hidden" value="0" type="hidden">-->
@ -125,12 +143,12 @@
<a href="javascript:void(0);" class="sy_btn_grey fl ml5" onclick="all_reset_form();">清除</a> <a href="javascript:void(0);" class="sy_btn_grey fl ml5" onclick="all_reset_form();">清除</a>
<div class="calendar_div fr"> <div class="calendar_div fr">
<input name="issue_create_date_end" nhname="date_val" type="hidden"/> <input id="issue_date_end_issue_export" name="issue_create_date_end" nhname="date_val" type="hidden"/>
<input type="text" nhname="date_show" id="issue_create_date_end_show" class="InputBox fl W120 calendar_input" readonly="readonly" size="13" placeholder="结束日期"> <input type="text" nhname="date_show" id="issue_create_date_end_show" class="InputBox fl W120 calendar_input" readonly="readonly" size="13" placeholder="结束日期">
<%= calendar_for('issue_create_date_end_show')%> <%= calendar_for('issue_create_date_end_show')%>
</div> </div>
<div class="calendar_div fr"> <div class="calendar_div fr">
<input name="issue_create_date_start" nhname="date_val" type="hidden"/> <input id="issue_date_start_issue_export" name="issue_create_date_start" nhname="date_val" type="hidden"/>
<input type="text" nhname="date_show" id="issue_create_date_start_show" class="InputBox fl W120 calendar_input" readonly="readonly" size="13" placeholder="开始日期"> <input type="text" nhname="date_show" id="issue_create_date_start_show" class="InputBox fl W120 calendar_input" readonly="readonly" size="13" placeholder="开始日期">
<%= calendar_for('issue_create_date_start_show')%> <%= calendar_for('issue_create_date_start_show')%>
</div> </div>
@ -141,7 +159,8 @@
<div class="issues_con_list" style="position: relative;"> <div class="issues_con_list" style="position: relative;">
<ul id="issues_list_nav" > <ul id="issues_list_nav" >
<li id="issues_list_nav_1" onclick="HoverLi(1);all_reset_form();"> <li id="issues_list_nav_1" onclick="HoverLi(1);all_reset_form();">
<a href="javascript:void(0);" onclick="all_reset_form();" id="issues_type_1" >所有<span class="issues_nav_tag ml5"><%= @project.project_score.issue_num %></span></a> <a href="javascript:void(0);" onclick="all_reset_form();" id="issues_type_1" >所有</a>
<span id="issue_filter_all"><%= render :partial => "issues/issue_filter_all" %></span>
</li> </li>
<!--li id="issues_list_nav_2" onclick="HoverLi(2);"> <!--li id="issues_list_nav_2" onclick="HoverLi(2);">
<a href="javascript:void(0);" onclick="switch_assign_to(<%#= User.current.id %>)" id="issues_type_2" >指派给我 <a href="javascript:void(0);" onclick="switch_assign_to(<%#= User.current.id %>)" id="issues_type_2" >指派给我
@ -217,12 +236,7 @@
) )
%> %>
<%#= select( :issue,:user_id, @project.members.order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["作者",0]),
{ :include_blank => false,:selected=>@author_id ? @author_id : 0
},
{:onchange=>"remote_function();",:id=>"author_id",:name=>"author_id",:class=>"w90 mr18"}
)
%>

@ -1,6 +1,7 @@
//$("#issue_list").html("<%#= escape_javascript(render :partial => 'issues/list',:locals => {:issues => @issues, :query => @query,:issue_pages=>@issue_pages,:issue_count=>@issue_count})%>"); //$("#issue_list").html("<%#= escape_javascript(render :partial => 'issues/list',:locals => {:issues => @issues, :query => @query,:issue_pages=>@issue_pages,:issue_count=>@issue_count})%>");
$("#issue_assigned_count").html("<%= escape_javascript(render :partial => 'issues/issue_filter') %>"); //$("#issue_assigned_count").html("<%#= escape_javascript(render :partial => 'issues/issue_filter') %>");
$("#issue_author_count").html("<%= escape_javascript(render :partial => 'issues/issue_filter_author') %>"); $("#issue_filter_all").html("<%= escape_javascript(render :partial => 'issues/issue_filter_all') %>");
//$("#issue_author_count").html("<%#= escape_javascript(render :partial => 'issues/issue_filter_author') %>");
$("#issue_list").html("<%= escape_javascript(render :partial => 'issues/all_list',:locals => {:issues => @issues, :query => @query, :issue_pages=> @issue_pages, :issue_count => @issue_count, :project=> @project})%>"); $("#issue_list").html("<%= escape_javascript(render :partial => 'issues/all_list',:locals => {:issues => @issues, :query => @query, :issue_pages=> @issue_pages, :issue_count => @issue_count, :project=> @project})%>");
$("#issue_list_pagination").html('<%= pagination_links_full @issue_pages, @issue_count, :issues => @issues, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true %>'); $("#issue_list_pagination").html('<%= pagination_links_full @issue_pages, @issue_count, :issues => @issues, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true %>');

@ -25,13 +25,13 @@
<p class="sy_cgrey"> <p class="sy_cgrey">
<span class=" mr15">项目评分: <span class=" mr15">项目评分:
<% if @project.project_type == 0 %> <% if @project.project_type == 0 %>
<% unless static_project_score(@project.project_score) == 0 %> <%# unless static_project_score(@project.project_score) == 0 %>
<%= link_to(format("%.2f" ,static_project_score(@project.project_score)).to_i, <%= link_to(format("%.2f" ,static_project_score(@project.project_score)).to_i,
{:controller => 'projects', {:controller => 'projects',
:action => 'show_projects_score', :action => 'show_projects_score',
:remote => true, :remote => true,
:id => @project.id}, :class => "sy_cblue" ) %> :id => @project.id}, :class => "sy_cblue" ) %>
<% end %> <%# end %>
<% end %> <% end %>
</span> </span>
<span class=" mr15">浏览:<a class="sy_corange"><%= @project.visits.to_i %></a></span> <span class=" mr15">浏览:<a class="sy_corange"><%= @project.visits.to_i %></a></span>

@ -14,13 +14,14 @@
<li class="navHomepageMenu fl"> <li class="navHomepageMenu fl">
<%= link_to "题库", user_homeworks_user_path(User.current), :class => "c_white f16 db p10"%> <%= link_to "题库", user_homeworks_user_path(User.current), :class => "c_white f16 db p10"%>
</li> </li>
<!--<li class="navHomepageMenu fl mr30">--> <li class="navHomepageMenu fl mr30">
<!--<%#= link_to "帮助中心", "https://#{Setting.host_name}/forums/1/memos/1168", :class =>"c_white f16 db p10" %>--> <%= link_to "帮助中心", "https://#{Setting.host_name}/forums/1/memos/1168", :class =>"c_white f16 db p10" %>
<!--</li>--> </li>
<% else %>
<li class="navHomepageMenu fl mr40">
<a href="<%= forums_path(:reorder_complex=>'desc')%>" target="_blank" class="c_white f16 db p10" >公共贴吧</a>
</li>
<% end %> <% end %>
<li class="navHomepageMenu fl mr40">
<a href="<%= forums_path(:reorder_complex=>'desc')%>" target="_blank" class="c_white f16 db p10" > 贴吧交流</a>
</li>
</ul> </ul>
</div> </div>
<script> <script>
@ -62,6 +63,9 @@
<li> <li>
<%= link_to "修改资料", my_account_path, :class => "menuGrey"%> <%= link_to "修改资料", my_account_path, :class => "menuGrey"%>
</li> </li>
<li>
<%= link_to '我的课程',{:controller => "users", :action => "user_courselist", :id => User.current.id}, :class => "menuGrey" %>
</li>
<li> <li>
<%= link_to "我的组织", user_organizations_user_path(:id => User.current.id), :class => "menuGrey"%> <%= link_to "我的组织", user_organizations_user_path(:id => User.current.id), :class => "menuGrey"%>
</li> </li>

@ -8,7 +8,7 @@
<!--<%#= link_to "帮助中心", "https://#{Setting.host_name}/forums/1/memos/1168", :class =>"c_white f16 db p10" %>--> <!--<%#= link_to "帮助中心", "https://#{Setting.host_name}/forums/1/memos/1168", :class =>"c_white f16 db p10" %>-->
<!--</li>--> <!--</li>-->
<li class="navHomepageMenu fl mr40"> <li class="navHomepageMenu fl mr40">
<a href="<%= forums_path(:reorder_complex=>'desc')%>" target="_blank" class="c_white f16 db p10" > 贴吧交流</a> <a href="http://forge.trustie.net/forums/1/memos/1168" target="_blank" class="c_white f16 db p10" >帮助中心</a>
</li> </li>
</ul> </ul>
</div> </div>

@ -110,9 +110,16 @@
<%= link_to( "", new_exercise_path(:course_id => @course.id), :class => 'sy_class_add', :title =>"新建试卷") if is_teacher %> <%= link_to( "", new_exercise_path(:course_id => @course.id), :class => 'sy_class_add', :title =>"新建试卷") if is_teacher %>
</li> </li>
<% end %> <% end %>
<% group_count = @course.course_groups.count %>
<% if !show_nav?(group_count) && ((User.current.logged? && @course.open_student == 1) || (User.current.member_of_course?(@course)) || User.current.admin?) %>
<li id="sy_09" class="sy_icons_group">
<a href="<%=course_member_path(@course, :role => 2) %>">分班<span><%=group_count %></span></a>
<!--<a href="javascript:void(0);" class="sy_class_add"></a>-->
</li>
<% end %>
<% statistics_count = 0 %> <% statistics_count = 0 %>
<% unless show_nav?(statistics_count) %> <% unless show_nav?(statistics_count) %>
<li id="sy_09" class="sy_icons_st"> <li id="sy_10" class="sy_icons_st">
<a href="<%=statistics_course_course_path(@course) %>">统计<span></span></a> <a href="<%=statistics_course_course_path(@course) %>">统计<span></span></a>
<!--<a href="javascript:void(0);" class="sy_class_add"></a>--> <!--<a href="javascript:void(0);" class="sy_class_add"></a>-->
</li> </li>

@ -89,7 +89,7 @@
</div> </div>
<div id="RSide" class="fl"> <div class="fl">
<%= render_flash_messages %> <%= render_flash_messages %>
<%= yield %> <%= yield %>
<%= call_hook :view_layouts_base_content %> <%= call_hook :view_layouts_base_content %>

@ -146,13 +146,13 @@
</div> </div>
<% if @center_flag %> <% if @center_flag %>
<div class="subNav"> <div class="subNav">
<a href="<%=url_for(:controller => 'users', :action => 'user_courses',:id=>@user.id)%>" class=" f14 c_blue02"> <a href="<%=url_for(:controller => 'users', :action => 'user_courselist',:id=>@user.id)%>" class=" f14 c_blue02">
我的课程 我的课程
<span style="font-weight:normal;font-size:12px;color:#FF5722;">(<%=@user.courses.count%>)</span> <span style="font-weight:normal;font-size:12px;color:#FF5722;">(<%=@user.courses.count%>)</span>
</a> </a>
</div> </div>
<div class="subNav"> <div class="subNav">
<a href="<%=url_for(:controller => 'users', :action => 'user_projects',:id=>@user.id)%>" class=" f14 c_blue02"> <a href="<%=url_for(:controller => 'users', :action => 'user_projectlist',:id=>@user.id)%>" class=" f14 c_blue02">
我的项目 我的项目
<span style="font-weight:normal;font-size:12px;color:#FF5722;">(<%=@user.projects.count%>)</span> <span style="font-weight:normal;font-size:12px;color:#FF5722;">(<%=@user.projects.count%>)</span>
</a> </a>

@ -95,58 +95,8 @@
</div> </div>
<%# all_comments = []%> <%# all_comments = []%>
<%# comments = get_all_children(all_comments, @topic) %> <%# comments = get_all_children(all_comments, @topic) %>
<div class="" id="reply_div_<%= @topic.id %>"> <div class="" id="reply_div_<%= @topic.id %>">
<% @replies.each do |reply| %> <%= render :partial => "messages/course_show_replies" %>
<script type="text/javascript">
$(function(){
showNormalImage('reply_message_description_<%= reply.id %>');
autoUrl('reply_message_description_<%= reply.id %>');
});
</script>
<div class="homepagePostReplyContainer" onmouseover="$('#reply_edit_menu_<%= reply.id%>').show();" onmouseout="$('#reply_edit_menu_<%= reply.id%>').hide();">
<div class="homepagePostReplyPortrait">
<%= link_to image_tag(url_to_avatar(reply.author), :width => 33,:height => 33), user_path(reply.author) %>
</div>
<div class="homepagePostReplyDes" onmouseover="$('#delete_reply_<%=reply.id %>').show();" onmouseout="$('#delete_reply_<%=reply.id %>').hide();">
<%= render :partial => 'users/message_contents', :locals => {:comment => reply}%>
<div class="homepagePostReplyContent upload_img break_word table_maxWidth" id="reply_message_description_<%= reply.id %>">
<%= reply.content.html_safe%>
</div>
<div class="orig_reply mb10 mt-10">
<div class="reply">
<span class="reply-right">
<span id="reply_praise_count_<%= reply.id %>">
<%= render :partial => "praise_tread/praise", :locals => {:activity => reply, :user_activity_id => reply.id, :type => "reply"} %>
</span>
<span style="position: relative" class="fr mr20">
<%= link_to(
l(:button_reply),
{:action => 'quote', :id => reply},
:remote => true,
:method => 'get',
:title => l(:button_reply)) if !@topic.locked? && authorize_for('messages', 'reply') %>
<span id="reply_iconup_<%= reply.id %>" class="reply_iconup02" style="display: none"> ︿</span>
</span>
<%= link_to(
l(:button_delete),
{:action => 'destroy', :id => reply},
:method => :post,
:id => "delete_reply_#{reply.id}",
:class => 'fr mr20 undis',
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if reply.course_destroyable_by?(User.current) %>
</span>
<div class="cl"></div>
</div>
</div>
<p id="reply_message_<%= reply.id%>"></p>
</div>
<div class="cl"></div>
</div>
<% end %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>

@ -0,0 +1,60 @@
<% @replies.each do |reply| %>
<script type="text/javascript">
$(function(){
showNormalImage('reply_message_description_<%= reply.id %>');
autoUrl('reply_message_description_<%= reply.id %>');
});
</script>
<div class="homepagePostReplyContainer" onmouseover="$('#reply_edit_menu_<%= reply.id%>').show();" onmouseout="$('#reply_edit_menu_<%= reply.id%>').hide();">
<div class="homepagePostReplyPortrait">
<%= link_to image_tag(url_to_avatar(reply.author), :width => 33,:height => 33), user_path(reply.author) %>
</div>
<div class="homepagePostReplyDes" onmouseover="$('#delete_reply_<%=reply.id %>').show();" onmouseout="$('#delete_reply_<%=reply.id %>').hide();">
<%= render :partial => 'users/message_contents', :locals => {:comment => reply}%>
<div class="homepagePostReplyContent upload_img break_word table_maxWidth" id="reply_message_description_<%= reply.id %>">
<%= reply.content.html_safe%>
</div>
<div class="orig_reply mb10 mt-10">
<div class="reply">
<span class="reply-right">
<span id="reply_praise_count_<%= reply.id %>">
<%= render :partial => "praise_tread/praise", :locals => {:activity => reply, :user_activity_id => reply.id, :type => "reply"} %>
</span>
<span style="position: relative" class="fr mr20">
<%= link_to(
l(:button_reply),
{:action => 'quote', :id => reply},
:remote => true,
:method => 'get',
:title => l(:button_reply)) if !@topic.locked? && authorize_for('messages', 'reply') %>
<span id="reply_iconup_<%= reply.id %>" class="reply_iconup02" style="display: none"> ︿</span>
</span>
<%= link_to(
l(:button_delete),
{:action => 'destroy', :id => reply},
:method => :post,
:id => "delete_reply_#{reply.id}",
:class => 'fr mr20 undis',
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if reply.course_destroyable_by?(User.current) %>
</span>
<div class="cl"></div>
</div>
</div>
<p id="reply_message_<%= reply.id%>"></p>
</div>
<div class="cl"></div>
</div>
<% end %>
<% if @reply_count > @page * @limit + 10 %>
<div id="more_message_replies">
<div class="detail_cont_hide clearfix">
<span class="orig_icon" >&darr; </span>
<span class="orig_icon" style="display:none;" > &uarr;</span>
<%= link_to '点击展开更多回复', board_message_path(@topic.board_id, @topic, :page => @page),:remote=>true %>
</div>
</div>
<% end %>

@ -0,0 +1,59 @@
<% @replies.each_with_index do |reply, i| %>
<script type="text/javascript">
$(function () {
showNormalImage('reply_message_description_<%= reply.id %>');
autoUrl('reply_message_description_<%= reply.id %>');
});
</script>
<div class="homepagePostReplyContainer" onmouseover="$('#reply_edit_menu_<%= reply.id%>').show();" onmouseout="$('#reply_edit_menu_<%= reply.id%>').hide();">
<div class="homepagePostReplyPortrait">
<%= link_to image_tag(url_to_avatar(reply.author), :width => 33, :height => 33), user_path(reply.author) %>
</div>
<div class="homepagePostReplyDes">
<%= render :partial => 'users/message_contents', :locals => {:comment => reply} %>
<div class="homepagePostReplyContent upload_img break_word table_maxWidth" id="reply_message_description_<%= reply.id %>">
<%= reply.content.html_safe %>
</div>
<div class="orig_reply mb10 mt-10">
<div class="reply">
<span class="reply-right">
<span id="reply_praise_count_<%= reply.id %>">
<%= render :partial => "praise_tread/praise", :locals => {:activity => reply, :user_activity_id => reply.id, :type => "reply"} %>
</span>
<span style="position: relative" class="fr mr20">
<%= link_to(
l(:button_reply),
{:action => 'quote', :id => reply},
:remote => true,
:method => 'get',
:title => l(:button_reply)) if !@topic.locked? && authorize_for('messages', 'reply') %>
<span id="reply_iconup_<%= reply.id %>" class="reply_iconup02" style="display: none"> ︿</span>
</span>
<%= link_to(
l(:button_delete),
{:action => 'destroy', :id => reply},
:method => :post,
:class => 'fr mr20',
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if reply.course_destroyable_by?(User.current) %>
</span>
<div class="cl"></div>
</div>
</div>
<p id="reply_message_<%= reply.id %>"></p>
</div>
<div class="cl"></div>
</div>
<% end %>
<% if @reply_count > @page * @limit + 10 %>
<div id="more_message_replies">
<div class="detail_cont_hide clearfix">
<span class="orig_icon" >&darr; </span>
<span class="orig_icon" style="display:none;" > &uarr;</span>
<%= link_to '点击展开更多回复', board_message_path(@topic.board_id, @topic, :page => @page),:remote=>true %>
</div>
</div>
<% end %>

@ -130,56 +130,7 @@
<%# all_comments = [] %> <%# all_comments = [] %>
<%# comments = get_all_children(all_comments, @topic) %> <%# comments = get_all_children(all_comments, @topic) %>
<div class="" id="reply_div_<%= @topic.id %>"> <div class="" id="reply_div_<%= @topic.id %>">
<% @replies.each_with_index do |reply, i| %> <%= render :partial => "messages/org_show_replies" %>
<script type="text/javascript">
$(function () {
showNormalImage('reply_message_description_<%= reply.id %>');
autoUrl('reply_message_description_<%= reply.id %>');
});
</script>
<div class="homepagePostReplyContainer" onmouseover="$('#reply_edit_menu_<%= reply.id%>').show();" onmouseout="$('#reply_edit_menu_<%= reply.id%>').hide();">
<div class="homepagePostReplyPortrait">
<%= link_to image_tag(url_to_avatar(reply.author), :width => 33, :height => 33), user_path(reply.author) %>
</div>
<div class="homepagePostReplyDes">
<%= render :partial => 'users/message_contents', :locals => {:comment => reply} %>
<div class="homepagePostReplyContent upload_img break_word table_maxWidth" id="reply_message_description_<%= reply.id %>">
<%= reply.content.html_safe %>
</div>
<div class="orig_reply mb10 mt-10">
<div class="reply">
<span class="reply-right">
<span id="reply_praise_count_<%= reply.id %>">
<%= render :partial => "praise_tread/praise", :locals => {:activity => reply, :user_activity_id => reply.id, :type => "reply"} %>
</span>
<span style="position: relative" class="fr mr20">
<%= link_to(
l(:button_reply),
{:action => 'quote', :id => reply},
:remote => true,
:method => 'get',
:title => l(:button_reply)) if !@topic.locked? && authorize_for('messages', 'reply') %>
<span id="reply_iconup_<%= reply.id %>" class="reply_iconup02" style="display: none"> ︿</span>
</span>
<%= link_to(
l(:button_delete),
{:action => 'destroy', :id => reply},
:method => :post,
:class => 'fr mr20',
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if reply.course_destroyable_by?(User.current) %>
</span>
<div class="cl"></div>
</div>
</div>
<p id="reply_message_<%= reply.id %>"></p>
</div>
<div class="cl"></div>
</div>
<% end %>
</div> </div>
<% end %> <% end %>

@ -160,57 +160,7 @@
<%# all_comments = []%> <%# all_comments = []%>
<%# comments = get_all_children(all_comments, @topic) %> <%# comments = get_all_children(all_comments, @topic) %>
<div class="" id="reply_div_<%= @topic.id %>"> <div class="" id="reply_div_<%= @topic.id %>">
<% @replies.each_with_index do |reply,i| %> <%= render :partial => "messages/project_show_replies" %>
<script type="text/javascript">
$(function(){
showNormalImage('reply_message_description_<%= reply.id %>');
autoUrl('reply_message_description_<%= reply.id %>');
});
</script>
<div class="homepagePostReplyContainer" onmouseover="$('#reply_edit_menu_<%= reply.id%>').show();" onmouseout="$('#reply_edit_menu_<%= reply.id%>').hide();">
<div class="homepagePostReplyPortrait">
<%= link_to image_tag(url_to_avatar(reply.author), :width => 33,:height => 33), user_path(reply.author) %>
</div>
<div class="homepagePostReplyDes" onmouseover="$('#delete_reply_<%=reply.id %>').show();" onmouseout="$('#delete_reply_<%=reply.id %>').hide();">
<%= render :partial => 'users/message_contents', :locals => {:comment => reply}%>
<div class="homepagePostReplyContent upload_img break_word table_maxWidth" id="reply_message_description_<%= reply.id %>">
<%= reply.content.html_safe%>
</div>
<div class="orig_reply mb10 mt-10">
<div class="reply">
<span class="reply-right">
<span id="reply_praise_count_<%= reply.id %>">
<%= render :partial => "praise_tread/praise", :locals => {:activity => reply, :user_activity_id => reply.id, :type => "reply"} %>
</span>
<span style="position: relative" class="fr mr20">
<%= link_to(
l(:button_reply),
{:action => 'quote', :id => reply},
:remote => true,
:method => 'get',
:title => l(:button_reply)) if !@topic.locked? && authorize_for('messages', 'reply') %>
<span id="reply_iconup_<%= reply.id %>" class="reply_iconup02" style="display: none"> ︿</span>
</span>
<%= link_to(
l(:button_delete),
{:action => 'destroy', :id => reply},
:method => :post,
:id => "delete_reply_#{reply.id}",
:class => 'fr mr20 undis',
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if reply.destroyable_by?(User.current) %>
</span>
<div class="cl"></div>
</div>
</div>
<p id="reply_message_<%= reply.id%>"></p>
</div>
<div class="cl"></div>
</div>
<% end %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<% if !@topic.locked? && authorize_for('messages', 'reply') %> <% if !@topic.locked? && authorize_for('messages', 'reply') %>

@ -0,0 +1,60 @@
<% @replies.each_with_index do |reply,i| %>
<script type="text/javascript">
$(function(){
showNormalImage('reply_message_description_<%= reply.id %>');
autoUrl('reply_message_description_<%= reply.id %>');
});
</script>
<div class="homepagePostReplyContainer" onmouseover="$('#reply_edit_menu_<%= reply.id%>').show();" onmouseout="$('#reply_edit_menu_<%= reply.id%>').hide();">
<div class="homepagePostReplyPortrait">
<%= link_to image_tag(url_to_avatar(reply.author), :width => 33,:height => 33), user_path(reply.author) %>
</div>
<div class="homepagePostReplyDes" onmouseover="$('#delete_reply_<%=reply.id %>').show();" onmouseout="$('#delete_reply_<%=reply.id %>').hide();">
<%= render :partial => 'users/message_contents', :locals => {:comment => reply}%>
<div class="homepagePostReplyContent upload_img break_word table_maxWidth" id="reply_message_description_<%= reply.id %>">
<%= reply.content.html_safe%>
</div>
<div class="orig_reply mb10 mt-10">
<div class="reply">
<span class="reply-right">
<span id="reply_praise_count_<%= reply.id %>">
<%= render :partial => "praise_tread/praise", :locals => {:activity => reply, :user_activity_id => reply.id, :type => "reply"} %>
</span>
<span style="position: relative" class="fr mr20">
<%= link_to(
l(:button_reply),
{:action => 'quote', :id => reply},
:remote => true,
:method => 'get',
:title => l(:button_reply)) if !@topic.locked? && authorize_for('messages', 'reply') %>
<span id="reply_iconup_<%= reply.id %>" class="reply_iconup02" style="display: none"> ︿</span>
</span>
<%= link_to(
l(:button_delete),
{:action => 'destroy', :id => reply},
:method => :post,
:id => "delete_reply_#{reply.id}",
:class => 'fr mr20 undis',
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if reply.destroyable_by?(User.current) %>
</span>
<div class="cl"></div>
</div>
</div>
<p id="reply_message_<%= reply.id%>"></p>
</div>
<div class="cl"></div>
</div>
<% end %>
<% if @reply_count > @page * @limit + 10 %>
<div id="more_message_replies">
<div class="detail_cont_hide clearfix">
<span class="orig_icon" >&darr; </span>
<span class="orig_icon" style="display:none;" > &uarr;</span>
<%= link_to '点击展开更多回复', board_message_path(@topic.board_id, @topic, :page => @page),:remote=>true %>
</div>
</div>
<% end %>

@ -0,0 +1,7 @@
<% if @project %>
$("#more_message_replies").replaceWith("<%= escape_javascript(render :partial => 'messages/project_show_replies')%>");
<% elsif @course %>
$("#more_message_replies").replaceWith("<%= escape_javascript(render :partial => 'messages/course_show_replies')%>");
<% else %>
$("#more_message_replies").replaceWith("<%= escape_javascript(render :partial => 'messages/org_show_replies')%>");
<% end %>

@ -1,6 +1,6 @@
<div class="homepagePostReplyBanner"> <div class="homepagePostReplyBanner">
<div class="homepagePostReplyBannerCount">回复 <div class="homepagePostReplyBannerCount">回复
<sapn class="mr15"><%= @comments.count>0 ? "#{@comments.count}" : "" %></sapn><span style="color: #cecece;">▪</span> <sapn class="mr15"><%= @comments_count>0 ? "#{@comments_count}" : "" %></sapn><span style="color: #cecece;">▪</span>
<span id="praise_count_<%=@news.id %>"> <span id="praise_count_<%=@news.id %>">
<%=render :partial=> "praise_tread/praise", :locals => {:activity=>@news, :user_activity_id=>@news.id,:type=>"activity"}%> <%=render :partial=> "praise_tread/praise", :locals => {:activity=>@news, :user_activity_id=>@news.id,:type=>"activity"}%>
</span> </span>
@ -8,60 +8,7 @@
</div> </div>
<% unless @comments.empty? %> <% unless @comments.empty? %>
<div class="" id="reply_div_<%=@news.id %>"> <div class="" id="reply_div_<%=@news.id %>">
<% @comments.each_with_index do |comment,i| %> <%= render :partial => 'news/news_replies_detail', :locals => {:object => object} %>
<script type="text/javascript">
$(function(){
showNormalImage('reply_message_description_<%= comment.id %>');
autoUrl('reply_message_description_<%= comment.id %>');
});
</script>
<li class="homepagePostReplyContainer" nhname="reply_rec">
<div class="homepagePostReplyPortrait">
<%= link_to image_tag(url_to_avatar(comment.creator_user), :width => 33, :height => 33, :alt => "用户头像"), user_url_in_org(comment.creator_user.id) %>
</div>
<div class="homepagePostReplyDes" onmouseover="$('#delete_reply_<%=comment.id %>').show();" onmouseout="$('#delete_reply_<%=comment.id %>').hide();">
<%= render :partial => 'users/news_contents', :locals => {:comment => comment}%>
<% if !comment.content_detail.blank? %>
<div class="homepagePostReplyContent break_word list_style upload_img table_maxWidth" id="reply_content_<%= comment.id %>">
<%= comment.content_detail.html_safe %>
</div>
<div class="orig_reply mb10 mt-10">
<div class="reply">
<span class="reply-right">
<span id="reply_praise_count_<%=comment.id %>">
<%=render :partial=> "praise_tread/praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%>
</span>
<span style="position: relative" class="fr mr20">
<%= link_to(
l(:button_reply),
{:controller => 'comments',:action => 'quote', :id => comment},
:remote => true,
:method => 'get',
:title => l(:button_reply))%>
<span id="reply_iconup_<%= comment.id %>" class="reply_iconup02" style="display: none"> ︿</span>
</span>
<%= link_to(
l(:button_delete),
{:controller => 'comments',
:action => 'destroy', :id => @news,
:comment_id => comment},
:method => :delete,
:id => "delete_reply_#{comment.id}",
:class => 'fr mr20 undis',
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if User.current.allowed_to?(:manage_news, object) %>
</span>
<div class="cl"></div>
</div>
</div>
<p id="reply_message_<%= comment.id%>"></p>
<% end %>
</div>
<div class="cl"></div>
</li>
<% end %>
</div> </div>
<% end %> <% end %>

@ -0,0 +1,63 @@
<% @comments.each_with_index do |comment,i| %>
<script type="text/javascript">
$(function(){
showNormalImage('reply_message_description_<%= comment.id %>');
autoUrl('reply_message_description_<%= comment.id %>');
});
</script>
<li class="homepagePostReplyContainer" nhname="reply_rec">
<div class="homepagePostReplyPortrait">
<%= link_to image_tag(url_to_avatar(comment.creator_user), :width => 33, :height => 33, :alt => "用户头像"), user_url_in_org(comment.creator_user.id) %>
</div>
<div class="homepagePostReplyDes" onmouseover="$('#delete_reply_<%=comment.id %>').show();" onmouseout="$('#delete_reply_<%=comment.id %>').hide();">
<%= render :partial => 'users/news_contents', :locals => {:comment => comment}%>
<% if !comment.content_detail.blank? %>
<div class="homepagePostReplyContent break_word list_style upload_img table_maxWidth" id="reply_content_<%= comment.id %>">
<%= comment.content_detail.html_safe %>
</div>
<div class="orig_reply mb10 mt-10">
<div class="reply">
<span class="reply-right">
<span id="reply_praise_count_<%=comment.id %>">
<%=render :partial=> "praise_tread/praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%>
</span>
<span style="position: relative" class="fr mr20">
<%= link_to(
l(:button_reply),
{:controller => 'comments',:action => 'quote', :id => comment},
:remote => true,
:method => 'get',
:title => l(:button_reply))%>
<span id="reply_iconup_<%= comment.id %>" class="reply_iconup02" style="display: none"> ︿</span>
</span>
<%= link_to(
l(:button_delete),
{:controller => 'comments',
:action => 'destroy', :id => @news,
:comment_id => comment},
:method => :delete,
:id => "delete_reply_#{comment.id}",
:class => 'fr mr20 undis',
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:button_delete)
) if ((object.kind_of? Organization) ? User.current.allowed_to?(:manage_news, object) : (User.current.admin_of_org?(object) || User.current == comment.author)) %>
</span>
<div class="cl"></div>
</div>
</div>
<p id="reply_message_<%= comment.id%>"></p>
<% end %>
</div>
<div class="cl"></div>
</li>
<% end %>
<% if @comments_count > @page * @limit + 10 %>
<div id="more_news_replies">
<div class="detail_cont_hide clearfix">
<span class="orig_icon" >&darr; </span>
<span class="orig_icon" style="display:none;" > &uarr;</span>
<%= link_to '点击展开更多回复', news_path(@news, :page => @page), :remote=>true %>
</div>
</div>
<% end %>

@ -72,7 +72,7 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'news/news_all_replies' %> <%= render :partial => 'news/news_all_replies', :locals => {:object => @organization} %>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">

@ -0,0 +1,7 @@
<% if @project %>
$("#more_news_replies").replaceWith("<%= escape_javascript(render :partial => 'news/news_replies_detail', :locals => {:object => @project})%>");
<% elsif @course %>
$("#more_news_replies").replaceWith("<%= escape_javascript(render :partial => 'news/news_replies_detail', :locals => {:object => @course})%>");
<% elsif @organization %>
$("#more_news_replies").replaceWith("<%= escape_javascript(render :partial => 'news/news_replies_detail', :locals => {:object => @organization})%>");
<% end %>

@ -75,7 +75,8 @@
</div> </div>
</div> </div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, @document).count %> <% all_replies = get_all_children(all_comments, @document) %>
<% count = all_replies.count %>
<div class="homepagePostReply fl" style="background-color: #f1f1f1;" id="<%= @document.id %>"> <div class="homepagePostReply fl" style="background-color: #f1f1f1;" id="<%= @document.id %>">
<%# if count > 0 %> <%# if count > 0 %>
@ -88,8 +89,7 @@
</div> </div>
</div> </div>
<% all_comments = []%> <% comments = all_replies %>
<% comments = get_all_children(all_comments, @document) %>
<div class="" id="reply_div_<%= @document.id %>"> <div class="" id="reply_div_<%= @document.id %>">
<% comments.each do |comment| %> <% comments.each do |comment| %>
<script type="text/javascript"> <script type="text/javascript">

@ -70,12 +70,12 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, activity).count %> <% all_replies = get_all_children(all_comments, activity) %>
<% count = all_replies.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id,:is_course => 0,:is_board =>0} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id,:is_course => 0,:is_board =>0} %>
<% all_comments = []%> <% comments = all_replies[0..2] %>
<% comments = get_all_children(all_comments, activity)[0..2] %>
<% if count > 0 %> <% if count > 0 %>
<div class="" id="reply_div_<%= user_activity_id %>"> <div class="" id="reply_div_<%= user_activity_id %>">
<%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'Message', :activity_id =>activity.id, :is_course => 0, :is_board =>0}%> <%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'Message', :activity_id =>activity.id, :is_course => 0, :is_board =>0}%>

@ -68,13 +68,13 @@
</div> </div>
</div> </div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, document).count %> <% all_replies = get_all_children(all_comments, document) %>
<% count = all_replies.count %>
<div class="homepagePostReply fl" style="background-color: #f1f1f1;" id="<%= document.id %>"> <div class="homepagePostReply fl" style="background-color: #f1f1f1;" id="<%= document.id %>">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => document, :user_activity_id => act.id} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => document, :user_activity_id => act.id} %>
<% all_comments = []%> <% comments = all_replies[0..2] %>
<% comments = get_all_children(all_comments, document)[0..2] %>
<% if count > 0 %> <% if count > 0 %>
<div class="" id="reply_div_<%= act.id %>"> <div class="" id="reply_div_<%= act.id %>">
<%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => act.id, :type => 'OrgDocumentComment', :activity_id =>document.id}%> <%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => act.id, :type => 'OrgDocumentComment', :activity_id =>document.id}%>

@ -1,6 +1,6 @@
<% if @polls.empty? %> <% if @polls.empty? %>
alert('您目前还没有自己新建的问卷'); alert('您目前其他课程无问卷可导入');
<% else %> <% else %>
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'other_poll',:locals => {:polls => @polls,:polls_group_id=>@polls_group_id}) %>'); $('#ajax-modal').html('<%= escape_javascript(render :partial => 'other_poll',:locals => {:polls => @polls,:polls_group_id=>@polls_group_id}) %>');

@ -1,4 +1,5 @@
<% project_file_num = Attachment.where(:container_type => "Project", :container_id => @project.id).count %> <% project_file_num = Attachment.where(:container_type => "Project", :container_id => @project.id).count %>
<% project_issue_count =Issue.where(:project_id => @project.id).count%>
<div class="subNav"> <div class="subNav">
<%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %> <%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %>
<% unless ForgeActivity.where("project_id = ?", @project.id).count == 0 %> <% unless ForgeActivity.where("project_id = ?", @project.id).count == 0 %>
@ -8,8 +9,8 @@
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %> <% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
<div class="subNav"> <div class="subNav">
<%= link_to l(:label_issue_tracking), project_issues_path(@project, :remote => true), :class => "f14 c_blue02" %> <%= link_to l(:label_issue_tracking), project_issues_path(@project, :remote => true), :class => "f14 c_blue02" %>
<% if @project.project_score.issue_num > 0 %> <% if project_issue_count > 0 %>
<a class="subnav_num">(<%= @project.project_score.issue_num %>)</a> <a class="subnav_num">(<%= project_issue_count %>)</a>
<% end %> <% end %>
<% if User.current.member_of?(@project) %> <% if User.current.member_of?(@project) %>

@ -7,7 +7,7 @@
span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;} span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;}
div.ke-toolbar .ke-outline{border:none;} div.ke-toolbar .ke-outline{border:none;}
div.respond-form .reply_btn{margin-left:565px;margin-top:5px;} div.respond-form .reply_btn{margin-left:626px;margin-top:5px;}
div.recall_con{width:570px;} div.recall_con{width:570px;}
div.recall_con .reply_btn{margin-left:585px;margin-top:5px;} div.recall_con .reply_btn{margin-left:585px;margin-top:5px;}
</style> </style>

@ -1,4 +1,4 @@
<div class="st_list"> <div class="st_list2">
<div class="st_box"> <div class="st_box">
<a href="#" class="fr fb mb5" >加入时间</a> <a href="#" class="fr fb mb5" >加入时间</a>
<div class="cl"></div><!--st_box_top end--> <div class="cl"></div><!--st_box_top end-->

@ -50,5 +50,5 @@ function checkMaxLength() {
<% html_title(l(:label_project_tool_response)) -%> <% html_title(l(:label_project_tool_response)) -%>
<script> <script>
$("#RSide").css("width","730px"); $(".project_r_h").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
</script> </script>

@ -1,4 +1,4 @@
<div class="project_r_h"> <div class="project_r_h" style="width:730px;">
<h2 class="project_h2 fl"><%= @subPage_title %></h2> <h2 class="project_h2 fl"><%= @subPage_title %></h2>
<% if is_project_manager?(User.current, @project) %> <% if is_project_manager?(User.current, @project) %>
<span class="fr f14 fontGrey2" style="height: 40px; line-height: 40px; margin-right: 15px;"> <span class="fr f14 fontGrey2" style="height: 40px; line-height: 40px; margin-right: 15px;">
@ -11,3 +11,7 @@
<%= render :partial => @render_file, :locals => {:members => @members} %> <%= render :partial => @render_file, :locals => {:members => @members} %>
</div> </div>
<script>
$("#RSide").css("width","730px");
</script>

@ -1,7 +1,7 @@
<div class="project_r_h"> <div class="project_r_h" style="width:730px;">
<h2 class="project_h2"><%= l(:label_user_watcher)%></h2> <h2 class="project_h2"><%= l(:label_user_watcher)%></h2>
</div> </div>
<div class="st_list"> <div class="st_list2">
<div class="st_box"> <div class="st_box">
<a href="#" class="fr fb mb5" >加入时间</a> <a href="#" class="fr fb mb5" >加入时间</a>
<div class="cl"></div><!--st_box_top end--> <div class="cl"></div><!--st_box_top end-->
@ -24,3 +24,7 @@
</div> </div>
<% html_title(l(:label_followers)) -%> <% html_title(l(:label_followers)) -%>
<script>
$("#RSide").css("width","730px");
</script>

@ -1,4 +1,4 @@
<%= render :partial => "pull_requests/pull_request_container" %> <%#= render :partial => "pull_requests/pull_request_container" %>
<ul id="mergeBanner" class="project-merge-banner"> <ul id="mergeBanner" class="project-merge-banner">
<li class="active"><%= link_to "待处理<span class='project-number-dot'>#{@requests_opened_count}</span>".html_safe, project_pull_requests_path(:type => "1"), :remote => true %></li> <li class="active"><%= link_to "待处理<span class='project-number-dot'>#{@requests_opened_count}</span>".html_safe, project_pull_requests_path(:type => "1"), :remote => true %></li>
<li><%= link_to "已处理<span class='project-number-dot'>#{@requests_merged_count}</span>".html_safe, project_pull_requests_path(:type => "2"), :remote => true %></li> <li><%= link_to "已处理<span class='project-number-dot'>#{@requests_merged_count}</span>".html_safe, project_pull_requests_path(:type => "2"), :remote => true %></li>
@ -16,7 +16,8 @@
<script> <script>
$("#mergeBanner").parent().css("width","730px"); $("#mergeBanner").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
$("#mergeBanner").parent().before("<div class='homepageRightBanner mb10'><span class='f16 fontGrey3'>Pull Request</span></div>");
$(".project-merge-banner li").click(function(){ $(".project-merge-banner li").click(function(){
$(".project-merge-banner li").removeClass("active"); $(".project-merge-banner li").removeClass("active");

@ -2,7 +2,7 @@
// $("#ajax-indicator span").text("载入中..."); // $("#ajax-indicator span").text("载入中...");
$("#ajax-indicator").show(); $("#ajax-indicator").show();
</script> </script>
<div class="project_r_h"> <div class="project_r_h" style="width:730px;">
<h2 class="project_h2">分析结果</h2> <h2 class="project_h2">分析结果</h2>
</div> </div>
<ul class="analysis-result-list"> <ul class="analysis-result-list">
@ -35,4 +35,8 @@
<%#= 数据为空时候界面,待完善 %> <%#= 数据为空时候界面,待完善 %>
<% end %> <% end %>
<script>
$(".project_r_h").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
</script>

@ -1,5 +1,5 @@
<%= javascript_include_tag 'highcharts','highcharts-more' %> <%= javascript_include_tag 'highcharts','highcharts-more' %>
<div class="project_r_h"> <div class="project_r_h" style="width:730px;">
<h2 class="project_h2" style="width:180px;">质量分析</h2> <h2 class="project_h2" style="width:180px;">质量分析</h2>
</div> </div>
@ -161,3 +161,7 @@
</div> </div>
<% end %> <% end %>
<script>
$("#RSide").css("width","730px");
</script>

@ -77,7 +77,7 @@
<%= render :partial => 'dir_list' %> <%= render :partial => 'dir_list' %>
<% end %> <% end %>
<a href="https://<%=Setting.host_name %>/forums/1/memos/1232" >如何提交代码</a> <a href="<%= Setting.protocol + "://" %><%=Setting.host_name %>/forums/1/memos/1232" >如何提交代码</a>
<div class="fr"> <div class="fr">
<a style="color: #7f7f7f;">导出统计结果:</a> <a style="color: #7f7f7f;">导出统计结果:</a>
<%= link_to "最近一周", {:controller => 'repositories', :action => 'export_rep_static', :format => 'xls', :rev => @rev, :cycle => "week" } %> <a style="color: #7f7f7f;">|</a> <%= link_to "最近一周", {:controller => 'repositories', :action => 'export_rep_static', :format => 'xls', :rev => @rev, :cycle => "week" } %> <a style="color: #7f7f7f;">|</a>
@ -94,5 +94,5 @@
<% html_title(l(:label_repository)) -%> <% html_title(l(:label_repository)) -%>
<script> <script>
$("#RSide").css("width","730px"); $(".project_r_h").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
</script> </script>

@ -1,8 +1,9 @@
<% is_expand = st.student_work_projects.empty? %>
<ul id="syllabus_course_ul"> <ul id="syllabus_course_ul">
<li class="syllabus_class_list" style="line-height:44px; vertical-align:middle;"> <li class="syllabus_class_list" style="line-height:44px; vertical-align:middle;">
<div class="syllabus_class_w fontGrey3"> <div class="syllabus_class_w fontGrey3 student_work_<%= st.id%>" style="<%=!is_expand ? '' : 'cursor: pointer;' %>" <%= !is_expand ? '' : "onclick = "+"show_student_work('"+"#{student_work_path(st)}"+"')" %>>
<%= link_to(image_tag(url_to_avatar(st.user),:width =>"40",:height => "40", :style => "display:block;"),user_activities_path(st.user), :class => "fl") %> <%= link_to(image_tag(url_to_avatar(st.user),:width =>"40",:height => "40", :style => "display:block;"),user_activities_path(st.user), :class => "fl") %>
<% if !st.student_work_projects.empty? %> <% if !is_expand %>
<span class="fl student_work_<%= st.id%>" style="width:135px;"> <span class="fl student_work_<%= st.id%>" style="width:135px;">
<span class="fl hidden ml5" style="max-width:90px;"><%= st.user.show_name %></span> <span class="fl hidden ml5" style="max-width:90px;"><%= st.user.show_name %></span>
<span class="fl">(组长)</span> <span class="fl">(组长)</span>
@ -11,10 +12,10 @@
<span class="fontGrey2">学号</span><%= st.user.user_extensions.nil? ? "--" : st.user.user_extensions.student_id%> <span class="fontGrey2">学号</span><%= st.user.user_extensions.nil? ? "--" : st.user.user_extensions.student_id%>
</span> </span>
<% else %> <% else %>
<span class="fl student_work_<%= st.id%>" style="width:135px; cursor: pointer;" onclick="show_student_work('<%= student_work_path(st)%>');"> <span class="fl student_work_<%= st.id%>" style="width:135px;">
<span class="fl hidden ml5" style="max-width:90px;"><%= st.user.show_name %></span> <span class="fl hidden ml5" style="max-width:90px;"><%= st.user.show_name %></span>
</span> </span>
<span class="fl student_work_<%= st.id%> mr15 hidden" style="width:90px; cursor: pointer;" onclick="show_student_work('<%= student_work_path(st)%>');"> <span class="fl student_work_<%= st.id%> mr15 hidden" style="width:90px;">
<span class="fontGrey2">学号</span><%= st.user.user_extensions.nil? ? "--" : st.user.user_extensions.student_id%> <span class="fontGrey2">学号</span><%= st.user.user_extensions.nil? ? "--" : st.user.user_extensions.student_id%>
</span> </span>
<% end %> <% end %>
@ -46,28 +47,31 @@
<div class="flex-cell"> <div class="flex-cell">
<% score = st.work_score %> <% score = st.work_score %>
<div class="<%= score_color score%> student_final_scor_info ml35 pr" style="display: inline"> <div class="<%= score_color score%> student_final_scor_info ml35 pr" style="display: inline">
<% if is_expand %>
<span style="position: absolute;top: -33px; color: #3b94d6; white-space:nowrap;" onclick = "show_student_work(<%= student_work_path(st)%>)">评分</span>
<% end %>
<%= score.nil? ? "--" : format("%.1f",score<0 ? 0 : score)%> <%= score.nil? ? "--" : format("%.1f",score<0 ? 0 : score)%>
<% unless score.nil?%> <% unless score.nil?%>
<div class="g_infoNi none width180"> <div class="g_infoNi none width180" style="line-height: 18px;">
作品最终评分为 作品最终评分为
<span class="c_red">&nbsp;<%= st.final_score%>&nbsp;</span>分 <span class="c_red">&nbsp;<%= st.final_score%>&nbsp;</span>分<br/>
迟交扣分 迟交扣分
<span class="c_red">&nbsp; <span class="c_red">&nbsp;
<%= st.homework_common && st.homework_common.teacher_priority == 1 && st.teacher_score ? 0 : st.late_penalty %> <%= st.homework_common && st.homework_common.teacher_priority == 1 && st.teacher_score ? 0 : st.late_penalty %>
&nbsp;</span>分 &nbsp;</span>分<br/>
缺评扣分 缺评扣分
<span class="c_red">&nbsp; <span class="c_red">&nbsp;
<%= st.homework_common && st.homework_common.teacher_priority == 1 && st.teacher_score ? 0 : st.absence_penalty%> <%= st.homework_common && st.homework_common.teacher_priority == 1 && st.teacher_score ? 0 : st.absence_penalty%>
&nbsp;</span>分 &nbsp;</span>分<br/>
最终成绩为 最终成绩为
<span class="c_red">&nbsp;<%= format("%.1f",score<0 ? 0 : score)%>&nbsp;</span>分 <span class="c_red">&nbsp;<%= format("%.1f",score<0 ? 0 : score)%>&nbsp;</span>分
</div> </div>
<% end%> <% end%>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="hworkTip" style="display: none; left:700px; top:20px; white-space:nowrap; right:auto;" id="work_click_<%= st.id%>"><em></em><span></span><font class="fontGrey2"><%= !st.student_work_projects.empty? ? '大作品评分即组长的评分' : '点击查看详情' %></font></div> <div class="hworkTip" style="display: none; left:700px; top:20px; white-space:nowrap; right:auto;" id="work_click_<%= st.id%>"><em></em><span></span><font class="fontGrey2"><%= !st.student_work_projects.empty? ? '大作品评分即组长的评分' : '点击进行评分' %></font></div>
</li> </li>
</ul> </ul>

@ -95,19 +95,19 @@
<td class="hworkList70 <%= score_color score%> student_final_scor_info"> <td class="hworkList70 <%= score_color score%> student_final_scor_info">
<%= score.nil? ? "--" : format("%.1f",score<0 ? 0 : score)%> <%= score.nil? ? "--" : format("%.1f",score<0 ? 0 : score)%>
<% unless score.nil?%> <% unless score.nil?%>
<div class="infoNi none width180"> <div class="infoNi none width180" style="line-height: 18px;">
作品最终评分为 作品最终评分为
<span class="c_red">&nbsp;<%= student_work.final_score%>&nbsp;</span>分 <span class="c_red">&nbsp;<%= student_work.final_score%>&nbsp;</span>分<br/>
迟交扣分 迟交扣分
<span class="c_red">&nbsp; <span class="c_red">&nbsp;
<%= student_work.homework_common && student_work.homework_common.teacher_priority == 1 && student_work.teacher_score ? 0 : student_work.late_penalty %> <%= student_work.homework_common && student_work.homework_common.teacher_priority == 1 && student_work.teacher_score ? 0 : student_work.late_penalty %>
&nbsp;</span>分 &nbsp;</span>分<br/>
缺评扣分 缺评扣分
<span class="c_red">&nbsp; <span class="c_red">&nbsp;
<%= student_work.homework_common && student_work.homework_common.teacher_priority == 1 && student_work.teacher_score ? 0 : student_work.absence_penalty%> <%= student_work.homework_common && student_work.homework_common.teacher_priority == 1 && student_work.teacher_score ? 0 : student_work.absence_penalty%>
&nbsp;</span>分 &nbsp;</span>分<br/>
最终成绩为 最终成绩为
<span class="c_red">&nbsp;<%= format("%.1f",score<0 ? 0 : score)%>&nbsp;</span>分 <span class="c_red">&nbsp;<%= format("%.1f",score<0 ? 0 : score)%>&nbsp;</span>分<br/>
</div> </div>
<% end%> <% end%>
</td> </td>

@ -22,7 +22,7 @@
<% end %> <% end %>
<% is_pro = homework.homework_type == 2 && is_teacher %> <% is_pro = homework.homework_type == 2 && is_teacher %>
<% is_base_group = homework.homework_type == 3 && homework.homework_detail_group.base_on_project == 1 && !is_teacher %> <% is_base_group = homework.homework_type == 3 && (homework.homework_detail_group.base_on_project == 1 || !(cur_user_works_for_homework(homework).nil?)) && !is_teacher %>
<div class="mt8 mb5"> <div class="mt8 mb5">
<%= render :partial => 'users/homework_opr', :locals => {:activity => homework, :is_teacher => is_teacher, :hw_status => 5, :user_activity_id => homework.id} %> <%= render :partial => 'users/homework_opr', :locals => {:activity => homework, :is_teacher => is_teacher, :hw_status => 5, :user_activity_id => homework.id} %>
<% if is_pro || is_base_group %> <% if is_pro || is_base_group %>
@ -42,7 +42,7 @@
</div> </div>
<div class="homeworkInfo" id="homeworkInformation"> <div class="homeworkInfo" id="homeworkInformation">
<div class=""> <div class="">
<div class="homeworkDetail upload_img break_word list_style max_h54" id="homeworkDetail"> <div class="homeworkDetail upload_img break_word list_style" id="homeworkDetail">
<div id="homework_description"> <div id="homework_description">
<%= homework.description.html_safe %> <%= homework.description.html_safe %>
</div> </div>

@ -54,10 +54,6 @@
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
if($("#homework_info_hidden").is(":hidden"))
{
$("#homework_info_show").show();
}
<% if !@is_evaluation && (!@is_teacher || params[:show_work_id].present?) || @message_student_work_id || (@is_evaluation && @is_focus == 1) %> <% if !@is_evaluation && (!@is_teacher || params[:show_work_id].present?) || @message_student_work_id || (@is_evaluation && @is_focus == 1) %>
<% if @message_student_work_id %> <% if @message_student_work_id %>
<% work = @homework.student_works.where("id =?", @message_student_work_id).first %> <% work = @homework.student_works.where("id =?", @message_student_work_id).first %>

@ -38,6 +38,6 @@
<script type="text/javascript"> <script type="text/javascript">
function clickOK() { function clickOK() {
window.location.href = '<%= student_work_index_url(:homework => @homework.id)%>'; window.location.href= "<%= Setting.protocol%>://"+"<%= Setting.host_name%>"+"/student_work?homework=" + "<%= @homework.id%>&tab=2"
} }
</script> </script>

@ -39,6 +39,6 @@
<script type="text/javascript"> <script type="text/javascript">
function clickOK() { function clickOK() {
window.location.href = '<%= student_work_index_url(:homework => @homework.id)%>'; window.location.href= "<%= Setting.protocol%>://"+"<%= Setting.host_name%>"+"/student_work?homework=" + "<%= @homework.id%>&tab=2"
} }
</script> </script>

@ -57,29 +57,6 @@
"<a href='javascript:' onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>"); "<a href='javascript:' onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
$('#ajax-modal').parent().css("top","25%").css("left","35%").css("position","fixed").css("border","3px solid #269ac9"); $('#ajax-modal').parent().css("top","25%").css("left","35%").css("position","fixed").css("border","3px solid #269ac9");
} }
function show_or_hide_info(){
$("#homeworkInformation").toggle();
$("#homework_info_hidden").toggle();
$("#homework_info_show").toggle();
}
$(function(){
if($("#homework_description").height() > 54) {
$("#homeworkDetailShow").show();
}
$("#homeworkDetailShow").click(function(){
$("#homeworkDetail").toggleClass("max_h54");
$("#homeworkDetailShow").hide();
$("#homeworkDetailHide").show();
});
$("#homeworkDetailHide").click(function(){
$("#homeworkDetail").toggleClass("max_h54");
$("#homeworkDetailHide").hide();
$("#homeworkDetailShow").show();
});
});
</script> </script>
<div class="homepageRight mt0 ml10"> <div class="homepageRight mt0 ml10">

@ -12,5 +12,5 @@ window.location.href = '<%= edit_student_work_url(@work)%>';
function clickCanel() { function clickCanel() {
hideModal('#popbox02'); hideModal('#popbox02');
window.location.href = '<%= student_work_index_url(:homework => @homework.id)%>'; window.location.href= "<%= Setting.protocol%>://"+"<%= Setting.host_name%>"+"/student_work?homework=" + "<%= @homework.id%>&tab=2"
} }

@ -41,12 +41,12 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, activity).count %> <% all_replies = get_all_children(all_comments, activity) %>
<% count = all_replies.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id} %>
<% all_comments = []%> <% comments = all_replies[0..2] %>
<% comments = get_all_children(all_comments, activity)[0..2] %>
<% if count > 0 %> <% if count > 0 %>
<div class="" id="reply_div_<%= user_activity_id %>"> <div class="" id="reply_div_<%= user_activity_id %>">
<%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'JournalsForMessage', :activity_id =>activity.id}%> <%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'JournalsForMessage', :activity_id =>activity.id}%>

@ -81,12 +81,12 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, activity).count %> <% all_replies = get_all_children(all_comments, activity) %>
<% count = all_replies.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id,:is_course => is_course,:is_board =>is_board} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id,:is_course => is_course,:is_board =>is_board} %>
<% all_comments = []%> <% comments = all_replies[0..2] %>
<% comments = get_all_children(all_comments, activity)[0..2] %>
<% if count > 0 %> <% if count > 0 %>
<div class="" id="reply_div_<%= user_activity_id %>"> <div class="" id="reply_div_<%= user_activity_id %>">
<%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'Message', :activity_id =>activity.id, :is_course => is_course, :is_board =>is_board}%> <%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'Message', :activity_id =>activity.id, :is_course => is_course, :is_board =>is_board}%>

@ -15,7 +15,7 @@
<%= user_for_homework_common activity,is_teacher %> <%= user_for_homework_common activity,is_teacher %>
</div> </div>
<% work = cur_user_works_for_homework activity %> <% work = cur_user_works_for_homework activity %>
<% if activity.end_time < Date.today && !is_teacher && !work.nil? && work.user == User.current %> <% if !is_teacher && !work.nil? && work.user == User.current && activity.end_time < Date.today %>
<div class="homepagePostSubmit"> <div class="homepagePostSubmit">
<%=link_to "追加附件", student_work_index_url_in_org(activity.id, 2, 1), :class => 'c_blue', :title => "可追加作品修订附件" %> <%=link_to "追加附件", student_work_index_url_in_org(activity.id, 2, 1), :class => 'c_blue', :title => "可追加作品修订附件" %>
</div> </div>

@ -95,7 +95,9 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<div id="div_user_issue_reply_<%=user_activity_id%>">
<%= render :partial => 'users/project_issue_reply', :locals => {:activity => activity, :user_activity_id => user_activity_id} %>
</div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){

@ -82,14 +82,14 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, activity).count %> <% all_replies = get_all_children(all_comments, activity) %>
<% count = all_replies.count %>
<%# allow_delete = (activity.user == User.current || User.current.admin? || User.current.allowed_to?(:as_teacher,activity.course)) %> <%# allow_delete = (activity.user == User.current || User.current.admin? || User.current.allowed_to?(:as_teacher,activity.course)) %>
<%# count = fetch_user_leaveWord_reply(activity).count %> <%# count = fetch_user_leaveWord_reply(activity).count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id,:is_course => is_course,:is_board =>is_board} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id,:is_course => is_course,:is_board =>is_board} %>
<% all_comments = []%> <% comments = all_replies[0..2] %>
<% comments = get_all_children(all_comments, activity)[0..2] %>
<% if count > 0 %> <% if count > 0 %>
<div class="" id="reply_div_<%= user_activity_id %>"> <div class="" id="reply_div_<%= user_activity_id %>">
<%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'Message', :activity_id =>activity.id, :is_course => is_course, :is_board =>is_board}%> <%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'Message', :activity_id =>activity.id, :is_course => is_course, :is_board =>is_board}%>

@ -249,7 +249,7 @@
} }
line.children().css("background-color", 'white'); line.children().css("background-color", 'white');
id = line.children().last().html(); id = line.children().last().html();
user_id = line.children().eq(5).html(); user_id = line.children().eq(4).html();
if(user_id === '<%= User.current.id%>') { if(user_id === '<%= User.current.id%>') {
if(line.children().first().children().data('hasHistory') == 'Y'){ if(line.children().first().children().data('hasHistory') == 'Y'){
alert('该资源存在历史版本,不能删除'); alert('该资源存在历史版本,不能删除');

@ -42,12 +42,12 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, activity).count %> <% all_replies = get_all_children(all_comments, activity) %>
<% count = all_replies.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id, :homepage => 0} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id, :homepage => 0} %>
<% all_comments = []%> <% comments = all_replies[0..2] %>
<% comments = get_all_children(all_comments, activity)[0..2] %>
<% if count > 0 %> <% if count > 0 %>
<div class="" id="reply_div_<%= user_activity_id %>"> <div class="" id="reply_div_<%= user_activity_id %>">
<%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'BlogComment', :activity_id =>activity.id, :homepage => 0, :user_id => activity.author_id}%> <%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'BlogComment', :activity_id =>activity.id, :homepage => 0, :user_id => activity.author_id}%>

@ -1,10 +1,10 @@
<div id="groupHomework"> <div id="groupHomework">
<div> <span class="f14 mt5 fl fontGrey3 mr10">分组设置:</span> <div> <span class="f14 mt5 fl fontGrey3 mr10">分组设置:</span>
<div class="mr50 fl"> <span class="f14 fontGrey3 mr5">每组最小人数:</span> <div class="mr50 fl"> <span class="f14 fontGrey3 mr5">每组最小人数:</span>
<input id="min_num" type="text" name="min_num" class="markInput" value="<%=(edit_mode && homework.is_group_homework?) ? homework.homework_detail_group.min_num : 2 %>" <%=not_allow_select ? 'disabled' : '' %>/>人 <input id="min_num" type="text" name="min_num" class="markInput" value="<%=(edit_mode && homework.is_group_homework?) ? homework.homework_detail_group.min_num : 2 %>" <%=(not_allow_select && homework.is_group_homework?) ? "onchange = regex_scope(#{homework.homework_detail_group.min_num}, 1)" : '' %>/>人
</div> </div>
<div class="fl"> <span class="f14 fontGrey3 mr5">每组最大人数:</span> <div class="fl"> <span class="f14 fontGrey3 mr5">每组最大人数:</span>
<input id="max_num" type="text" name="max_num" class="markInput" value="<%=(edit_mode && homework.is_group_homework?) ? homework.homework_detail_group.max_num : 10 %>" <%=not_allow_select ? 'disabled' : '' %>/>人 <input id="max_num" type="text" name="max_num" class="markInput" value="<%=(edit_mode && homework.is_group_homework?) ? homework.homework_detail_group.max_num : 10 %>" <%=(not_allow_select && homework.is_group_homework?) ? "onchange = regex_scope(#{homework.homework_detail_group.max_num}, 2)" : '' %>/>人
</div> </div>
<span class="c_red undis ml20 mt7 fl" id="min_max_num_notice"></span> <span class="c_red undis ml20 mt7 fl" id="min_max_num_notice"></span>
<div class="cl"></div> <div class="cl"></div>
@ -21,7 +21,29 @@
<div class="cl"></div> <div class="cl"></div>
<script> <script>
if($.trim($("#base_on_project").val()) == 1) { $(function () {
$("#base_on_project").attr('checked','checked'); if($.trim($("#base_on_project").val()) == 1) {
} $("#base_on_project").attr('checked','checked');
}
<% if not_allow_select && homework.is_group_homework? %>
$("#min_num").on('change', function() {
var min_num = <%=homework.homework_detail_group.min_num %>;
if(parseInt($(this).val()) > min_num) {
$(this).val(min_num);
$("#min_max_num_notice").html('分组范围不可缩小').show();
} else {
$("#min_max_num_notice").html('').hide();
}
});
$("#max_num").on('change', function() {
var max_num = <%=homework.homework_detail_group.max_num %>;
if(parseInt($(this).val()) < max_num) {
$(this).val(max_num);
$("#min_max_num_notice").html('分组范围不可缩小').show();
} else {
$("#min_max_num_notice").html('').hide();
}
});
<% end %>
});
</script> </script>

@ -7,14 +7,14 @@
var first_click = true; var first_click = true;
$(function(){ $(function(){
$("#homework_type_option").on("change",function(){ $("#homework_type_option").on("change",function(){
var type = $(this).children('option:selected').val() var type = $(this).children('option:selected').val();
if(type == "1"){ if(type == "1"){
$("#homeworkSetting").addClass("undis"); $("#homeworkSetting").addClass("undis");
$("#homeworkSetting").html(""); $("#homeworkSetting").html("");
}else if(type == "2"){ }else if(type == "2"){
$("#homeworkSetting").removeClass("undis"); $("#homeworkSetting").removeClass("undis");
$("#homeworkSetting").html("<%=escape_javascript(render :partial => 'users/user_programing_attr', :locals => {:edit_mode => edit_mode, :homework=>homework, :not_allow_select => not_allow_select}) %>"); $("#homeworkSetting").html("<%=escape_javascript(render :partial => 'users/user_programing_attr', :locals => {:edit_mode => edit_mode, :homework=>homework, :not_allow_select => not_allow_select}) %>");
}else{ }else if(type == "3"){
$("#homeworkSetting").removeClass("undis"); $("#homeworkSetting").removeClass("undis");
$("#homeworkSetting").html("<%=escape_javascript(render :partial => 'users/user_group_attr', :locals => {:edit_mode => edit_mode, :homework=>homework, :not_allow_select => not_allow_select}) %>"); $("#homeworkSetting").html("<%=escape_javascript(render :partial => 'users/user_group_attr', :locals => {:edit_mode => edit_mode, :homework=>homework, :not_allow_select => not_allow_select}) %>");
} }

@ -63,12 +63,12 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% all_comments = []%> <% all_comments = []%>
<% count=get_all_children(all_comments, activity).count %> <% all_replies = get_all_children(all_comments, activity) %>
<% count = all_replies.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id} %>
<% all_comments = []%> <% comments = all_replies[0..2] %>
<% comments = get_all_children(all_comments, activity)[0..2] %>
<% if count > 0 %> <% if count > 0 %>
<div class="" id="reply_div_<%= user_activity_id %>"> <div class="" id="reply_div_<%= user_activity_id %>">
<%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'JournalsForMessage', :activity_id =>activity.id}%> <%= render :partial => 'users/message_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'JournalsForMessage', :activity_id =>activity.id}%>

@ -225,7 +225,7 @@
document.oncontextmenu = function() {return true;} document.oncontextmenu = function() {return true;}
line.children().css("background-color",'white'); line.children().css("background-color",'white');
id = line.children().last().html(); id = line.children().last().html();
user_id = line.children().eq(5).html(); user_id = line.children().eq(4).html();
if(user_id === '<%= User.current.id %>') { if(user_id === '<%= User.current.id %>') {
res_name = line.children().eq(1).children().attr('title'); res_name = line.children().eq(1).children().attr('title');
res_link = line.children().eq(1).html(); res_link = line.children().eq(1).html();

@ -74,5 +74,5 @@
<%= context_menu issues_context_menu_path %> <%= context_menu issues_context_menu_path %>
<script> <script>
$("#RSide").css("width","730px"); $(".project_r_h").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
</script> </script>

@ -68,5 +68,5 @@
<% html_title @page.pretty_title %> <% html_title @page.pretty_title %>
<script> <script>
$("#RSide").css("width","730px"); $(".project_r_h").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
</script> </script>

@ -95,6 +95,6 @@
}); });
}; };
$("#RSide").css("width","730px"); $(".project_r_h").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
</script> </script>
</div> </div>

@ -11,7 +11,7 @@
<%= image_tag url_to_avatar(nil),:width => '30',:height => '30' %> <%= image_tag url_to_avatar(nil),:width => '30',:height => '30' %>
<% end %> <% end %>
</div> </div>
<div class="recall_con f14" style="width:650px;"> <div class="recall_con f14" style="width:630px;">
<% id = 'project_respond_form_'+ reply.id.to_s %> <% id = 'project_respond_form_'+ reply.id.to_s %>
<%= link_to reply.user.show_name, user_path(reply.user) %> <%= link_to reply.user.show_name, user_path(reply.user) %>
<%= l(:label_reply_to)%> <%= l(:label_reply_to)%>

@ -623,7 +623,7 @@ zh:
label_course_news_description: '课程必须是高校正式开设的课程,或是围绕特定主题定期发布课程资料的公共开放课程;<br/>如果您想创建一个协作研究空间,请您前往“我的项目”页面创建项目,谢谢!' label_course_news_description: '课程必须是高校正式开设的课程,或是围绕特定主题定期发布课程资料的公共开放课程;<br/>如果您想创建一个协作研究空间,请您前往“我的项目”页面创建项目,谢谢!'
label_course_board: 讨论区 label_course_board: 讨论区
label_version: 版本 label_version: 版本
label_version_new: 新建版本 label_version_new: 新建里程碑
label_close_versions: 关闭已完成的版本 label_close_versions: 关闭已完成的版本
label_confirmation: 确认 label_confirmation: 确认

@ -61,7 +61,7 @@ module Redmine
end end
end end
def initialize(url, root_url=nil, login=nil, password=nil, path_encoding=nil) def initialize(url, root_url=nil, login=nil, password=nil, path_encoding=nil, project_id)
super super
@path_encoding = path_encoding.blank? ? 'UTF-8' : path_encoding @path_encoding = path_encoding.blank? ? 'UTF-8' : path_encoding
end end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -1054,10 +1054,12 @@ function showNormalImage(id) {
//无格式的图片不让点击显示大图,显示的话会有问题 //无格式的图片不让点击显示大图,显示的话会有问题
var tmpsrc = image.attr('src'); var tmpsrc = image.attr('src');
if (tmpsrc.indexOf('.gif') >= 0 || tmpsrc.indexOf('.jpg') >= 0 || tmpsrc.indexOf('.jpeg') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.bmp') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.BMP') >= 0 || tmpsrc.indexOf('.JPEG') >= 0 || tmpsrc.indexOf('.JPG') >= 0 || tmpsrc.indexOf('.PNG') >= 0 || tmpsrc.indexOf('.GIF') >= 0) { if(tmpsrc){
var element = $("<a></a>").attr("href", image.attr('src')); if (tmpsrc.indexOf('.gif') >= 0 || tmpsrc.indexOf('.jpg') >= 0 || tmpsrc.indexOf('.jpeg') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.bmp') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.BMP') >= 0 || tmpsrc.indexOf('.JPEG') >= 0 || tmpsrc.indexOf('.JPG') >= 0 || tmpsrc.indexOf('.PNG') >= 0 || tmpsrc.indexOf('.GIF') >= 0) {
image.wrap(element); var element = $("<a></a>").attr("href", image.attr('src'));
$(image).parent().colorbox({rel: 'nofollow', close: "关闭", returnFocus: false}); image.wrap(element);
$(image).parent().colorbox({rel: 'nofollow', close: "关闭", returnFocus: false});
}
} }
} }
//$('#'+id+' a').colorbox({rel:'nofollow', close: "关闭", returnFocus: false}); //有图片才将链接变为弹出框 //$('#'+id+' a').colorbox({rel:'nofollow', close: "关闭", returnFocus: false}); //有图片才将链接变为弹出框

@ -46,6 +46,7 @@ function add_group(url,course_id) {
function edit_group(id,url,course_id,group_id) function edit_group(id,url,course_id,group_id)
{ {
var group_name = $('#'+id).val(); var group_name = $('#'+id).val();
var group_id = $('#'+group_id).val();
$.get( $.get(
url, url,
{ {
@ -56,7 +57,7 @@ function edit_group(id,url,course_id,group_id)
}, },
function (data) { function (data) {
if (data.valid) { if (data.valid) {
$("#update_group_"+group_id).submit(); $("#update_group_form").submit();
} }
else else
{ {

@ -81,7 +81,7 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/
/* Float & Clear */ /* Float & Clear */
.clear{ zoom:1;} .clear{ zoom:1;}
.clear:after {content:".";height:0;visibility:hidden;display:block;clear:both;} .clear:after {clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}
.cl{ clear:both; overflow:hidden; } .cl{ clear:both; overflow:hidden; }
.fl{float:left;} .fl{float:left;}
.fr{float:right;} .fr{float:right;}

@ -530,7 +530,7 @@ a:hover.blueCir{ background:#3598db; color:#fff;}
.courseR {width:220px; padding:10px; background-color:#ffffff; margin-top:10px;} .courseR {width:220px; padding:10px; background-color:#ffffff; margin-top:10px;}
/*20160310分班样式*/ /*20160310分班样式*/
.select-class-option {width:125px;} .select-class-option {width:100px;}
/*20160520作品列表table*/ /*20160520作品列表table*/
.hwork-table-wrap {width:720px; border-collapse:collapse; vertical-align:middle; table-layout:fixed;} .hwork-table-wrap {width:720px; border-collapse:collapse; vertical-align:middle; table-layout:fixed;}

@ -167,7 +167,7 @@ div.thumbnails div {background:#fff;display:inline-block;margin-right:2px;}
/* 里程碑 */ /* 里程碑 */
.roadmap_box{ background:#f8f8f8; width:648px; padding:10px; margin-top:5px; border:1px solid #ddd; color:#555;} .roadmap_box{ background:#f8f8f8; width:648px; padding:10px; margin-top:5px; border:1px solid #ddd; color:#555;}
.progress{ width:648px; height:20px; margin-bottom:5px; background:#e9e9e9;} .progress{ width:648px; height:20px; margin-bottom:5px; background:#e9e9e9;}
.closed{ background:#bae0ba; height:20px;} .closed{ background:#bae0ba;}
.done{ background:#d3edd3; display:block;height:20px;float:left;} .done{ background:#d3edd3; display:block;height:20px;float:left;}
.roadmap_box{ margin-bottom:10px;} .roadmap_box{ margin-bottom:10px;}
.roadmap_list_ul{border:1px solid #ddd; border-bottom:none; margin-bottom:10px;} .roadmap_list_ul{border:1px solid #ddd; border-bottom:none; margin-bottom:10px;}
@ -564,7 +564,7 @@ a:hover.upload_btn_grey{background:#8a8a8a;}
.sy_class_infobox{ .sy_class_infobox{
padding:15px; padding:15px;
background:#fff; background:#fff;
margin:12px auto 0; margin:0px auto ;
width:968px; width:968px;
border:1px solid #e5e5e5; border:1px solid #e5e5e5;
position: relative; position: relative;
@ -798,8 +798,8 @@ a:hover.hw_btn_blue,a:active.hw_btn_blue{ background: #3b94d6; color:#fff;}
input.issues_calendar_input{ padding-left:5px; color:#444; border-right:none;} input.issues_calendar_input{ padding-left:5px; color:#444; border-right:none;}
.issues_data_img{ display:block; width:25px; height:33px; border:1px solid #c8c8c8; border-left:none; background: url("/images/public_icon.png") -29px 9px no-repeat; } .issues_data_img{ display:block; width:25px; height:33px; border:1px solid #c8c8c8; border-left:none; background: url("/images/public_icon.png") -29px 9px no-repeat; }
/* 缺陷Tab */ /* 缺陷Tab */
.issues_con_list{border:1px solid #c8c8c8; } .issues_con_list{border:1px solid #e5e3da; }
#issues_list_nav {border-bottom:1px solid #d0d0d0;} #issues_list_nav {border-bottom:1px solid #e5e3da;}
#issues_list_nav li {float:left; padding:10px 15px; text-align:center; } #issues_list_nav li {float:left; padding:10px 15px; text-align:center; }
#issues_list_nav li a{font-size:12px; color:#444;} #issues_list_nav li a{font-size:12px; color:#444;}
.issues_nav_hover{border-bottom:3px solid #3498db; font-weight:bold; } .issues_nav_hover{border-bottom:3px solid #3498db; font-weight:bold; }
@ -816,9 +816,9 @@ input.issues_calendar_input{ padding-left:5px; color:#444; border-right:none;}
input.issues_calendar_input{ padding-left:5px; color:#444; border-right:none;} input.issues_calendar_input{ padding-left:5px; color:#444; border-right:none;}
.issues_data_img{ display:block; width:25px; height:28px; border:1px solid #c8c8c8; border-left:none; background: url("/images/public_icon.png") -29px 9px no-repeat; } .issues_data_img{ display:block; width:25px; height:28px; border:1px solid #c8c8c8; border-left:none; background: url("/images/public_icon.png") -29px 9px no-repeat; }
.issues_list_box{ padding:15px; padding-right: 0px; border-bottom:1px dashed #c8c8c8;} .issues_list_box{ padding:15px; padding-right: 0px; border-bottom:1px dashed #e5e3da;}
.issues_list_titlebox{ font-size:14px; font-weight:bold; margin-bottom:8px;} .issues_list_titlebox{ font-size:14px; font-weight:bold; margin-bottom:8px;}
a.issues_list_title{ color:#444; max-width:260px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap; } a.issues_list_title{ color:#444; max-width:300px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap; }
a:hover.issues_list_title{color:#3b94d6;} a:hover.issues_list_title{color:#3b94d6;}
.issues_list_titlebox span{ font-size: 12px;color: #888; font-weight: normal; } .issues_list_titlebox span{ font-size: 12px;color: #888; font-weight: normal; }
.issues_ciricons_01{ width: 22px; height: 22px; display: inline-block; background: url("/images/new_project/icons_issue.png") 0 0 no-repeat;} .issues_ciricons_01{ width: 22px; height: 22px; display: inline-block; background: url("/images/new_project/icons_issue.png") 0 0 no-repeat;}
@ -827,7 +827,7 @@ a:hover.issues_list_title{color:#3b94d6;}
.issues_list_name{ font-size: 12px;} .issues_list_name{ font-size: 12px;}
.issues_list_name:hover{ color: #3b94d6;} .issues_list_name:hover{ color: #3b94d6;}
.issues_list_small{ font-size: 12px; color: #666;} .issues_list_small{ font-size: 12px; color: #666;}
.issues_list_txt li{ height: 50px; line-height: 50px; float: left; font-size: 12px; width: 70px; text-align: center; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;} .issues_list_txt li{ height: 50px; float: left; font-size: 12px; width: 70px; text-align: center; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;}
.issues_list_txt li.issues_list_min{ width: 52px;} .issues_list_txt li.issues_list_min{ width: 52px;}

@ -722,6 +722,7 @@ a.wzan_visited{background:url(../images/pic_zan.png) 0 0 no-repeat;}
/* 学生列表*/ /* 学生列表*/
.st_list{ width:670px;} .st_list{ width:670px;}
.st_list2{ width:730px;}
.st_search{ } .st_search{ }
.st_search span{ font-size:14px; font-weight:bold; color:#606060; margin-right:35px;} .st_search span{ font-size:14px; font-weight:bold; color:#606060; margin-right:35px;}
.st_search_input{ border:1px solid #1c9ec7; background:#fff; height:20px; color:#c4c4c4; width:220px; padding-left:5px; margin-bottom:5px;} .st_search_input{ border:1px solid #1c9ec7; background:#fff; height:20px; color:#c4c4c4; width:220px; padding-left:5px; margin-bottom:5px;}
@ -1403,6 +1404,7 @@ a:hover.comment_ding_link{ color:#269ac9;}
.orig_icon{ color:#888; margin-right:10px; font-size:14px; font-weight:bold;} .orig_icon{ color:#888; margin-right:10px; font-size:14px; font-weight:bold;}
.relateText {font-size:16px; color:#269ac9; line-height:16px; padding-top:20px; display:inline-block; font-weight: bold;} .relateText {font-size:16px; color:#269ac9; line-height:16px; padding-top:20px; display:inline-block; font-weight: bold;}
.detail_cont_hide{ text-align:center; width:690px; display:block; font-size:14px; color:#333; border-bottom:1px solid #e3e3e3; padding:8px 0; margin: 0px auto;}
/* 未登录的提示信息 */ /* 未登录的提示信息 */
.syllabusbox_tishi{ .syllabusbox_tishi{

@ -498,6 +498,11 @@ a:hover.sy_btn_orange{
.accordion li.sy_icons_exercise:target > a:before, .accordion li.sy_icons_exercise:target > a:before,
.accordion li.ssy_icons_exercise > a.active:before { background-position: -23px -290px; } .accordion li.ssy_icons_exercise > a.active:before { background-position: -23px -290px; }
.accordion li.sy_icons_group > a:before { background-position: 7px -570px; }
.accordion li.sy_icons_group:hover > a:before,
.accordion li.sy_icons_group:target > a:before,
.accordion li.sy_icons_group > a.active:before { background-position: -23px -570px; }
.accordion li.sy_icons_st > a:before { background-position: 5px -330px; } .accordion li.sy_icons_st > a:before { background-position: 5px -330px; }
.accordion li.sy_icons_st:hover > a:before, .accordion li.sy_icons_st:hover > a:before,
.accordion li.sy_icons_st:target > a:before, .accordion li.sy_icons_st:target > a:before,
@ -620,7 +625,7 @@ a:hover.sy_class_ltitle{ color:#333;}
/*20160918教师团队*/ /*20160918教师团队*/
.sy_new_tablebox{ padding:15px; padding-bottom:none;} .sy_new_tablebox{ padding:15px; padding-bottom:none;}
.sy_new_table{ width:100%; background:#fff; border:1px solid #e5e5e5; padding-bottom:30px;} .sy_new_table{ width:100%; background:#fff; border:1px solid #e5e5e5;}
.sy_new_table thead tr{ height:40px; line-height:40px;} .sy_new_table thead tr{ height:40px; line-height:40px;}
.sy_new_table thead tr th{ border-bottom:1px solid #e5e5e5;} .sy_new_table thead tr th{ border-bottom:1px solid #e5e5e5;}
.sy_new_table tbody tr:hover{ background:#f5f5f5;} .sy_new_table tbody tr:hover{ background:#f5f5f5;}
@ -634,3 +639,40 @@ a:hover.sy_class_ltitle{ color:#333;}
.sy_new_name{ display:block;max-width:120px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;} .sy_new_name{ display:block;max-width:120px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
.sy_new_long_name{ display:block;width:180px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;} .sy_new_long_name{ display:block;width:180px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
.mt12{ margin-top:12px;} .mt12{ margin-top:12px;}
/*20160919分班*/
.sy_class_nobg{ background-color:#eaebec;}
.sy_class_r_head{ border: 1px solid #e7e7e7; background-color: #fff; padding:10px 15px; position: relative;}
.sy_class_r_head h3{ font-size: 14px; color: #333;}
.sy_class_r_more{ display: block;}
.sy_class_fenban{border: 1px solid #e7e7e7; background-color: #fff; padding:15px;}
.sy_fenban_input{ height: 28px; background-color: #fff; border: 1px solid #d1d1d1;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d3d3d3;padding-left:5px; color:#888; box-shadow: inset 0px 0px 5px #dcdcdc; }
.sy_icons_edit{ display: inline-block; padding:9px;background:url(../images/sy/sy_icons02.png) 0 1px no-repeat; }
.sy_icons_del{ padding:9px;background:url(../images/sy/sy_icons02.png) 0 -21px no-repeat;}
.sy_icons_edit:hover{ background:url(../images/sy/sy_icons02.png) -20px 1px no-repeat; }
.sy_icons_del:hover{ background:url(../images/sy/sy_icons02.png) -20px -21px no-repeat;}
.sy_icons_tips{padding:9px;background:url(../images/sy/sy_icons02.png) 0 -66px no-repeat;}
.sy_sortupbtn{display: inline-block; width:15px; height:18px;background:url(../images/sy/sy_icons02.png) 0 -39px no-repeat;}
.sy_sortdownbtn{display: inline-block; width:15px; height:18px;background:url(../images/sy/sy_icons02.png) -22px -39px no-repeat;}
.sy_fenban_list{-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d2d8e6; padding:5px 10px;background: #f8f9fd}
.sy_fenban_list a{ color:#3b94d6;}
.sy_fenban_list a:hover{ color:#2788d0;}
.sy_class_users_st{ width:30px; }
.sy_class_users_st_name{ display: inline-block;width:70px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sy_class_users_st_num{ display: block;width:90px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sy_class_users_st img{ width:30px;height:30px; border: 1px solid #fff;-webkit-border-radius:50px;-moz-border-radius:50px;-o-border-radius:50px;border-radius:50px;}
.sy_fenban_select{height: 28px; background-color: #fff; border: 1px solid #d1d1d1;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d3d3d3;padding-left:5px; color:#888; box-shadow: inset 0px 0px 5px #dcdcdc; }
.sy_new_table_width tr th.sy_th10{ width: 10%; }
.sy_new_table_width tr th.sy_th0{ width: 12.5%; }
.sy_new_table_width tr th.sy_th15{ width: 15%; }
.sy_new_table_width tr th.sy_th7{ width: 7%;}
.sy_new_table_width tr th.sy_th13{ width: 13%;}
.sy_fenban_tap{ cursor: pointer; position: relative;}
.sy_fenban_tap:hover .sy_fenban_show{ display: block;}
.sy_fenban_show{ width:140px; z-index: 999;text-align: center; line-height:2.0; font-size:12px; font-weight: normal;color:#888;background-color:#fff; border:1px solid #eaeaea;border-radius:5px;position:absolute;left:20px; top:30px;padding:5px 0px;display:none; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5);}
.sy_tips_box{ position: relative; cursor: pointer;}
.sy_tips_box:hover .sy_tips_box_inner{ display: block;}
.sy_tips_box_inner{ position: absolute;line-height: 2.0;padding: 5px 10px; white-space: nowrap; background-color: #fff; left:30px; top: -5px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5);}
.sy_tips_box_inner span { display: block; border-width: 10px;position: absolute;top: 15px; left: -18px; border-style: dashed solid dashed dashed;border-color: transparent #fff transparent transparent;font-size: 0;line-height: 0;}
.hw_search_box a.hw_btn_search{display:block; width:20px; height:20px; background:url(../images/hw/icons_hw.png) 0 -57px no-repeat; position:absolute; right:5px; top:5px;}

Loading…
Cancel
Save