Conflicts:
	app/views/bids/_bid_homework_show.html.erb

Signed-off-by: alanlong9278 <547533434@qq.com>
memcached_alan
alanlong9278 10 years ago
commit 0668af4f89

@ -34,6 +34,8 @@ module Mobile
user_expose :img_url user_expose :img_url
#昵称 #昵称
expose :nickname expose :nickname
#真名
expose :realname
#性别 #性别
user_expose :gender user_expose :gender
#我的二维码 #我的二维码

@ -418,12 +418,27 @@ class CoursesController < ApplicationController
end end
def search_member
if User.current.allowed_to?(:as_teacher,@course) || User.current.admin
q = "#{params[:name].strip}"
@roles = Role.givable.all[3..5]
if q.nil? || q == ""
@members = @course.member_principals.includes(:roles, :principal).all.sort
else
@members = searchmember_by_name(@course.member_principals.includes(:roles, :principal).all.sort,q)
end
else
render_403
end
end
def create def create
cs = CoursesService.new cs = CoursesService.new
@course = cs.create_course(params,User.current)[:course] @course = cs.create_course(params,User.current)[:course]
if @course.new_record? if @course.new_record?
respond_to do |format| respond_to do |format|
format.html { render :action => 'new', :layout => 'base' } #Added by young format.html { render :action => 'new', :layout => 'new_base' } #Added by young
format.api { render_validation_errors(@course) } format.api { render_validation_errors(@course) }
end end
else else
@ -493,7 +508,7 @@ class CoursesController < ApplicationController
respond_to do |format| respond_to do |format|
format.html { format.html {
render :layout => 'base' render :layout => 'new_base'
} }
format.api { format.api {
} }

@ -23,7 +23,7 @@ class FilesController < ApplicationController
before_filter :auth_login1, :only => [:index] before_filter :auth_login1, :only => [:index]
before_filter :logged_user_by_apptoken,:only => [:index] before_filter :logged_user_by_apptoken,:only => [:index]
before_filter :find_project_by_project_id#, :except => [:getattachtype] before_filter :find_project_by_project_id#, :except => [:getattachtype]
before_filter :authorize, :except => [:getattachtype,:quote_resource_show,:search,:search_project,:quote_resource_show_project] before_filter :authorize, :except => [:getattachtype,:quote_resource_show,:search,:search_project,:quote_resource_show_project,:search_tag_attachment]
helper :sort helper :sort
include SortHelper include SortHelper
@ -51,6 +51,7 @@ class FilesController < ApplicationController
@sort = "" @sort = ""
@order = "" @order = ""
@is_remote = true @is_remote = true
@q = params[:name].strip
if params[:sort] if params[:sort]
order_by = params[:sort].split(":") order_by = params[:sort].split(":")
@sort = order_by[0] @sort = order_by[0]
@ -60,19 +61,27 @@ class FilesController < ApplicationController
sort = "#{@sort} #{@order}" sort = "#{@sort} #{@order}"
end end
# show_attachments [@course]
begin begin
q = "%#{params[:name].strip}%" q = "%#{params[:name].strip}%"
#(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank? #(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank?
if params[:insite] if params[:insite]
@result = find_public_attache q,sort if q == "%%"
@result = visable_attachemnts_insite @result,@course @result = []
@searched_attach = paginateHelper @result,10 @searched_attach = paginateHelper @result,10
else
@result = find_public_attache q,sort
@result = visable_attachemnts_insite @result,@course
@searched_attach = paginateHelper @result,10
end
else else
@result = find_course_attache q,@course,sort @result = find_course_attache q,@course,sort
@result = visable_attachemnts @result @result = visable_attachemnts @result
@searched_attach = paginateHelper @result,10 @searched_attach = paginateHelper @result,10
end
@tag_list = get_course_tag_list @course
end
#rescue Exception => e #rescue Exception => e
# #render 'stores' # #render 'stores'
# redirect_to search_course_files_url # redirect_to search_course_files_url
@ -273,6 +282,8 @@ class FilesController < ApplicationController
show_attachments @containers show_attachments @containers
@tag_list = attachment_tag_list @all_attachments
render :layout => 'base_courses' render :layout => 'base_courses'
end end
@ -346,6 +357,27 @@ class FilesController < ApplicationController
Mailer.run.attachments_added(attachments[:files]) Mailer.run.attachments_added(attachments[:files])
end end
if params[:course_attachment_type] && params[:course_attachment_type] != "5"
case params[:course_attachment_type]
when "1"
tag_name = l(:label_courseware)
when "2"
tag_name = l(:label_software)
when "3"
tag_name = l(:label_media)
when "4"
tag_name = l(:label_code)
else
tag_name = ""
end
if !attachments.empty? && attachments[:files] && tag_name != ""
attachments[:files].each do |attachment|
attachment.tag_list.add(tag_name)
attachment.save
end
end
end
# TODO: 临时用 nyan # TODO: 临时用 nyan
sort_init 'created_on', 'desc' sort_init 'created_on', 'desc'
sort_update 'created_on' => "#{Attachment.table_name}.created_on", sort_update 'created_on' => "#{Attachment.table_name}.created_on",
@ -356,6 +388,7 @@ class FilesController < ApplicationController
@containers = [Course.includes(:attachments).reorder("#{Attachment.table_name}.created_on DESC").find(@course.id)] @containers = [Course.includes(:attachments).reorder("#{Attachment.table_name}.created_on DESC").find(@course.id)]
show_attachments @containers show_attachments @containers
@tag_list = attachment_tag_list @all_attachments
@attachtype = 0 @attachtype = 0
@contenttype = 0 @contenttype = 0
@ -489,8 +522,31 @@ class FilesController < ApplicationController
format.html format.html
end end
end end
end
#查找指定TAG的按条件过滤的资源列表只有课程内搜索有此功能
def search_tag_attachment
@q,@tag_name,@order = params[:q],params[:tag_name]
@is_remote = true
if params[:sort]
order_by = params[:sort].split(":")
@sort = order_by[0]
if order_by.count > 1
@order = order_by[1]
end
sort = "#{@sort} #{@order}"
end
q = "%#{@q.strip}%"
@result = find_course_attache q,@course,sort
@result = visable_attachemnts @result
@result = @result.select{|attachment| attachment.tag_list.include?(@tag_name)}
@searched_attach = paginateHelper @result,10
@tag_list = get_course_tag_list @course
respond_to do |format|
format.js
# format.html
end
end end
end end

@ -314,7 +314,7 @@ class HomeworkAttachController < ApplicationController
def edit def edit
bid = @homework.bid bid = @homework.bid
if (bid.comment_status == 0 || bid.open_anonymous_evaluation == 0) && (User.current.admin? || User.current.member_of_course?(bid.courses.first)) if (bid.comment_status == 0 || bid.open_anonymous_evaluation == 0 || bid.comment_status == 2) && (User.current.admin? || User.current.member_of_course?(bid.courses.first))
get_homework_member @homework get_homework_member @homework
else else
render_403 :message => :notice_not_authorized render_403 :message => :notice_not_authorized
@ -347,7 +347,7 @@ class HomeworkAttachController < ApplicationController
def destroy def destroy
bid = @homework.bid bid = @homework.bid
if (bid.comment_status == 0 || bid.open_anonymous_evaluation == 0) && (User.current.admin? || User.current == @homework.user) if (bid.comment_status == 0 || bid.open_anonymous_evaluation == 0 || bid.comment_status == 0) && (User.current.admin? || User.current == @homework.user)
if @homework.destroy if @homework.destroy
#respond_to do |format| #respond_to do |format|
# format.html { redirect_to course_for_bid_url @homework.bid } # format.html { redirect_to course_for_bid_url @homework.bid }

@ -220,11 +220,18 @@ class TagsController < ApplicationController
@tag = ActsAsTaggableOn::Tag.find_by_id(@tag_id) @tag = ActsAsTaggableOn::Tag.find_by_id(@tag_id)
@tag.delete unless @tag.nil? @tag.delete unless @tag.nil?
end end
if @obj && @object_flag == '6' && @obj.container.kind_of?(Course)
@course = @obj.container
@tag_list = get_course_tag_list @course
@select_tag_name = params[:select_tag_name]
end
# end # end
end end
end end
def tag_save def tag_save
@select_tag_name = params[:tag_for_save][:tag_name]
@tags = params[:tag_for_save][:name] @tags = params[:tag_for_save][:name]
@obj_id = params[:tag_for_save][:object_id] @obj_id = params[:tag_for_save][:object_id]
@obj_flag = params[:tag_for_save][:object_flag] @obj_flag = params[:tag_for_save][:object_flag]
@ -263,6 +270,10 @@ class TagsController < ApplicationController
else else
logger.error "#{__FILE__}:#{__LINE__} ===> #{@obj.errors.try(:full_messages)}" logger.error "#{__FILE__}:#{__LINE__} ===> #{@obj.errors.try(:full_messages)}"
end end
if @obj && @obj_flag == '6' && @obj.container.kind_of?(Course)
@course = @obj.container
@tag_list = @tag_list = get_course_tag_list @course
end
respond_to do |format| respond_to do |format|
format.js format.js
format.html format.html

@ -2036,12 +2036,12 @@ module ApplicationHelper
def anonymous_comment_link(bid, course) def anonymous_comment_link(bid, course)
link = case bid.comment_status link = case bid.comment_status
when 0 when 0
confirm_info = "开启匿评后学生将不能对作进行提交、修改、删除等操作\n" confirm_info = "开启匿评后学生将不能对作进行提交、修改、删除等操作\n"
confirm_info += anonymous_comment_notice(bid,course) confirm_info += anonymous_comment_notice(bid,course)
confirm_info += '是否确定开启匿评?' confirm_info += '是否确定开启匿评?'
link_to '启动匿评', start_anonymous_comment_bid_path(bid), id: "#{bid.id}_start_anonymous_comment", remote: true, :confirm => confirm_info, disable_with: '加载中...' link_to '启动匿评', start_anonymous_comment_bid_path(bid), id: "#{bid.id}_start_anonymous_comment", remote: true, :confirm => confirm_info, disable_with: '加载中...'
when 1 when 1
confirm_info = "关闭匿评后所有同学将不能继续进行匿评,且将公开已提交作列表\n" confirm_info = "关闭匿评后所有同学将不能继续进行匿评,且将公开已提交作列表\n"
confirm_info += anonymous_comment_notice(bid,course) confirm_info += anonymous_comment_notice(bid,course)
confirm_info += '是否确定关闭匿评?' confirm_info += '是否确定关闭匿评?'
link_to '关闭匿评', stop_anonymous_comment_bid_path(bid), id: "#{bid.id}_stop_anonymous_comment", remote: true, :confirm => confirm_info link_to '关闭匿评', stop_anonymous_comment_bid_path(bid), id: "#{bid.id}_stop_anonymous_comment", remote: true, :confirm => confirm_info
@ -2057,7 +2057,7 @@ module ApplicationHelper
@student_size ||= searchStudent(course).size @student_size ||= searchStudent(course).size
@homework_size = bid.homeworks.size @homework_size = bid.homeworks.size
percent = @homework_size.to_f / (@student_size == 0 ? 1 : @student_size) percent = @homework_size.to_f / (@student_size == 0 ? 1 : @student_size)
confirm_info = "目前#{@student_size}个学生,总共提交了#{@homework_size}份作,占#{number_to_percentage(percent * 100, precision: 1)}\n" confirm_info = "目前#{@student_size}个学生,总共提交了#{@homework_size}份作,占#{number_to_percentage(percent * 100, precision: 1)}\n"
when 1 when 1
@homework_evaluations = 0 @homework_evaluations = 0
bid.homeworks.map { |homework| @homework_evaluations += homework.homework_evaluations.count} bid.homeworks.map { |homework| @homework_evaluations += homework.homework_evaluations.count}
@ -2074,7 +2074,7 @@ module ApplicationHelper
bid.homeworks.map { |homework| @has_evaluations += homework.rates(:quality).where("seems_rateable_rates.rater_id not in #{teachers}").count} bid.homeworks.map { |homework| @has_evaluations += homework.rates(:quality).where("seems_rateable_rates.rater_id not in #{teachers}").count}
percent = @has_evaluations.to_f / (@homework_evaluations == 0 ? 1 : @homework_evaluations) percent = @has_evaluations.to_f / (@homework_evaluations == 0 ? 1 : @homework_evaluations)
confirm_info = "目前总共分配了#{@homework_evaluations}份匿评作业,已评价#{@has_evaluations}份作业,占#{number_to_percentage(percent * 100, precision: 1)}\n" confirm_info = "目前总共分配了#{@homework_evaluations}份匿评作品,已评价#{@has_evaluations}份作品,占#{number_to_percentage(percent * 100, precision: 1)}\n"
end end
confirm_info confirm_info
end end
@ -2097,4 +2097,23 @@ module ApplicationHelper
request.env["HTTP_USER_AGENT"] =~ /MSIE 8.0/ request.env["HTTP_USER_AGENT"] =~ /MSIE 8.0/
end end
#获取指定资源列表的TAG的集合以及每个TAG的数量降序排序
def attachment_tag_list attachments
tag_list = Hash.new
attachments.each do |attachment|
attachment.tag_list.map{|tag| tag_list.has_key?(tag) ? tag_list[tag] = tag_list[tag] + 1 : tag_list[tag] = 1}
end
tag_list.sort {|a,b| b[1]<=>a[1]}
end
#获取课程资源的TAG云
def get_course_tag_list course
all_attachments = course.attachments.select{|attachment| attachment.is_public? ||
(attachment.container_type == "Course" && User.current.member_of_course?(course))||
attachment.author_id == User.current.id
}
tag_list = attachment_tag_list all_attachments
tag_list
end
end end

@ -762,7 +762,11 @@ module CoursesHelper
if user_homework && user_homework.empty? if user_homework && user_homework.empty?
link_to l(:label_commit_homework), new_exercise_book_path(bid),:class => 'fr mr10 work_edit' link_to l(:label_commit_homework), new_exercise_book_path(bid),:class => 'fr mr10 work_edit'
else else
"<span class='fr mr10 pr_join_span '>作业已交</span>".html_safe if bid.comment_status == 1 && bid.open_anonymous_evaluation == 1
"<span class='fr mr10 pr_join_span ' title='已开启匿评不能修改作品'>#{l(:label_edit_homework)}</span>".html_safe
else
link_to l(:label_edit_homework), edit_homework_attach_path(user_homework.first.id),:class => 'fr mr10 work_edit'
end
end end
end end

