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

Conflicts:
	db/schema.rb
This commit is contained in:
huang 2017-02-19 14:40:27 +08:00
commit 82c6799953
76 changed files with 2369 additions and 2068 deletions

View File

@ -783,8 +783,8 @@ class AdminController < ApplicationController
begin begin
#更新消息表的status #更新消息表的status
applied_message_id = aas.school_id applied_message_id = aas.school_id
applied_message = AppliedMessage.where(:applied_id => applied_message_id, :applied_type => "ApplyAddSchools") #applied_message = AppliedMessage.where(:applied_id => applied_message_id, :applied_type => "ApplyAddSchools")
applied_message.update_all(:status => 2) #applied_message.update_all(:status => 2)
aas.update_attribute(:status, 2) aas.update_attribute(:status, 2)
AppliedMessage.create(:user_id => aas.user_id, :status => 2, :viewed => 0, :applied_id => aas.id, :applied_type => "ApplyAddSchools", :name => school[0].name ) AppliedMessage.create(:user_id => aas.user_id, :status => 2, :viewed => 0, :applied_id => aas.id, :applied_type => "ApplyAddSchools", :name => school[0].name )
users = UserExtensions.where("school_id = #{aas.school_id}") users = UserExtensions.where("school_id = #{aas.school_id}")

View File

@ -39,6 +39,9 @@ class BlogCommentsController < ApplicationController
end end
end end
def show def show
# 更新博客消息为已读
update_messsages_to_viewed("BlogMessage", params[:blog_id])
@article = BlogComment.find(params[:id]) @article = BlogComment.find(params[:id])
@replies = BlogComment.where("root_id = #{@article.id}").reorder("created_on desc") @replies = BlogComment.where("root_id = #{@article.id}").reorder("created_on desc")
@reply_count = @replies.count @reply_count = @replies.count

View File

@ -7,6 +7,7 @@ class ContestsController < ApplicationController
helper :attachments helper :attachments
helper :files helper :files
include AvatarHelper include AvatarHelper
include ApplicationHelper
before_filter :find_contest, :only => [:show, :settings, :update, :destroy, :contest_activities, :private_or_public, :switch_role, :set_invite_code_halt, :renew, before_filter :find_contest, :only => [:show, :settings, :update, :destroy, :contest_activities, :private_or_public, :switch_role, :set_invite_code_halt, :renew,
:member, :export_all_members, :feedback] :member, :export_all_members, :feedback]
@ -18,8 +19,7 @@ class ContestsController < ApplicationController
def show def show
#更新创建课程消息状态 #更新创建课程消息状态
contest_request_messages = ContestMessage.where("user_id = #{User.current.id} and contest_id = #{@contest.id} and contest_message_type in ('ContestRequestDealResult', 'JoinContest', 'RemoveFromContest') and viewed = 0") update_messsages_to_viewed("ContestMessage", @contest)
contest_request_messages.update_all(:viewed => true)
@left_nav_type = 1 @left_nav_type = 1
respond_to do |format| respond_to do |format|

View File

@ -9,6 +9,7 @@ class CoursesController < ApplicationController
helper :attachments helper :attachments
helper :files helper :files
helper :activity_notifys helper :activity_notifys
include ApplicationHelper
before_filter :auth_login1, :only => [:show, :course_activity, :feedback] before_filter :auth_login1, :only => [:show, :course_activity, :feedback]
menu_item :overview menu_item :overview
@ -354,6 +355,44 @@ class CoursesController < ApplicationController
#search_group_members group #search_group_members group
end end
def change_manager
if params[:chooseteacher]
man_member = Member.where(:course_id => @course.id, :user_id => @course.tea_id).first
cha_member = Member.find params[:chooseteacher]
if man_member && cha_member
cha_member.member_roles.where("role_id = 9 || role_id = 7").first.update_attributes(:role_id => 3, :is_current => 1)
if cha_member.member_roles.where("role_id = 10").count > 0
cha_member.member_roles.where("role_id = 10").first.destroy
StudentsForCourse.where(:course_id => @course.id, :student_id => cha_member.user_id).destroy_all
end
@course.update_attributes(:tea_id => cha_member.user_id)
man_member.member_roles.first.update_attributes(:role_id => 9)
course_act = CourseActivity.where(:course_id => @course.id, :course_act_id => @course.id, :course_act_type => 'Course').first
course_act.update_column('user_id', cha_member.user_id)
UserActivity.where(:act_id => @course.id, :container_type => 'Course', :act_type => 'Course', :container_id => @course.id).first.update_column('user_id', cha_member.user_id)
ws = WechatService.new
title = "您已成为班级管理员"
ws.create_class_notice cha_member.user_id, "create_course_notice", @course.id,title, @course.name, man_member.user.show_name, @course.members.count, "点击查看班级详情。"
end
end
end
def search_course_teacher_list
q = params[:search] ? "#{params[:search].strip}" : ""
@members = searchTeacherAndAssistantNoManager(@course)
if q.nil? || q == ""
else
members = []
@members.each do |m|
username = m.user[:lastname].to_s.downcase + m.user[:firstname].to_s.downcase
if m && m.user && (m.user[:login].to_s.downcase.include?(q) || m.user[:mail].to_s.downcase.include?(q) || username.include?(q))
members << m
end
end
@members = members
end
end
#查找未分班的学生 #查找未分班的学生
def search_not_group_member def search_not_group_member
@group = CourseGroup.find params[:group_id] @group = CourseGroup.find params[:group_id]
@ -454,6 +493,8 @@ class CoursesController < ApplicationController
end end
def member def member
# 当前用户查看班级消息时,设置消息为已读
update_messsages_to_viewed("CourseMessage", @course)
## 有角色参数的才是课程,没有的就是项目 ## 有角色参数的才是课程,没有的就是项目
if (User.current.admin? || @course.is_public == 1 || (@course.is_public == 0 && User.current.member_of_course?(@course))) if (User.current.admin? || @course.is_public == 1 || (@course.is_public == 0 && User.current.member_of_course?(@course)))
@render_file = 'new_member_list' @render_file = 'new_member_list'
@ -1388,11 +1429,19 @@ class CoursesController < ApplicationController
@members = @course.course_homework_statisticss.reorder("#{@type} #{@order}, total_score #{@order}") @members = @course.course_homework_statisticss.reorder("#{@type} #{@order}, total_score #{@order}")
elsif params[:tab] == "3" elsif params[:tab] == "3"
@homework_id = params[:homework_id] ? params[:homework_id].to_i : 0
@type = params[:type] ? params[:type] : 'project_act_score' @type = params[:type] ? params[:type] : 'project_act_score'
if @homework_id == 0
sql = "SELECT (IFNULL(changeset_num, 0)*4 + issue_num*4 + issue_journal_num*1 + attach_num*5 + board_num*2 + board_message_num*1) AS project_act_score, sql = "SELECT (IFNULL(changeset_num, 0)*4 + issue_num*4 + issue_journal_num*1 + attach_num*5 + board_num*2 + board_message_num*1) AS project_act_score,
changeset_num, issue_num, issue_journal_num, attach_num, board_num, board_message_num, pss.project_id FROM project_scores pss changeset_num, issue_num, issue_journal_num, attach_num, board_num, board_message_num, pss.project_id FROM project_scores pss
JOIN student_work_projects ON student_work_projects.project_id = pss.project_id AND student_work_projects.course_id = #{@course.id} JOIN student_work_projects ON student_work_projects.project_id = pss.project_id AND student_work_projects.course_id = #{@course.id}
GROUP BY pss.project_id ORDER BY #{@type} #{@order}, project_act_score #{@order}" GROUP BY pss.project_id ORDER BY #{@type} #{@order}, project_act_score #{@order}"
else
sql = "SELECT (IFNULL(changeset_num, 0)*4 + issue_num*4 + issue_journal_num*1 + attach_num*5 + board_num*2 + board_message_num*1) AS project_act_score,
changeset_num, issue_num, issue_journal_num, attach_num, board_num, board_message_num, pss.project_id FROM project_scores pss
JOIN student_work_projects ON student_work_projects.project_id = pss.project_id AND student_work_projects.course_id = #{@course.id} AND student_work_projects.homework_common_id = #{@homework_id}
GROUP BY pss.project_id ORDER BY #{@type} #{@order}, project_act_score #{@order}"
end
@members = ProjectScore.find_by_sql(sql) @members = ProjectScore.find_by_sql(sql)
end end

View File

@ -150,6 +150,7 @@ class HomeworkCommonController < ApplicationController
end end
elsif @homework.publish_time <= Date.today && homework_detail_manual.comment_status == 0 elsif @homework.publish_time <= Date.today && homework_detail_manual.comment_status == 0
homework_detail_manual.comment_status = 1 homework_detail_manual.comment_status = 1
create_works_list @homework
status = true status = true
#更新CourseHomeworkStatistics中每个学生的未交作品数 #更新CourseHomeworkStatistics中每个学生的未交作品数
@homework.course.student.each do |student| @homework.course.student.each do |student|

View File

@ -72,6 +72,7 @@ class ProjectsController < ApplicationController
include UsersHelper include UsersHelper
### added by william ### added by william
include ActsAsTaggableOn::TagsHelper include ActsAsTaggableOn::TagsHelper
include ApplicationHelper
# 仅仅为了转换Gitlab地址 # 仅仅为了转换Gitlab地址
def project_home def project_home
@ -575,7 +576,7 @@ class ProjectsController < ApplicationController
if params[:message_id] if params[:message_id]
message_invite(params[:message_id], params[:key]) message_invite(params[:message_id], params[:key])
end end
update_message_status(User.current, @project) update_messsages_to_viewed("ForgeMessage", @project)
# params[:login]为邮箱邀请用户加入,主要功能: # params[:login]为邮箱邀请用户加入,主要功能:
# 1、自动注册 # 1、自动注册
# 2、加入项目、创建角色 # 2、加入项目、创建角色

View File