@ -120,6 +120,12 @@ module FilesHelper
result result
end end
def get_attachments_by_tag attachments,tag
attachments.each do |attachment|
attachment.tag_list.include?(tag)
end
end
def visable_attachemnts_insite attachments,obj def visable_attachemnts_insite attachments,obj
result = [] result = []
if obj.is_a?(Course) if obj.is_a?(Course)

@ -40,9 +40,9 @@ class CoursesService
end end
@courses = courses_all.visible(current_user) @courses = courses_all.visible(current_user)
if params[:name].present? if params[:name].present?
@courses_all = @courses.like(params[:name]) @courses_all = @courses.like(params[:name]).order("created_at desc")
else else
@courses_all = @courses; @courses_all = @courses.order("created_at desc");
end end
@courses_all @courses_all
course_list = [] course_list = []
@ -198,7 +198,7 @@ class CoursesService
@course.school_id = current_user.user_extensions.school_id @course.school_id = current_user.user_extensions.school_id
@course.setup_time = params[:setup_time] @course.setup_time = params[:setup_time]
@course.endup_time = params[:endup_time] @course.endup_time = params[:endup_time]
@course.class_period = params[:class_period] @course.class_period = params[:class_period].to_i
params[:course][:is_public] ? @course.is_public = 1 : @course.is_public = 0 params[:course][:is_public] ? @course.is_public = 1 : @course.is_public = 0
params[:course][:open_student] ? @course.open_student = 1 : @course.open_student = 0 params[:course][:open_student] ? @course.open_student = 1 : @course.open_student = 0
end end
@ -245,7 +245,7 @@ class CoursesService
#course.safe_attributes = params[:course] #course.safe_attributes = params[:course]
course.time = params[:time] course.time = params[:time]
course.term = params[:term] course.term = params[:term]
course.class_period = params[:class_period] course.class_period = params[:class_period].to_i
params[:course][:is_public] ? course.is_public = 1 : course.is_public = 0 params[:course][:is_public] ? course.is_public = 1 : course.is_public = 0
params[:course][:open_student] ? course.open_student = 1 : course.open_student = 0 params[:course][:open_student] ? course.open_student = 1 : course.open_student = 0
if course.save if course.save

@ -77,7 +77,7 @@ class UsersService
gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender
work_unit = get_user_work_unit @user work_unit = get_user_work_unit @user
location = get_user_location @user location = get_user_location @user
{:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} {:id => @user.id, :img_url => img_url,:realname => @user.realname, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction}
end end
#忘记密码 #忘记密码

@ -39,28 +39,28 @@
<% if @bid.comment_status == 0%> <% if @bid.comment_status == 0%>
<h2>开启匿评功能</h2> <h2>开启匿评功能</h2>
<p> <p>
开启匿评后学生将不能对作进行 开启匿评后学生将不能对作进行
<span class="c_blue">修改、删除</span> <span class="c_blue">修改、删除</span>
等操作,目前有 等操作,目前有
<span class="c_pink"><%= totle_size%>个</span> <span class="c_pink"><%= totle_size%>个</span>
学生,共提交了 学生,共提交了
<span class="c_pink"><%= cur_size %></span> <span class="c_pink"><%= cur_size %></span>
份作,占 份作,占
<span class="c_pink"><%= percent %>%</span> <span class="c_pink"><%= percent %>%</span>
是否确定开启匿评? 是否确定开启匿评?
</p> </p>
<% elsif @bid.comment_status == 1 %> <% elsif @bid.comment_status == 1 %>
<h2>关闭匿评功能</h2> <h2>关闭匿评功能</h2>
<p> <p>
关闭匿评后学生将不能对作进行 关闭匿评后学生将不能对作进行
<span class="c_blue">匿评</span> <span class="c_blue">匿评</span>
,且作列表将会 ,且作列表将会
<span class="c_blue">公开</span> <span class="c_blue">公开</span>
目前分配了 目前分配了
<span class="c_pink"><%= totle_size%>份</span> <span class="c_pink"><%= totle_size%>份</span>
匿评作,已评了 匿评作,已评了
<span class="c_pink"><%= cur_size %></span> <span class="c_pink"><%= cur_size %></span>
份作,占 份作,占
<span class="c_pink"><%= percent %>%</span> <span class="c_pink"><%= percent %>%</span>
是否确定关闭匿评? 是否确定关闭匿评?
</p> </p>

@ -10,7 +10,7 @@
var hour=Math.floor((leftsecond-day1*24*60*60)/3600); var hour=Math.floor((leftsecond-day1*24*60*60)/3600);
var minute=Math.floor((leftsecond-day1*24*60*60-hour*3600)/60); var minute=Math.floor((leftsecond-day1*24*60*60-hour*3600)/60);
var second=Math.floor(leftsecond-day1*24*60*60-hour*3600-minute*60); var second=Math.floor(leftsecond-day1*24*60*60-hour*3600-minute*60);
$("#"+divname).html("<span style='color: #acaeb1;'>作提交还剩&nbsp;:</span>&nbsp;<span style='color: red;'>" $("#"+divname).html("<span style='color: #acaeb1;'>作提交还剩&nbsp;:</span>&nbsp;<span style='color: red;'>"
+day1+"&nbsp;</span><span style='color: #acaeb1;'>天</span><span style='color: red;'>&nbsp;" +day1+"&nbsp;</span><span style='color: #acaeb1;'>天</span><span style='color: red;'>&nbsp;"
+hour+"&nbsp;</span><span style='color: #acaeb1;'>时</span><span style='color: red;'>&nbsp;" +hour+"&nbsp;</span><span style='color: #acaeb1;'>时</span><span style='color: red;'>&nbsp;"
+minute+"&nbsp;</span><span style='color: #acaeb1;'>分</span><span style='color: red;'>&nbsp;" +minute+"&nbsp;</span><span style='color: #acaeb1;'>分</span><span style='color: red;'>&nbsp;"

@ -70,7 +70,7 @@
<div class="upload_box_" > <div class="upload_box_" >
<h2 class="upload_box_tit">下载文件包太大,分成多个下载包</h2> <h2 class="upload_box_tit">下载文件包太大,分成多个下载包</h2>
<ul class="upload_box_ul" > <ul class="upload_box_ul" >
<li><span class="upload_box_span" >1.</span> <a href="#">前20名学生的作业</a><span class="c_grey">&nbsp;&nbsp;共200M</span> </li> <li><span class="upload_box_span" >1.</span> <a href="javascript:void(0)">前20名学生的作品</a><span class="c_grey">&nbsp;&nbsp;共200M</span> </li>
</ul> </ul>
<div class="cl"></div> <div class="cl"></div>
</div> </div>

@ -44,7 +44,7 @@
<div class="cl"></div> <div class="cl"></div>
</li> </li>
<li class=" ml90" > <li class=" ml90" >
<a class="blue_btn fl c_white" onclick="submit_new_bid('<%= bid_id%>');" href="#"><%= l(:button_create)%></a> <a class="blue_btn fl c_white" onclick="submit_new_bid('<%= bid_id%>');" href="javascript:void(0)"><%= l(:button_create)%></a>
<%= link_to l(:button_cancel), homework_course_path(@course), :class => "blue_btn grey_btn fl c_white"%> <%= link_to l(:button_cancel), homework_course_path(@course), :class => "blue_btn grey_btn fl c_white"%>
<div class="cl"></div> <div class="cl"></div>
</li> </li>

@ -33,6 +33,15 @@
<% end %> <% end %>
</p> </p>
<p>
<%= content_tag "span","#{l(:label_duration_time)}:", :class => "course-font"%>
<%= get_course_term @course %>
</p>
<p>
<%= content_tag "span", "#{l(:label_course_brief_introduction)}:", :class => "course-font" %>
<%= content_tag "div", course.short_description, :class => "brief_introduction", :title => course.short_description %>
</p>
</div> </div>
<div class="information_for_course" > <div class="information_for_course" >
@ -71,15 +80,13 @@
</div> </div>
<div class="add-info"> <div class="add-info">
<div class="main-language" style="margin-left: 30px;margin-top:-10px"> <%= content_tag "span","#{l(:label_duration_time)}:", :class => "course-font"%>
<%= content_tag "span","#{l(:label_duration_time)}:", :class => "course-font"%> <%= get_course_term @course %>
<%= get_course_term @course %>
</div>
</div> </div>
<div class="add-info" style="margin-left: 30px; margin-top: -20px"> <div class="add-info" style="margin-left: 30px; margin-top: -20px">
<%= content_tag "span", "#{l(:label_course_brief_introduction)}:", :class => "course-font" %> <%= content_tag "span", "#{l(:label_course_brief_introduction)}:", :class => "course-font" %>
<%= content_tag "div", course.short_description, :class => "brief_introduction", :title => course.short_description %> <%= content_tag "div", course.short_description, :class => "brief_introduction", :title => course.short_description %>
</div> </div>
<div class="tags"> <div class="tags">

@ -1,3 +1,4 @@
<div class="members_left"> <div class="members_left">
<ul style=" border-bottom:none;"> <ul style=" border-bottom:none;">
<li> <li>

@ -1,6 +1,6 @@
<div class="st_list"> <div class="st_list">
<div class="st_box"> <div class="st_box">
<a href="#" class="fr fb mb5" >加入时间</a> <a href="javascript:void(0)" class="fr fb mb5" >加入时间</a>
<div class="cl"></div><!--st_box_top end--> <div class="cl"></div><!--st_box_top end-->
<% members.each do |member| %> <% members.each do |member| %>

@ -26,9 +26,9 @@
<li class="ml358"> <li class="ml358">
<%= link_to '作业积分', member_score_sort_course_path(: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%> <%= link_to '作业积分', member_score_sort_course_path(: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%>
<% if @score_sort_by == 'desc' %> <% if @score_sort_by == 'desc' %>
<a id="pic" href="#" class= "st_down"></a> <a id="pic" href="javascript:void(0)" class= "st_down"></a>
<% else %> <% else %>
<a id="pic" href="#" class= "st_up"></a> <a id="pic" href="javascript:void(0)" class= "st_up"></a>
<% end %> <% end %>
</li> </li>
<li class="ml50"> <li class="ml50">

@ -4,7 +4,7 @@
<div class="st_boxlist"> <div class="st_boxlist">
<% next if member.new_record? %> <% next if member.new_record? %>
<a href="#" class="st_img" style="float:left;"> <%= member.user.nil? ? '' : (image_tag(url_to_avatar(member.user), :width => 40, :height => 40)) %></a> <a href="javascript:void(0)" class="st_img" style="float:left;"> <%= member.user.nil? ? '' : (image_tag(url_to_avatar(member.user), :width => 40, :height => 40)) %></a>
<ul style="margin-left: 15px"> <ul style="margin-left: 15px">
<% if @canShowCode %> <% if @canShowCode %>
<% if member.user.show_name == '' && member.user.user_extensions.student_id == '' %> <% if member.user.show_name == '' && member.user.user_extensions.student_id == '' %>

@ -32,7 +32,7 @@
<a id="pic" href="javascript:" class= "st_up"></a> <a id="pic" href="javascript:" class= "st_up"></a>
<% end %> <% end %>
</li> </li>
<li class="ml50"><a href="#" >加入时间</a></li> <li class="ml50"><a href="javascript:void(0)" >加入时间</a></li>
</ul> </ul>
<div class="cl"></div><!--st_box_top end--> <div class="cl"></div><!--st_box_top end-->

@ -25,8 +25,9 @@
<li class="ml45 mb10"> <li class="ml45 mb10">
<label><span class="c_red">*</span>&nbsp;<%= l(:label_new_course_password)%>&nbsp;&nbsp;</label> <label><span class="c_red">*</span>&nbsp;<%= l(:label_new_course_password)%>&nbsp;&nbsp;</label>
<input type="text" style="display: none;"> <input type="text" style="display: none;">
<input type="password" name="course[password]" id="course_course_password" class="hwork_input02"> <input type="password" name="course[password]" id="course_course_password" class="hwork_input02" onkeyup="regex_course_password();">
<a id="psw_btn" href="javascript:void(0)">显示明码</a> <a id="psw_btn" href="javascript:void(0)">显示明码</a>
<span class="c_red" id="course_course_password_notice"></span>
<div class="cl"></div> <div class="cl"></div>
<span class=" ml80 c_orange">学生或其他成员申请加入课程时候需要使用该口令,该口令可以由老师在课堂上公布。</span> <span class=" ml80 c_orange">学生或其他成员申请加入课程时候需要使用该口令,该口令可以由老师在课堂上公布。</span>
</li> </li>

@ -0,0 +1 @@
$('#course_members_setting').html('<%= escape_javascript(render :partial => 'courses/course_members') %>');

@ -39,8 +39,9 @@
<div class="cl"></div> <div class="cl"></div>
<li class="ml45 mb10"> <li class="ml45 mb10">
<label><span class="c_red">*</span>&nbsp;<%= l(:label_new_course_password)%>&nbsp;&nbsp;</label> <label><span class="c_red">*</span>&nbsp;<%= l(:label_new_course_password)%>&nbsp;&nbsp;</label>
<input type="password" name="course[password]" id="course_course_password" class="hwork_input02" value="<%= @course.password%>"> <input type="password" name="course[password]" id="course_course_password" class="hwork_input02" value="<%= @course.password%>" onkeyup="regex_course_password();">
<a id="psw_btn" href="javascript:void(0)">显示明码</a> <a id="psw_btn" href="javascript:void(0)">显示明码</a>
<span class="c_red" id="course_course_password_notice"></span>
<div class="cl"></div> <div class="cl"></div>
<span class=" ml80 c_orange">学生或其他成员申请加入课程时候需要使用该口令,该口令可以由老师在课堂上公布。</span> <span class=" ml80 c_orange">学生或其他成员申请加入课程时候需要使用该口令,该口令可以由老师在课堂上公布。</span>
</li> </li>
@ -71,7 +72,21 @@
</div> </div>
<div class="hwork_undis" id="tbc_02"> <div class="hwork_undis" id="tbc_02">
<%= render :partial => "course_members" %> <div class="search_course fl">
<%= form_tag({:controller => 'courses', :action => 'search_member'},:id => "course_member_search_form", :method => :get, :class => "search_form_course",:remote => true) do %>
<!-- , :onkeyup => "regexQ('#{l(:label_search_conditions_not_null)}');" -->
<%= text_field_tag 'name', params[:name], :placeholder => "昵称、学号、姓名搜索", :class => "search_text fl" %>
<a href="javascript:void(0)" onclick="submitMemberSerch('<%= l(:label_search_conditions_not_null) %>');" class="search_btn fl f14 c_white ml10" >
<%= l(:label_search)%>
</a>
<br />
<span id="course_member_name_span" style="float: left"></span>
<% end %>
</div>
<div class="cl"></div>
<div id="course_members_setting">
<%= render :partial => "course_members" %>
</div>
</div><!---成员结束--> </div><!---成员结束-->
</div><!--talknew end--> </div><!--talknew end-->
<div class="cl"></div> <div class="cl"></div>

@ -40,7 +40,7 @@
<br /> <br />
<p class="mt5"> <p class="mt5">
<br /> <br />
<%= l :label_create_time %>: <%= format_time(@course.created_at) %> <%= l :label_create_time %> <%= format_time(@course.created_at) %>
</p> </p>
</div> </div>
<div class="cl"></div> <div class="cl"></div>

@ -1,7 +1,23 @@
<script> <script>
function show_upload() function show_upload(obj)
{ {
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'upload_show',:locals => {:course => @course}) %>'); switch(obj)
{
case 1:
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'upload_show',:locals => {:course => @course,:course_attachment_type => 1}) %>');
break;
case 2:
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'upload_show',:locals => {:course => @course,:course_attachment_type => 2}) %>');
break;
case 3:
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'upload_show',:locals => {:course => @course,:course_attachment_type => 3}) %>');
break;
case 4:
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'upload_show',:locals => {:course => @course,:course_attachment_type => 4}) %>');
break;
default:
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'upload_show',:locals => {:course => @course,:course_attachment_type => 5}) %>');
}
showModal('ajax-modal', '513px'); showModal('ajax-modal', '513px');
$('#ajax-modal').siblings().remove(); $('#ajax-modal').siblings().remove();
$('#ajax-modal').before("<span style='float: right;cursor:pointer;padding-left: 513px;'><a href='javascript:void(0)' onclick='closeModal()'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>"); $('#ajax-modal').before("<span style='float: right;cursor:pointer;padding-left: 513px;'><a href='javascript:void(0)' onclick='closeModal()'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
@ -32,7 +48,6 @@
$('#incourse').attr("class", "re_schbtn b_lblue"); $('#incourse').attr("class", "re_schbtn b_lblue");
$('#insite').attr("class", "re_schbtn b_lblue"); $('#insite').attr("class", "re_schbtn b_lblue");
} }
</script> </script>
<div class="container"> <div class="container">
@ -44,7 +59,15 @@
<%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite",:id => "insite",:onmouseover => "presscss('insite')",:onmouseout =>"buttoncss()" %> <%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite",:id => "insite",:onmouseover => "presscss('insite')",:onmouseout =>"buttoncss()" %>
<% end %> <% end %>
<% if is_course_teacher(User.current,@course) %> <!-- show_window('light','fade','20%','35%')--> <% if is_course_teacher(User.current,@course) %> <!-- show_window('light','fade','20%','35%')-->
<a href="javascript:void(0)" class="re_fabu f_r b_lblue" onclick="show_upload();">上传资源</a> <!--<a href="javascript:void(0)" class="re_fabu f_r b_lblue" onclick="show_upload();">上传资源</a>-->
<p class="c_grey fr mt10 mr5">
上传:
<a href="javascript:void(0);" class=" c_dblue" onclick="show_upload(1);">课件</a>&nbsp;|&nbsp;
<a href="javascript:void(0);" class=" c_dblue" onclick="show_upload(2);">软件</a>&nbsp;|&nbsp;
<a href="javascript:void(0);" class=" c_dblue" onclick="show_upload(3);">媒体</a>&nbsp;|&nbsp;
<a href="javascript:void(0);" class=" c_dblue" onclick="show_upload(4);">代码</a>&nbsp;|&nbsp;
<a href="javascript:void(0);" class=" c_dblue" onclick="show_upload(5);">其他</a>
</p>
<% end %> <% end %>
</div><!---re_top end--> </div><!---re_top end-->
<div class="cl"></div> <div class="cl"></div>

@ -14,40 +14,46 @@
</p> </p>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div class="files_tag" id="files_tag">
<%= render :partial => "files/tag_yun", :locals => {:tag_list => @tag_list,:course => course,:tag_name => @tag_name}%>
</div>
<div class="cl"></div>
<div class="for_img_thumbnails"> <div class="for_img_thumbnails">
<% curse_attachments.each do |file| %> <% curse_attachments.each do |file| %>
<% if file.is_public? || User.current.member_of_course?(course) %> <% if file.is_public? || User.current.member_of_course?(course) %>
<div class="re_con_box"> <div class="re_con_box">
<div class=""> <div class="">
<%= link_to_attachment file, :download => true,:text => truncate(file.filename,length: 35, omission: '...'), :title => file.filename+"\n"+file.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis;",:class => "c_dblue f_14 f_b f_l" %> <%= link_to_attachment file, :download => true,:text => truncate(file.filename,length: 35, omission: '...'), :title => file.filename+"\n"+file.description.to_s,:class => "c_dblue f_14 f_b f_l hiddent" %>
<% if User.current.logged? %> <% if User.current.logged? %>
<% if (is_course_teacher(User.current,@course) || file.author_id == User.current.id) && course_contains_attachment?(@course,file) %> <% if (is_course_teacher(User.current,@course) || file.author_id == User.current.id) && course_contains_attachment?(@course,file) %>
<%= link_to("选入我的其他课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true) if has_course?(User.current,file) %> <%= link_to("选入我的其他课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select c_lorange",:remote => true) if has_course?(User.current,file) %>
<% if delete_allowed && file.container_id == @course.id && file.container_type == "Course" %> <% if delete_allowed && file.container_id == @course.id && file.container_type == "Course" %>
<span id="is_public_<%= file.id %>"> <span id="is_public_<%= file.id %>">
<%= link_to (file.is_public? ? "公开":"私有"), update_file_dense_attachments_path(:attachmentid=>file.id,:newtype=>(file.is_public? ? 0:1)),:remote=>true,:class=>"f_l re_open",:method => :post %> <%= link_to (file.is_public? ? "公开":"私有"), update_file_dense_attachments_path(:attachmentid=>file.id,:newtype=>(file.is_public? ? 0:1)),:remote=>true,:class=>"f_l re_open c_blue",:method => :post %>
</span> </span>
<% else %> <% else %>
<!-- <#%= link_to (file.is_public? ? "公开":"私有"),"javascript:void(0)",:class=>"f_l re_open" %> --> <!-- <#%= link_to (file.is_public? ? "公开":"私有"),"javascript:void(0)",:class=>"f_l re_open" %> -->
<% end %> <% end %>
<% else %> <% else %>
<%= link_to("选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true) if has_course?(User.current,file) %> <%= link_to("选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select c_lorange",:remote => true) if has_course?(User.current,file) %>
<% end %> <% end %>
<% else %> <% else %>
<% end %> <% end %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div class=""> <div class="">
<p class="f_l c_grey02 font">文件大小:<%= number_to_human_size(file.filesize) %></p> <p class="f_l mb5 c_grey02">文件大小:<%= number_to_human_size(file.filesize) %></p>
<%= link_to( l(:button_delete), attachment_path(file), <%= link_to( l(:button_delete), attachment_path(file),
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete,:class => "f_r re_de") if delete_allowed && file.container_id == @course.id && file.container_type == "Course"%> :data => {:confirm => l(:text_are_you_sure)}, :method => :delete,:class => "f_r re_de") if delete_allowed && file.container_id == @course.id && file.container_type == "Course"%>
<p class="f_r c_grey02" ><%= time_tag(file.created_on).html_safe %><%= l(:label_bids_published_ago) %>&nbsp;&nbsp;|&nbsp;&nbsp;下载<%= file.downloads %>&nbsp;&nbsp;|&nbsp;&nbsp;引用<%= file.quotes.nil? ? 0:file.quotes %> </p> <p class="f_r c_grey02" ><%= time_tag(file.created_on).html_safe %><%= l(:label_bids_published_ago) %>&nbsp;&nbsp;|&nbsp;&nbsp;下载<%= file.downloads %>&nbsp;&nbsp;|&nbsp;&nbsp;引用<%= file.quotes.nil? ? 0:file.quotes %> </p>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div class="tag_h"> <div class="tag_h">
<%= render :partial => 'tags/tag_new', :locals => {:obj => file, :object_flag => "6"} %> <%= render :partial => 'tags/tag_new', :locals => {:obj => file, :object_flag => "6",:tag_name => @tag_name} %>
<%= render :partial => 'tags/tag_add', :locals => {:obj => file, :object_flag => "6"} %> <%= render :partial => 'tags/tag_add', :locals => {:obj => file, :object_flag => "6",:tag_name => @tag_name} %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div><!---re_con_box end--> </div><!---re_con_box end-->

@ -0,0 +1,9 @@
<% unless tag_list.nil?%>
<% tag_list.each do |k,v|%>
<% if tag_name && tag_name == k%>
<a href="javascript:void(0);" class="files_tag_select"><%= k%>×<%= v%></a>
<% else%>
<a href="javascript:void(0);" class="files_tag_icon" onclick="search_tag_attachment('<%= search_tag_attachment_course_files_path(course)%>','<%= k%>','<%= @q%>','<%= course.id%>');"><%= k%>×<%= v%></a>
<% end%>
<% end%>
<% end%>

@ -7,7 +7,7 @@
<div id="network_issue" style="color: red; display: none;"><%= l(:label_file_upload_error_messages)%></div> <div id="network_issue" style="color: red; display: none;"><%= l(:label_file_upload_error_messages)%></div>
<%= form_tag(course_files_path(course), :multipart => true,:remote => !ie8?,:name=>"upload_form") do %> <%= form_tag(course_files_path(course), :multipart => true,:remote => !ie8?,:name=>"upload_form") do %>
<!-- <label style="margin-top:3px;"><#%= l(:label_file_upload)%></label> --> <input type="hidden" name="course_attachment_type" value="<%= course_attachment_type%>">
<%= render :partial => 'attachement_list',:locals => {:course => course} %> <%= render :partial => 'attachement_list',:locals => {:course => course} %>
<div class="cl"></div> <div class="cl"></div>
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="closeModal();"><%= l(:button_cancel)%></a> <a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="closeModal();"><%= l(:button_cancel)%></a>

@ -0,0 +1 @@
$("#course_list").html("<%= escape_javascript(render :partial => 'course_list',:locals => {course: @course,all_attachments: @result,sort:@sort,order:@order,curse_attachments:@searched_attach})%>");

@ -1,10 +1,10 @@
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'upload_show',:locals => {}) %>'); //$('#ajax-modal').html('<%#= escape_javascript(render :partial => 'upload_show',:locals => {}) %>');
showModal('ajax-modal', '513px'); //showModal('ajax-modal', '513px');
$('#ajax-modal').css('height','569px'); //$('#ajax-modal').css('height','569px');
$('#ajax-modal').siblings().remove(); //$('#ajax-modal').siblings().remove();
//$('#ajax-modal').before("<span style='float: right;cursor:pointer;padding-left: 513px;'>" + ////$('#ajax-modal').before("<span style='float: right;cursor:pointer;padding-left: 513px;'>" +
// "<a href='#' onclick='hidden_homework_atert_form("+ //// "<a href='#' onclick='hidden_homework_atert_form("+
// <#%= @cur_page%> + "," + <#%= @cur_type%> + // // <#%= @cur_page%> + "," + <#%= @cur_type%> +
// ");'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>"); //// ");'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
$('#ajax-modal').parent().css("top","").css("left",""); //$('#ajax-modal').parent().css("top","").css("left","");
$('#ajax-modal').parent().addClass("alert_box"); //$('#ajax-modal').parent().addClass("alert_box");

@ -5,7 +5,7 @@
<% if journals.size > 0 %> <% if journals.size > 0 %>
<% for journal in journals %> <% for journal in journals %>
<div class="ping_C" id='word_li_<%= journal.id.to_s %>'> <div class="ping_C" id='word_li_<%= journal.id.to_s %>'>
<div class="ping_dispic"><a target="_blank" href="#"><%= image_tag(url_to_avatar(journal.user)) %></a></div> <div class="ping_dispic"><a target="_blank" href="javascript:void(0)"><%= image_tag(url_to_avatar(journal.user)) %></a></div>
<div class="ping_discon" style="width: 85%;"> <div class="ping_discon" style="width: 85%;">
<div class="ping_distop"> <div class="ping_distop">
<!-- <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> -->

@ -15,7 +15,7 @@
</li> </li>
<li class="wname"> <li class="wname">
<% if homework.name == nil || homework.name == "" %> <% if homework.name == nil || homework.name == "" %>
<% homework_filename = homework.user.name + "提交的作" %> <% homework_filename = homework.user.name + "提交的作" %>
<% else %> <% else %>
<% homework_filename = homework.name %> <% homework_filename = homework.name %>
<% end %> <% end %>
@ -55,7 +55,7 @@
<!-- 是学生 --> <!-- 是学生 -->
<% if is_my_homework %> <% if is_my_homework %>
<!-- 我的作品,在未开启匿评和未使用匿评,显示为编辑和删除 --> <!-- 我的作品,在未开启匿评和未使用匿评,显示为编辑和删除 -->
<% if bid.comment_status == 0 || bid.open_anonymous_evaluation == 0 %> <% if bid.comment_status == 0 || bid.open_anonymous_evaluation == 0 || bid.comment_status == 2 %>
<li class="wmine"> <li class="wmine">
<%= link_to l(:button_edit), edit_homework_attach_path(homework) %> <%= link_to l(:button_edit), edit_homework_attach_path(homework) %>
<% if homework.user == User.current || User.current.admin? %> <% if homework.user == User.current || User.current.admin? %>
@ -69,7 +69,7 @@
<% end %> <% end %>
</li> </li>
<% else %> <% else %>
<li class="wmine" title="只有开启匿评之前才能修改和删除作业哦!"> <li class="wmine" title="已开启匿评的作业不能进行修改和删除">
<a style="color:#8e8e8e;"><%= l(:button_edit) %></a> <a style="color:#8e8e8e;"><%= l(:button_edit) %></a>
<% if homework.user == User.current || User.current.admin? %> <% if homework.user == User.current || User.current.admin? %>
<!-- 作业创建者显示删除作业 --> <!-- 作业创建者显示删除作业 -->

@ -47,9 +47,9 @@
<%= link_to User.current.login, user_path(User.current), :title => User.current.login%> <%= link_to User.current.login, user_path(User.current), :title => User.current.login%>
</span> </span>
</li> </li>
<li class="c_red" style="margin:25px 0 0 20px;"> 您还没交作业,请创建作业!</li> <li class="c_red" style="margin:25px 0 0 20px;"> 您还没提交作品,请点击提交作品按钮:)</li>
<li class="wping"> <li class="wping">
<%= link_to "提交作", new_exercise_book_path(@bid), :style => "width:80px; margin:20px 0 0 350px;" %> <%= link_to "提交作", new_exercise_book_path(@bid), :style => "width:80px; margin:20px 0 0 350px;" %>
</li> </li>
</ul> </ul>
<div class="cl"></div> <div class="cl"></div>