@ -1253,7 +1253,7 @@ class StudentWorkController < ApplicationController
def appeal_anonymous_score def appeal_anonymous_score
@student_work_score = StudentWorksScore.where("id = #{params[:score_id].to_i}").first @student_work_score = StudentWorksScore.where("id = #{params[:score_id].to_i}").first
@is_last = params[:is_last] @is_last = params[:is_last] == "true" ? true : false
if @student_work_score if @student_work_score
@student_work_score.update_column('appeal_status', 1) @student_work_score.update_column('appeal_status', 1)
score_appeal = StudentWorksScoresAppeal.create(:user_id => User.current.id, :student_works_score_id => @student_work_score.id, :comment => params[:appeal][:comment], :appeal_status => 1) score_appeal = StudentWorksScoresAppeal.create(:user_id => User.current.id, :student_works_score_id => @student_work_score.id, :comment => params[:appeal][:comment], :appeal_status => 1)
@ -1274,8 +1274,8 @@ class StudentWorkController < ApplicationController
def deal_appeal_score def deal_appeal_score
@student_work_score = StudentWorksScore.where("id = #{params[:score_id].to_i}").first @student_work_score = StudentWorksScore.where("id = #{params[:score_id].to_i}").first
@is_last = params[:is_last] @is_last = params[:is_last] == "true" ? true : false
if @student_work_score if @student_work_score && @student_work_score.appeal_status == 1
@student_work_score.update_column('appeal_status', params[:status].to_i) @student_work_score.update_column('appeal_status', params[:status].to_i)
score_appeal = @student_work_score.student_works_scores_appeal score_appeal = @student_work_score.student_works_scores_appeal
score_appeal.applied_messages.update_all(:status => params[:status].to_i == 2 ? 3 : (params[:status].to_i == 3 ? 1 : 2)) score_appeal.applied_messages.update_all(:status => params[:status].to_i == 2 ? 3 : (params[:status].to_i == 3 ? 1 : 2))
@ -1306,12 +1306,12 @@ class StudentWorkController < ApplicationController
CourseMessage.create(:user_id => @student_work_score.user_id, :course_id => course.id, :viewed => false,:course_message_id=> score_appeal.id,:course_message_type=>'StudentWorksScoresAppeal',:status=>params[:status].to_i,:apply_result =>User.current.id) CourseMessage.create(:user_id => @student_work_score.user_id, :course_id => course.id, :viewed => false,:course_message_id=> score_appeal.id,:course_message_type=>'StudentWorksScoresAppeal',:status=>params[:status].to_i,:apply_result =>User.current.id)
CourseMessage.create(:user_id => score_appeal.user_id, :course_id => course.id, :viewed => false,:course_message_id=> score_appeal.id,:course_message_type=>'StudentWorksScoresAppeal',:status=>params[:status].to_i,:apply_result =>User.current.id) CourseMessage.create(:user_id => score_appeal.user_id, :course_id => course.id, :viewed => false,:course_message_id=> score_appeal.id,:course_message_type=>'StudentWorksScoresAppeal',:status=>params[:status].to_i,:apply_result =>User.current.id)
end end
end
@homework = @student_work_score.student_work.homework_common @homework = @student_work_score.student_work.homework_common
@is_teacher = User.current.allowed_to?(:as_teacher, course) || User.current.admin? @is_teacher = User.current.allowed_to?(:as_teacher, course) || User.current.admin?
@work = @student_work_score.student_work @work = @student_work_score.student_work
@is_group_leader = !@work.student_work_projects.empty? @is_group_leader = !@work.student_work_projects.empty?
end end
end
def forbidden_anonymous_comment def forbidden_anonymous_comment
@homework.update_column('anonymous_comment', @homework.anonymous_comment == 0 ? 1 : 0) @homework.update_column('anonymous_comment', @homework.anonymous_comment == 0 ? 1 : 0)

View File

@ -1036,6 +1036,32 @@ module ApplicationHelper
return @result return @result
end end
# 更新各类消息为已读
def update_messsages_to_viewed(message_type, forge_message_id)
if(message_type == "CourseMessage")
query = CourseMessage.where(:course_message_type => ["JoinCourse", "RemoveFromCourse"],
:user_id => User.current,
:course_id => forge_message_id,
:viewed => false)
elsif(message_type == "ForgeMessage")
query = ForgeMessage.where(:forge_message_type => ["ProjectInvite", "JoinProject", "RemoveFromProject"],
:user_id => User.current,
:project_id => forge_message_id,
:viewed => false)
elsif(message_type == "ContestMessage")
query = ContestMessage.where(:contest_message_type => ["ContestRequestDealResult", "JoinContest", "RemoveFromContest"],
:user_id => User.current,
:contest_id => forge_message_id,
:viewed => false)
elsif(message_type == "BlogMessage")
query = BlogMessage.where(:blog_message_type => "BlogComment",
:user_id => User.current,
:blog_id => forge_message_id,
:viewed => false)
end
query.update_all(:viewed => true) unless query.blank?
end
def show_attachment_tip container_id, container_type def show_attachment_tip container_id, container_type
atts = Attachment.where(:container_id => container_id, :container_type => container_type, :is_public => 0) atts = Attachment.where(:container_id => container_id, :container_type => container_type, :is_public => 0)
atts.count > 0 ? true :false atts.count > 0 ? true :false

View File

@ -257,6 +257,14 @@ module CoursesHelper
count.to_s << '+' count.to_s << '+'
end end
def searchTeacherAndAssistantNoManager course
members = []
course.members.includes(:user).each do |m|
members << m if m && m.user && m.user != course.teacher && m.user.has_teacher_role(course)
end
members
end
# ===================================================================================== # =====================================================================================
# return people list # return people list
def searchTeacherAndAssistant project def searchTeacherAndAssistant project
@ -928,5 +936,11 @@ module CoursesHelper
result = !m_roles.blank? result = !m_roles.blank?
result result
end end
#获取该班级下已关联项目的分组作业
def select_group_homeworks course
student_work_pros = course.student_work_projects.where("project_id != -1 && project_id != 0")
homeworks = @course.homework_commons.where(:id => student_work_pros.map(&:homework_common_id))
end
end end

View File

@ -31,7 +31,7 @@ class StudentsForCourse < ActiveRecord::Base
#加入班级时创建已发布作业的作品 #加入班级时创建已发布作业的作品
def create_student_works def create_student_works
course = self.course course = self.course
course.homework_commons.each do |hw| course.homework_commons.includes(:homework_detail_manual).where("homework_detail_manuals.comment_status > 0").each do |hw|
if hw.homework_type != 3 && hw.student_works.where("user_id = #{self.student_id}").count == 0 if hw.homework_type != 3 && hw.student_works.where("user_id = #{self.student_id}").count == 0
hw.student_works << StudentWork.new(:user_id => self.student_id, :name => hw.name.to_s+"的作品提交", :work_status => 0) hw.student_works << StudentWork.new(:user_id => self.student_id, :name => hw.name.to_s+"的作品提交", :work_status => 0)
end end

View File

@ -34,6 +34,12 @@
<li> <li>
<a href="https://www.ucloud.cn/" target="_blank"><img src="images/footer_logo/p-ucloud.png" width="210" height="40" alt="ucloud"></a> <a href="https://www.ucloud.cn/" target="_blank"><img src="images/footer_logo/p-ucloud.png" width="210" height="40" alt="ucloud"></a>
</li> </li>
<li>
<a href="http://www.nju.edu.cn/" target="_blank"><img src="images/footer_logo/p-nju.png" width="210" height="40" alt="南京大学"></a>
</li>
<li>
<a href="http://www.xtu.edu.cn/" target="_blank"><img src="images/footer_logo/p-xtu.png" width="210" height="40" alt="湘潭大学"></a>
</li>
</ul> </ul>
<div class="cl"></div> <div class="cl"></div>
</div> </div>

View File

@ -4,7 +4,7 @@
<ul class="rankList"> <ul class="rankList">
<h3 style="font-size: 14px; font-weight: normal;"> <h3 style="font-size: 14px; font-weight: normal;">
<% if (User.current.logged? && course.open_student == 1) || (User.current.member_of_course?(course)) || User.current.admin? %> <% if (User.current.logged? && course.open_student == 1) || (User.current.member_of_course?(course)) || User.current.admin? %>
<%= link_to "活跃度", course_member_path(course, :role => 2, :sort_type => 'act_score'), :class => 'fontGrey3' %> <%= link_to "活跃度", course_statistics_course_path(@course), :class => 'fontGrey3' %>
<% else %> <% else %>
<span class="fontGrey7"> 活跃度 </span> <span class="fontGrey7"> 活跃度 </span>
<% end %> <% end %>

View File

@ -3,7 +3,7 @@
<ul class="rankList"> <ul class="rankList">
<h4 style="font-size: 14px; font-weight: normal;"> <h4 style="font-size: 14px; font-weight: normal;">
<% if (User.current.logged? && course.open_student == 1) || (User.current.member_of_course?(course)) || User.current.admin? %> <% if (User.current.logged? && course.open_student == 1) || (User.current.member_of_course?(course)) || User.current.admin? %>
<%= link_to "英雄榜", course_member_path(course, :role => 2), :class => 'fontGrey3' %> <%= link_to "英雄榜", course_statistics_course_path(@course, :tab => 2), :class => 'fontGrey3' %>
<% else %> <% else %>
<span class="fontGrey7">英雄榜</span> <span class="fontGrey7">英雄榜</span>
<% end %> <% end %>

View File

@ -0,0 +1 @@
window.location.href = "<%= settings_course_path(@course.id, :tab => 'member') %>";

View File

@ -42,14 +42,17 @@
</div> </div>
<div class=" clear ml10 mr10" > <div class=" clear ml10 mr10" >
<!--<div class="mb10 clear">--> <div class="mb10 clear">
<!--<label class=" fl mt5 c_grey02">&nbsp;选择作业&nbsp;&nbsp;:&nbsp;</label>--> <label class=" fl mt5 c_grey02">&nbsp;选择作业&nbsp;&nbsp;:&nbsp;</label>
<!--<select class=" fl newupload_select w150" style="width:150px; height:30px; background:#fff;">--> <% homeworks = select_group_homeworks @course %>
<!--<option>全部</option>--> <% is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin? %>
<!--<option>第一作业</option>--> <select id="homework_select" class=" fl newupload_select w150" onchange="select_homework_projects();" style="width:150px; height:30px; background:#fff;">
<!--<option>第二次作业</option>--> <option value="0">全部</option>
<!--</select>--> <% homeworks.each do |homework| %>
<!--</div>--> <option value="<%= homework.id %>">作业<%= (get_hw_index(homework, is_teacher) + 1)%><%= homework.name %></option>
<% end %>
</select>
</div>
<div id="project_table_<%=@course.id %>"> <div id="project_table_<%=@course.id %>">
<% if @tab == 3 %> <% if @tab == 3 %>
@ -71,6 +74,9 @@
g('game-setting-content-<%= @tab %>').className='dis'; g('game-setting-content-<%= @tab %>').className='dis';
g('game-setting-tab-nav-<%= @tab %>').className='game-setting-nav-hover'; g('game-setting-tab-nav-<%= @tab %>').className='game-setting-nav-hover';
<% end %> <% end %>
<% if @homework_id != 0 %>
$("#homework_select option[value='<%= @homework_id %>']").attr("selected",true);
<% end %>
}); });
function g(o){ function g(o){
@ -83,6 +89,13 @@
} }
g('game-setting-content-'+n).className='dis'; g('game-setting-content-'+n).className='dis';
g('game-setting-tab-nav-'+n).className='game-setting-nav-hover'; g('game-setting-tab-nav-'+n).className='game-setting-nav-hover';
$.get('<%= course_statistics_course_path() %>'+'?tab='+n); if(n == 3){
$("#homework_select option[value='0']").attr("selected",true);
}
$.get('<%= course_statistics_course_path(@course) %>'+'?tab='+n);
}
function select_homework_projects(){
$.get('<%= course_statistics_course_path(@course) %>'+'?tab=3&homework_id='+$("#homework_select").val());
} }
</script> </script>