@ -35,7 +35,7 @@
<%= l(:label_courses_community)%> <%= l(:label_courses_community)%>
</a> </a>
</h2> </h2>
<p> <p class="hiddent">
<%= l(:label_user_location) %> : <%= l(:label_user_location) %> :
<%= link_to l(:field_homepage), home_path %> <%= link_to l(:field_homepage), home_path %>
> >
@ -49,7 +49,7 @@
<div class="search fl"> <div class="search fl">
<%= form_tag({:controller => 'courses', :action => 'search'},:id => "course_search_form", :method => :get, :class => "search_form") do %> <%= form_tag({:controller => 'courses', :action => 'search'},:id => "course_search_form", :method => :get, :class => "search_form") do %>
<%= text_field_tag 'name', params[:name], :placeholder => l(:label_course_name), :class => "search_text fl", :onkeyup => "regexName('#{l(:label_search_conditions_not_null)}');" %> <%= text_field_tag 'name', params[:name], :placeholder => l(:label_course_name), :class => "search_text fl", :onkeyup => "regexName('#{l(:label_search_conditions_not_null)}');" %>
<a href="#" onclick="submitSerch('<%= l(:label_search_conditions_not_null) %>');" class="search_btn fl f14 c_white" > <a href="javascript:void(0)" onclick="submitSerch('<%= l(:label_search_conditions_not_null) %>');" class="search_btn fl f14 c_white" >
<%= l(:label_search)%> <%= l(:label_search)%>
</a> </a>
<br /> <br />
@ -80,7 +80,7 @@
<div class="cl"></div> <div class="cl"></div>
<div > <div >
<a class="pr_info_name fl c_dark fb" href="http://<%= Setting.host_course%>/courses/<%= @course.id%>" target="_blank"> <a class="pr_info_name fl c_dark fb break_word" href="http://<%= Setting.host_course%>/courses/<%= @course.id%>" target="_blank">
<%= @course.name %> <%= @course.name %>
<% if @course.is_public == 0%> <% if @course.is_public == 0%>
<span class="img_private "> <span class="img_private ">

@ -136,7 +136,7 @@
<% when 1 %> <% when 1 %>
<%= link_to '关闭匿评', alert_anonymous_comment_bid_path(@bid), id: "#{@bid.id}_stop_anonymous_comment", remote: true %> <%= link_to '关闭匿评', alert_anonymous_comment_bid_path(@bid), id: "#{@bid.id}_stop_anonymous_comment", remote: true %>
<% when 2 %> <% when 2 %>
<a href="#" style="background:#8e8e8e;">匿评结束</a> <a href="javascript:void(0)" style="background:#8e8e8e;">匿评结束</a>
<% end %> <% end %>
</span> </span>
<%end%> <%end%>

@ -19,7 +19,7 @@ alert('<%= raw(escape_javascript(l(:notice_failed_to_save_members, :errors => er
<% if @create_member_error_messages%> <% if @create_member_error_messages%>
alert("<%= @create_member_error_messages%>"); alert("<%= @create_member_error_messages%>");
<% else%> <% else%>
$('#tbc_02').html('<%= escape_javascript(render :partial => 'courses/course_members') %>'); $('#course_members_setting').html('<%= escape_javascript(render :partial => 'courses/course_members') %>');
alert("添加成功"); alert("添加成功");
<% end%> <% end%>
<%end%> <%end%>

@ -1,6 +1,6 @@
<%if @project%> <%if @project%>
$('#tab-content-members').html('<%= escape_javascript(render :partial => 'projects/settings/members') %>'); $('#tab-content-members').html('<%= escape_javascript(render :partial => 'projects/settings/members') %>');
<%elsif @course%> <%elsif @course%>
$('#tbc_02').html('<%= escape_javascript(render :partial => 'courses/course_members') %>'); $('#course_members_setting').html('<%= escape_javascript(render :partial => 'courses/course_members') %>');
<%end%> <%end%>
hideOnLoad(); hideOnLoad();

@ -2,7 +2,7 @@
$('#tab-content-members').html('<%= escape_javascript(render :partial => 'projects/settings/members') %>'); $('#tab-content-members').html('<%= escape_javascript(render :partial => 'projects/settings/members') %>');
$("#member-<%= @member.id %>").effect("highlight"); $("#member-<%= @member.id %>").effect("highlight");
<%elsif @course%> <%elsif @course%>
$('#tbc_02').html('<%= escape_javascript(render :partial => 'courses/course_members') %>'); $('#course_members_setting').html('<%= escape_javascript(render :partial => 'courses/course_members') %>');
<%end%> <%end%>
hideOnLoad(); hideOnLoad();

@ -6,7 +6,7 @@
<ul> <ul>
<%= form_for @message, :url => {:action => 'new'}, :html => {:multipart => true, :id => 'message-form'} do |f| %> <%= form_for @message, :url => {:action => 'new'}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
<%= render :partial => 'form_course', :locals => {:f => f,:is_new => true} %> <%= render :partial => 'form_course', :locals => {:f => f,:is_new => true} %>
<a href="#" onclick="submitCoursesBoard();"class="blue_btn fl c_white"><%= l(:button_submit)%></a> <a href="javascript:void(0)" onclick="submitCoursesBoard();"class="blue_btn fl c_white"><%= l(:button_submit)%></a>
<%#= preview_link({:controller => 'messages', :action => 'preview', :board_id => @board}, 'message-form' ,target='preview',{:class => 'blue_btn grey_btn fl c_white'} )%> <%#= preview_link({:controller => 'messages', :action => 'preview', :board_id => @board}, 'message-form' ,target='preview',{:class => 'blue_btn grey_btn fl c_white'} )%>
<%= link_to l(:button_cancel), course_boards_path(@course), :class => "blue_btn grey_btn fl c_white"%> <%= link_to l(:button_cancel), course_boards_path(@course), :class => "blue_btn grey_btn fl c_white"%>
<% end %> <% end %>

@ -56,8 +56,8 @@
</li> </li>
<div class="cl"></div> <div class="cl"></div>
<li> <li>
<label class="fl">&nbsp;&nbsp;<%= l(:label_attachment_plural) %>&nbsp;&nbsp;</label> <label class="fl mt10">&nbsp;&nbsp;<%= l(:label_attachment_plural) %>&nbsp;&nbsp;</label>
<div class="fl"> <div class="fl mt10">
<%= render :partial => 'attachments/form_course', :locals => {:container => @message,:isReply => @isReply} %> <%= render :partial => 'attachments/form_course', :locals => {:container => @message,:isReply => @isReply} %>
</div> </div>
</li> </li>

@ -15,7 +15,7 @@
} do |f| %> } do |f| %>
<%= render :partial => 'form', <%= render :partial => 'form',
:locals => {:f => f, :replying => !@message.parent.nil?} %> :locals => {:f => f, :replying => !@message.parent.nil?} %>
<a href="#" onclick="$('#message-form').submit();" class="ButtonColor m3p10"> <a href="javascript:void(0)" onclick="$('#message-form').submit();" class="ButtonColor m3p10">
<%= l(:button_save) %> <%= l(:button_save) %>
</a> </a>
<%= link_to l(:button_cancel), board_message_url(@message.board, @message.root, :r => (@message.parent_id && @message.id)), :class => "ButtonColor m3p10" %> <%= link_to l(:button_cancel), board_message_url(@message.board, @message.root, :r => (@message.parent_id && @message.id)), :class => "ButtonColor m3p10" %>
@ -33,7 +33,7 @@
} do |f| %> } do |f| %>
<%= render :partial => 'form_course', <%= render :partial => 'form_course',
:locals => {:f => f, :replying => !@message.parent.nil?} %> :locals => {:f => f, :replying => !@message.parent.nil?} %>
<a href="#" onclick="submitCoursesBoard();"class="blue_btn fl c_white"><%= l(:button_submit)%></a> <a href="javascript:void(0)" onclick="submitCoursesBoard();"class="blue_btn fl c_white"><%= l(:button_submit)%></a>
<%= link_to l(:button_cancel), board_message_url(@message.board, @message.root, :r => (@message.parent_id && @message.id)), :class => "blue_btn grey_btn fl c_white" %> <%= link_to l(:button_cancel), board_message_url(@message.board, @message.root, :r => (@message.parent_id && @message.id)), :class => "blue_btn grey_btn fl c_white" %>
<% end %> <% end %>

@ -9,6 +9,8 @@
<%= f.text_field :name ,:id => "tags_name_#{obj.id}",:size=>"28",:require=>true,:maxlength => Setting.tags_max_length,:minlength=>Setting.tags_min_length,:class => "isTxt w90 f_l" %> <%= f.text_field :name ,:id => "tags_name_#{obj.id}",:size=>"28",:require=>true,:maxlength => Setting.tags_max_length,:minlength=>Setting.tags_min_length,:class => "isTxt w90 f_l" %>
<%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%> <%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%>
<%= f.text_field :object_flag,:value=> object_flag,:style=>"display:none"%> <%= f.text_field :object_flag,:value=> object_flag,:style=>"display:none"%>
<% tag_name ||= ""%>
<%= f.text_field :tag_name,:value=> tag_name,:style=>"display:none"%>
<%= f.submit "",:class => "submit f_l" %> <%= f.submit "",:class => "submit f_l" %>
</span> </span>
<% end %> <% end %>

@ -12,8 +12,9 @@
<% end %> <% end %>
<% when '6' %> <% when '6' %>
<% if obj.author_id == User.current.id || User.current.admin?%> <% if obj.author_id == User.current.id || User.current.admin?%>
<% select_tag_name ||= ""%>
<span class='del'> <%= link_to 'x', :controller => "tags", :action => "remove_tag_new", :remote => true, :tag_name => tag, <span class='del'> <%= link_to 'x', :controller => "tags", :action => "remove_tag_new", :remote => true, :tag_name => tag,
:taggable_id => obj.id, :taggable_type => object_flag %> </span> :taggable_id => obj.id, :taggable_type => object_flag, :select_tag_name => select_tag_name %> </span>
<% end %> <% end %>
<% end %> <% end %>
</span> </span>

@ -21,7 +21,8 @@
</div> </div>
<% elsif object_flag == '6' %> <% elsif object_flag == '6' %>
<div id="tags_show-<%=obj.class%>-<%=obj.id%>" style="display:inline; "> <div id="tags_show-<%=obj.class%>-<%=obj.id%>" style="display:inline; ">
<%= render :partial => "tags/tag_list",:locals => {:obj => obj,:object_flag => object_flag} %> <% tag_name ||= ""%>
<%= render :partial => "tags/tag_list",:locals => {:obj => obj,:object_flag => object_flag,:select_tag_name => tag_name} %>
</div> </div>
<div id="put-tag-form-<%=obj.class%>-<%=obj.id%>" style="display: none;height: 100px;"> <div id="put-tag-form-<%=obj.class%>-<%=obj.id%>" style="display: none;height: 100px;">
<%= render :partial => "courses/course_resources_html", :locals => {:obj => obj ,:object_flag => object_flag } %> <%= render :partial => "courses/course_resources_html", :locals => {:obj => obj ,:object_flag => object_flag } %>

@ -2,7 +2,9 @@
<% if @object_flag == "6"%> <% if @object_flag == "6"%>
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").empty(); $("#tags_show-<%=@obj.class%>-<%=@obj.id%>").empty();
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").html('<%= escape_javascript(render :partial => 'tags/tag_list', $("#tags_show-<%=@obj.class%>-<%=@obj.id%>").html('<%= escape_javascript(render :partial => 'tags/tag_list',
:locals => {:obj => @obj,:non_list_all => false,:object_flag => @object_flag}) %>'); :locals => {:obj => @obj,:non_list_all => false,:object_flag => @object_flag,:select_tag_name => @select_tag_name}) %>');
$("#files_tag").html("<%= escape_javascript(render :partial => "files/tag_yun", :locals => {:tag_list => @tag_list,:course => @course,:tag_name => @select_tag_name}) %>");
<% end %> <% end %>
<% if @object_flag == "10"%> <% if @object_flag == "10"%>
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").empty(); $("#tags_show-<%=@obj.class%>-<%=@obj.id%>").empty();

@ -5,11 +5,19 @@ $('#tags_show_issue').html('<%= escape_javascript(render :partial => 'tags/tag_n
//$('#put-tag-form-issue').hide(); //$('#put-tag-form-issue').hide();
$('#name-issue').val(""); $('#name-issue').val("");
<% elsif @obj_flag == '6'%> <% elsif @obj_flag == '6'%>
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").empty(); <%if @course%>
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").html('<%= escape_javascript(render :partial => 'tags/course_attachment_tag_name', $("#tags_show-<%=@obj.class%>-<%=@obj.id%>").empty();
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").html('<%= escape_javascript(render :partial => 'tags/tag_list',
:locals => {:obj => @obj,:object_flag => @obj_flag,:select_tag_name => @select_tag_name}) %>');
$("#files_tag").html("<%= escape_javascript(render :partial => "files/tag_yun", :locals => {:tag_list => @tag_list,:course => @course,:tag_name => @select_tag_name}) %>");
<%else%>
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").empty();
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").html('<%= escape_javascript(render :partial => 'tags/course_attachment_tag_name',
:locals => {:obj => @obj,:non_list_all => false,:object_flag => @obj_flag}) %>'); :locals => {:obj => @obj,:non_list_all => false,:object_flag => @obj_flag}) %>');
$("#tags_name_<%=@obj.id%>").val(""); <%end%>
$("#add_tag_<%=@obj.id%>").hide();
$("#tags_name_<%=@obj.id%>").val("");
$("#add_tag_<%=@obj.id%>").hide();
<% elsif @obj_flag == '9'%> <% elsif @obj_flag == '9'%>
$('#tags_show').html('<%= escape_javascript(render :partial => 'tags/new_tag_name', $('#tags_show').html('<%= escape_javascript(render :partial => 'tags/new_tag_name',
:locals => {:obj => @obj,:non_list_all => false,:object_flag => @obj_flag}) %>'); :locals => {:obj => @obj,:non_list_all => false,:object_flag => @obj_flag}) %>');

@ -39,21 +39,12 @@
</div> </div>
<div class="course welcome_left" id="welcome_left"> <div class="course welcome_left" id="welcome_left">
<% if User.current.login? %>
<span class="font_welcome_school"> <span class="font_welcome_school">
<% if @school_id.nil? and (User.current.user_extensions.nil? || User.current.user_extensions.school.nil?) %> <% if @school_id.nil? and (User.current.user_extensions.nil? || User.current.user_extensions.school.nil?) %>
<span class="font_welcome_tdescription">,
<!--
edit by meng
@course_page.description存储在first_page表中的description字段
原本代码
<%= @course_page.description %>
!-->
<%= l(:label_welcome_trustie_course_description) %>
</span>
<% else %>
<% if @school_id == "0" %>
<% else %> <% else %>
<% if @school_id == "0" %>
<% else %>
<% if @school_id.nil? %> <% if @school_id.nil? %>
<%= link_to School.find(User.current.user_extensions.school.id).name, options={:action => 'course', :school_id => User.current.user_extensions.school.id}, html_options={:class => 'font_welcome_school', :method => 'get'} %> <%= link_to School.find(User.current.user_extensions.school.id).name, options={:action => 'course', :school_id => User.current.user_extensions.school.id}, html_options={:class => 'font_welcome_school', :method => 'get'} %>
<br/> <br/>
@ -61,10 +52,20 @@
<%= link_to School.find(@school_id).name, options={:action => 'course', :school_id => @school_id}, html_options={:class => 'font_welcome_school', :method => 'get'} %> <%= link_to School.find(@school_id).name, options={:action => 'course', :school_id => @school_id}, html_options={:class => 'font_welcome_school', :method => 'get'} %>
<br/> <br/>
<% end %> <% end %>
<% end %>
<% end %> <% end %>
<% end %>
</span> </span>
<% unless @course_page.nil? %> <span class="font_welcome_trustie">
<!--
edit by meng
@course_page.title存储在first_page表中的title字段
原本代码
<%= @course_page.title %>
!-->
<%= l(:label_welcome_trustie_course) %>
</span>
<% else %>
<% unless @course_page.nil? %>
<span class="font_welcome_trustie"> <span class="font_welcome_trustie">
<!-- <!--
edit by meng edit by meng
@ -74,8 +75,18 @@
!--> !-->
<%= l(:label_welcome_trustie_course) %> <%= l(:label_welcome_trustie_course) %>
</span> </span>
<span class="font_welcome_tdescription">,
<!--
edit by meng
@course_page.description存储在first_page表中的description字段
原本代码
<%= @course_page.description %>
!-->
<%= l(:label_welcome_trustie_course_description) %>
</span>
<% end %>
<% end %> <% end %>
</div> </div>
<div class="search-bar" id="search-bar"> <div class="search-bar" id="search-bar">
<%= render :partial => "search_project", :locals => {:project_type => Project::ProjectType_course} %> <%= render :partial => "search_project", :locals => {:project_type => Project::ProjectType_course} %>

@ -86,4 +86,8 @@ zh:
#boards #boards
label_course_momes_count: "个帖子" label_course_momes_count: "个帖子"
#boards count #boards count
#setting
label_user_name: "用户名称"
#setting end

@ -20,7 +20,7 @@ zh:
notice_file_not_found: 您访问的页面不存在或已被删除。 notice_file_not_found: 您访问的页面不存在或已被删除。
notice_locking_conflict: 数据已被另一位用户更新 notice_locking_conflict: 数据已被另一位用户更新
notice_not_authorized: 对不起,您无权访问此页面。 notice_not_authorized: 对不起,您无权访问此页面。
notice_has_homework: 您已经提交过一份作 notice_has_homework: 您已经提交过一份作
notice_not_contest_setting_authorized: 对不起,您无权配置此竞赛。 notice_not_contest_setting_authorized: 对不起,您无权配置此竞赛。
notice_not_contest_delete_authorized: 对不起,您无权删除此竞赛。 notice_not_contest_delete_authorized: 对不起,您无权删除此竞赛。
notice_not_authorized_archived_project: 要访问的项目已经归档。 notice_not_authorized_archived_project: 要访问的项目已经归档。
@ -312,13 +312,13 @@ zh:
permission_view_course_messages: 查看留言 permission_view_course_messages: 查看留言
permission_view_real_name: 查看真名 permission_view_real_name: 查看真名
permission_view_students: 查看成员 permission_view_students: 查看成员
permission_export_homeworks: 导出作 permission_export_homeworks: 导出作
permission_quote_project: 引用项目 permission_quote_project: 引用项目
permission_is_manager: 作为管理员 permission_is_manager: 作为管理员
permission_as_teacher: 作为教师 permission_as_teacher: 作为教师
permission_as_student: 作为学生 permission_as_student: 作为学生
permission_paret_in_homework: 加入作业 permission_paret_in_homework: 加入作业
permission_view_homework_attaches: 查看作附件 permission_view_homework_attaches: 查看作附件
permission_view_course_journals_for_messages: 查看课程留言 permission_view_course_journals_for_messages: 查看课程留言
view_course_journals_for_messages: 课程留言 view_course_journals_for_messages: 课程留言
label_send_course_journals_for_messages: 发布了留言 label_send_course_journals_for_messages: 发布了留言
@ -497,14 +497,14 @@ zh:
label_teacher_list: 教师列表 label_teacher_list: 教师列表
label_student_list: 学生列表 label_student_list: 学生列表
label_limit_time: 截止日期 label_limit_time: 截止日期
label_commit_homework: 提交作业 label_commit_homework: 提交作品
label_edit_homework: 修改作品
label_course_homework: 对应课程 label_course_homework: 对应课程
label_course_doing: 进行中 label_course_doing: 进行中
label_course_done: 已结束 label_course_done: 已结束
label_homework_response: 作业咨询 label_homework_response: 作业咨询
label_bidding_homework: 提交作 label_bidding_homework: 提交作
label_add_homework: 添加作业 label_add_homework: 添加作业
label_edit_homework: 修改作业
label_delete_homework: 删除作业 label_delete_homework: 删除作业
label_new_homework: 创建作业 label_new_homework: 创建作业
@ -1135,7 +1135,7 @@ zh:
label_current_contributors: 位当前贡献者 label_current_contributors: 位当前贡献者
label_commit_limit: 已截止,但可补交 label_commit_limit: 已截止,但可补交
label_commit_ar: 作业提交截止时间快到了! label_commit_ar: 作业提交截止时间快到了!
lable_has_commit_homework: 您已提交过作 lable_has_commit_homework: 您已提交过作
#modify by men #modify by men
label_x_current_contributors: label_x_current_contributors:
zero: 位当前贡献者 zero: 位当前贡献者
@ -1147,7 +1147,7 @@ zh:
label_users_on_trustie: 用户 label_users_on_trustie: 用户
label_front: 第一页 label_front: 第一页
label_commit_on: 次提交 label_commit_on: 次提交
label_uncommit_homework: 暂无学生提交作 label_uncommit_homework: 暂无学生提交作
#modify by men #modify by men
label_x_commit_on: label_x_commit_on:
zero: 次提交 zero: 次提交
@ -1207,7 +1207,7 @@ zh:
label_student_response: 作业答疑 # modified by bai label_student_response: 作业答疑 # modified by bai
label_bidding_project: 参与项目 label_bidding_project: 参与项目
label_homework_project: 已提交作 #huang label_homework_project: 已提交作 #huang
button_bidding: 我要参加 button_bidding: 我要参加
field_enterprise: '企业:' field_enterprise: '企业:'
@ -1228,11 +1228,11 @@ zh:
label_wrong_date: 时间格式错误,请输入正确的时间 yyyy-mm-dd label_wrong_date: 时间格式错误,请输入正确的时间 yyyy-mm-dd
label_bidding_succeed: 应标成功 label_bidding_succeed: 应标成功
label_bidding_contest_succeed: 竞赛提交成功 #added by bai label_bidding_contest_succeed: 竞赛提交成功 #added by bai
label_bidding_homework_succeed: 提交成功 #added by bai label_bidding_homework_succeed: 提交成功 #added by bai
label_bidding_homework_failed: 提交失败 #added by bai label_bidding_homework_failed: 提交失败 #added by bai
label_bidding_homework_committed: 你已经提交过作,不能重复提交! label_bidding_homework_committed: 你已经提交过作,不能重复提交!
label_bidding_fail: 应标失败,该项目已经应标 label_bidding_fail: 应标失败,该项目已经应标
label_bidding_homework_fail: 业提交失败,该作业已经被提交! label_bidding_homework_fail: 品提交失败,该作品已经被提交!
label_requirement_list: 需求列表 label_requirement_list: 需求列表
@ -1242,9 +1242,9 @@ zh:
other: 应标项目 other: 应标项目
#end #end
label_x_homework_project: #modify by huang label_x_homework_project: #modify by huang
zero: 已提交的作 zero: 已提交的作
one: 已提交的作 one: 已提交的作
other: 已提交的作 other: 已提交的作
#end #end
label_x_responses: #modify by men label_x_responses: #modify by men
zero: 留言 zero: 留言
@ -1396,8 +1396,8 @@ zh:
label_bid_project: 项目 label_bid_project: 项目
label_project_no_follow: 该项目暂未被关注! label_project_no_follow: 该项目暂未被关注!
label_no_bid_project: 暂无参与项目 label_no_bid_project: 暂无参与项目
label_no_course_project: 暂无已提交的作 label_no_course_project: 暂无已提交的作
label_course_submit_homework: 提交了作 label_course_submit_homework: 提交了作
label_bids_reward_method: 奖励方式 label_bids_reward_method: 奖励方式
label_bids_reward_what: 输入奖励内容 label_bids_reward_what: 输入奖励内容
label_call_bonus: 奖金 label_call_bonus: 奖金
@ -1428,7 +1428,7 @@ zh:
label_have_feedback: 有了 label_have_feedback: 有了
label_of_feedback: label_of_feedback:
label_welcome_participate: 参与了 label_welcome_participate: 参与了
label_cant_download: 未开启互评功能作不允许下载 label_cant_download: 未开启互评功能作不允许下载
lable_close_evaluation: 该作业未开启互评功能 lable_close_evaluation: 该作业未开启互评功能
lable_has_evaluation: 您已进行过评价 lable_has_evaluation: 您已进行过评价
#modify by men #modify by men
@ -1891,7 +1891,7 @@ zh:
label_max_length: 最多250个字 label_max_length: 最多250个字
label_create_person: 创建人员 label_create_person: 创建人员
label_participation_person: 参与人员 label_participation_person: 参与人员
label_homework_without_description: 该作无任何描述! label_homework_without_description: 该作无任何描述!
label_sure_exit_homework: 是否确认退出该作业 label_sure_exit_homework: 是否确认退出该作业
label_teacher_comments: 教师评论 label_teacher_comments: 教师评论
label_anonymous_comments: 匿评 label_anonymous_comments: 匿评
@ -1964,9 +1964,9 @@ zh:
label_totle: 共有 label_totle: 共有
label_homework_count: 个作业 label_homework_count: 个作业
lebel_homework_commit: 已提交的作 lebel_homework_commit: 已提交的作
label_open_anonymous_evaluation: 是否匿评 label_open_anonymous_evaluation: 是否匿评
label_evaluation_description: 即每份作被允许匿评的人数 label_evaluation_description: 即每份作被允许匿评的人数
label_name_not_null: 名称不能为空 label_name_not_null: 名称不能为空
modal_valid_unpassing: 该分班已经存在 modal_valid_unpassing: 该分班已经存在
@ -1974,3 +1974,8 @@ zh:
label_show_non_project: 显示非项目信息 label_show_non_project: 显示非项目信息
label_hidden_non_project: 隐藏非项目信息 label_hidden_non_project: 隐藏非项目信息
label_courseware: 课件
label_software: 软件
label_media: 媒体
label_code: 代码

@ -677,6 +677,7 @@ RedmineApp::Application.routes.draw do
resources :courses do resources :courses do
member do member do
get 'settings(/:tab)', :action => 'settings', :as => 'settings' get 'settings(/:tab)', :action => 'settings', :as => 'settings'
get 'search_member', :action => 'search_member'
get 'homework', :action => 'homework', :as => 'homework' get 'homework', :action => 'homework', :as => 'homework'
get 'new_homework', :action => 'new_homework', :as => 'new_homework' get 'new_homework', :action => 'new_homework', :as => 'new_homework'
get 'file', :action => 'file', :as => 'file' get 'file', :action => 'file', :as => 'file'
@ -709,6 +710,7 @@ RedmineApp::Application.routes.draw do
collection do collection do
match "getattachtype", :via => [:get, :post] match "getattachtype", :via => [:get, :post]
match "search",:via => [:post,:get] match "search",:via => [:post,:get]
match "search_tag_attachment", :via => [:post,:get]
end end
member do member do
match "quote_resource_show", :via => [:get] match "quote_resource_show", :via => [:get]