View File

@ -7,7 +7,7 @@
<li class="mt5 ml45 mb10"> <li class="mt5 ml45 mb10">
<label><span class="c_red">*</span>&nbsp;<%= l(:label_tags_syllabus_name)%>&nbsp;&nbsp;</label> <label><span class="c_red">*</span>&nbsp;<%= l(:label_tags_syllabus_name)%>&nbsp;&nbsp;</label>
<% if @syllabus.nil? %> <% if @syllabus.nil? %>
<%= select_tag :syllabus_id,options_for_select(course_syllabus_option,@course.syllabus_id), {:id=>"new_syllabus_id", :class=>"syllabus_input w300 h28"} %> <%= select_tag :syllabus_id,options_for_select(course_syllabus_option,@course.syllabus_id), {:id=>"new_syllabus_id", :class=>"syllabus_input w300 h28", :onchange => "change_course_name();"} %>
<% else %> <% else %>
<span id="course_syllabus_title"><%=@syllabus.title %></span> <span id="course_syllabus_title"><%=@syllabus.title %></span>
<input style="display: none;" name="syllabus_id" value="<%=@syllabus.id %>" /> <input style="display: none;" name="syllabus_id" value="<%=@syllabus.id %>" />
@ -28,7 +28,7 @@
<!--<li class="ml125 mt10 mb10 fontGrey2" style="max-width: 544px;">班级是一个由教师、助教(教辅)和学生组成的临时的教学群体,在规定的时间内(如一个学期)完成一门课程规定的教学任务。本质上,一门课程就是一个教学计划。</li>--> <!--<li class="ml125 mt10 mb10 fontGrey2" style="max-width: 544px;">班级是一个由教师、助教(教辅)和学生组成的临时的教学群体,在规定的时间内(如一个学期)完成一门课程规定的教学任务。本质上,一门课程就是一个教学计划。</li>-->
<li class="mt10 ml45"> <li class="mt10 ml45">
<label><span class="c_red">*</span>&nbsp;<%= l(:label_class_period)%>&nbsp;&nbsp;</label> <label><span class="c_red">*</span>&nbsp;<%= l(:label_class_period)%>&nbsp;&nbsp;</label>
<input type="text" name="class_period" id="new_class_period" class="hwork_input02 w289" onkeyup="regex_course_class_period('new');" placeholder="例如54" maxlength="6"> <input type="text" name="class_period" id="new_class_period" class="courses_input w289" onkeyup="regex_course_class_period('new');" placeholder="例如54" maxlength="6">
<span class="c_red" id="new_course_class_period_notice" style="display: none;"></span> <span class="c_red" id="new_course_class_period_notice" style="display: none;"></span>
</li> </li>
<div class="cl"></div> <div class="cl"></div>
@ -116,5 +116,15 @@
$("#new_term").change(function(){ $("#new_term").change(function(){
document.getElementById("new_end_term").options[document.getElementById("new_term").selectedIndex].selected = true; document.getElementById("new_end_term").options[document.getElementById("new_term").selectedIndex].selected = true;
}); });
<% unless @syllabus.nil? %>
$("#new_course_name").val('<%= @syllabus.title %>');
$("#new_course_name").focus();
<% end %>
}); });
function change_course_name(){
if($("#new_syllabus_id").val() != '0') {
$("#new_course_name").val($("#new_syllabus_id").find("option:selected").text());
$("#new_course_name").focus();
}
}
</script> </script>

View File

@ -0,0 +1 @@
$("#search_member_list").html("<%= escape_javascript(render :partial => 'courses/settings/search_teacher_list', :locals => {:members => @members}) %>");

View File

@ -0,0 +1,76 @@
<div id="muban_popup_box" style="width:424px;">
<div class="muban_popup_top">
<h3 class="fl">更换管理员</h3>
<a href="javascript:void(0);" class="muban_icons_close fr"></a>
<div class="cl"></div>
</div>
<div class="muban_popup_con clear">
<div class="mr10 ml10">
<div class="alert alert-orange mb10 mt10">
选择的成员将会成为新的管理员,您的角色将变更为“教师”
</div>
<div class="" style="border: 1px solid #ccc">
<input type="text" name="search" value="<%=@search %>" placeholder="支持姓名、邮箱、登录名搜索" class="subjectSearch" style="height: 32px; width: 380px; margin: 5px 7px 0 7px; border: 1px solid #e5e5e5;" />
<div class="cl"></div>
<%= form_tag(change_manager_course_path(@course), method: 'post', :remote => true, :class => "",:id => "change_manager_form") do %>
<div id="search_member_list" style="padding: 0 7px;">
<%=render :partial => 'courses/settings/search_teacher_list', :locals => {:members => nil} %>
</div>
<% end %>
<div class="cl"></div>
<div class="cl"></div>
</div>
<div class="mt10">
<span class="c_red none" id="add_members_notice"></span>
<a href="javascript:void(0);" class="fr sy_btn_blue" onclick="submit_add_members_form();">确定</a>
<a href="javascript:void(0);" class="fr sy_btn_grey mr10" onclick="hideModal();">取消</a>
<div class="cl"></div>
</div>
</div>
</div>
</div>
<script>
var lastSearchCondition = '';
var count = 0;
function search_mems(e){
if($(e.target).val().trim() == lastSearchCondition && lastSearchCondition != '')
{
return;
}
lastSearchCondition = $(e.target).val().trim();
$.ajax({
url: '<%= url_for(:controller => 'courses', :action => 'search_course_teacher_list', :id => @course.id) %>'+'?search='+ e.target.value,
type:'get'
});
}
function throttle(method,context,e){
clearTimeout(method.tId);
method.tId=setTimeout(function(){
method.call(context,e);
},500);
}
//查询项目
$("input[name='search']").on('input', function (e) {
throttle(search_mems,window,e);
});
$(document).ready(function(){
$.ajax({
url: '<%= url_for(:controller => 'courses', :action => 'search_course_teacher_list', :id => @course.id) %>',
type:'get'
});
});
function submit_add_members_form(){
if($("input[name='chooseteacher']:checked").length == 0) {
$("#add_members_notice").show();
$("#add_members_notice").html("请先选择成员");
} else{
$("#change_manager_form").submit();
hideModal();
}
}
</script>

View File

@ -59,7 +59,11 @@
<% end %> <% end %>
</td> </td>
<td> <td>
<% unless member.user == @course.teacher %> <% if member.user == @course.teacher %>
<% if User.current == @course.teacher %>
<a href="javascript:void(0)" class="sy_btn_green" onclick="change_manager();">更换管理员</a>
<% end %>
<% else %>
<a href="javascript:void(0)" class="sy_btn_blue mr5" onclick="edit_member($(this), <%=member.id %>);">编辑</a> <a href="javascript:void(0)" class="sy_btn_blue mr5" onclick="edit_member($(this), <%=member.id %>);">编辑</a>
<a href="javascript:void(0)" class="sy_btn_blue mr5" style="display: none;" onclick="$('#member-<%= member.id%>-roles-form').submit();">保存</a> <a href="javascript:void(0)" class="sy_btn_blue mr5" style="display: none;" onclick="$('#member-<%= member.id%>-roles-form').submit();">保存</a>
<a href="javascript:void(0)" class="sy_btn_grey mr5" style="display: none;" onclick="cancel_edit($(this), <%=member.id %>);">取消</a> <a href="javascript:void(0)" class="sy_btn_grey mr5" style="display: none;" onclick="cancel_edit($(this), <%=member.id %>);">取消</a>
@ -87,4 +91,8 @@
$('#delete_member_' + id).show(); $('#delete_member_' + id).show();
$(div).hide(); $(div).hide();
} }
function change_manager(){
var htmlvalue = "<%= escape_javascript(render :partial => 'courses/settings/change_manager') %>";
pop_box_new(htmlvalue, 424, 366);
}
</script> </script>

View File

@ -0,0 +1,12 @@
<ul class="mt10" style="height:160px; min-height:160px; max-height:160px; overflow:auto;">
<% unless members.nil? || members.empty? %>
<% members.each do |mem| %>
<li>
<input type="radio" name="chooseteacher" value="<%=mem.id %>" class="mr5" style="vertical-align:middle;" />
<span class="break_word" style="width: 350px;"><%=mem.user.show_name %><%= mem.user.login %></span>
</li>
<% end %>
<% end %>
</ul>
<div class="cl"></div>

View File