@ -110,7 +110,7 @@ Redmine::AccessControl.map do |map|
map.permission :view_course, {:courses => [:show], :activities => [:index]}, :public => true, :read => true map.permission :view_course, {:courses => [:show], :activities => [:index]}, :public => true, :read => true
map.permission :search_course, {:search => :index}, :public => true, :read => true map.permission :search_course, {:search => :index}, :public => true, :read => true
map.permission :add_course, {:courses => [:new, :create]}, :require => :loggedin ,:belong_to_course => true map.permission :add_course, {:courses => [:new, :create]}, :require => :loggedin ,:belong_to_course => true
map.permission :edit_course, {:courses => [:settings, :edit, :update]}, :require => :member ,:belong_to_course => true map.permission :edit_course, {:courses => [:settings, :edit, :update,:search_member]}, :require => :member ,:belong_to_course => true
map.permission :close_course, {:courses => [:close, :reopen]}, :require => :member, :read => true ,:belong_to_course => true map.permission :close_course, {:courses => [:close, :reopen]}, :require => :member, :read => true ,:belong_to_course => true
map.permission :select_course_modules, {:courses => :modules}, :require => :member ,:belong_to_course => true map.permission :select_course_modules, {:courses => :modules}, :require => :member ,:belong_to_course => true
map.permission :view_course_journals_for_messages, {:courses => :feedback}, :require => :member,:read => true ,:belong_to_course => true map.permission :view_course_journals_for_messages, {:courses => :feedback}, :require => :member,:read => true ,:belong_to_course => true

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

@ -80,9 +80,18 @@ function regex_course_class_period()
return false; return false;
} }
else if (regex.test(class_period)) { else if (regex.test(class_period)) {
$("#course_class_period_notice").html(""); if(parseInt(class_period) > 0)
$("#course_class_period_notice").hide(); {
return true; $("#course_class_period_notice").html("");
$("#course_class_period_notice").hide();
return true;
}
else
{
$("#course_class_period_notice").html("学时总数必须大于0");
$("#course_class_period_notice").show();
return false;
}
} }
else else
{ {
@ -91,10 +100,33 @@ function regex_course_class_period()
return false; return false;
} }
} }
//验证密码
function regex_course_password()
{
var class_period = $.trim($("#course_course_password").val());
var regex = /^\w+$/;
if(class_period.length == 0)
{
$("#course_course_password_notice").html("课程密码不能为空");
$("#course_course_password_notice").show();
return false;
}
else if (regex.test(class_period)) {
$("#course_course_password_notice").html("");
$("#course_course_password_notice").hide();
return true;
}
else
{
$("#course_course_password_notice").html("课程密码有非法字符");
$("#course_course_password_notice").show();
return false;
}
}
//提交新建课程 //提交新建课程
function submit_new_course() function submit_new_course()
{ {
if(regex_course_name()&&regex_course_class_period()) if(regex_course_name()&&regex_course_class_period()&&regex_course_password())
{ {
$("#new_course").submit(); $("#new_course").submit();
} }
@ -102,7 +134,7 @@ function submit_new_course()
function submit_edit_course(id) function submit_edit_course(id)
{ {
if(regex_course_name()&&regex_course_class_period()) if(regex_course_name()&&regex_course_class_period()&&regex_course_password())
{ {
$("#edit_course_"+id).submit(); $("#edit_course_"+id).submit();
} }
@ -268,6 +300,31 @@ function submitSerch(content)
{ {
if(regexName(content)){$("#course_search_form").submit();} if(regexName(content)){$("#course_search_form").submit();}
} }
//验证搜索时输入名字
function regexQ(content)
{
var name = $.trim($("#q").val());
if(name.length == 0)
{
$("#course_member_name_span").text(content);
$("#course_member_name_span").css('color','#ff0000');
$("#course_member_name_span").focus();
return false;
}
else
{
$("#course_member_name_span").text("");
return true;
}
}
//提交课程成员搜索
function submitMemberSerch(content)
{
//if(regexQ(content)){$("#course_member_search_form").submit();}
$("#course_member_search_form").submit();
}
//课程描述显示更多信息 //课程描述显示更多信息
function show_more_msg() function show_more_msg()
{ {
@ -300,7 +357,7 @@ function show_bid_dead_line(year,month,day,divname)
+ "<input class='c_orange' type='text' style='border:0;' size='1' value='"+minute+"' > 分" + "<input class='c_orange' type='text' style='border:0;' size='1' value='"+minute+"' > 分"
+ "<input class='c_orange' type='text' style='border:0;' size='1' value='"+second+"' > 秒" + "<input class='c_orange' type='text' style='border:0;' size='1' value='"+second+"' > 秒"
+ "</form>" + "</form>"
+ "<p class='fr'>作提交还剩:</p>"); + "<p class='fr'>作提交还剩:</p>");
} }
//验证新建作业的名字 //验证新建作业的名字
function regex_bid_name() function regex_bid_name()
@ -449,3 +506,19 @@ $(function(){
} }
) )
}); });
//查找TAG资源
function search_tag_attachment(url,tag_name,q,course_id,sort)
{
$.get(
url,
{
tag_name: tag_name,
q: q,
course_id:course_id
},
function (data) {
}
);
}

@ -59,7 +59,7 @@ a:hover.info_foot_num{ color:#2390b2;}
/*左侧导航*/ /*左侧导航*/
.subNavBox{width:222px; background:#fff;margin:10px 10px 0 0;} .subNavBox{width:222px; background:#fff;margin:10px 10px 0 0;}
.subNav{border-bottom:solid 1px #e5e3da;cursor:pointer;font-weight:bold;font-size:14px;color:#3ca5c6;line-height:28px;padding-left:10px;background-color:#fff;} .subNav{border-bottom:solid 1px #e5e3da;cursor:pointer;font-weight:bold;font-size:14px;color:#3ca5c6;line-height:28px;padding-left:10px;background-color:#fff;}
.subNav_jiantou{background:url(/images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;} .subNav_jiantou{background:url(../images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;}
.subNav_jiantou:hover{color:#0781b4; } .subNav_jiantou:hover{color:#0781b4; }
.currentDd{color:#0781b4; } .currentDd{color:#0781b4; }
.currentDt{background-color:#fff; } .currentDt{background-color:#fff; }
@ -96,10 +96,10 @@ a.more{ float:right; font-size:12px; font-weight:normal; color:#a9a9a9; margin-t
a:hover.more{ color:#64bdd9;} a:hover.more{ color:#64bdd9;}
.project_box_ul{ padding:0 10px;} .project_box_ul{ padding:0 10px;}
.project_box_list{ padding:10px 0; border-bottom:1px dashed #e2e1e1; padding-left:30px; color:#6f6c6c;} .project_box_list{ padding:10px 0; border-bottom:1px dashed #e2e1e1; padding-left:30px; color:#6f6c6c;}
.img_problem{ background:url(../images/img_project.png) 0 -20px no-repeat;} .img_problem{ background:url(../images/new_project/img_project.png) 0 -20px no-repeat;}
.img_talk{ background:url(../images/img_project.png) 0 -62px no-repeat;} .img_talk{ background:url(../images/new_project/img_project.png) 0 -62px no-repeat;}
.img_ziyuan{ background:url(../images/img_project.png) 0 -115px no-repeat;} .img_ziyuan{ background:url(../images/new_project/img_project.png) 0 -115px no-repeat;}
.img_edition{ background:url(../images/img_project.png) 0 -167px no-repeat;} .img_edition{ background:url(../images/new_project/img_project.png) 0 -167px no-repeat;}
.project_name{ color:#058c42;} .project_name{ color:#058c42;}
.project_name:hover{ color:#016f33;} .project_name:hover{ color:#016f33;}
.project_txt{ color:#0781b4; width:445px; display:block; float:left; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .project_txt{ color:#0781b4; width:445px; display:block; float:left; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
@ -225,7 +225,7 @@ a:hover.upload_btn_grey{background:#8a8a8a;}
.upload_btn{width:80px; height:26px;} .upload_btn{width:80px; height:26px;}
.upload_check{ margin-top:4px;} .upload_check{ margin-top:4px;}
/****其他未更新页面***/ /****其他未更新页面***/
.setting{ background:url(../images/setting.jpg) 0 0 no-repeat; width:670px; height:443px;} .setting{ /*background:url(../images/setting.jpg) 0 0 no-repeat;*/ width:670px; height:443px;}
.newproblem{} .newproblem{}
@ -640,8 +640,7 @@ span.forums-avatar-right{
/*added by bai*/ /*added by bai*/
.user_underlinescore{ .user_underlinescore{
margin:1; margin: 1px;
padding:1;
width:700px; width:700px;
height:1px; height:1px;
background-color:#15bccf; background-color:#15bccf;
@ -889,7 +888,7 @@ ul.tool li{list-style-type:none;
font-size: 16px; font-size: 16px;
color: #5c5c5c; color: #5c5c5c;
text-align: justify; text-align: justify;
text-justify: inter-ideograph; /*text-justify: inter-ideograph; */
} }
.inf_user_image{ .inf_user_image{
@ -915,7 +914,7 @@ ul.tool li{list-style-type:none;
font-size: 20px; font-size: 20px;
color: #FF0000; color: #FF0000;
text-align: justify; text-align: justify;
text-justify: inter-ideograph; /*text-justify: inter-ideograph; */
} }
@ -1105,8 +1104,7 @@ ul.user_course_sort li{list-style-type:none;
background-color:#adb6c5; background-color:#adb6c5;
} }
.user_underline{ .user_underline{
margin:1; margin:1px;
padding:1;
width:240px; width:240px;
height:1px; height:1px;
background-color:#15bccf; background-color:#15bccf;
@ -1116,8 +1114,8 @@ ul.user_course_sort li{list-style-type:none;
.user_enterprise_underline{ .user_enterprise_underline{
margin:1; margin:1px;
padding:1; padding:1px;
width:240px; width:240px;
height:1px; height:1px;
background-color:#ac344f; background-color:#ac344f;
@ -1125,16 +1123,14 @@ ul.user_course_sort li{list-style-type:none;
} }
.user_underline2{ .user_underline2{
margin:1; margin:1px;
padding:1;
width:240px; width:240px;
height:1px; height:1px;
background-color:#c6e9fe; background-color:#c6e9fe;
overflow:hidden overflow:hidden
} }
.user_underline3{ .user_underline3{
margin:1; margin: 1px;
padding:1;
width:120px; width:120px;
height:1px; height:1px;
background-color:#c6e9fe; background-color:#c6e9fe;
@ -1142,8 +1138,7 @@ ul.user_course_sort li{list-style-type:none;
margin-top: 10px; margin-top: 10px;
} }
.homepage_underline{ .homepage_underline{
margin:1; margin:1px;
padding:1;
width:240px; width:240px;
height:1px; height:1px;
background-color:#c6e9fe; background-color:#c6e9fe;
@ -1742,7 +1737,7 @@ margin-left:-10px;
.table_font{font-size:20px;color:#DD0000} .table_font{font-size:20px;color:#DD0000}
.registerd_box{padding-left: 600px;} .registerd_box{padding-left: 600px;}
.project_table{margin:0,0,0,0;margin-bottom:10px;background-color:#0ee;height:50px;} .project_table{margin:0;margin-bottom:10px;background-color:#0ee;height:50px;}
.project_header_tag{float:right; color:#000000;} .project_header_tag{float:right; color:#000000;}
.project_right_tag{margin-top:44%;} .project_right_tag{margin-top:44%;}
@ -2347,7 +2342,7 @@ p.progress-info {clear: left; font-size: 80%; margin-top:-4px; color:#777;}
#roadmap table.progress td { height: 1.2em; } #roadmap table.progress td { height: 1.2em; }
/***** Tabs *****/ /***** Tabs *****/
#content .tabs {height: 2.6em; margin-bottom:1.2em; position:relative; overflow:hidden;} #content .tabs {height: 2.6em; margin-bottom:1.2em; position:relative; overflow:hidden;}
#content .tabs ul {margin:0; position:absolute; bottom:0; padding-left:0.5em; font-family: 14px; width:2000px; border-bottom: 1px solid #15BCCF;} #content .tabs ul {margin:0; position:absolute; bottom:0; padding-left:0.5em; width:2000px; border-bottom: 1px solid #15BCCF;}
#content .tabs ul li { #content .tabs ul li {
float:left; float:left;
list-style-type:none; list-style-type:none;
@ -3062,8 +3057,7 @@ div.repos_explain{
/* new linchun compitition */ /* new linchun compitition */
.contest_underline{ .contest_underline{
margin:1; margin:1px;
padding:1;
width:900px; width:900px;
height:0.5px; height:0.5px;
background-color:#aaa; background-color:#aaa;

@ -117,14 +117,13 @@ a:hover.re_fabu{background:#55a1b9;}
.re_con{ margin:5px; width:665px;} .re_con{ margin:5px; width:665px;}
.re_con_top{color:#494949; } .re_con_top{color:#494949; }
.re_con_top span{ color:#999999; font-weight:bold;} .re_con_top span{ color:#999999; font-weight:bold;}
a.re_select{ display:block; height:20px; border:1px solid #ff9900; color:#ff9900; margin-left:10px; padding:2px 5px 1px;} a.re_select{ display:block; border:1px solid #ff9900; color:#ff9900; margin-left:10px; padding:1px 5px;}
a:hover.re_select{ background:#ff9900; color:#fff; text-decoration:none;} a:hover.re_select{ background:#ff9900; color:#fff; text-decoration:none;}
a.re_open{display:block; width:46px; height:19px; border:1px solid #64bdd9; color:#64bdd9; margin-left:10px;padding-top:3px;} a.re_open{display:block; width:46px; border:1px solid #64bdd9; color:#64bdd9; margin-left:10px;padding:1px 5px;}
a:hover.re_open{ background:#64bdd9; color:#fff; text-decoration:none;} a:hover.re_open{ background:#64bdd9; color:#fff; text-decoration:none;}
a.re_de{ color:#6883b6; margin-left:15px;} a.re_de{ color:#6883b6; margin-left:15px;}
.re_con_box{ border-bottom:1px dashed #dadada; padding-bottom:10px; margin-bottom:10px;} .re_con_box{ border-bottom:1px dashed #dadada; padding-bottom:10px; margin-bottom:10px;}
/****资源库***/
/*.setting{ background:url(../images/setting.jpg) 0 0 no-repeat; width:670px; height:443px;}*/
/* 作业列表 */ /* 作业列表 */
.ttl{ } .ttl{ }
@ -178,8 +177,6 @@ a.wzan_visited{background:url(images/pic_zan.png) 0 0 no-repeat;}
.msg_box{ width:670px; height:205px; border-bottom:1px dashed #CCC; padding-top:10px;} .msg_box{ width:670px; height:205px; border-bottom:1px dashed #CCC; padding-top:10px;}
.msg_box h4{ } .msg_box h4{ }
.msg_box textarea{width:658px;height:90px;padding:5px;overflow:hidden;background-color: #ffffff; border:1px solid #CCC; margin:5px 0px; color:#666; font-size:12px; } .msg_box textarea{width:658px;height:90px;padding:5px;overflow:hidden;background-color: #ffffff; border:1px solid #CCC; margin:5px 0px; color:#666; font-size:12px; }
/*.msg_box a{ float:right; display:block; width:50px; height:22px; background:#15bccf; padding-top:3px; color:#fff; margin-left:10px; text-align:center; margin-top:5px; }*/
/*.msg_box a:hover{ background-color:#03a1b3; text-decoration:none;}*/
/****评分弹框****/ /****评分弹框****/
@ -242,7 +239,6 @@ a:hover.tijiao{ background:#0f99a9;}
.members_left ul li{ height:30px; border-bottom:1px solid #E4E4E4; width:410px; padding-top:10px; } .members_left ul li{ height:30px; border-bottom:1px solid #E4E4E4; width:410px; padding-top:10px; }
.members_left ul li a{ float:left; text-align:center;} .members_left ul li a{ float:left; text-align:center;}
.members_left ul li span{ float:left; text-align:center; color:#484747;} .members_left ul li span{ float:left; text-align:center; color:#484747;}
.w150{ text-align:center; width:150px;min-height: 10px;} .w150{ text-align:center; width:150px;min-height: 10px;}
.f_b{ font-weight: bold;} .f_b{ font-weight: bold;}
.members_right label{ margin-left:15px;} .members_right label{ margin-left:15px;}
@ -251,7 +247,7 @@ a:hover.tijiao{ background:#0f99a9;}
.hwork_new{ color:#4c4c4c;} .hwork_new{ color:#4c4c4c;}
.c_red{ color:#F00;} .c_red{ color:#F00;}
.hwork_input{ border:1px solid #64bdd9; height:22px; width:555px; background:#fff; margin-bottom:10px; padding:5px;} .hwork_input{ border:1px solid #64bdd9; height:22px; width:555px; background:#fff; margin-bottom:10px; padding:5px;}
.hwork_input02{ border:1px solid #64bdd9; height:15px; width:120px; background:#fff; margin-bottom:10px; padding:5px;} .hwork_input02{ border:1px solid #64bdd9; height:15px; width:140px; background:#fff; margin-bottom:10px; padding:5px;}
.hwork_text{ border:1px solid #64bdd9; height:100px;width:555px; background:#fff; margin-left:5px; padding:5px; margin-bottom:10px;} .hwork_text{ border:1px solid #64bdd9; height:100px;width:555px; background:#fff; margin-left:5px; padding:5px; margin-bottom:10px;}
.hwork_new ul li{ } .hwork_new ul li{ }
.ml21{ margin-left:21px;} .ml21{ margin-left:21px;}
@ -263,6 +259,7 @@ a:hover.tijiao{ background:#0f99a9;}
.hwork_tb_ li{float:left;height: 24px;width: auto; padding:0 10px;cursor:pointer;} .hwork_tb_ li{float:left;height: 24px;width: auto; padding:0 10px;cursor:pointer;}
.hwork_normaltab { color:#15bccf ; border-bottom:3px solid #e4e4e4; } .hwork_normaltab { color:#15bccf ; border-bottom:3px solid #e4e4e4; }
.hwork_hovertab { color:#656767; font-weight:bold; border-bottom:3px solid #15bccf; } .hwork_hovertab { color:#656767; font-weight:bold; border-bottom:3px solid #15bccf; }
.hwork_dis{display:block; } .hwork_dis{display:block; }
.hwork_undis{display:none;} .hwork_undis{display:none;}
.project_none{ display:none;} .project_none{ display:none;}
@ -276,6 +273,8 @@ a:hover.tijiao{ background:#0f99a9;}
a.member_btn{ padding: 3px 5px; background:#15bccf; color:#fff;} a.member_btn{ padding: 3px 5px; background:#15bccf; color:#fff;}
a:hover.member_btn{ background:#329cbd;} a:hover.member_btn{ background:#329cbd;}
.hol{display: none;} .hol{display: none;}
.search_course{margin-top:8px;margin-left:8px;}
.search_form_course{margin-top:8px;margin-left:8px;}
/* 新建项目 */ /* 新建项目 */
.pro_new{ } .pro_new{ }
@ -470,6 +469,57 @@ blockquote {
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
background: url('../images/requirements/reference.jpg'); background: url('../images/requirements/reference.jpg');
} }
a.member_search_edit {width: 43px;background: #15bccf;color: #fff;text-align: center;text-decoration: none;padding: 2px;}
.min_search_edit {width: 150px;height: 20px;border: 1px solid #d0d0d0 !important;color: #666;}
a.link_file{ background:url(../images/pic_file.png) 0 2px no-repeat; padding-left:20px; color:#64bdd9; }
a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;}
.r_txt_tit{width:510px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;color:#15bccf; float:left; color:#09658c; font-size:14px;}
.label{ width:80px; text-align:right; font-size:14px; display:block; float:left;}
.label02{ width:110px; text-align:right; font-size:14px; display:block; float:left;}
/*作业批次下拉*/
div#menu_r {height:41px; font-size:14px; font-weight:bold; margin-bottom:10px;}
div#menu_r ul {float: left;}
div#menu_r ul.menu_r { background: #64bdd9; padding:0 10px; height:40px; }
div#menu_r li {position: relative; z-index: 9; margin: 0; display: block; float: left; }
div#menu_r li:hover>ul { left: -2px;}
div#menu_r a {position: relative;z-index: 10; height: 41px; display: block; float: left;line-height: 41px; text-decoration: none; font-size:14px; }
div#menu_r {display: block; cursor: pointer; background-repeat: no-repeat;background-position: 95% 0;padding-right: 15px; _padding-right: 20px;}
div#menu_r ul a.parent {background: url(../images/item.png) -20px -30px no-repeat; width:60px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
div#menu_r ul a.parent:hover {background: url(../images/item.png) -20px -60px no-repeat;}
div#menu_r ul ul a.parent {background: url(../images/item.png) -20px 6px no-repeat;}
div#menu_r ul ul a.parent:hover {background: url(../images/item.png) -20px -11px no-repeat;}
/* menu::level1 */
div#menu_r a { padding: 5px 12px 0 10px;line-height: 30px; color: #fff;}
/*div#menu_r li { background: url(images/main-delimiter.png) 98% 4px no-repeat; }*/
div#menu_r li.last { background: none; }
/* menu::level2 */
div#menu_r ul ul li { background: none; }
div#menu_r ul ul { position: absolute;top: 38px; left: -999em; width: 90px; padding: 5px 0 0 0; background:#fff; border:1px solid #15bccf; margin-top:1px;}
div#menu_r ul ul a {padding: 0 0 0 15px; height: auto; float: none;display: block; line-height: 24px; font-size:12px; font-weight:normal;color:#15bccf;}
div#menu_r ul ul a:hover { background:#64bdd9; color:#fff;}
div#menu_r ul ul li.last { margin-left:15px; }
div#menu_r ul ul li {width: 100%;}
/* 20150414*/
a.wzan_img{background:url(../images/new_project/public_icon.png) 0px -457px no-repeat; display:block; height:31px; width:30px; color:#fff; }
a.wzan_visited{background:url(../images/new_project/public_icon.png) 0px -503px no-repeat;}
.dis ul li.wname_st a{ width:260px; font-size:14px; color:#595959; padding:10px 0 0 0px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.dis ul li.wname_st a:hover{ color:#41a8c8;}
.no_zan{color:#999999;}
.vi_zan{color:#28be6c;}
.newwork_btn a{background:#64bdd9;color:#fff;font-size:14px; font-weight:normal; padding:2px 10px; display:block; text-align:center; float:right;}
.newwork_btn a:hover{ background:#329cbd;}
.files_tag{ width:670px; height:22px; overflow:hidden; margin-bottom:10px;}
a.files_tag_icon{ background:#e2f3f9; color:#54aeca; border:1px solid #bbe2ef; padding:1px 10px; float:left; margin-right:10px;margin-bottom:10px; }
a.files_tag_select{ background:#64bdd9; color:#fff; border:1px solid #64bdd9; padding:1px 10px; float:left; margin-right:10px;margin-bottom:10px;}

@ -167,23 +167,8 @@ a:hover.tijiao{ background:#0f99a9 !important;}
.c_grey{ color:#A7A7A7;} .c_grey{ color:#A7A7A7;}
/*新增*/ /*新增*/
.min_search { .min_search {width: 150px;height: 15px;border: 1px solid #d0d0d0 !important;color: #666;}
width: 150px; a.member_search {width: 43px;height: 22px;background: #15bccf;color: #fff;text-align: center;padding: 4px 6px;text-decoration: none;}
height: 15px;
border: 1px solid #d0d0d0 !important;
color: #666;
/*background: url(../images/course/public_icon.png) 135px -193px no-repeat;*/
/*cursor: pointer;*/
}
a.member_search {
width: 43px;
height: 22px;
background: #15bccf;
color: #fff;
text-align: center;
padding: 4px 6px;
text-decoration: none;
}
/*上传图片处理*/ /*上传图片处理*/
.upload_img img{max-width: 100%;} .upload_img img{max-width: 100%;}

@ -8,11 +8,44 @@ a:link,a:visited{color:#7f7f7f;text-decoration:none;}
a:hover,a:active{color:#000;} a:hover,a:active{color:#000;}
/*常用*/ /*常用*/
select,input,textarea{ border:1px solid #64bdd9; background:#fff; color:#000; padding-left:5px; }
.sub_btn{ cursor:pointer; -moz-border-radius:3px; -webkit-border-radius:3px; border:1px solid #707070; color:#000; border-radius:3px; padding:1px 10px; margin-bottom:10px; background:#dbdbdb;}
.sub_btn:hover{ background:#b5e2fa; color:#000; border:1px solid #3c7fb1;}
table{ background:#fff;}
.more{ font-weight:normal; color:#999; font-size:12px;}
.no_line{ border-bottom:none;}
.line{border-bottom:1px dashed #d4d4d4; padding-bottom:10px; margin-bottom:10px;}
.no_border{ border:none;}
.min_search{ width:150px; height:20px; border:1px solid #d0d0d0; color:#666; background:url(../images/new_project/public_icon.png) 135px -193px no-repeat; cursor:pointer;}
/* font & color */
h2{ font-size:18px; color:#15bccf;}
h3{ font-size:14px; color:#e8770d;}
h4{ font-size:14px; color:#3b3b3b;}
.f12{font-size:12px; font-weight:normal;}
.f14{font-size:14px;}
.f16{font-size:16px;}
.f18{font-size:18px;}
.fb{font-weight:bold;}
.lh20{line-height:20px;}
.lh22{line-height:22px;}
.lh24{line-height:24px;}
.lh26{line-height:26px;}
.fmYh{font-family:"MicroSoft Yahei";}
.font999{ color:#999;}
.fontRed{color:#770000;}
/* Float & Clear */
.cl{ clear:both; overflow:hidden; } .cl{ clear:both; overflow:hidden; }
.fl{ float: left;} .fl{float:left;display:inline;}
.fr{ float:right;} .fr{float:right;display:inline;}
.f_l{ float:left;} .f_l{ float:left;}
.f_r{ float:right;} .f_r{ float:right;}
.clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}
.clearfix{clear:both;zoom:1}
.break_word{ word-break:break-all; word-wrap: break-word;}
/* Spacing */
.ml2{ margin-left:2px;} .ml2{ margin-left:2px;}
.ml3{ margin-left:3px;} .ml3{ margin-left:3px;}
.ml4{ margin-left:4px;} .ml4{ margin-left:4px;}
@ -21,12 +54,14 @@ a:hover,a:active{color:#000;}
.ml10{ margin-left:10px;} .ml10{ margin-left:10px;}
.ml15{ margin-left:15px;} .ml15{ margin-left:15px;}
.ml20{ margin-left:20px;} .ml20{ margin-left:20px;}
.ml40{ margin-left:40px;}
.ml45{ margin-left:45px;} .ml45{ margin-left:45px;}
.ml55{ margin-left:55px;} .ml55{ margin-left:55px;}
.ml30{ margin-left:30px;} .ml30{ margin-left:30px;}
.ml60{ margin-left:60px;} .ml60{ margin-left:60px;}
.ml80{ margin-left:80px;} .ml80{ margin-left:80px;}
.ml90{ margin-left:90px;} .ml90{ margin-left:90px;}
.ml110{ margin-left:110px;}
.mr5{ margin-right:5px;} .mr5{ margin-right:5px;}
.mr10{ margin-right:10px;} .mr10{ margin-right:10px;}
.mr20{ margin-right:20px;} .mr20{ margin-right:20px;}
@ -34,14 +69,20 @@ a:hover,a:active{color:#000;}
.mr40{ margin-right:40px;} .mr40{ margin-right:40px;}
.mt3{ margin-top:3px;} .mt3{ margin-top:3px;}
.mt5{ margin-top:5px;} .mt5{ margin-top:5px;}
.mt8{ margin-top:8px;}
.mt10{ margin-top:10px;} .mt10{ margin-top:10px;}
.mb5{ margin-bottom:5px;} .mb5{ margin-bottom:5px;}
.mb10{ margin-bottom:10px;} .mb10{ margin-bottom:10px;}
.pl15{ padding-left:15px;} .pl15{ padding-left:15px;}
.w90{ width:90px;}
.w210{ width:210px;}
.w150{ width:150px;}
.w280{ width:280px;} .w280{ width:280px;}
.w430{ width:470px;} .w430{ width:470px;}
.w520{ width:520px;} .w520{ width:520px;}
.w543{ width:543px;}
.w557{ width:557px;} .w557{ width:557px;}
.w583{ width:583px;}
.w350{ width:350px;} .w350{ width:350px;}
.w610{ width:610px;} .w610{ width:610px;}
.w600{ width:600px;} .w600{ width:600px;}
@ -55,8 +96,8 @@ h4{ font-size:14px; color:#3b3b3b;}
a.b_grey{ background: #F5F5F5;} a.b_grey{ background: #F5F5F5;}
a.b_dgrey{ background: #CCC;} a.b_dgrey{ background: #CCC;}
a.c_orange{color:#e8770d;} a.c_orange{color:#ff5722;}
a:hover.c_orange{color: #F30;} a:hover.c_orange{color: #d33503;}
a.c_lorange{color:#ff9900;} a.c_lorange{color:#ff9900;}
a:hover.c_lorange{color:#fff;} a:hover.c_lorange{color:#fff;}
a.c_blue{ color:#15bccf;} a.c_blue{ color:#15bccf;}
@ -74,10 +115,9 @@ a.c_blue02{color: #3ca5c6;}
a:hover.c_blue02{color: #0781b4;} a:hover.c_blue02{color: #0781b4;}
a.c_red{ color:#F00;} a.c_red{ color:#F00;}
a:hover.c_red{ color: #C00;} a:hover.c_red{ color: #C00;}
a.c_purple{color: #426e9a;}
.f14{ font-size:14px;} a:hover.c_purple{color: #d33503;}
.fb{ font-weight:bold;} a.c_green{ color:#28be6c;}
.f12{ font-size:12px; font-weight:normal;}
.b_grey{ background: #F5F5F5;} .b_grey{ background: #F5F5F5;}
.b_dgrey{ background: #CCC;} .b_dgrey{ background: #CCC;}
@ -86,28 +126,56 @@ a:hover.c_red{ color: #C00;}
.c_purple{color: #6883b6;} .c_purple{color: #6883b6;}
.c_blue{ color:#15bccf;} .c_blue{ color:#15bccf;}
.c_red{ color:#F00;} .c_red{ color:#F00;}
.c_green{ color:#28be6c;}
.c_dblue{ color:#09658c;} .c_dblue{ color:#09658c;}
.b_blue{background:#64bdd9;} .b_blue{background:#64bdd9;}
.b_green{background:#28be6c;} .b_green{background:#28be6c;}
.b_w{ background:#fff;} .b_w{ background:#fff;}
/* commonBtn */
.grey_btn{ background:#d9d9d9; color:#656565;font-size:14px; font-weight:normal; text-align:center;padding:2px 10px;} .grey_btn{ background:#d9d9d9; color:#656565;font-size:14px; font-weight:normal; text-align:center;padding:2px 10px;}
a.grey_btn{ background:#d9d9d9; color:#656565;font-size:14px; font-weight:normal; text-align:center;padding:2px 10px;} a.grey_btn{ background:#d9d9d9; color:#656565;font-size:14px; font-weight:normal; text-align:center;padding:2px 10px;}
a:hover.grey_btn{ background:#717171; color:#fff;} a:hover.grey_btn{ background:#717171; color:#fff;}
.green_btn{ background:#28be6c; color:#fff; font-size:14px; font-weight:normal;padding:2px 10px; text-align:center;}
a.green_btn{background:#28be6c;color:#fff;font-size:14px; font-weight:normal; padding:2px 10px; text-align:center;}
a:hover.green_btn{ background:#14ad5a;}
.blue_btn{ background:#64bdd9; color:#fff; font-size:14px; font-weight:normal;padding:2px 10px; text-align:center;} .blue_btn{ background:#64bdd9; color:#fff; font-size:14px; font-weight:normal;padding:2px 10px; text-align:center;}
a.blue_btn{background:#64bdd9;color:#fff;font-size:14px; font-weight:normal; padding:2px 10px; text-align:center;} a.blue_btn{background:#64bdd9;color:#fff;font-size:14px; font-weight:normal; padding:2px 10px; text-align:center;}
a:hover.blue_btn{ background:#329cbd;} a:hover.blue_btn{ background:#329cbd;}
a.orange_btn{ background:#ff5722;color:#fff;font-size:14px; font-weight:normal; padding:2px 10px; text-align:center; }
a:hover.orange_btn{ background:#d63502;}
.green_u_btn{border:1px solid #3cb761; padding:2px 10px; color:#3cb761;}
a.green_u_btn{border:1px solid #3cb761; padding:2px 10px; color:#3cb761;}
a:hover.green_u_btn{ background:#3cb761; color:#fff;}
.orange_u_btn{border:1px solid #ff5d31; padding:2px 10px; color:#ff5d31;}
a.orange_u_btn{border:1px solid #ff5d31; padding:2px 10px; color:#ff5d31;}
a:hover.orange_u_btn{background:#ff5d31; color:#fff;}
.bgreen_u_btn{border:1px solid #1abc9c; padding:2px 10px; color:#1abc9c;}
a.bgreen_u_btn{border:1px solid #1abc9c; padding:2px 10px; color:#1abc9c;}
a:hover.bgreen_u_btn{background:#1abc9c; color:#fff;}
.blue_u_btn{border:1px solid #64bdd9; padding:2px 10px; color:#64bdd9;}
a.blue_u_btn{border:1px solid #64bdd9; padding:2px 10px; color:#64bdd9;}
a:hover.blue_u_btn{background:#64bdd9; color:#fff;}
.nolink_btn{ background:#BCBCBC; color: #fff; padding:2px 5px;}
.more_btn{-moz-border-radius:3px; -webkit-border-radius:3px; border:1px solid #9DCEFF; color:#9DCEFF; border-radius:3px; padding:0px 3px;}
/*.upbtn{ margin:42px 0 0 10px; border:none; color:#999; }*/
.red_btn_cir{ background:#e74c3c; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.green_btn_cir{ background:#28be6c; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.blue_btn_cir{ background:#3498db; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.orange_btn_cir{ background:#e67e22; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
/* commonpic */
.pic_date{ display:block; background:url(../images/new_project/public_icon.png) -31px 0 no-repeat; width:16px; height:15px; float:left;}
.pic_add{ display:block; background:url(../images/new_project/public_icon.png) -31px -273px no-repeat; width:16px; height:15px; float:left;}
.pic_sch{ display:block; background:url(../images/new_project/public_icon.png) -31px -195px no-repeat; width:16px; height:15px; float:left;}
.pic_mes{ display:block; background:url(../images/new_project/public_icon.png) 0px -376px no-repeat; width:20px; height:15px; padding-left:18px;}
.pic_img{ display:block; background:url(../images/new_project/public_icon.png) -31px -419px no-repeat; width:20px; height:15px; }
.pic_del{ display:block; background:url(../images/new_project/public_icon.png) 0px -235px no-repeat; width:20px; height:15px; }
.more{ font-weight:normal; color:#999; font-size:12px;}
.no_line{ border-bottom:none;}
select,input,textarea{ border:1px solid #ccc; background:#fff; color:#999; padding-left:5px;}
.sub_btn{ cursor:pointer; -moz-border-radius:3px; -webkit-border-radius:3px; border:1px solid #ccc; color:#999; border-radius:3px; padding:2px 10px; margin-bottom:10px;}
.sub_btn:hover{ background:#999; color:#fff; }
table{ background:#fff;}
/*框架主类容*/ /*框架主类容*/
#Container{ width:940px; margin:0 auto; } #Container{ width:940px; margin:0 auto; }
@ -159,7 +227,6 @@ div#menu ul ul li {width: 100%;}
div#menu ul ul ul {padding: 0;margin: -38px 0 0 92px !important; width:200px; } div#menu ul ul ul {padding: 0;margin: -38px 0 0 92px !important; width:200px; }
div#menu ul ul ul li a{ width:185px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;color:#15bccf;} div#menu ul ul ul li a{ width:185px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;color:#15bccf;}
/*主类容*/ /*主类容*/
#Main{ background:#fff; margin-bottom:10px;} #Main{ background:#fff; margin-bottom:10px;}
#content{} #content{}
@ -199,7 +266,7 @@ html{ overflow-x:hidden;}
.close_btn span { display:none;} .close_btn span { display:none;}
.side_center .custom_service p { text-align:center; padding:6px 0; margin:0; vertical-align:middle;} .side_center .custom_service p { text-align:center; padding:6px 0; margin:0; vertical-align:middle;}
.msgserver { margin-top:5px;} .msgserver { margin-top:5px;}
.msgserver a { background:url(../images/sidebar_bg.png) no-repeat -119px -112px; padding-left:22px; height:21px; display:block; color:#15bccf;} .msgserver a { background:url(../images/sidebar_bg.png) no-repeat -119px -112px; padding-left:22px; height:21px; display:block; }
.opnionText{box-shadow:none; width:122px; height:180px; border-color: #DFDFDF; background:#fff; color:#999; padding:3px; font-size:12px;overflow:auto; background-attachment:fixed;border-style:solid;} .opnionText{box-shadow:none; width:122px; height:180px; border-color: #DFDFDF; background:#fff; color:#999; padding:3px; font-size:12px;overflow:auto; background-attachment:fixed;border-style:solid;}
a.opnionButton{ display:block; background:#15bccf; width:130px; height:23px; margin-top:5px; text-align:center; padding-top:3px;} a.opnionButton{ display:block; background:#15bccf; width:130px; height:23px; margin-top:5px; text-align:center; padding-top:3px;}
a:hover.opnionButton{background: #0fa9bb; } a:hover.opnionButton{background: #0fa9bb; }
@ -210,9 +277,12 @@ a:hover.opnionButton{background: #0fa9bb; }
a.close_btn {background-position:-44px 0;} a.close_btn {background-position:-44px 0;}
a:hover.close_btn {background-position:-66px 0;} a:hover.close_btn {background-position:-66px 0;}
.show_btn {background-position:-119px 0;} .show_btn {background-position:-119px 0;}
.msgserver a:hover { color: #0fa9bb; } .msgserver a {color:#15bccf; }
.break_word{word-break: break-all;word-wrap: break-word;} .break_word{word-break: break-all;word-wrap: break-word;}
.hiddent{ overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
.break_word_firefox{white-space: pre-wrap;word-break: break-all;} .break_word_firefox{white-space: pre-wrap;word-break: break-all;}
/***** Ajax indicator ******/ /***** Ajax indicator ******/
#ajax-indicator { #ajax-indicator {
position: absolute; /* fixed not supported by IE */ position: absolute; /* fixed not supported by IE */
@ -319,9 +389,11 @@ div.flash.warning, .conflict {
.conflict-details {font-size:80%;} .conflict-details {font-size:80%;}
/***** end Flash & error messages ****/ /***** end Flash & error messages ****/
/*弹出框*/ /*弹出框*/
.black_overlay{display:none;position:fixed;top:0px;left:0px;width:100%;height:100%;background-color:black;z-index:1001;-moz-opacity:0.8;opacity:.80;filter:alpha(opacity=80);} .black_overlay{display:none;position:fixed;top:0px;left:0px;width:100%;height:100%;background-color:black;z-index:1001;-moz-opacity:0.8;opacity:.80;filter:alpha(opacity=80);}
.white_content{display:none;position:fixed;top:15%;left:30%;width:420px;height: auto; margin-bottom:20px;padding:16px;border:3px solid #15bccf;background-color:white;z-index:1002;overflow:auto;} .white_content{display:none;position:fixed;top:15%;left:30%;width:420px;height: auto; margin-bottom:20px;padding:16px;border:3px solid #15bccf;background-color:white;z-index:1002;overflow:auto;}
.white_content02{display:none;position:fixed;top:15%;left:30%;width:200px;height: auto; margin-bottom:20px;padding:10px;border:3px solid #15bccf;background-color:white;z-index:1002;overflow:auto;}
.floatbox{ width:420px; border:3px solid #15bccf; background:#fff; padding:5px;} .floatbox{ width:420px; border:3px solid #15bccf; background:#fff; padding:5px;}
a.box_close{ display:block; float:right; width:16px; height:16px; background:url(../images/img_floatbox.png) 0 0 no-repeat;} a.box_close{ display:block; float:right; width:16px; height:16px; background:url(../images/img_floatbox.png) 0 0 no-repeat;}
a.box_close{background:url(../images/img_floatbox.png) -22px 0 no-repeat;} a.box_close{background:url(../images/img_floatbox.png) -22px 0 no-repeat;}

@ -1057,7 +1057,7 @@ display: block;
float: left; float: left;
margin-left: 20px; margin-left: 20px;
margin-top: 10px; margin-top: 10px;
width: 470px; width: 540px;
font-family: '微软雅黑'; /*modify by men*/ font-family: '微软雅黑'; /*modify by men*/
color: rgb(0, 0, 0); color: rgb(0, 0, 0);
font-size: 13px; font-size: 13px;
@ -1085,7 +1085,7 @@ float: left;
}*/ }*/
.information_for_course { .information_for_course {
margin-top: 20px; margin-top: 20px;
margin-left: 507px; margin-left: 550px;
float: left; float: left;
height: auto; height: auto;
width: 300px; width: 300px;
@ -2008,10 +2008,10 @@ div.tableline{
text-align: justify; text-align: justify;
} }
.brief_introduction { .brief_introduction {
margin-top: -18px; margin-top: -30px;
margin-left: 60px; margin-left: 60px;
/*display: inline-block;*/ /*display: inline-block;*/
width: 500px; width: 480px;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;

Loading…
Cancel
Save