@ -20,7 +20,10 @@
var question_form = $("form.new_exercise_question"); var question_form = $("form.new_exercise_question");
if($("#polls_head_edit").is(":visible")){ if($("#polls_head_edit").is(":visible")){
alert("请先保存测验标题及测验基本信息。"); alert("请先保存测验标题及测验基本信息。");
} else if(question_form.length > 0) { } else if($("#show_exercise_time").html().trim() == ""){
notice_box("请先设置测验的截止时间");
}
else if(question_form.length > 0) {
alert("请先保存正在编辑的题目。"); alert("请先保存正在编辑的题目。");
} else{ } else{
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'exercise_submit_info', locals: { :exercise => exercise}) %>'); $('#ajax-modal').html('<%= escape_javascript(render :partial => 'exercise_submit_info', locals: { :exercise => exercise}) %>');

View File

@ -9,7 +9,7 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div id="polls_list" class="polls_list"> <div id="polls_list" class="polls_list">
<% if @exercises.count != 0 %>
<% @exercises.each_with_index do |exercise,index|%> <% @exercises.each_with_index do |exercise,index|%>
<ul id="exercises_<%= exercise.id %>" class="exercise_list_div" onmouseover="$('#exercise_opr_<%=exercise.id %>').show();" onmouseout="$('#exercise_opr_<%=exercise.id %>').hide();"> <ul id="exercises_<%= exercise.id %>" class="exercise_list_div" onmouseover="$('#exercise_opr_<%=exercise.id %>').show();" onmouseout="$('#exercise_opr_<%=exercise.id %>').hide();">
<%= render :partial => 'exercise', :locals => {:exercise => exercise,:index => index} %> <%= render :partial => 'exercise', :locals => {:exercise => exercise,:index => index} %>
@ -22,4 +22,8 @@
</ul> </ul>
<div class="cl"></div> <div class="cl"></div>
<% else %>
<div class="icons_tishi"><img src="/images/sy/icons_smile.png" width="110" height="110" alt="" ></div>
<p class="sy_tab_con_p">没有数据可以显示!</p>
<% end %>
</div><!--列表end--> </div><!--列表end-->

View File

@ -6,7 +6,7 @@
<% unless exercise.publish_time.nil? %> <% unless exercise.publish_time.nil? %>
<span class="mr100">发布时间:<%=Time.parse(h(exercise.publish_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.publish_time%></span> <span class="mr100">发布时间:<%=Time.parse(h(exercise.publish_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.publish_time%></span>
<% end %> <% end %>
<span class="mr100">截止时间:<%=Time.parse(h(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.end_time %></span> <span class="mr100">截止时间:<font id="show_exercise_time"><%=Time.parse(h(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.end_time %></font></span>
<% if exercise.time != -1 %> <% if exercise.time != -1 %>
<span>测验时长:<%= exercise.time %>分钟</span> <span>测验时长:<%= exercise.time %>分钟</span>
<% end %> <% end %>

View File

@ -1,3 +1,4 @@
<% if curse_attachments.count != 0 %>
<% curse_attachments.each do |file| %> <% curse_attachments.each do |file| %>
<% if file.is_public? || User.current.member_of_course?(course) || User.current.admin? %> <% if file.is_public? || User.current.member_of_course?(course) || User.current.admin? %>
<div id="resource_detail_<%=file.id %>"> <div id="resource_detail_<%=file.id %>">
@ -11,4 +12,11 @@
<ul class="wlist"> <ul class="wlist">
<%= pagination_links_full @feedback_pages, @feedback_count, :per_page_links => false, :remote => true, :flag => true%> <%= pagination_links_full @feedback_pages, @feedback_count, :per_page_links => false, :remote => true, :flag => true%>
</ul> </ul>
<% else %>
<div class="cl"></div>
<div style="background-color: #fff; height: 400px;">
<div class="icons_tishi" style="margin-top: 10px; padding-top: 125px;"><img src="/images/sy/icons_smile.png" width="110" height="110" alt="" ></div>
<p class="sy_tab_con_p">没有数据可以显示!</p>
</div>
<% end %>

View File

@ -1,3 +1,4 @@
<% if homework_commons.count != 0 %>
<%= 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="text-align:center;"> <div style="text-align:center;">
@ -8,3 +9,10 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
</div> </div>
<% else %>
<div class="cl"></div>
<div style="background-color: #fff; height: 400px;">
<div class="icons_tishi" style="margin-top: 10px; padding-top: 125px;"><img src="/images/sy/icons_smile.png" width="110" height="110" alt="" ></div>
<p class="sy_tab_con_p">没有数据可以显示!</p>
</div>
<% end %>

View File

@ -1,7 +1,7 @@
<% if @homework.homework_type == 2 %> <% if @homework.homework_type == 2 %>
<% if @homework.anonymous_comment == 0 %> <% if @homework.anonymous_comment == 0 %>
var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_pro',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>"; var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_pro',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>";
pop_box_new(htmlvalue, 630, 914); pop_box_new(htmlvalue, 630, 772);
<% else %> <% else %>
var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_pro_anon',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>"; var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_pro_anon',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>";
pop_box_new(htmlvalue, 530, 404); pop_box_new(htmlvalue, 530, 404);
@ -9,7 +9,7 @@
<% else %> <% else %>
<% if @homework.anonymous_comment == 0 %> <% if @homework.anonymous_comment == 0 %>
var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_non_pro',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>"; var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_non_pro',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>";
pop_box_new(htmlvalue, 630, 885); pop_box_new(htmlvalue, 630, 742);
<% else %> <% else %>
var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_none_pro_anon',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>"; var htmlvalue = "<%= escape_javascript(render :partial => 'homework_common/set_score_rule_none_pro_anon',:locals => {:homework => @homework, :student_path => false, :user_activity_id => @user_activity_id,:hw_status => @hw_status}) %>";
pop_box_new(htmlvalue, 530, 332); pop_box_new(htmlvalue, 530, 332);

View File

@ -74,7 +74,7 @@
</span> </span>
</p> </p>
</div> </div>
<div class="sy_class_info fl ml15"> <div class="sy_class_info fl ml15 mt14">
<div class="sy_class_titbox"> <div class="sy_class_titbox">
<h3 class="fl sy_class_title"> <h3 class="fl sy_class_title">
<%=@course.name %> <%=@course.name %>
@ -82,13 +82,11 @@
<span class="<%= @course.is_public == 0 ? 'hw_icon_private' : 'hw_icon_open' %> fl mr20 mt3"></span> <span class="<%= @course.is_public == 0 ? 'hw_icon_private' : 'hw_icon_open' %> fl mr20 mt3"></span>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<p class="sy_cgrey mb5"> <p class="sy_cgrey mb5 f14 fl mt5">
<span class="mr25">学期:<span class="sy_cblack"><%= current_time_and_term @course %></span></span>
<span class="mr25">教师:<%= course_teacher_link teacher_num %></span> <span class="mr25">教师:<%= course_teacher_link teacher_num %></span>
<span class="mr25">学生:<%= course_student_link student_num %></span> <span class="mr25">学生:<%= course_student_link student_num %></span>
</p> <span class="mr25"><%= current_time_and_term @course %></span>
<p class="sy_cgrey fl mt5"> <span class="mr25"><%= get_occupation_from_user(@course.teacher).blank? ? '无' : get_occupation_from_user(@course.teacher) %></span>
<span class="mr25">单位:<span class="sy_cblack"><%= get_occupation_from_user(@course.teacher).blank? ? '无' : get_occupation_from_user(@course.teacher) %></span></span>
</p> </p>
<% is_TA = get_user_member_roles_course @course, User.current, 7 %> <% is_TA = get_user_member_roles_course @course, User.current, 7 %>
<% is_TE = get_user_member_roles_course @course, User.current, 9 %> <% is_TE = get_user_member_roles_course @course, User.current, 9 %>
@ -101,7 +99,7 @@
<%= link_to '学生身份', switch_role_course_path(@course, :user_id => User.current.id, :curr_role => (is_TA ? 7 : 9), :tar_role => 10), :class => "sy_btn_orange mr10 fl", :title => "由教师身份切换至学生身份" %> <%= link_to '学生身份', switch_role_course_path(@course, :user_id => User.current.id, :curr_role => (is_TA ? 7 : 9), :tar_role => 10), :class => "sy_btn_orange mr10 fl", :title => "由教师身份切换至学生身份" %>
<% end %> <% end %>
<% unless (is_teacher || is_TA || is_TE || is_ST) %> <% unless (is_teacher || is_TA || is_TE || is_ST) %>
<div id="join_in_course_header"><%= join_in_course_header(@course, User.current) %></div> <div id="join_in_course_header" class="fl"><%= join_in_course_header(@course, User.current) %></div>
<% end %> <% end %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>

View File

@ -39,7 +39,7 @@
</ul> </ul>
<div class="cl"></div>--> <div class="cl"></div>-->
<ul class="copyright"> <ul class="copyright">
<li class="fl mr30"><%= l(:label_rights_reserved)%></li> <li class="fl mr10"><%= l(:label_rights_reserved)%></li>
<li class="fl"><a href="http://www.miibeian.gov.cn/" class="fl f_grey" target="_blank"><%= l(:label_license)%></a></li> <li class="fl"><a href="http://www.miibeian.gov.cn/" class="fl f_grey" target="_blank"><%= l(:label_license)%></a></li>
</ul> </ul>
</ul> </ul>

View File

@ -58,7 +58,7 @@
<li id="user_07" class="user_icons_new"> <li id="user_07" class="user_icons_new">
<%= link_to "新建项目", new_project_path(:host=> Setting.host_name), :target => "_blank", :style => "font-size:14px;" %> <%= link_to "新建项目", new_project_path(:host=> Setting.host_name), :target => "_blank", :style => "font-size:14px;" %>
</li> </li>
<li id="user_08" class="user_icons_addproject"> <li id="user_08" class="user_icons_addproject mb10">
<%= link_to "加入项目", applied_join_project_path, :remote => true, :method => "post", :style => "font-size:14px;" %> <%= link_to "加入项目", applied_join_project_path, :remote => true, :method => "post", :style => "font-size:14px;" %>
</li> </li>
<li id="user_09" class="user_icons_myissues"> <li id="user_09" class="user_icons_myissues">

View File

@ -1,3 +1,4 @@
<% if polls.count != 0 %>
<% polls.each_with_index do |poll, i|%> <% polls.each_with_index do |poll, i|%>
<ul id="polls_<%= poll.id %>" class="exercise_list_div" onmouseover="$('#exercise_opr_<%=poll.id %>').show();" onmouseout="$('#exercise_opr_<%=poll.id %>').hide();"> <ul id="polls_<%= poll.id %>" class="exercise_list_div" onmouseover="$('#exercise_opr_<%=poll.id %>').show();" onmouseout="$('#exercise_opr_<%=poll.id %>').hide();">
<%= render :partial => 'poll', :locals => {:poll => poll, :index => i} %> <%= render :partial => 'poll', :locals => {:poll => poll, :index => i} %>
@ -8,3 +9,7 @@
<ul class="wlist"> <ul class="wlist">
<%= pagination_links_full obj_pages, obj_count, :per_page_links => false, :remote => false, :flag => true%> <%= pagination_links_full obj_pages, obj_count, :per_page_links => false, :remote => false, :flag => true%>
</ul> </ul>
<% else %>
<div class="icons_tishi"><img src="/images/sy/icons_smile.png" width="110" height="110" alt="" ></div>
<p class="sy_tab_con_p">没有数据可以显示!</p>
<% end %>

View File

@ -3,7 +3,7 @@
<%= form_for @project,:url => { :action => 'modules', :id => @project },:html => {:id => 'modules-form',:method => :post} do |f| %> <%= form_for @project,:url => { :action => 'modules', :id => @project },:html => {:id => 'modules-form',:method => :post} do |f| %>
<% Redmine::AccessControl.available_project_modules.each do |m| %> <% Redmine::AccessControl.available_project_modules.each do |m| %>
<li class="clear"> <li class="clear">
<%= check_box_tag('enabled_module_names[]', m, @project.module_enabled?(m), :class=>"fl mt8").html_safe -%> <%= check_box_tag('enabled_module_names[]', m, @project.module_enabled?(m), :class=>"fl mt8", :id => 'project_module_'+m.to_s ).html_safe -%>
<p class="fl ml5"><%= l_or_humanize(m, :prefix => "project_module_").html_safe %></p> <p class="fl ml5"><%= l_or_humanize(m, :prefix => "project_module_").html_safe %></p>
</li> </li>
<% end %> <% end %>
@ -16,27 +16,26 @@
</li> </li>
</ul> </ul>
<script>
<!--h2 class="c_blue mb10">请选择此项目可以使用的模块:</h2> $(function(){
<%#= form_for @project,:url => { :action => 'modules', :id => @project },:html => {:id => 'modules-form',:method => :post} do |f| %> if($("#project_module_issue_tracking").is(":checked")){
<div class="box pl15"> $("#project_module_training_tasks").attr('disabled', 'disabled')
<ul> }else if($("#project_module_training_tasks").is(":checked")){
<%# Redmine::AccessControl.available_project_modules.each do |m| %> $("#project_module_issue_tracking").attr('disabled', 'disabled');
<li> }
<label> $("#project_module_issue_tracking").on('click', function(){
<%#= check_box_tag('enabled_module_names[]', m, @project.module_enabled?(m)).html_safe -%> if($("#project_module_issue_tracking").is(":checked")) {
<%#= l_or_humanize(m, :prefix => "project_module_").html_safe %> $("#project_module_training_tasks").attr('disabled', 'disabled');
</label> }else{
</li> $("#project_module_training_tasks").removeAttr('disabled');
<%# end %> }
</ul> });
</div><!--box end--> $("#project_module_training_tasks").on('click', function(){
<!--p class="mb10 c_grey"> if($("#project_module_training_tasks").is(":checked")){
<#%= check_all_links('modules-form').html_safe %> $("#project_module_issue_tracking").attr('disabled', 'disabled');
</p> }else {
<p> $("#project_module_issue_tracking").removeAttr('disabled');
<a href="javascript:void(0)" class="blue_btn" onclick="$('#modules-form').submit();"> }
<%#= l(:button_save) %> });
</a> });
</p> </script>
<%# end %>-->

View File

@ -57,14 +57,14 @@
<% if @type == nil || @type == "1" %> <% if @type == nil || @type == "1" %>
<div id="merge_record_1"> <div id="merge_record_1" style="width: 998px">
<%= render :partial => "pull_requests/pull_request_comments" %> <%= render :partial => "pull_requests/pull_request_comments" %>
</div> </div>
<% end %> <% end %>
<div id="merge_record_2" class="undis"> <div id="merge_record_2" class="undis" style="width: 998px">
<%= render :partial => "pull_requests/pull_request_commits" %> <%= render :partial => "pull_requests/pull_request_commits" %>
</div> </div>
<div id="merge_record_3" class="undis"> <div id="merge_record_3" class="undis" style="width: 998px">
<%= render :partial => "pull_requests/pull_request_changes" %> <%= render :partial => "pull_requests/pull_request_changes" %>
</div> </div>

View File

@ -8,7 +8,7 @@
:method => "post", :remote => true) do |f|%> :method => "post", :remote => true) do |f|%>
<div class="muban_popup_con clear"> <div class="muban_popup_con clear">
<div class="clear mt15 ml20"> <div class="clear mt15 ml20">
<label style="vertical-align: top;"><span class="c_red" style="vertical-align: top;">*</span>申诉理由:</label> <span class="c_red" style="vertical-align: top;">*</span><span style="vertical-align: top;">申诉理由:</span>
<%= f.text_area 'comment', :id => 'appeal_comment', :style => 'height: 70px; width: 414px;', :placeholder => "请输入你的申诉理由最多250个字符。",:maxlength => 250 %> <%= f.text_area 'comment', :id => 'appeal_comment', :style => 'height: 70px; width: 414px;', :placeholder => "请输入你的申诉理由最多250个字符。",:maxlength => 250 %>
<p id="notice_notes" class="c_red none" style="margin-left: 68px;">请输入申诉理由</p> <p id="notice_notes" class="c_red none" style="margin-left: 68px;">请输入申诉理由</p>
<div class="alert alert-orange mb10 mt10 mr20"> <div class="alert alert-orange mb10 mt10 mr20">

View File

@ -55,10 +55,10 @@
<div class="ping_back mt10" style="border-top: 1px dashed #CCCCCC; padding-top: 10px;"> <div class="ping_back mt10" style="border-top: 1px dashed #CCCCCC; padding-top: 10px;">
<span class="fl">申诉</span> <span class="fl">申诉</span>
<% if score.appeal_status == 1 && score.student_work.user == User.current %> <% if score.appeal_status == 1 && score.student_work.user == User.current %>
<a href="javascript:void(0)" onclick="delete_confirm_box('<%=deal_appeal_score_student_work_index_path(:is_last=>true,:score_id=>score.id,:status=>2) %>', '撤销后将不能再对该成绩发起申诉<br/>您是否确认撤销申诉');" class="fr linkBlue mr5 ml20">撤销申诉</a> <a href="javascript:void(0)" onclick="delete_confirm_box('<%=deal_appeal_score_student_work_index_path(:is_last=>is_last,:score_id=>score.id,:status=>2) %>', '撤销后将不能再对该成绩发起申诉<br/>您是否确认撤销申诉');" class="fr linkBlue mr5 ml20">撤销申诉</a>
<% elsif @is_teacher && score.appeal_status == 1 %> <% elsif @is_teacher && score.appeal_status == 1 %>
<a href="javascript:void(0)" onclick="delete_confirm_box('<%=deal_appeal_score_student_work_index_path(:is_last=>true,:score_id=>score.id,:status=>3) %>', '此匿评成绩将被废弃,且评阅人的作品将被违规扣分<br/>您是否确定接受');" class="fr linkBlue mr5">接受</a> <a href="javascript:void(0)" onclick="delete_confirm_box('<%=deal_appeal_score_student_work_index_path(:is_last=>is_last,:score_id=>score.id,:status=>3) %>', '此匿评成绩将被废弃,且评阅人的作品<br/>将被违规扣分,您是否确定接受');" class="fr linkBlue mr5">接受</a>
<a href="javascript:void(0)" onclick="delete_confirm_box('<%=deal_appeal_score_student_work_index_path(:is_last=>true,:score_id=>score.id,:status=>4) %>', '此匿评成绩将被认为合理<br/>您是否确定拒绝');" class="fr linkBlue mr10 ml20">拒绝</a> <a href="javascript:void(0)" onclick="delete_confirm_box('<%=deal_appeal_score_student_work_index_path(:is_last=>is_last,:score_id=>score.id,:status=>4) %>', '此匿评成绩将被认为合理<br/>您是否确定拒绝');" class="fr linkBlue mr10 ml20">拒绝</a>
<% end %> <% end %>
<span class="fr c_grey"> <span class="fr c_grey">
<%=format_time score.student_works_scores_appeal.updated_at %> <%=format_time score.student_works_scores_appeal.updated_at %>

View File

@ -15,6 +15,7 @@
$("#student_work_tab2").click(); $("#student_work_tab2").click();
<% elsif @tab == 3 %> <% elsif @tab == 3 %>
$("#student_work_tab3").click(); $("#student_work_tab3").click();
$("#project_activities").show();
<% end %> <% end %>
sd_create_editor_from_data(<%= @homework.id %>, null, "100%", "<%= @homework.class.to_s %>"); sd_create_editor_from_data(<%= @homework.id %>, null, "100%", "<%= @homework.class.to_s %>");
}); });
@ -26,6 +27,11 @@
} }
$('#student_work_tab'+n).addClass('selected'); $('#student_work_tab'+n).addClass('selected');
$('#student_work_con'+n).removeClass('undis'); $('#student_work_con'+n).removeClass('undis');
if (n == 3){
$("#project_activities").show();
} else{
$("#project_activities").hide();
}
} }
$("#moreProject_<%=@homework.id %>").click(function(){ $("#moreProject_<%=@homework.id %>").click(function(){
@ -160,11 +166,19 @@
<li onclick="HoverLi(3);" id="student_work_tab3"> <li onclick="HoverLi(3);" id="student_work_tab3">
<a href="javascript:void(0);" class="fontGrey3">关联项目列表</a> <a href="javascript:void(0);" class="fontGrey3">关联项目列表</a>
</li> </li>
<% if !@homework.student_work_projects.empty? %>
<li style="width:415px;">&nbsp;
<%= link_to '项目活跃度', course_statistics_course_path(@homework.course, :tab => 3, :homework_id => @homework.id),
:id => 'project_activities', :class => 'fr fontBlue2 none', :style => 'font-weight: normal;', :target => '_blank' %>
</li>
<% else %>
<li style="width:415px;">&nbsp;</li> <li style="width:415px;">&nbsp;</li>
<% end %>
<% else %> <% else %>
<li style="width:515px;">&nbsp;</li> <li style="width:515px;">&nbsp;</li>
<% end %> <% end %>
</ul> </ul>
<div class="cl"></div>
<div id="student_work_con1"> <div id="student_work_con1">
<div class="homepagePostBrief" id="homework_post_brief"> <div class="homepagePostBrief" id="homework_post_brief">
@ -184,7 +198,7 @@
</div> </div>
</div> </div>
<% if @homework.homework_type == 3 && @homework.homework_detail_group.base_on_project == 1 %> <% if is_group_project_homework %>
<div class="undis" id="student_work_con3"> <div class="undis" id="student_work_con3">
<% student_work_ids = @homework.student_works.has_committed.blank? ? "(-1)" : "(" + @homework.student_works.has_committed.map{|st| st.id}.join(",") + ")" %> <% student_work_ids = @homework.student_works.has_committed.blank? ? "(-1)" : "(" + @homework.student_works.has_committed.map{|st| st.id}.join(",") + ")" %>
<% student_work_projects = @homework.student_work_projects.where("student_work_id in #{student_work_ids} or student_work_id is null") %> <% student_work_projects = @homework.student_work_projects.where("student_work_id in #{student_work_ids} or student_work_id is null") %>

View File

@ -13,25 +13,25 @@
<tbody> <tbody>
<% @unfinished_homeworks.each do |uh| %> <% @unfinished_homeworks.each do |uh| %>
<tr> <tr>
<th class="homepageTabAvatar"> <td class="homepageTabAvatar">
<%= link_to image_tag(url_to_avatar(uh.user), :width => "30", :height => "30"), user_path(uh.user), :target => '_blank' %> <%= link_to image_tag(url_to_avatar(uh.user), :width => "30", :height => "30"), user_path(uh.user), :target => '_blank' %>
</th> </td>
<th> <td>
<li class="homepageTabTitle"> <li class="homepageTabTitle">
<%= link_to uh.name.to_s, student_work_index_path( :homework => uh.id, :tab => 1), :target => "_blank", :class => "homepageTabTitle fl ml5", :title => "#{uh.name.to_s}" %> <%= link_to uh.name.to_s, student_work_index_path( :homework => uh.id, :tab => 1), :target => "_blank", :class => "homepageTabTitle fl ml5", :title => "#{uh.name.to_s}" %>
</li> </li>
</th> </td>
<th> <td>
<li class="homepageTabProjectName ml5"> <li class="homepageTabProjectName ml5">
<%= link_to uh.course.try(:name), course_path(uh.course_id), :target => "_blank", :class => "homepageTabTitle ml5", :target => "_blank", :title => "#{uh.course.try(:name)}" %> <%= link_to uh.course.try(:name), course_path(uh.course_id), :target => "_blank", :class => "homepageTabTitle ml5", :target => "_blank", :title => "#{uh.course.try(:name)}" %>
<li> <li>
</th> </td>
<th> <td>
<li class="homepageTabAuthor ml5" > <li class="homepageTabAuthor ml5" >
<%= homework_type_tip(uh.homework_type) %> <%= homework_type_tip(uh.homework_type) %>
</li> </li>
</th> </td>
<th> <td>
<li class="homepageTabTime ml5" > <li class="homepageTabTime ml5" >
<% end_time = uh.end_time.to_time.to_i + 24*60*60 - 1 %> <% end_time = uh.end_time.to_time.to_i + 24*60*60 - 1 %>
<% if end_time > Time.now.to_i %> <% if end_time > Time.now.to_i %>
@ -42,7 +42,7 @@
<span class="c_red">已截止</span> <span class="c_red">已截止</span>
<% end %> <% end %>
</li> </li>
</th> </td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>

View File

@ -11,21 +11,21 @@
<tbody> <tbody>
<% @unfinished_poll.each do |up| %> <% @unfinished_poll.each do |up| %>
<tr> <tr>
<th class="homepageTabAvatar"> <td class="homepageTabAvatar">
<%= link_to image_tag(url_to_avatar(up.user), :width => "30", :height => "30"), user_path(up.user), :target => '_blank' %> <%= link_to image_tag(url_to_avatar(up.user), :width => "30", :height => "30"), user_path(up.user), :target => '_blank' %>
</th> </td>
<th> <td>
<li class="homepageTabPollTitle"> <li class="homepageTabPollTitle">
<%= link_to up.polls_name.to_s, poll_path(up.id), :target => "_blank", :class => "homepageTabPollTitle fl ml5", :title => "#{up.polls_name.to_s}" %> <%= link_to up.polls_name.to_s, poll_path(up.id), :target => "_blank", :class => "homepageTabPollTitle fl ml5", :title => "#{up.polls_name.to_s}" %>
</li> </li>
</th> </td>
<th> <td>
<li class="homepageTabProjectName ml5"> <li class="homepageTabProjectName ml5">
<% if up.polls_type == "Course" %> <% if up.polls_type == "Course" %>
<%= link_to Course.find(up.polls_group_id).name, course_path(Course.find(up.polls_group_id)), :target => "_blank", :title => "#{Course.find(up.polls_group_id).name}" %> <%= link_to Course.find(up.polls_group_id).name, course_path(Course.find(up.polls_group_id)), :target => "_blank", :title => "#{Course.find(up.polls_group_id).name}" %>
<% end %> <% end %>
<li> <li>
</th> </td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>

View File

@ -13,20 +13,20 @@
<tbody> <tbody>
<% @unfinished_test.each do |ut| %> <% @unfinished_test.each do |ut| %>
<tr> <tr>
<th class="homepageTabAvatar"> <td class="homepageTabAvatar">
<%= link_to image_tag(url_to_avatar(ut.user), :width => "30", :height => "30"), user_path(ut.user), :target => '_blank' %> <%= link_to image_tag(url_to_avatar(ut.user), :width => "30", :height => "30"), user_path(ut.user), :target => '_blank' %>
</th> </td>
<th> <td>
<li class="homepageTabTitle"> <li class="homepageTabTitle">
<%= link_to ut.exercise_name.to_s, exercise_index_path(:course_id => ut.course_id), :target => "_blank", :class => "homepageTabTitle fl ml5", :title => "#{ut.exercise_name.to_s}" %> <%= link_to ut.exercise_name.to_s, exercise_index_path(:course_id => ut.course_id), :target => "_blank", :class => "homepageTabTitle fl ml5", :title => "#{ut.exercise_name.to_s}" %>
</li> </li>
</th> </td>
<th> <td>
<li class="homepageTabProjectName ml5"> <li class="homepageTabProjectName ml5">
<%= link_to ut.course.try(:name), course_path(ut.course_id), :target => "_blank", :class => "homepageTabTitle ml5", :title => "#{ut.course.try(:name)}" %> <%= link_to ut.course.try(:name), course_path(ut.course_id), :target => "_blank", :class => "homepageTabTitle ml5", :title => "#{ut.course.try(:name)}" %>
<li> <li>
</th> </td>
<th> <td>
<li class="homepageTabAuthor ml5" > <li class="homepageTabAuthor ml5" >
<% if ut.time.to_i == -1 %> <% if ut.time.to_i == -1 %>
不限时 不限时
@ -34,8 +34,8 @@
<%= ut.time %> <%= ut.time %>
<% end %> <% end %>
</li> </li>
</th> </td>
<th> <td>
<li class="homepageTabTime ml5" > <li class="homepageTabTime ml5" >
<% if ut.end_time > Time.now %> <% if ut.end_time > Time.now %>
<span class="c_red"><%= (ut.end_time.to_i - Time.now.to_i) / (24*60*60) %></span> 天 <span class="c_red"><%= (ut.end_time.to_i - Time.now.to_i) / (24*60*60) %></span> 天
@ -45,7 +45,7 @@
<span class="c_red">已截止</span> <span class="c_red">已截止</span>
<% end %> <% end %>
</li> </li>
</th> </td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>

View File

@ -14,20 +14,20 @@
<tbody> <tbody>
<% @unsolved_issues.each do |ui| %> <% @unsolved_issues.each do |ui| %>
<tr> <tr>
<th class="homepageTabAvatar"> <td class="homepageTabAvatar">
<%= link_to image_tag(url_to_avatar(ui.author), :width => "30", :height => "30"), user_path(ui.author), :target => '_blank' %> <%= link_to image_tag(url_to_avatar(ui.author), :width => "30", :height => "30"), user_path(ui.author), :target => '_blank' %>
</th> </td>
<th> <td>
<li class="homepageTabTitle"> <li class="homepageTabTitle">
<%= link_to ui.subject.to_s, issue_path(ui), :target => "_blank", :class => "homepageTabTitle fl ml5", :title => "#{ui.subject.to_s}" %> <%= link_to ui.subject.to_s, issue_path(ui), :target => "_blank", :class => "homepageTabTitle fl ml5", :title => "#{ui.subject.to_s}" %>
</li> </li>
</th> </td>
<th> <td>
<li class="homepageTabProjectName ml5"> <li class="homepageTabProjectName ml5">
<%= link_to ui.project.try(:name), project_path(ui.project_id), :target => "_blank", :title => "#{ui.project.try(:name)}" %> <%= link_to ui.project.try(:name), project_path(ui.project_id), :target => "_blank", :title => "#{ui.project.try(:name)}" %>
<li> <li>
</th> </td>
<th> <td>
<li class="homepageTabAuthor ml5" > <li class="homepageTabAuthor ml5" >
<% if ui.author.show_name == ' ' %> <% if ui.author.show_name == ' ' %>
<%= link_to ui.try(:author), user_path(ui.author_id), :target => "_blank", :title => "#{ui.try(:author)}" %> <%= link_to ui.try(:author), user_path(ui.author_id), :target => "_blank", :title => "#{ui.try(:author)}" %>
@ -35,17 +35,17 @@
<%= link_to ui.author.show_name, user_path(ui.author_id), :target => "_blank", :title => "#{ui.author.show_name}" %> <%= link_to ui.author.show_name, user_path(ui.author_id), :target => "_blank", :title => "#{ui.author.show_name}" %>
<% end %> <% end %>
</li> </li>
</th> </td>
<th> <td>
<li class="homepageTabAuthor ml5" > <li class="homepageTabAuthor ml5" >
<%= ui.priority.name %> <%= ui.priority.name %>
</li> </li>
</th> </td>
<th> <td>
<li class="homepageTabAuthor ml5" > <li class="homepageTabAuthor ml5" >
<%= ui.status.name %> <%= ui.status.name %>
</li> </li>
</th> </td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>

View File

@ -213,6 +213,12 @@
add_class("reorder_turnover_time"); add_class("reorder_turnover_time");
}); });
}); });
$(document).ready(function(){
if($.browser.webkit){
$("#issues_filter_por").css("padding-left","5px");
$("#issue_filter_status").css("padding-left","10px");
}
});
</script> </script>
<!--缺陷列表开始--> <!--缺陷列表开始-->
@ -258,36 +264,33 @@
<div class="cl"></div> <div class="cl"></div>
</ul> </ul>
<div class="issues_filter"> <div class="issues_filter">
<div class="issues_form_filter mt5 mr5"> <div class="my_issues_form_filter mt5">
<%= select( :project, :project_id, options_for_issue_project_list(@issues_filter), <%= select( :project, :project_id, options_for_issue_project_list(@issues_filter),
{ :include_blank => false,:selected => @project_id ? @project_id : 0 }, { :include_blank => false,:selected => @project_id ? @project_id : 0 },
{ :onchange => "remote_function();add_style();", :id => "project_id", :name => "project_id", :class => "fl", :style=>"width: 80px; margin-right:20px;"} { :onchange => "remote_function();add_style();", :id => "project_id", :name => "project_id", :class => "fl", :style => "margin: 0 15px;text-align: left;"}
)%> )%>
<select placeholder=" 类型" class="fl my_issues_filter" disabled="disabled" style="padding:0px; margin:0px;width:35px; margin-right:10px;"> <select class="my_issues_filter" disabled="disabled" style="width: 50px;;padding-left: 10px;text-align: left;">
<option value="0" selected="selected">类型</option> <option value="0" selected="selected">类型</option>
</select> </select>
<select placeholder=" 指派给" class="fl my_issues_filter" disabled="disabled" style="padding:0px; margin-right: 15px;"> <select class="my_issues_filter" disabled="disabled" style="width: 65px;padding-left: 10px;text-align: left;">
<option value="0" selected="selected">指派给</option> <option value="0" selected="selected">指派给</option>
</select> </select>
<%= select( :issue, :user_id, [[@user.show_name, @user.id]].unshift(["指派给",0]), <%= select( :issue, :user_id, [[@user.show_name, @user.id]].unshift(["指派给",0]),
{ :include_blank => false, :selected => @assigned_to ? @assigned_to : 0}, { :include_blank => false, :selected => @assigned_to ? @assigned_to : 0},
{:onchange=>"remote_function();add_style();",:id => "assigned_to_id",:name => "assigned_to_id", :class => "fl", :style => "visibility:hidden; width:0px;margin:0px;padding:0px;"} ) {:onchange=>"remote_function();add_style();",:id => "assigned_to_id",:name => "assigned_to_id", :class => "fl", :style => "visibility:hidden; width:0px;margin:0px;padding:0px;"} )
%> %>
<select placeholder=" 优先度" class="fl my_issues_filter" disabled="disabled" style="padding:0px; margin:0px"> <select class="my_issues_filter" disabled="disabled" style="width: 50px;text-align: left;" id="issues_filter_por">
<option value="0" selected="selected">优先度</option> <option value="0" selected="selected">优先度</option>
</select> </select>
<select placeholder=" 里程碑" class="fl my_issues_filter" disabled="disabled" style="padding:0px;margin-left: 20px; margin-right: 10px"> <select class="my_issues_filter" disabled="disabled" style="width: 80px;padding-left: 20px;text-align: left;">
<option value="0" selected="selected">里程碑</option> <option value="0" selected="selected">里程碑</option>
</select> </select>
<select placeholder=" 状态" class="fl my_issues_filter" disabled="disabled" style="padding:0px; margin-right:10px;width:35px;"> <select class="my_issues_filter" disabled="disabled" style="width: 60px;padding-left: 10px;text-align: left;" id="issue_filter_status">
<option value="0" selected="selected">状态</option> <option value="0" selected="selected">状态</option>
</select> </select>
<select placeholder=" 完成度" class="fl my_issues_filter" disabled="disabled" style="padding:0px; margin:0px"> <select class="my_issues_filter" disabled="disabled" style="width: 50px;text-align: left;">
<option value="0" selected="selected">完成度</option> <option value="0" selected="selected">完成度</option>
</select> </select>
<select placeholder=" 排序" class="fl my_issues_filter" disabled="disabled" style="width:50px;visibility:hidden;margin-left: 0px;margin-right: 0px;">
<option value="0" selected="selected">排序</option>
</select>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>

View File

@ -213,6 +213,11 @@
add_class("reorder_turnover_time"); add_class("reorder_turnover_time");
}); });
}); });
$(document).ready(function(){
if($.browser.webkit){
$("#issue_filter_status").css("padding-left","10px");
}
});
</script> </script>
<!--缺陷列表开始--> <!--缺陷列表开始-->
@ -258,12 +263,12 @@
<div class="cl"></div> <div class="cl"></div>
</ul> </ul>
<div class="issues_filter"> <div class="issues_filter">
<div class="issues_form_filter mt5 mr5"> <div class="my_issues_form_filter mt5">
<%= select( :project, :project_id, options_for_issue_project_list(@issues_filter), <%= select( :project, :project_id, options_for_issue_project_list(@issues_filter),
{ :include_blank => false,:selected => @project_id ? @project_id : 0 }, { :include_blank => false,:selected => @project_id ? @project_id : 0 },
{ :onchange => "remote_function();add_style();", :id => "project_id", :name => "project_id", :class => "fl", :style=>"width: 80px; margin-right:20px;"} { :onchange => "remote_function();add_style();", :id => "project_id", :name => "project_id", :class => "fl", :style => "margin: 0 15px;text-align: left;"}
)%> )%>
<select placeholder=" 发布人" class="fl my_issues_filter" disabled="disabled" style="padding:0px;width: 50px;margin-right: 15px;"> <select class="fl my_issues_filter" disabled="disabled" style="width: 70px;padding-left: 15px;text-align: left;">
<option value="0" selected="selected">发布人</option> <option value="0" selected="selected">发布人</option>
</select> </select>
<%= select( :issue, :user_id, [[@user.show_name, @user.id]].unshift(["发布人",0]), <%= select( :issue, :user_id, [[@user.show_name, @user.id]].unshift(["发布人",0]),
@ -271,24 +276,21 @@
{:onchange => "remote_function();add_style();",:id => "author_id", :name => "author_id", :class => "fl", :style => "visibility:hidden;width: 0px;margin:0px;padding:0px;"} {:onchange => "remote_function();add_style();",:id => "author_id", :name => "author_id", :class => "fl", :style => "visibility:hidden;width: 0px;margin:0px;padding:0px;"}
) )
%> %>
<select placeholder=" 类型" class="fl my_issues_filter" disabled="disabled" style="padding:0px; margin:0px;width:35px; margin-right:10px;"> <select class="fl my_issues_filter" disabled="disabled" style="width: 50px;;padding-left: 10px;text-align: left;">
<option value="0" selected="selected">类型</option> <option value="0" selected="selected">类型</option>
</select> </select>
<select placeholder=" 优先度" class="fl my_issues_filter" disabled="disabled" style="padding:0px; margin:0px"> <select class="fl my_issues_filter" disabled="disabled" style="width: 50px;text-align: left;padding-left: 5px;" id="issues_filter_por">
<option value="0" selected="selected">优先度</option> <option value="0" selected="selected">优先度</option>
</select> </select>
<select placeholder=" 里程碑" class="fl my_issues_filter" disabled="disabled" style="padding:0px;margin-left: 20px; margin-right: 10px"> <select class="fl my_issues_filter" disabled="disabled" style="width: 90px;padding-left: 25px;text-align: left;">
<option value="0" selected="selected">里程碑</option> <option value="0" selected="selected">里程碑</option>
</select> </select>
<select placeholder=" 状态" class="fl my_issues_filter" disabled="disabled" style="padding:0px; margin-right:10px;width:35px;"> <select class="fl my_issues_filter" disabled="disabled" style="width: 60px;padding-left: 10px;text-align: left;" id="issue_filter_status">
<option value="0" selected="selected">状态</option> <option value="0" selected="selected">状态</option>
</select> </select>
<select placeholder=" 完成度" class="fl my_issues_filter" disabled="disabled" style="padding:0px; margin:0px"> <select class="fl my_issues_filter" disabled="disabled" style="width: 50px;text-align: left;">>
<option value="0" selected="selected">完成度</option> <option value="0" selected="selected">完成度</option>
</select> </select>
<select placeholder=" 排序" class="fl my_issues_filter" disabled="disabled" style="width:50px;visibility:hidden;margin-left: 0px;margin-right: 0px;">
<option value="0" selected="selected">排序</option>
</select>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>

View File

@ -1384,6 +1384,8 @@ RedmineApp::Application.routes.draw do
get "switch_role" get "switch_role"
get 'search_not_group_member' get 'search_not_group_member'
post 'add_members' post 'add_members'
get 'search_course_teacher_list'
post 'change_manager'
get 'delete_member' get 'delete_member'
get 'archive_course' get 'archive_course'
get 'set_invite_code_halt' get 'set_invite_code_halt'

View File

@ -0,0 +1,9 @@
class UpdateAppliedMessagesStatus < ActiveRecord::Migration
def up
sql = "update applied_messages set status = 1 where applied_id in(2495, 2496, 2497)"
execute(sql)
end
def down
end
end

View File

@ -0,0 +1,23 @@
class DeleteExcessStudentWorks < ActiveRecord::Migration
def up
homework = HomeworkCommon.where(:id => 4818)
unless homework.empty?
homework = homework.first
homework.course.student.each do |student|
student_works = homework.student_works.where(:user_id => student.student_id).reorder("created_at asc")
if student_works.count > 1
if student_works.first.work_status != 0
student_works.last.destroy
elsif student_works.last.work_status != 0
student_works.first.destroy
else
student_works.first.destroy
end
end
end
end
end
def down
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -101,7 +101,7 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/
.mw380 {max-width: 380px !important;}.mw400 {max-width: 400px !important;}.mw450 {max-width: 450px !important;}.mw550 {max-width: 550px !important;} .mw380 {max-width: 380px !important;}.mw400 {max-width: 400px !important;}.mw450 {max-width: 450px !important;}.mw550 {max-width: 550px !important;}
.mt-20 {margin-top:-20px;}.mt-10 {margin-top:-10px;}.mt-4 {margin-top:-4px;}.mt-5 {margin-top:-5px;}.mt-2 {margin-top:-2px;}.mt0 {margin-top: 0px !important;} .mt-20 {margin-top:-20px;}.mt-10 {margin-top:-10px;}.mt-4 {margin-top:-4px;}.mt-5 {margin-top:-5px;}.mt-2 {margin-top:-2px;}.mt0 {margin-top: 0px !important;}
.mt1{margin-top: 1px;}.mt2{ margin-top:2px;}.mt3{ margin-top:3px;}.mt4{ margin-top:4px;}.mt5{ margin-top:5px;}.mt6{ margin-top:6px;}.mt7 {margin-top:7px;} .mt1{margin-top: 1px;}.mt2{ margin-top:2px;}.mt3{ margin-top:3px;}.mt4{ margin-top:4px;}.mt5{ margin-top:5px;}.mt6{ margin-top:6px;}.mt7 {margin-top:7px;}
.mt8{ margin-top:8px !important;}.mt9{ margin-top:9px !important;}.mt10{ margin-top:10px !important;}.mt12 { margin-top:12px !important;} .mt8{ margin-top:8px !important;}.mt9{ margin-top:9px !important;}.mt10{ margin-top:10px !important;}.mt12 { margin-top:12px !important;}.mt14 {margin-top:14px;}
.mt15 {margin-top:15px;}.mt16{ margin-top:16px !important;}.mt19 {margin-top:19px !important;}.mt20{margin-top: 20px;}.mt28 {margin-top:28px;}.mt30{ margin-top: 30px;} .mt15 {margin-top:15px;}.mt16{ margin-top:16px !important;}.mt19 {margin-top:19px !important;}.mt20{margin-top: 20px;}.mt28 {margin-top:28px;}.mt30{ margin-top: 30px;}
.mt35 {margin-top:35px;}.mt40{ margin-top: 40px;}.mt45{ margin-top: 45px;}.mt50{ margin-top:50px;}.mt100{ margin-top:100px;}.mb0 {margin-bottom: 0px !important;}.mb4{ margin-bottom:4px;} .mt35 {margin-top:35px;}.mt40{ margin-top: 40px;}.mt45{ margin-top: 45px;}.mt50{ margin-top:50px;}.mt100{ margin-top:100px;}.mb0 {margin-bottom: 0px !important;}.mb4{ margin-bottom:4px;}
.mb5{ margin-bottom:5px;}.mb8 {margin-bottom:8px !important;}.pb5{ padding-bottom: 5px;}.mb10{ margin-bottom:10px !important;}.mb12 {margin-bottom:12px !important;} .mb5{ margin-bottom:5px;}.mb8 {margin-bottom:8px !important;}.pb5{ padding-bottom: 5px;}.mb10{ margin-bottom:10px !important;}.mb12 {margin-bottom:12px !important;}

View File

@ -363,7 +363,12 @@ a:hover.upload_btn_grey{background:#8a8a8a;}
.issues_nav_hover{border-bottom:3px solid #3498db; font-weight:bold; } .issues_nav_hover{border-bottom:3px solid #3498db; font-weight:bold; }
.issues_nav_nomall {border-bottom:none; } .issues_nav_nomall {border-bottom:none; }
.issues_nav_tag{ background-color:#eaeaea; padding:2px 8px;-webkit-border-radius:15px;-moz-border-radius:15px;-o-border-radius:15px;border-radius:15px; font-size:12px;} .issues_nav_tag{ background-color:#eaeaea; padding:2px 8px;-webkit-border-radius:15px;-moz-border-radius:15px;-o-border-radius:15px;border-radius:15px; font-size:12px;}
.issues_form_filter{ position: absolute; top:0; right: 0;} .my_issues_form_filter{ position: absolute; top:0; right: 0; width:520px}
.my_issues_form_filter select{ width:70px; height:30px; border:none; border:none;border-right:none; color: #888; font-size: 12px; line-height: 30px; text-align:center}
.my_issues_form_filter select:focus,.issues_form_filter input:focus{border:none; }
.my_issues_form_filter select.my_issues_filter{ background:none; width:50px; padding: 0px}
.my_issues_form_filter select{appearance:none;-moz-appearance:none;-webkit-appearance:none; background: url("/images/new_project/arrow.png") no-repeat scroll right center transparent;}.issues_form_filter{ position: absolute; top:0; right: 0;}
.issues_form_filter select{ width:70px; height:30px; border:none; border:none;border-right:none; color: #888; font-size: 12px; line-height: 30px; padding-right:10px; background-color:#fff; margin-bottom: 10px; color: #888;} .issues_form_filter select{ width:70px; height:30px; border:none; border:none;border-right:none; color: #888; font-size: 12px; line-height: 30px; padding-right:10px; background-color:#fff; margin-bottom: 10px; color: #888;}
.issues_form_filter select.issues_filter_select_min{width:50px; } .issues_form_filter select.issues_filter_select_min{width:50px; }
.issues_form_filter select:focus,.issues_form_filter input:focus{border:none; } .issues_form_filter select:focus,.issues_form_filter input:focus{border:none; }
@ -373,7 +378,7 @@ a:hover.upload_btn_grey{background:#8a8a8a;}
.issues_form_filter select::-ms-expand { display: none; } .issues_form_filter select::-ms-expand { display: 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 #c8c8c8; position: relative;}
.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:380px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap; } a.issues_list_title{ color:#444; max-width:380px; 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;}
@ -431,7 +436,7 @@ a:hover.btn_newpro_grey,a:active.btn_newpro_grey{ background: #eaeaea;}
.table-td-w180{display:inline-block;with:180px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;} .table-td-w180{display:inline-block;with:180px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;}
.table-td-w380{display:inline-block;with:380px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;} .table-td-w380{display:inline-block;with:380px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;}
/*项目简介*/ /*项目简介*/
.pro_new_info{ border:1px solid #ddd; background-color:#fff;} .pro_new_info{ border:1px solid #ddd; background-color:#fff; width:100%;}
.pro_new_info h2{ background: #fff; font-size: 14px; color: #333; height: 40px; line-height: 40px; padding-left: 15px; border-bottom:1px solid #e5e5e5;} .pro_new_info h2{ background: #fff; font-size: 14px; color: #333; height: 40px; line-height: 40px; padding-left: 15px; border-bottom:1px solid #e5e5e5;}
.pro_description_new_info{ border:1px solid #ddd; background-color:#fff;} .pro_description_new_info{ border:1px solid #ddd; background-color:#fff;}
/*.pro_new_info p{ padding-bottom:2px; padding-left: 15px; color: #666; padding-right: 5px}*/ /*.pro_new_info p{ padding-bottom:2px; padding-left: 15px; color: #666; padding-right: 5px}*/
@ -485,7 +490,7 @@ p.pro_new_grey{ line-height: 1.9; }
.new_roadmap_type_hover{color: #fff;} .new_roadmap_type_hover{color: #fff;}
.new_roadmap_nav_tagnomal{ background-color:#eaeaea; padding:0px 5px;-webkit-border-radius:15px;-moz-border-radius:15px;-o-border-radius:15px;border-radius:15px; font-size:12px;} .new_roadmap_nav_tagnomal{ background-color:#eaeaea; padding:0px 5px;-webkit-border-radius:15px;-moz-border-radius:15px;-o-border-radius:15px;border-radius:15px; font-size:12px;}
.new_roadmap_nav_taghover{ padding:0px 5px;-webkit-border-radius:15px;-moz-border-radius:15px;-o-border-radius:15px;border-radius:15px; font-size:12px;background: #6bb1e5; color: #fff;} .new_roadmap_nav_taghover{ padding:0px 5px;-webkit-border-radius:15px;-moz-border-radius:15px;-o-border-radius:15px;border-radius:15px; font-size:12px;background: #6bb1e5; color: #fff;}
.new_roadmap_listbox{ padding:15px;border-bottom:1px solid #dbdbdb;} .new_roadmap_listbox{width: 970px; padding:15px;border-bottom:1px solid #dbdbdb;}
.new_roadmap_listbox_commit{ padding:15px;} .new_roadmap_listbox_commit{ padding:15px;}
.new_roadmap_listtitle a{ color: #333;display:block;max-width:800px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;} .new_roadmap_listtitle a{ color: #333;display:block;max-width:800px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
.new_roadmap_listtitle a:hover{ color:#3498db;} .new_roadmap_listtitle a:hover{ color:#3498db;}
@ -582,10 +587,6 @@ select.issues_filter_active { font-weight: bold; color: #333;}
.issues_list_txt li.issues_list_max{ width:90px } .issues_list_txt li.issues_list_max{ width:90px }
.btn_newpro_grey{display: inline-block;color: #7b7b7b; border:1px solid #dbdbdb;background:#fff;text-align: center;font-size: 12px; padding:0 15px; height:24px; line-height: 24px; -webkit-border-radius:3px; -moz-border-radius:3px; -o-border-radius:3px; border-radius:3px;} .btn_newpro_grey{display: inline-block;color: #7b7b7b; border:1px solid #dbdbdb;background:#fff;text-align: center;font-size: 12px; padding:0 15px; height:24px; line-height: 24px; -webkit-border-radius:3px; -moz-border-radius:3px; -o-border-radius:3px; border-radius:3px;}
a:hover.btn_newpro_grey,a:active.btn_newpro_grey{ background: #eaeaea;} a:hover.btn_newpro_grey,a:active.btn_newpro_grey{ background: #eaeaea;}
.my_issues_form_filter{ position: absolute; top:0; right: 0;}
.my_issues_form_filter select{ width:70px; height:30px; border:none; border:none;border-right:none; color: #888; font-size: 12px; line-height: 30px; text-align:center}
.my_issues_form_filter select.issues_filter_select_min{width:50px; }
.my_issues_form_filter select{appearance:none;-moz-appearance:none;-webkit-appearance:none;}
/* 版本库分析20170103byLB*/ /* 版本库分析20170103byLB*/
#conbox {font-size: 12px; width:100%;} #conbox {font-size: 12px; width:100%;}
#tags {padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px; height: 30px} #tags {padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px; height: 30px}

View File

@ -918,6 +918,7 @@ a.syllabusbox_a_blue{ color:#3b94d6;}
.popup_tip_box { position: relative; padding: 5px 10px; white-space: nowrap; background-color: #FFFEF4; border:1px solid #F3DDB3;} .popup_tip_box { position: relative; padding: 5px 10px; white-space: nowrap; background-color: #FFFEF4; border:1px solid #F3DDB3;}
.popup_tip_box em { display: block; border-width: 9px; position: absolute; top: 5px; left: -18px; border-style: dashed solid dashed dashed; border-color: transparent #F3DDB3 transparent transparent; font-size: 0; line-height: 0;} .popup_tip_box em { display: block; border-width: 9px; position: absolute; top: 5px; left: -18px; border-style: dashed solid dashed dashed; border-color: transparent #F3DDB3 transparent transparent; font-size: 0; line-height: 0;}
.popup_tip_box span { display: block; border-width: 9px;position: absolute; top: 5px; left: -17px; border-style: dashed solid dashed dashed;border-color: transparent #FFFEF4 transparent transparent; font-size: 0; line-height: 0; } .popup_tip_box span { display: block; border-width: 9px;position: absolute; top: 5px; left: -17px; border-style: dashed solid dashed dashed;border-color: transparent #FFFEF4 transparent transparent; font-size: 0; line-height: 0; }
.popup_tip_box>p{ line-height: 20px !important;}
/*模拟title*/ /*模拟title*/
.simulation-title {position:absolute; background-color:#fff; padding:5px 10px; z-index:99; white-space:nowrap; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); display:none; color:#666; border:1px solid #666; line-height:1;} .simulation-title {position:absolute; background-color:#fff; padding:5px 10px; z-index:99; white-space:nowrap; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); display:none; color:#666; border:1px solid #666; line-height:1;}
/*项目创建*/ /*项目创建*/