This commit is contained in:
zhuhao 2014-11-24 09:22:04 +08:00
commit 4a2b5f5e9a
41 changed files with 1328 additions and 1222 deletions

View File

@ -125,6 +125,7 @@ GEM
mocha (1.1.0) mocha (1.1.0)
metaclass (~> 0.0.1) metaclass (~> 0.0.1)
multi_json (1.10.1) multi_json (1.10.1)
mysql2 (0.3.11)
mysql2 (0.3.11-x86-mingw32) mysql2 (0.3.11-x86-mingw32)
net-ldap (0.3.1) net-ldap (0.3.1)
nokogiri (1.6.3) nokogiri (1.6.3)

View File

@ -66,7 +66,7 @@ class AccountController < ApplicationController
if @user.save if @user.save
@token.destroy @token.destroy
flash[:notice] = l(:notice_account_password_updated) flash[:notice] = l(:notice_account_password_updated)
redirect_to signin_url redirect_to signin_path
return return
end end
end end
@ -92,7 +92,7 @@ class AccountController < ApplicationController
Mailer.lost_password(token).deliver Mailer.lost_password(token).deliver
end end
flash[:notice] = l(:notice_account_lost_email_sent) flash[:notice] = l(:notice_account_lost_email_sent)
redirect_to signin_url redirect_to signin_path
return return
end end
end end
@ -103,7 +103,7 @@ class AccountController < ApplicationController
def register def register
# @root_path="/home/pdl/redmine-2.3.2-0/apache2/" # @root_path="/home/pdl/redmine-2.3.2-0/apache2/"
# #
#@cache_identityy = params[:identity]||"" #身份 @cache_identityy = params[:identity]||"" #身份
@cache_no = params[:no]||"" #学号 @cache_no = params[:no]||"" #学号
@cache_technical_title = params[:technical_title]||"" #教师职称 @cache_technical_title = params[:technical_title]||"" #教师职称
@cache_province = params[:province]||"" #省份 @cache_province = params[:province]||"" #省份
@ -144,7 +144,22 @@ class AccountController < ApplicationController
@user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation] @user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation]
end end
if(@cache_identityy == "")
if params[:identity] == "2"
@user.firstname = firstname_code
@user.lastname = lastname_code
end
flash.now[:error]= l(:label_identity)+l(:'activerecord.errors.messages.empty')
return
end
if(@cache_city == "")
if params[:identity] == "2"
@user.firstname = firstname_code
@user.lastname = lastname_code
end
flash.now[:error]= l(:label_location)+l(:'activerecord.errors.messages.empty')
return
end
case Setting.self_registration case Setting.self_registration
when '1' when '1'
@ -189,7 +204,7 @@ class AccountController < ApplicationController
token.destroy token.destroy
flash[:notice] = l(:notice_account_activated) flash[:notice] = l(:notice_account_activated)
end end
redirect_to signin_url redirect_to signin_path
end end
def valid_ajax def valid_ajax
@ -219,10 +234,6 @@ class AccountController < ApplicationController
render :json => req render :json => req
end end
def email_valid
end
private private
def authenticate_user def authenticate_user
@ -234,7 +245,7 @@ class AccountController < ApplicationController
end end
def password_authentication def password_authentication
user, last_login_on = User.try_to_login(params[:username], params[:password]) user = User.try_to_login(params[:username], params[:password])
if user.nil? if user.nil?
invalid_credentials invalid_credentials
@ -244,7 +255,7 @@ class AccountController < ApplicationController
onthefly_creation_failed(user, {:login => user.login, :auth_source_id => user.auth_source_id }) onthefly_creation_failed(user, {:login => user.login, :auth_source_id => user.auth_source_id })
else else
# Valid user # Valid user
successful_authentication(user, last_login_on) successful_authentication(user)
end end
end end
@ -291,7 +302,7 @@ class AccountController < ApplicationController
end end
end end
def successful_authentication(user, last_login_on) def successful_authentication(user)
logger.info "Successful authentication for '#{user.login}' from #{request.remote_ip} at #{Time.now.utc}" logger.info "Successful authentication for '#{user.login}' from #{request.remote_ip} at #{Time.now.utc}"
# Valid user # Valid user
self.logged_user = user self.logged_user = user
@ -304,20 +315,15 @@ class AccountController < ApplicationController
code = /\d*/ code = /\d*/
#根据home_url生产正则表达式 #根据home_url生产正则表达式
eval("code = " + "/^" + home_url.gsub(/\//,"\\\/") + "\\\/*(welcome)?\\\/*(\\\/index\\\/*.*)?\$/") eval("code = " + "/^" + home_url.gsub(/\//,"\\\/") + "\\\/*(welcome)?\\\/*(\\\/index\\\/*.*)?\$/")
if code=~params[:back_url] && last_login_on != '' if code=~params[:back_url]
redirect_to user_activities_path(user) redirect_to user_activities_path(user)
else
if last_login_on == ''
redirect_to my_account_url
else else
#by young #by young
#redirect_back_or_default my_page_path #redirect_back_or_default my_page_path
#sredirect_back_or_default User.current redirect_back_or_default User.current
redirect_to my_account_url
#redirect_to User.current #redirect_to User.current
end end
end end
end
def set_autologin_cookie(user) def set_autologin_cookie(user)
token = Token.create(:user => user, :action => 'autologin') token = Token.create(:user => user, :action => 'autologin')
@ -357,7 +363,7 @@ class AccountController < ApplicationController
UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0) UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
Mailer.register(token).deliver Mailer.register(token).deliver
flash[:notice] = l(:notice_account_register_done) flash[:notice] = l(:notice_account_register_done)
render action: 'email_valid', locals: {:mail => user.mail} redirect_to signin_path
else else
yield if block_given? yield if block_given?
end end
@ -374,7 +380,7 @@ class AccountController < ApplicationController
UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0) UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
self.logged_user = user self.logged_user = user
flash[:notice] = l(:notice_account_activated) flash[:notice] = l(:notice_account_activated)
redirect_to my_account_url redirect_to my_account_path
else else
yield if block_given? yield if block_given?
end end
@ -396,6 +402,6 @@ class AccountController < ApplicationController
def account_pending def account_pending
flash[:notice] = l(:notice_account_pending) flash[:notice] = l(:notice_account_pending)
redirect_to signin_url redirect_to signin_path
end end
end end

View File

@ -124,7 +124,7 @@ class ApplicationController < ActionController::Base
else else
# HTTP Basic, either username/password or API key/random # HTTP Basic, either username/password or API key/random
authenticate_with_http_basic do |username, password| authenticate_with_http_basic do |username, password|
user = User.try_to_login(username, password)[0] || User.find_by_api_key(username) user = User.try_to_login(username, password) || User.find_by_api_key(username)
end end
end end
# Switch user if requested by an admin user # Switch user if requested by an admin user
@ -267,6 +267,8 @@ class ApplicationController < ActionController::Base
end end
when "contest" when "contest"
return true return true
when "Course"
allowed = User.current.allowed_to?(:course_attachments_download, @course, :global => false)
else else
return true return true
end end

View File

@ -76,7 +76,7 @@ class AttachmentsController < ApplicationController
candown = User.current.member_of?(project) || (project.is_public && @attachment.is_public == 1) candown = User.current.member_of?(project) || (project.is_public && @attachment.is_public == 1)
elsif (@attachment.container.has_attribute?(:course) ||@attachment.container.has_attribute?(:course_id) ) && @attachment.container.course elsif (@attachment.container.has_attribute?(:course) ||@attachment.container.has_attribute?(:course_id) ) && @attachment.container.course
course = @attachment.container.course course = @attachment.container.course
candown= User.current.member_of_course?(course) || (course.is_public==1 && @attachment.is_public == 1) candown = User.current.member_of_course?(course) || (course.is_public==1 && @attachment.is_public == 1)
elsif @attachment.container.is_a?(Course) elsif @attachment.container.is_a?(Course)
course = @attachment.container course = @attachment.container
candown= User.current.member_of_course?(course) || (course.is_public==1 && @attachment.is_public == 1) candown= User.current.member_of_course?(course) || (course.is_public==1 && @attachment.is_public == 1)
@ -366,7 +366,7 @@ class AttachmentsController < ApplicationController
end end
rescue NoMethodError rescue NoMethodError
@save_flag = false @save_flag = false
@save_message = [] << l(:error_attachment_empty) @save_message = [] << l(:label_course_empty_select)
respond_to do |format| respond_to do |format|
format.js format.js
end end

View File

@ -26,13 +26,15 @@ class FilesController < ApplicationController
helper :sort helper :sort
include SortHelper include SortHelper
include FilesHelper
helper :project_score helper :project_score
def show_attachments obj def show_attachments obj
@all_attachments = [] @attachments = []
obj.each do |container| obj.each do |container|
@all_attachments += container.attachments @attachments += container.attachments
end end
@all_attachments = visable_attachemnts(@attachments)
@limit = 10 @limit = 10
@feedback_count = @all_attachments.count @feedback_count = @all_attachments.count
@feedback_pages = Paginator.new @feedback_count, @limit, params['page'] @feedback_pages = Paginator.new @feedback_count, @limit, params['page']
@ -48,9 +50,11 @@ class FilesController < ApplicationController
#(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 @result = find_public_attache q
@result = visable_attachemnts @result
@searched_attach = paginateHelper @result,10 @searched_attach = paginateHelper @result,10
else else
@result = find_course_attache q,@course @result = find_course_attache q,@course
@result = visable_attachemnts @result
@searched_attach = paginateHelper @result,10 @searched_attach = paginateHelper @result,10
end end
@ -69,7 +73,7 @@ class FilesController < ApplicationController
# StoresController#search 将每条文件都查出来,再次进行判断过滤。---> resultSet.to_a.map # StoresController#search 将每条文件都查出来,再次进行判断过滤。---> resultSet.to_a.map
# 此时内容不多速度还可但文件增长每条判断多则进行3-4次表连接。 # 此时内容不多速度还可但文件增长每条判断多则进行3-4次表连接。
# 现在还木有思路 药丸 # 现在还木有思路 药丸
resultSet = Attachment.where("attachments.container_type IS NOT NULL AND (is_public = 1 OR author_id = #{User.current.id}) AND filename LIKE :like ", like: "%#{keywords}%"). resultSet = Attachment.where("attachments.container_type IS NOT NULL AND filename LIKE :like ", like: "%#{keywords}%").
reorder("created_on DESC") reorder("created_on DESC")
end end

View File

@ -382,42 +382,22 @@ class HomeworkAttachController < ApplicationController
if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first)
# 打分统计 # 打分统计
stars_reates = @homework. rates(:quality) stars_reates = @homework. rates(:quality)
#stars_reates_count = stars_reates.count == 0 ? 1 : stars_reates.count
#stars_status = stars_reates.select("stars, count(*) as scount").group("stars")
#@stars_status_map = Hash.new(0.0)
#stars_status.each do |star_status|
# percent = (star_status.scount * 1.0/ stars_reates_count) * 100.to_f
# percent_m = format("%.2f", percent)
# @stars_status_map["star#{star_status.stars.to_i}".to_sym] =
# percent_m.to_s + "%"
#end
#是否已经进行过评价 #是否已经进行过评价
temp = HomeworkAttach.find_by_sql("SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{@homework.id} AND rater_id = #{User.current.id}").first temp = HomeworkAttach.find_by_sql("SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{@homework.id} AND rater_id = #{User.current.id}").first
@m_score = temp.nil? ? 0:temp.stars @m_score = temp.nil? ? 0:temp.stars
@has_evaluation = stars_reates.where("rater_id = ?",User.current).count > 0 @has_evaluation = stars_reates.where("rater_id = ?",User.current).count > 0
#是否开启互评功能
#@is_evaluation = @homework.bid.is_evaluation == 1 || @homework.bid.is_evaluation == nil
#@limit = 10
#@jours留言 is null条件用以兼容历史数据 #@jours留言 is null条件用以兼容历史数据
@jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")
@cur_page = params[:cur_page] || 1 @cur_page = params[:cur_page] || 1
@cur_type = params[:cur_type] || 5 @cur_type = params[:cur_type] || 5
@jour = paginateHelper @jours,5 @jour = paginateHelper @jours,5
#@feedback_count = @jours.count
#@feedback_pages = Paginator.new @feedback_count, @limit, params['page']
#@offset ||= @feedback_pages.offset
#@jour = @jours[@offset, @limit]
#@comprehensive_evaluation教师评论
#@comprehensive_evaluation = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1").order("created_on DESC")
teachers = searchTeacherAndAssistant @course teachers = searchTeacherAndAssistant @course
@comprehensive_evaluation = [] @comprehensive_evaluation = []
teachers.each do|teacher| teachers.each do|teacher|
temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first
@comprehensive_evaluation << temp if temp @comprehensive_evaluation << temp if temp
end end
#@comprehensive_evaluation = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id in #{convert_array(teachers)}").order("created_on DESC")
#@anonymous_comments 匿评
#@anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2").order("created_on DESC")
annymous_users = @homework.homework_evaluations.map(&:user) annymous_users = @homework.homework_evaluations.map(&:user)
unless annymous_users.nil? || annymous_users.count == 0 unless annymous_users.nil? || annymous_users.count == 0
@anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in #{convert_array(annymous_users)}").order("created_on DESC") @anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in #{convert_array(annymous_users)}").order("created_on DESC")

View File

@ -843,7 +843,10 @@ class ProjectsController < ApplicationController
end end
def show_projects_score def show_projects_score
render :layout => false respond_to do |format|
format.html { render :layout => "project_base"}
format.js
end
end end
def issue_score_index def issue_score_index

View File

@ -163,7 +163,7 @@ class WelcomeController < ApplicationController
return 0 return 0
elsif url.include?(Setting.host_user.gsub('/','')) elsif url.include?(Setting.host_user.gsub('/',''))
redirect_to(:controller => "users", :action => "index") #redirect_to(:controller => "users", :action => "index")
end end

View File

@ -72,5 +72,20 @@ module FilesHelper
result result
end end
def visable_attachemnts attachments
result = []
attachments.each do |attachment|
if attachment.is_public? || attachment.author_id == User.current.id
result << attachment
end
end
result
end
def get_qute_number attachment
if attachment.copy_from.nil?
return 0
end
count = Attachment.find_by_sql("select count(*) from attachments where copy_from = #{attachment.copy_from}")
end
end end

View File

@ -60,7 +60,7 @@ module HomeworkAttachHelper
memberships = User.current.memberships.all(:conditions => cond) memberships = User.current.memberships.all(:conditions => cond)
projects = memberships.map(&:project) projects = memberships.map(&:project)
not_have_project = [] not_have_project = []
not_have_project << "<<NULL>>" not_have_project << "NO PROJECT"
not_have_project << 0 not_have_project << 0
type = [] type = []
type << not_have_project type << not_have_project

View File

@ -75,7 +75,6 @@ class User < Principal
has_many :homework_users has_many :homework_users
has_many :homework_attaches, :through => :homework_users has_many :homework_attaches, :through => :homework_users
has_many :homework_evaluations
has_and_belongs_to_many :groups, :after_add => Proc.new {|user, group| group.user_added(user)}, has_and_belongs_to_many :groups, :after_add => Proc.new {|user, group| group.user_added(user)},
:after_remove => Proc.new {|user, group| group.user_removed(user)} :after_remove => Proc.new {|user, group| group.user_removed(user)}
@ -168,7 +167,7 @@ class User < Principal
LOGIN_LENGTH_LIMIT = 25 LOGIN_LENGTH_LIMIT = 25
MAIL_LENGTH_LIMIT = 60 MAIL_LENGTH_LIMIT = 60
validates_presence_of :login, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) } validates_presence_of :login, :firstname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
validates_uniqueness_of :login, :if => Proc.new { |user| user.login_changed? && user.login.present? }, :case_sensitive => false validates_uniqueness_of :login, :if => Proc.new { |user| user.login_changed? && user.login.present? }, :case_sensitive => false
validates_uniqueness_of :mail, :if => Proc.new { |user| user.mail_changed? && user.mail.present? }, :case_sensitive => false validates_uniqueness_of :mail, :if => Proc.new { |user| user.mail_changed? && user.mail.present? }, :case_sensitive => false
# Login must contain letters, numbers, underscores only # Login must contain letters, numbers, underscores only
@ -199,19 +198,13 @@ class User < Principal
} }
scope :sorted, lambda { order(*User.fields_for_order_statement)} scope :sorted, lambda { order(*User.fields_for_order_statement)}
scope :like, lambda {|arg, type| scope :like, lambda {|arg|
if arg.blank? if arg.blank?
where(nil) where(nil)
else else
pattern = "%#{arg.to_s.strip.downcase}%" pattern = "%#{arg.to_s.strip.downcase}%"
#where(" LOWER(concat(lastname, firstname)) LIKE :p ", :p => pattern) #where(" LOWER(concat(lastname, firstname)) LIKE :p ", :p => pattern)
if type == "0"
where(" LOWER(login) LIKE :p ", :p => pattern) where(" LOWER(login) LIKE :p ", :p => pattern)
elsif type == "1"
where(" LOWER(concat(lastname, firstname)) LIKE :p ", :p => pattern)
else
where(" LOWER(mail) LIKE :p ", :p => pattern)
end
end end
} }
@ -359,9 +352,8 @@ class User < Principal
end end
end end
end end
last_login_on = user.last_login_on.nil? ? '' : user.last_login_on.to_s
user.update_column(:last_login_on, Time.now) if user && !user.new_record? user.update_column(:last_login_on, Time.now) if user && !user.new_record?
[user, last_login_on] user
rescue => text rescue => text
raise text raise text
end end

View File

@ -26,11 +26,7 @@
<%= back_url_hidden_field_tag %> <%= back_url_hidden_field_tag %>
<table> <table>
<tr> <tr>
<td align="right"> <td align="right"><label for="username"><%=l(:lable_user_name)%>:</label></td>
<label for="username">
<%=l(:lable_user_name)%>:
</label>
</td>
<td align="left"> <td align="left">
<%= text_field_tag 'username', params[:username], :tabindex => '1' , :value => "#{l(:label_login_prompt)}", <%= text_field_tag 'username', params[:username], :tabindex => '1' , :value => "#{l(:label_login_prompt)}",
:onfocus => "clearInfo('username','#{l(:label_login_prompt)}')", :onfocus => "clearInfo('username','#{l(:label_login_prompt)}')",
@ -39,48 +35,33 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="right"> <td align="right"><label for="password"><%=l(:field_password)%>:</label></td>
<label for="password"> <td align="left"><%= password_field_tag 'password', nil, :tabindex => '2' %></td>
<%=l(:field_password)%>:
</label>
</td>
<td align="left">
<%= password_field_tag 'password', nil, :tabindex => '2' %>
</td>
</tr> </tr>
<% if Setting.openid? %> <% if Setting.openid? %>
<tr> <tr>
<td align="right"> <td align="right"><label for="openid_url"><%=l(:field_identity_url)%></label></td>
<label for="openid_url"> <td align="left"><%= text_field_tag "openid_url", nil, :tabindex => '3' %></td>
<%=l(:field_identity_url)%>
</label>
</td>
<td align="left">
<%= text_field_tag "openid_url", nil, :tabindex => '3' %>
</td>
</tr> </tr>
<% end %> <% end %>
<tr> <tr>
<td></td> <td></td>
<td align="left"> <td align="left">
<% if Setting.autologin? %> <% if Setting.autologin? %>
<label for="autologin"> <label for="autologin"><%= check_box_tag 'autologin', 1, false, :tabindex => 4 %> <%= l(:label_stay_logged_in) %></label>
<%= check_box_tag 'autologin', 1, false, :tabindex => 4 %>
<%= l(:label_stay_logged_in) %>
</label>
<% end %> <% end %>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="2" > <td colspan="2" >
<span style="float: left"> <span style="float: left"><% if Setting.lost_password? %>
<% if Setting.lost_password? %>
<%= link_to l(:label_password_lost), lost_password_path %> <%= link_to l(:label_password_lost), lost_password_path %>
<% end %></span> <% end %></span>
<span style="float: right"> <span style="float: right">
<input type="submit" class="small" name="login" value="<%=l(:button_login)%> &#187;" tabindex="5"/></span> <input type="submit" class="small" name="login" value="<%=l(:button_login)%> &#187;" tabindex="5"/></span>
</td> </td>
</tr> </tr>
</table> </table>

View File

@ -3,9 +3,287 @@
@nav_dispaly_main_project_label = 1 @nav_dispaly_main_project_label = 1
@nav_dispaly_main_contest_label = 1 %> @nav_dispaly_main_contest_label = 1 %>
<% @nav_dispaly_forum_label = 1%> <% @nav_dispaly_forum_label = 1%>
<!-- added by bai 增加地区-->
<script type="text/javascript" language="javascript">
function showcity(province, cityField) {
switch (province) {
case "北京" :
var cityOptions = new Array(
"东城", "西城", "朝阳", "丰台", "石景山", "海淀", "门头沟",
"房山", "通州", "顺义", "昌平", "大兴", "平谷", "怀柔", "密云", "延庆");
break;
case "上海" :
var cityOptions = new Array(
"崇明", "黄浦", "卢湾", "徐汇", "长宁", "静安", "普陀", "闸北", "虹口", "杨浦", "闵行",
"宝山", "嘉定", "浦东", "金山", "松江", "青浦", "南汇", "奉贤");
break;
case "广东" :
var cityOptions = new Array(
"广州", "深圳", "珠海", "东莞", "中山", "佛山", "惠州", "河源", "潮州", "江门", "揭阳", "茂名",
"梅州", "清远", "汕头", "汕尾", "韶关", "顺德", "阳江", "云浮", "湛江", "肇庆");
break;
case "江苏" :
var cityOptions = new Array(
"南京", "常熟", "常州", "海门", "淮安", "江都", "江阴", "昆山", "连云港", "南通",
"启东", "沭阳", "宿迁", "苏州", "太仓", "泰州", "同里", "无锡", "徐州", "盐城",
"扬州", "宜兴", "仪征", "张家港", "镇江", "周庄");
break;
case "重庆" :
var cityOptions = new Array(
"万州", "涪陵", "渝中", "大渡口", "江北", "沙坪坝", "九龙坡", "南岸", "北碚", "万盛",
"双挢", "渝北", "巴南", "黔江", "长寿", "綦江", "潼南", "铜梁", "大足", "荣昌", "壁山",
"梁平", "城口", "丰都", "垫江", "武隆", "忠县", "开县", "云阳", "奉节", "巫山", "巫溪",
"石柱", "秀山", "酉阳", "彭水", "江津", "合川", "永川", "南川");
break;
case "安徽" :
var cityOptions = new Array(
"合肥", "安庆", "蚌埠", "亳州", "巢湖", "滁州", "阜阳", "贵池", "淮北", "淮化", "淮南",
"黄山", "九华山", "六安", "马鞍山", "宿州", "铜陵", "屯溪", "芜湖", "宣城");
break;
case "福建" :
var cityOptions = new Array(
"福州", "厦门", "泉州", "漳州", "龙岩", "南平", "宁德", "莆田", "三明");
break;
case "甘肃" :
var cityOptions = new Array(
"兰州", "白银", "定西", "敦煌", "甘南", "金昌", "酒泉", "临夏", "平凉", "天水",
"武都", "武威", "西峰", "张掖");
break;
case "广西" :
var cityOptions = new Array(
"南宁", "百色", "北海", "桂林", "防城港", "贵港", "河池", "贺州", "柳州", "钦州", "梧州", "玉林");
break;
case "贵州" :
var cityOptions = new Array(
"贵阳", "安顺", "毕节", "都匀", "凯里", "六盘水", "铜仁", "兴义", "玉屏", "遵义");
break;
case "海南" :
var cityOptions = new Array(
"海口", "儋县", "陵水", "琼海", "三亚", "通什", "万宁");
break;
case "河北" :
var cityOptions = new Array(
"石家庄", "保定", "北戴河", "沧州", "承德", "丰润", "邯郸", "衡水", "廊坊", "南戴河", "秦皇岛",
"唐山", "新城", "邢台", "张家口");
break;
case "黑龙江" :
var cityOptions = new Array(
"哈尔滨", "北安", "大庆", "大兴安岭", "鹤岗", "黑河", "佳木斯", "鸡西", "牡丹江", "齐齐哈尔",
"七台河", "双鸭山", "绥化", "伊春");
break;
case "河南" :
var cityOptions = new Array(
"郑州", "安阳", "鹤壁", "潢川", "焦作", "济源", "开封", "漯河", "洛阳", "南阳", "平顶山",
"濮阳", "三门峡", "商丘", "新乡", "信阳", "许昌", "周口", "驻马店");
break;
case "香港" :
var cityOptions = new Array(
"香港", "九龙", "新界");
break;
case "湖北" :
var cityOptions = new Array(
"武汉", "恩施", "鄂州", "黄冈", "黄石", "荆门", "荆州", "潜江", "十堰", "随州", "武穴",
"仙桃", "咸宁", "襄阳", "襄樊", "孝感", "宜昌");
break;
case "湖南" :
var cityOptions = new Array(
"长沙", "常德", "郴州", "衡阳", "怀化", "吉首", "娄底", "邵阳", "湘潭", "益阳", "岳阳",
"永州", "张家界", "株洲");
break;
case "江西" :
var cityOptions = new Array(
"南昌", "抚州", "赣州", "吉安", "景德镇", "井冈山", "九江", "庐山", "萍乡",
"上饶", "新余", "宜春", "鹰潭");
break;
case "吉林" :
var cityOptions = new Array(
"长春", "吉林", "白城", "白山", "珲春", "辽源", "梅河", "四平", "松原", "通化", "延吉");
break;
case "辽宁" :
var cityOptions = new Array(
"沈阳", "鞍山", "本溪", "朝阳", "大连", "丹东", "抚顺", "阜新", "葫芦岛", "锦州",
"辽阳", "盘锦", "铁岭", "营口");
break;
case "澳门" :
var cityOptions = new Array("澳门");
break;
case "内蒙古" :
var cityOptions = new Array(
"呼和浩特", "阿拉善盟", "包头", "赤峰", "东胜", "海拉尔", "集宁", "临河", "通辽", "乌海",
"乌兰浩特", "锡林浩特");
break;
case "宁夏" :
var cityOptions = new Array(
"银川", "固源", "石嘴山", "吴忠");
break;
case "青海" :
var cityOptions = new Array(
"西宁", "德令哈", "格尔木", "共和", "海东", "海晏", "玛沁", "同仁", "玉树");
break;
case "山东" :
var cityOptions = new Array(
"济南", "滨州", "兖州", "德州", "东营", "菏泽", "济宁", "莱芜", "聊城", "临沂",
"蓬莱", "青岛", "曲阜", "日照", "泰安", "潍坊", "威海", "烟台", "枣庄", "淄博");
break;
case "山西" :
var cityOptions = new Array(
"太原", "长治", "大同", "候马", "晋城", "离石", "临汾", "宁武", "朔州", "忻州",
"阳泉", "榆次", "运城");
break;
case "陕西" :
var cityOptions = new Array(
"西安", "安康", "宝鸡", "汉中", "渭南", "商州", "绥德", "铜川", "咸阳", "延安", "榆林");
break;
case "四川" :
var cityOptions = new Array(
"成都", "巴中", "达川", "德阳", "都江堰", "峨眉山", "涪陵", "广安", "广元", "九寨沟",
"康定", "乐山", "泸州", "马尔康", "绵阳", "眉山", "南充", "内江", "攀枝花", "遂宁",
"汶川", "西昌", "雅安", "宜宾", "自贡", "资阳");
break;
case "台湾" :
var cityOptions = new Array(
"台北", "基隆", "台南", "台中", "高雄", "屏东", "南投", "云林", "新竹", "彰化", "苗栗",
"嘉义", "花莲", "桃园", "宜兰", "台东", "金门", "马祖", "澎湖");
break;
case "天津" :
var cityOptions = new Array(
"天津", "和平", "东丽", "河东", "西青", "河西", "津南", "南开", "北辰", "河北", "武清", "红挢",
"塘沽", "汉沽", "大港", "宁河", "静海", "宝坻", "蓟县");
break;
case "新疆" :
var cityOptions = new Array(
"乌鲁木齐", "阿克苏", "阿勒泰", "阿图什", "博乐", "昌吉", "东山", "哈密", "和田", "喀什",
"克拉玛依", "库车", "库尔勒", "奎屯", "石河子", "塔城", "吐鲁番", "伊宁");
break;
case "西藏" :
var cityOptions = new Array(
"拉萨", "阿里", "昌都", "林芝", "那曲", "日喀则", "山南");
break;
case "云南" :
var cityOptions = new Array(
"昆明", "大理", "保山", "楚雄", "大理", "东川", "个旧", "景洪", "开远", "临沧", "丽江",
"六库", "潞西", "曲靖", "思茅", "文山", "西双版纳", "玉溪", "中甸", "昭通");
break;
case "浙江" :
var cityOptions = new Array(
"杭州", "安吉", "慈溪", "定海", "奉化", "海盐", "黄岩", "湖州", "嘉兴", "金华", "临安",
"临海", "丽水", "宁波", "瓯海", "平湖", "千岛湖", "衢州", "江山", "瑞安", "绍兴", "嵊州",
"台州", "温岭", "温州", "余姚", "舟山");
break;
case "海外" :
var cityOptions = new Array(
"美国", "日本", "英国", "法国", "德国", "其他");
break;
default:
var cityOptions = new Array("");
break;
}
cityField.options.length = 0;
for (var i = 0; i < cityOptions.length; i++) {
cityField.options[i] = new Option(cityOptions[i], cityOptions[i]);
/*
if (cityField.options[i].value==city)
{
//alert("here put City ok!");
document.oblogform["city"].selectedIndex = i;
}*/
}
}
</script>
<script type="text/javascript" language="javascript">
window.onload = function(){
var identity = "<%= @cache_identityy %>";
var no = "<%= @cache_no %>";
var technical_title = "<%= @cache_technical_title %>";
var province = "<%= @cache_province %>";
var city = "<%= @cache_city %>";
var enterprise_name = "<%= @cache_enterprise_name %>";
//还原身份
if(identity!=null&&identity!=""){
$('#userIdentity').children("option[value='"+identity+"']").attr("selected","selected");
showtechnical_title(identity, document.getElementById('userTechnical_title'));
if(identity=="0"){
//还原教师职称
$('#userTechnical_title').children("option[value='"+technical_title+"']").attr("selected","selected");
}else if(identity=="1"){
//还原学号
$("input[id='no']").attr("value",no);
}
}
//还原地区
if(province!=null&&province!=""){
$("#userProvince").children("option[value='"+province+"']").attr("selected","selected");
showcity(province, document.getElementById('userCity'));
$("select[id='userCity']").children("option[value='"+city+"']").attr("selected","selected");
}
//还原企业名
if(enterprise_name!=null&&enterprise_name!=""){
$("input[id='enterprise_name']").attr("value",enterprise_name);
}
}
function showtechnical_title(identity, technical_titleField) {
var technical_titleOptions = null;
switch (identity) {
case '0' :
$('#technical_title').show()
$('#no').hide()
$('#name').show()
$('#enterprise').hide()
$('#gender').show()
technical_titleOptions = new Array(
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
break;
case '1' :
$('#technical_title').hide()
$('#no').show()
$('#name').show()
$('#enterprise').hide()
$('#gender').show()
var titleOptions = new Array("");
break;
case '2' :
$('#technical_title').hide()
$('#no').hide()
$('#name').hide()
$('#enterprise').show()
$('#gender').hide()
var titleOptions = new Array("");
break;
default:
$('#technical_title').hide()
$('#no').hide()
$('#name').show()
$('#enterprise').hide()
$('#gender').show()
var titleOptions = new Array("");
break;
}
technical_titleField.options.length = 0;
if(technical_titleOptions == null){
return;
}
for (var i = 0; i < technical_titleOptions.length; i++) {
technical_titleField.options[i] = new Option(technical_titleOptions[i], technical_titleOptions[i]);
/*
if (cityField.options[i].value==city)
{
//alert("here put City ok!");
document.oblogform["city"].selectedIndex = i;
}
*/
}
}
</script>
<!-- end --> <!-- end -->
@ -13,31 +291,139 @@
<%= labelled_form_for @user, :url => register_path do |f| %> <%= labelled_form_for @user, :url => register_path do |f| %>
<%= error_messages_for 'user' %> <%= error_messages_for 'user' %>
<div class="box tabular"> <div class="box tabular">
<p>
<table>
<tr>
<td class="info" align="right" style="width: 90px">
<strong><%= l(:label_identity) %><span class="required"> *</span></strong></td>
<td class="info" style="width: 10px">
<select onchange="showtechnical_title(this.value, document.getElementById('userTechnical_title'));" name="identity" id="userIdentity" class="location">
<option value="">--请选择身份--</option>
<option value="0"><%= l(:label_teacher) %></option>
<option value="1"><%= l(:label_student) %></option>
<option value="2"><%= l(:label_enterprise) %></option>
<option value="3"><%= l(:label_account_developer) %></option>
</select>
</td>
<td>
<span id='technical_title' style='display:none'>
<select name="technical_title" id="userTechnical_title"></select></span>
<span id='no' style='display:none'>
<% unless User.current.user_extensions.nil? %>
<%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => "请输入学号" %></span>
<% else %>
<%= text_field_tag :no, nil, :placeholder => "请输入学号" %></span>
<% end %>
</td>
</tr>
</table>
</p>
<% if @user.auth_source_id.nil? %> <% if @user.auth_source_id.nil? %>
<p><%= f.text_field :login, :size => 25, :required => true %><span id="valid_user_login"></span> <p><%= f.text_field :login, :size => 25, :required => true %><span id="valid_user_login"></span>
<em class="info" style="color: #acaeb1"><%= l(:label_max_number) %></em> <em class="info"><%= l(:label_max_number) %></em></p>
</p>
<p><%= f.password_field :password, :size => 25, :required => true %><span id="valid_user_password"></span> <p><%= f.password_field :password, :size => 25, :required => true %>
<em class="info" style="color: #acaeb1"><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em> <em class="info"><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em></p>
</p>
<p><%= f.password_field :password_confirmation, :size => 25, :required => true %><span id="valid_password" style="padding-left: 10px;"></span></p> <p><%= f.password_field :password_confirmation, :size => 25, :required => true %></p>
<% end %> <% end %>
<span id='name' style='display:none'>
<p><%= f.text_field :firstname, :required => true %></p>
<p><%= f.text_field :lastname, :required => true %></p>
</span>
<span id='enterprise' style='display:none'>
<p><table>
<tr>
<td class="info" align="right" style="width: 90px"><strong>企业名<span class="required"> *</span></strong></td>
<td class="info" style="width: 10px">
<%= text_field_tag :enterprise_name %></td>
</tr>
</table>
</p>
</span>
<p><%= f.text_field :mail, :required => true %><span id="valid_user_mail"></span></p>
<p> <p>
<%= f.text_field :mail,:size => 25, :required => true %> <em class="info"><%= "#{l(:label_mail_attention)} " %></em></p>
<span id="valid_user_mail" ></span>
<p><%= f.select :language, lang_options_for_select, :required => true %></p>
<!-- added by bai 增加了身份、性别和地区-->
<span id='gender' style='display:none'>
<p>
<table>
<tr>
<td class="info" align="right" style="width: 90px">
<strong><%= l(:label_gender) %><span class="required"> &nbsp;</span></strong></td>
<td class="info" style="width: 10px">
<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option>
<option value = '1'>#{l(:label_gender_female)}</option>".html_safe %>
</td>
</tr>
</table>
</p> </p>
</span>
<p> <p>
<em class="info" style="color: #acaeb1"> <table>
<p><%= "#{l(:label_mail_attention)} " %></p> <tr>
<p><%= "#{l(:label_mail_attention1)} " %></p> <td class="info" align="right" style="width: 90px">
</em> <strong><%= l(:label_location) %><span class="required"> *</span></strong>
</td>
<td class="info" style="width: 80px">
<select onchange="showcity(this.value, document.getElementById('userCity'));" name="province" id="userProvince">
<option value="">--请选择省份--</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="广东">广东</option>
<option value="江苏">江苏</option>
<option value="浙江">浙江</option>
<option value="重庆">重庆</option>
<option value="安徽">安徽</option>
<option value="福建">福建</option>
<option value="甘肃">甘肃</option>
<option value="广西">广西</option>
<option value="贵州">贵州</option>
<option value="海南">海南</option>
<option value="河北">河北</option>
<option value="黑龙江">黑龙江</option>
<option value="河南">河南</option>
<option value="湖北">湖北</option>
<option value="湖南">湖南</option>
<option value="江西">江西</option>
<option value="吉林">吉林</option>
<option value="辽宁">辽宁</option>
<option value="内蒙古">内蒙古</option>
<option value="宁夏">宁夏</option>
<option value="青海">青海</option>
<option value="山东">山东</option>
<option value="山西">山西</option>
<option value="陕西">陕西</option>
<option value="四川">四川</option>
<option value="天津">天津</option>
<option value="新疆">新疆</option>
<option value="西藏">西藏</option>
<option value="云南">云南</option>
<option value="香港">香港特别行政区</option>
<option value="澳门">澳门特别行政区</option>
<option value="台湾">台湾</option>
<option value="海外">海外</option>
</select>
</td>
<td class="info" style="width: 100px">
<select name="city" id="userCity"></select>
</td>
</tr>
</table>
</p> </p>
<!-- end --> <!-- end -->
</div> </div>
@ -49,20 +435,24 @@
</table> </table>
</p> </p>
<% end %> <% end %>
<% if Setting.openid? %> <% if Setting.openid? %>
<p><%= f.text_field :identity_url %></p> <p><%= f.text_field :identity_url %></p>
<% end %> <% end %>
<% @user.custom_field_values.select { |v| v.editable? || v.required? }.each do |value| %> <% @user.custom_field_values.select { |v| v.editable? || v.required? }.each do |value| %>
<p><%= custom_field_tag_with_label :user, value %></p> <p><%= custom_field_tag_with_label :user, value %></p>
<% end %> <% end %>
</div> </div>
<% password_min_length = Setting.password_min_length %>
<script type="text/javascript"> <script type="text/javascript">
jQuery(document).ready(function () { jQuery(document).ready(function () {
var $login = $('#user_login') var $login = $('#user_login')
var $mail = $('#user_mail') var $mail = $('#user_mail')
var $password = $('#user_password')
var $password_confirmation = $('#user_password_confirmation')
$login.blur(function (event) { $login.blur(function (event) {
if ($(this).is('#user_login')) { if ($(this).is('#user_login')) {
$.get( $.get(
@ -95,33 +485,6 @@
} }
; ;
}); });
$password.blur(function () {
var pas1 = document.getElementById("user_password").value;
var password_min_length = <%= password_min_length %>
if (pas1.length >= password_min_length) {
$('#valid_user_password').html('<span class="green">'+ "</span>");
}
else {
$('#valid_user_password').html('<span class="red">' + "<%= l(:setting_password_min_length_limit, :count => password_min_length) %>" + "</span>");
}
}); });
$password_confirmation.blur(function () {
var password_min_length = <%= password_min_length %>
var pas1 = document.getElementById("user_password").value;
var pas2 = document.getElementById("user_password_confirmation").value;
if (pas1.length >= password_min_length && pas1 == pas2 ) {
$('#valid_password').html('<span class="green">' + "<%= l(:setting_password_success) %>"+ "</span>");
}
else {
$('#valid_password').html('<span class="red">' + "<%= l(:setting_password_error) %>" + "</span>");
}
});
});
</script> </script>

View File

@ -27,8 +27,7 @@
background: #15bccf; background: #15bccf;
color: #fff; color: #fff;
text-align: center; text-align: center;
padding-top: 3px; padding: 5px !important;
padding-left: 3px;
} }
.span_wping a:hover{ background-color:#03a1b3;} .span_wping a:hover{ background-color:#03a1b3;}
</style> </style>
@ -76,7 +75,7 @@
<% end %> <% end %>
<% end %> <% end %>
<% if (User.current.admin?||User.current.id==bid.author_id) %> <% if (User.current.admin?||User.current.id==bid.author_id) %>
<% if bid.open_anonymous_evaluation == 1%> <% if bid.open_anonymous_evaluation == 1 && bid.homeworks.count >= 2%>
<span id="<%=bid.id %>_anonymous_comment" class="span_wping"> <span id="<%=bid.id %>_anonymous_comment" class="span_wping">
<% case bid.comment_status %> <% case bid.comment_status %>
<% when 0 %> <% when 0 %>

View File

@ -40,7 +40,7 @@
<p style="display: none;"> <p style="display: none;">
<%= f.select :is_evaluation, is_evaluation_option %> <%= f.select :is_evaluation, is_evaluation_option %>
</p> </p>
<p> <p style="display: none">
<%= f.select :proportion, proportion_option %> <%= f.select :proportion, proportion_option %>
</p> </p>
<p> <p>

View File

@ -22,7 +22,7 @@
<%= link_to "留言", get_homework_jours_homework_attach_index_path(:bid_id => @bid.id), {:remote => true}%> <%= link_to "留言", get_homework_jours_homework_attach_index_path(:bid_id => @bid.id), {:remote => true}%>
(<span id="jours_count" class="c_red f_12"><%= @jours_count %></span>) (<span id="jours_count" class="c_red f_12"><%= @jours_count %></span>)
</li> </li>
<li > <li style="padding-top: 5px;">
<%= link_to "作品打包下载", zipdown_assort_path(obj_class: @bid.class, obj_id: @bid), class: "tb_all" unless @bid.homeworks.empty? %> <%= link_to "作品打包下载", zipdown_assort_path(obj_class: @bid.class, obj_id: @bid), class: "tb_all" unless @bid.homeworks.empty? %>
</li> </li>
</ul> </ul>

View File

@ -45,7 +45,7 @@
<p style="display: none"> <p style="display: none">
<%= f.select :is_evaluation, is_evaluation_option %> <%= f.select :is_evaluation, is_evaluation_option %>
</p> </p>
<p> <p style="display: none">
<%= f.select :proportion, proportion_option %> <%= f.select :proportion, proportion_option %>
</p> </p>
<p> <p>

View File

@ -18,6 +18,20 @@
hideModal($("#popbox_upload")); hideModal($("#popbox_upload"));
} }
function presscss(id)
{
if(id == "incourse")
{
$('#incourse').attr("class", "re_schbtn b_dblue");
$('#insite').attr("class", "re_schbtn b_lblue");
}
else
{
$('#incourse').attr("class", "re_schbtn b_lblue");
$('#insite').attr("class", "re_schbtn b_dblue");
}
}
</script> </script>
<div class="container"> <div class="container">
@ -25,8 +39,8 @@
<div class="re_top"> <div class="re_top">
<%= form_tag( search_course_files_path(@course), method: 'get',:class => "re_search f_l",:remote=>true) do %> <%= form_tag( search_course_files_path(@course), method: 'get',:class => "re_search f_l",:remote=>true) do %>
<%= text_field_tag 'name', params[:name], name: "name", :class => 're_schbox',:style=>"padding: 0px"%> <%= text_field_tag 'name', params[:name], name: "name", :class => 're_schbox',:style=>"padding: 0px"%>
<%= submit_tag "课内搜索", :class => "re_schbtn b_dblue",:name => "incourse"%> <%= submit_tag "课内搜索", :class => "re_schbtn b_lblue",:name => "incourse",:id => "incourse", :onclick => "presscss('incourse')"%>
<%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite" %> <%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite",:id => "insite",:onclick => "presscss('insite')" %>
<% end %> <% end %>
<% if is_course_teacher(User.current,@course) %> <% if is_course_teacher(User.current,@course) %>
<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>

View File

@ -1,8 +1,8 @@
<% delete_allowed = User.current.allowed_to?(:manage_files, course) %> <% delete_allowed = User.current.allowed_to?(:manage_files, course) %>
<div class="re_con_top"> <div class="re_con_top">
<p class="f_l c_blue f_b f_14">共有&nbsp;<%= User.current.member_of_course?(course) ? all_attachments.count : 0 %>&nbsp;个资源</p> <p class="f_l c_blue f_b f_14">共有&nbsp;<%= all_attachments.count%>&nbsp;个资源</p>
<!-- <p class="f_r"> <p class="f_r" style="color: #808080">
<#% if @order == "asc" %> <!--<#% if @order == "asc" %>
按&nbsp;<#%= link_to "时间",course_files_path(course,:sort=>"created_on:desc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"created_on"} %>&nbsp;/&nbsp; 按&nbsp;<#%= link_to "时间",course_files_path(course,:sort=>"created_on:desc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"created_on"} %>&nbsp;/&nbsp;
<#%= link_to "下载次数",course_files_path(course,:sort=>"downloads:desc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"downloads"} %>&nbsp;/&nbsp; <#%= link_to "下载次数",course_files_path(course,:sort=>"downloads:desc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"downloads"} %>&nbsp;/&nbsp;
<a href="#" class="f_b c_grey">引用次数</a>&nbsp;排序 <a href="#" class="f_b c_grey">引用次数</a>&nbsp;排序
@ -10,37 +10,38 @@
按&nbsp;<#%= link_to "时间",course_files_path(course,:sort=>"created_on:asc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"created_on"} %>&nbsp;/&nbsp; 按&nbsp;<#%= link_to "时间",course_files_path(course,:sort=>"created_on:asc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"created_on"} %>&nbsp;/&nbsp;
<#%= link_to "下载次数",course_files_path(course,:sort=>"downloads:asc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"downloads"} %>&nbsp;/&nbsp; <#%= link_to "下载次数",course_files_path(course,:sort=>"downloads:asc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"downloads"} %>&nbsp;/&nbsp;
<a href="#" class="f_b c_grey">引用次数</a>&nbsp;排序 <a href="#" class="f_b c_grey">引用次数</a>&nbsp;排序
<#% end %> <#% end %>-->
</p>--> 资源列表的多样化排序将在下周上线...
</p>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<% curse_attachments.each do |file| %> <% curse_attachments.each do |file| %>
<%if file.is_public == 0 && !User.current.member_of_course?(@course)%>
<%next%>
<%end%>
<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, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis;",:class => "c_dblue f_14 f_b f_l" %>
<% if is_course_teacher(User.current,@course) %> <% if User.current.logged? %>
<%= link_to "选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true %> <% if is_course_teacher(User.current,@course) && file.author_id == User.current.id %>
<%= link_to "选入我的其他课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true %>
<% 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",: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 %>
<% else %>
<%= link_to "选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true %>
<% end %> <% end %>
<% else %> <% else %>
<%= link_to (file.is_public? ? "公开":"私有"),"javascript:void(0)",:class=>"f_l re_open" %>
<% end %> <% end %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div class=""> <div class="">
<p class="f_l c_grey02">文件大小:<%= number_to_human_size(file.filesize) %></p> <p class="f_l c_grey02 font">文件大小:<%= 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;引用0 </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;引用<%#=get_qute_number file %>--> </p>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div class="tag_h"> <div class="tag_h">

View File

@ -1,8 +1,8 @@
<div id="popbox_upload" style="margin-top: -30px;margin-left: -20px;margin-right: -10px;"> <div id="popbox_upload" style="margin-top: -30px;margin-left: -20px;margin-right: -10px;">
<div class="upload_con"> <div class="upload_con">
<div id="error_show"></div>
<h2>将此课件引入我的课程资源库</h2> <h2>将此课件引入我的课程资源库</h2>
<div class="upload_box"> <div class="upload_box">
<div id="error_show" style="color: red;"></div>
<%= form_tag course_attach_relations_path, <%= form_tag course_attach_relations_path,
method: :post, method: :post,
remote: true, remote: true,

View File

@ -51,7 +51,7 @@
<% if is_my_homework %> <% if is_my_homework %>
<!-- 我的作品,显示为编辑和删除 --> <!-- 我的作品,显示为编辑和删除 -->
<% if @bid.comment_status == 0 %> <% if @bid.comment_status == 0 %>
<li class="wmine"> <li class="wmine" style="padding-top: 4px;">
<%= 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? %>
<!-- 作业创建者显示删除作业 --> <!-- 作业创建者显示删除作业 -->

View File

@ -2,11 +2,11 @@
<script type="text/javascript" language="javascript" xmlns="http://www.w3.org/1999/html"> <script type="text/javascript" language="javascript" xmlns="http://www.w3.org/1999/html">
function regexName() function regexName()
{ {
var name = $("#homework_attach_name").val(); var name = $.trim($("#homework_attach_name").val());
if(name=="") if(name=="")
{ {
$("#homework_attach_name_span").text("名称不能为空"); $("#homework_attach_name_span").text("作品名称不能为空");
$("#homework_attach_name_span").css('color','#ff0000'); $("#homework_attach_name_span").css('color','#ff0000');
return false; return false;
} }
@ -17,8 +17,25 @@
return true; return true;
} }
} }
function regexDescription()
{
var name = $.trim($("#homework_attach_description").val());
function submit_homework_form(){if(regexName()){$('#new_homework_attach').submit();}} if(name=="")
{
$("#homework_attach_description_span").text("作品描述不能为空");
$("#homework_attach_description_span").css('color','#ff0000');
return false;
}
else
{
$("#homework_attach_description_span").text("填写正确");
$("#homework_attach_description_span").css('color','#008000');
return true;
}
}
function submit_homework_form(){if(regexName()&&regexDescription()){$('#new_homework_attach').submit();}}
</script> </script>
<div class="container"> <div class="container">
<div class="Newwork"> <div class="Newwork">
@ -55,13 +72,14 @@
<span id="homework_attach_name_span"></span> <span id="homework_attach_name_span"></span>
</p> </p>
<p> <p>
<label style="float:left;padding-left:10px;"> <label style="float:left;padding-right: 3px;">
<span class="c_red"> <span class="c_red">
*
</span> </span>
&nbsp;&nbsp;作描述&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;作描述&nbsp;&nbsp;&nbsp;&nbsp;
</label> </label>
<%= f.text_area "description", :class => "w620", :maxlength => 3000, :placeholder => "最多3000个汉字"%> <%= f.text_area "description", :class => "w620", :maxlength => 3000, :placeholder => "最多3000个汉字", :onblur => "regexDescription();"%>
<span id="homework_attach_description_span" style="padding-left: 100px;"></span>
</p> </p>
<div class="cl"></div> <div class="cl"></div>
<p> <p>

View File

@ -1,175 +1,2 @@
<%= render :partial => 'layouts/base_homework_attach', :locals => {:homework_attach => @homework} %> <%= stylesheet_link_tag 'css', :media => 'all' %>
<style> <%= render :partial => "show"%>
.softapplication-img .soft-application {
float: left;
width: 25%;
height: 200px;
}
</style>
<% is_student = is_cur_course_student @homework.bid.courses.first %>
<% is_teacher = is_course_teacher User.current,@homework.bid.courses.first %>
<p id="notice"><%= notice %></p>
<div style="height: auto; padding-bottom: 10px">
<tr>
<td colspan="2" valign="top" width="320" >
</td>
<td>
<table width="100%" border="0">
<tr style="font-size: 18px">
<td colspan="2" valign="top"><strong>作业基础信息<%=@count %></strong></td>
</tr>
<tr>
<td style="width: 570px; padding-left:40px; word-wrap: break-word; word-break: break-all">
发布人员:<%= link_to @homework.user, user_path(@homework.user)%>
</td>
<td style="width: 240px; word-wrap: break-word; word-break: break-all">
所属任务:<%= link_to(@homework.bid.name, course_for_bid_path(@homework.bid))%>
</td>
</tr>
<tr>
<td style="padding-left: 40px">
<span>作业下载:</span>
<% if @is_evaluation || is_teacher%>
<% options = {:author => true } %>
<%= render :partial => 'app_link', :locals => {:attachments => @homework.attachments, :options => options} %>
<% else %>
<%= l(:label_cant_download) %>
<% end %>
</td>
<td style="width: 240px; word-wrap: break-word; word-break: break-all">
参与人员:
<% @homework.users.each do |homework_user| %>
<%= link_to homework_user, user_path(homework_user)%>
<% if @homework.users.count > 1 && homework_user != @homework.users.last %>
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<% end %>
<% end %>
</td>
</tr>
<tr>
<td style=" padding-left: 40px">平均评分:
<%= render :partial => 'show_score', :locals => {:stars => @totle_score} %>
</td>
<td style="width: 240px; word-wrap: break-word; word-break: break-all">发布时间:<%=format_time @homework.created_at %></td>
</tr>
</table>
</td>
</tr>
</div>
<div class="underline-contests_one"></div>
<div style="height: auto; padding-bottom: 10px">
<tr>
<td colspan="2" valign="top" width="320" >
</td>
<td>
<table width="100%" border="0">
<tr>
<td colspan="2" valign="top"><div style="font-size: 15px;"><strong>作业描述:</strong></div></td>
</tr>
<tr>
<td style="width: 570px; padding-left:40px; word-wrap: break-word; word-break: break-all">
<div style="padding-top: 5px">
<% if @homework.description != nil && @homework.description != "" %>
<%= @homework.description %>
<% else %>
<div style="font-size: 15px;color: #15BCCC;vertical-align:middle;padding-top: 10px;padding-left: 10px ">
<strong>该作业无任何描述!</strong>
</div>
<% end %>
</div>
</td>
</tr>
</table>
</td>
</tr>
</div>
<div class="underline-contests_one"></div>
<div style="height: auto; padding-bottom: 10px">
<div style="font-size: 15px;">
<strong>作业得分:</strong>
</div>
<div style="overflow: hidden">
<div style="margin-left: 15%; float: left">
<div style="padding-left: 45px; padding-bottom: 5px">得分比例</div>
<div>
<% 100.step(20,-20) do |star| %>
<div data-kls="HomeworkAttach" data-id="2" data-dimension="quality" data-average="3.25" class="rateable div_inline jDisabled"
style="height: 20px; width: 115px; overflow: hidden; z-index: 1; position: relative;">
<div class="jRatingColor" style="width: <%=star%>%;"></div>
<div class="jRatingAverage" style="width: 0px; top: -20px;"></div>
<div class="jStar" style="width: 115px; height: 20px; top: -40px;
background: url('/images/seems_rateable/stars.png') repeat-x scroll 0% 0% transparent;">
</div>
</div>
<%= @stars_status_map["star#{(star/20).to_s}".to_sym] %>
<br/>
<% end %>
</div>
</div>
<div style="float: left; padding-left: 100px; padding-top:35px ">
<div style="text-align: center">最终得分</div>
<div style="padding-top: 1px; font-size: 15px; color: blue;text-align: center">
<%= @totle_score %>分
</div>
<div style="padding-top: 3px">
<%= render :partial => 'show_score', :locals => {:stars => @totle_score} %>
</div>
</div>
<div style="float: left; padding-left: 100px; padding-top:35px ">
<div>打分总人数</div>
<div style="padding-left: 28px; padding-top: 1px; font-size: 25px; color: blue">
<strong>
<%= @homework.raters(:quality).count%>
</strong>
</div>
</div>
</div>
</div>
<div class="underline-contests_one"></div>
<!-- 作业综评 -->
<div id="comprehensive_evaluation">
<%= render :partial => 'comprehensive_evaluation', :locals => {:comprehensive_evaluation => @comprehensive_evaluation,:homework => @homework, :teaher_score => @teaher_score} %>
</div>
<div class="underline-contests_one"></div>
<!-- 作业成员(发布人员和参与人员)不能对作业进行评分 -->
<% if !users_for_homework(@homework).include?(User.current) %>
<div style="height: 50px">
<div style="font-size: 15px"><strong>作业评论:</strong></div>
<% if is_student %>
<% if @is_evaluation %>
<% if @has_evaluation %>
<div style="text-align: center;">
<%= l(:lable_has_evaluation)%>
</div>
<% else %>
<%= render :partial => 'evaluation', :locals => {:homework => @homework} %>
<% end %>
<% else %>
<div style="text-align: center;">
<%= l(:lable_close_evaluation)%>
</div>
<% end %>
<% end %>
</div>
<% end %>
<% if !is_teacher %>
<!--提示登录后对应用进行评价-->
<div id="leave-message">
<%= render :partial => 'addjour', :locals => {:homework_attach => @homework, :sta => 0, :is_comprehensive_evaluation => nil} %>
</div>
<% end %>
<!-- 留言列表区 -->
<div id="message" style="font-size: 14px;">
<%= render :partial => 'showjour', :locals => {:jour => @jour,:homework => @homework} %>
</div>
<div>
</div>

View File

@ -24,7 +24,7 @@
</head> </head>
<!--add by huang--> <!--add by huang-->
<body class="<%= h body_css_classes %>"> <body class="<%= h body_css_classes %>">
<!-- <#%= render :partial => 'courses/course_ad' %> --> <%= render :partial => 'courses/course_ad' %>
<div id="wrapper"> <div id="wrapper">
<div id="wrapper2"> <div id="wrapper2">
<div id="wrapper3"> <div id="wrapper3">

View File

@ -21,6 +21,18 @@
<%= call_hook :view_layouts_base_html_head %> <%= call_hook :view_layouts_base_html_head %>
<!-- page specific tags --> <!-- page specific tags -->
<%= yield :header_tags -%> <%= yield :header_tags -%>
<style>
.span_wping{}
.span_wping a{
margin-bottom: 3px;
background: #15bccf;
color: #fff;
text-align: center;
padding: 5px !important;
}
.span_wping a:hover{ background-color:#03a1b3;}
</style>
</head> </head>
<body class="<%= h body_css_classes %>"> <body class="<%= h body_css_classes %>">
<% course = @bid.courses.first %> <% course = @bid.courses.first %>
@ -106,8 +118,8 @@
<% if (User.current.admin?||User.current.id==@bid.author_id) %> <% if (User.current.admin?||User.current.id==@bid.author_id) %>
<tr> <tr>
<td valign="top" style="padding-left: 8px; font-size: 15px" colspan="2"> <td valign="top" style="padding-left: 8px; font-size: 15px" colspan="2">
<% if @bid.open_anonymous_evaluation == 1%> <% if @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2%>
<span id="<%=@bid.id %>_anonymous_comment"> <span id="<%=@bid.id %>_anonymous_comment" class="span_wping">
<% case @bid.comment_status %> <% case @bid.comment_status %>
<% when 0 %> <% when 0 %>
<%= link_to '启动匿评', alert_anonymous_comment_bid_path(@bid), id: "#{@bid.id}_start_anonymous_comment", remote: true, disable_with: '加载中...' %> <%= link_to '启动匿评', alert_anonymous_comment_bid_path(@bid), id: "#{@bid.id}_start_anonymous_comment", remote: true, disable_with: '加载中...' %>
@ -149,6 +161,7 @@
<div class="user_underline"></div> <div class="user_underline"></div>
<!-- info --> <!-- info -->
<% unless @bid.attachments.empty? %>
<div class="inf_user_image"> <div class="inf_user_image">
<table> <table>
<tr> <tr>
@ -160,10 +173,8 @@
</tr> </tr>
<tr> <tr>
<td valign="top" colspan="2"> <td valign="top" colspan="2">
<% if @bid.attachments.any?%>
<% options = {:author => true,:deletable => (@bid.author.id == User.current.id || User.current.admin? ? true : false),:wrap => true,:length => 7} %> <% options = {:author => true,:deletable => (@bid.author.id == User.current.id || User.current.admin? ? true : false),:wrap => true,:length => 7} %>
<%= render :partial => 'attachments/links', :locals => {:attachments => @bid.attachments, :options => options} %> <%= render :partial => 'attachments/links', :locals => {:attachments => @bid.attachments, :options => options} %>
<% end %>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -171,9 +182,9 @@
<%#= @bid.homework_type==Bid::HomeworkFile ? "提交文件" : "提交项目" %> <%#= @bid.homework_type==Bid::HomeworkFile ? "提交文件" : "提交项目" %>
</td--> </td-->
</tr> </tr>
</table> </table>
</div> </div>
<% end%>
</div> </div>
</div> </div>
<!-- end --> <!-- end -->

View File

@ -8,8 +8,12 @@
<!-- 在这里添加赞和踩--> <!-- 在这里添加赞和踩-->
<span id="praise_tread" style="float: right"> <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%> </span> <span id="praise_tread" style="float: right"> <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%> </span>
<div class="lz-left"> <div class="lz-left">
<div><%= link_to image_tag(url_to_avatar(@memo.author), :class => "avatar"), user_path(@memo.author) %></div> <div>
<p class="clearfix"><%=link_to @memo.author.name, user_path(@memo.author) %></p> <%= link_to image_tag(url_to_avatar(@memo.author), :class => "avatar"), user_path(@memo.author) %>
</div>
<p class="clearfix">
<%=link_to @memo.author.name, user_path(@memo.author) %>
</p>
</div> </div>
<div class="memo-section"> <div class="memo-section">
<div class="contextual-borad"> <div class="contextual-borad">
@ -55,7 +59,8 @@
<div class="memo-title <%= @memo.sticky ? 'sticky' : '' %> <%= @memo.locked? ? 'locked' : '' %>" <div class="memo-title <%= @memo.sticky ? 'sticky' : '' %> <%= @memo.locked? ? 'locked' : '' %>"
style="word-break: break-all;word-wrap: break-word;"> style="word-break: break-all;word-wrap: break-word;">
<%= label_tag l(:field_subject) %>: <%=h @memo.subject %> <%= label_tag l(:field_subject) %>:
<%=h @memo.subject %>
</div> </div>
<div class="memo-content" id="memo-content_div"> <div class="memo-content" id="memo-content_div">
<%= textAreailizable(@memo,:content) %> <%= textAreailizable(@memo,:content) %>
@ -67,7 +72,9 @@
</p> </p>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
<div class="memo-timestamp"> <%= authoring @memo.created_at, @memo.author %></div> <div class="memo-timestamp">
<%= authoring @memo.created_at, @memo.author %>
</div>
</div> </div>
<br /> <br />

View File

@ -3,89 +3,48 @@
@nav_dispaly_main_project_label = 1 @nav_dispaly_main_project_label = 1
@nav_dispaly_main_contest_label = 1 %> @nav_dispaly_main_contest_label = 1 %>
<% @nav_dispaly_forum_label = 1%> <% @nav_dispaly_forum_label = 1%>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready( $(document).ready(
function () { function () {
$("#province").attr("href", "#WOpenWindow") $("#province").attr("href", "#WOpenWindow")
$("#province").leanModal({top: 100, closeButton: ".modal_close"}); $("#province").leanModal({top: 100, closeButton: ".modal_close"});
var $lastname = $('#user_lastname')
var $firstname = $('#user_firstname')
var $enterprise = $('#enterprise_name')
$lastname.blur(function () {
var pas1 = document.getElementById("user_lastname").value;
if (pas1 == "") {
$('#valid_lastname').html('<span class="red">' + "<%= l(:lastname_empty) %>"+ "</span>");
$('#lastname_limit').hide();
}
else {
$('#valid_lastname').html('<span class="red">' + "</span>");
$('#lastname_limit').show();
}
});
$firstname.blur(function () {
var pas1 = document.getElementById("user_firstname").value;
if (pas1 == "") {
$('#valid_firstname').html('<span class="red">' + "<%= l(:firstname_empty) %>"+ "</span>");
$('#firstname_limit').hide();
}
else {
$('#valid_firstname').html('<span class="red">' + "</span>");
$('#firstname_limit').show();
}
});
$enterprise.blur(function () {
var pas1 = document.getElementById("enterprise_name").value;
if (pas1 == "") {
$('#valid_companyname').html('<span class="red">' + "<%= l(:enterprise_empty) %>"+ "</span>");
}
else {
$('#valid_lastname').html('<span class="red">' + "</span>");
}
});
} }
); );
</script> </script>
<script type="text/javascript"> <script type="text/javascript">
function get_options(value) { function get_options(value) {
var prefix = "";
if(location.href.indexOf('ros')>=0)
{
prefix = "/ros"
}
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: prefix + '/school/get_options/' + encodeURIComponent(value), url: '/school/get_options/' + encodeURIComponent(value),
data: 'text', data: 'text',
success: function (data) { success: function (data) {
$("#province").val(value);
$("#province").val(value)
$("#schoollist").html(data); $("#schoollist").html(data);
} }
}); });
} }
</script> </script>
<div class="contextual" style="padding-right: 10px;"> <div class="contextual" style="padding-right: 10px;">
<%= link_to(l(:button_change_password), {:action => 'password'}, :class => 'icon icon-passwd') if @user.change_password_allowed? %> <%= link_to(l(:button_change_password), {:action => 'password'}, :class => 'icon icon-passwd') if @user.change_password_allowed? %>
<%= call_hook(:view_my_account_contextual, :user => @user) %> <%= call_hook(:view_my_account_contextual, :user => @user) %>
</div> </div>
<h3 style="padding-left: 10px;"> <h3 style="padding-left: 10px;"><%= l(:label_my_account) %></h3>
<%= l(:label_my_account) %>
</h3>
<%= error_messages_for 'user' %> <%= error_messages_for 'user' %>
<fieldset class="box" style="margin:10px;"> <fieldset class="box" style="margin:10px;">
<%= labelled_form_for :user, @user, <%= labelled_form_for :user, @user,
:url => {:action => "account"}, :url => {:action => "account"},
:html => {:id => 'my_account_form', :html => {:id => 'my_account_form',
:method => :post} do |f| %> :method => :post} do |f| %>
<fieldset class="collapsible collapsed" style="width:800px;margin-left: 10px;"> <fieldset class="collapsible collapsed" style="width:800px;margin-left: 10px;">
<legend onclick="toggleFieldset(this);"> <legend onclick="toggleFieldset(this);">
@ -102,91 +61,46 @@
<%= l(:label_information_plural) %> <%= l(:label_information_plural) %>
</legend> </legend>
<div>
<!-- 昵称 --> <!-- 昵称 -->
<p style="width:630px;padding-left: 40px;"> <p style="width:630px;padding-left: 26px;">
<%= f.text_field :login, :required => true, :size => 25, :name => "login", :readonly => true, :style => 'border:1px solid #d3d3d3;'%> <%= f.text_field :login, :required => true, :name => "login"%>
<span class='font_lighter'><%= l(:label_max_number) %></span> <span class='font_lighter'><%= l(:label_max_number) %></span>
<br/> <br/>
</p> </p>
<p style="width:400px;padding-left: 52px;"> <div>
<label style="margin-right: 1px;">
<%= l(:label_identity) %><span style="color: #bb0000;"> *</span></label>
<select onchange="showtechnical_title(this.value, $('#userTechnical_title'));" name="identity" id="userIdentity" class="location" style="margin: 0px;">
<option value="">
<%= l(:label_account_identity_choose) %>
</option>
<option value="0">
<%= l(:label_account_identity_teacher) %>
</option>
<option value="1">
<%= l(:label_account_identity_student) %>
</option>
<option value="2">
<%= l(:label_account_identity_enterprise) %>
</option>
<option value="3">
<%= l(:label_account_identity_developer) %>
</option>
</select>
<span id='technical_title' style='display:none'>
<select name="technical_title" id="userTechnical_title"></select>
</span>
<span id='no' style='display:none'>
<!-- modified by fq -->
<% if !User.current.user_extensions.nil? && !User.current.user_extensions.student_id.nil? %>
<%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => "请输入学号" %>
<% else %>
<%= text_field_tag :no, nil, :placeholder => "请输入学号" %></span>
<% end %>
<!-- end -->
</span>
</p>
<span id='name' style='display:none'> <span id='name' style='display:none'>
<p style="width:530px;padding-left: 53px;">
<%= f.text_field :lastname, :size => 25, :required => true %> <p style="width:530px;padding-left: 26px;">
<span class='font_lighter' id="lastname_limit"> <%= f.text_field :lastname, :required => true %>
<%= l(:field_lastname_eg) %> <span class='font_lighter'><%= l(:field_lastname_eg) %></span>
</span>
<span id="valid_lastname"></span>
</p> </p>
<p style="width:530px;padding-left: 53px;"> <p style="width:530px;padding-left: 26px;">
<%= f.text_field :firstname, :size => 25, :required => true %> <%= f.text_field :firstname, :required => true %>
<span class='font_lighter' id="firstname_limit"> <span class='font_lighter'><%= l(:field_firstname_eg) %></span>
<%= l(:field_firstname_eg) %>
</span>
<span id="valid_firstname"></span>
</p> </p>
</span> </span>
<span id='enterprise' style='display:none'> <span id='enterprise' style='display:none'>
<p style="width:400px;padding-left: 39px;"> <p style="width:400px;padding-left: 26px;"><%= l(:label_company_name)%><%= text_field_tag :enterprise_name, @user.firstname %>
<%= l(:label_company_name)%><span style="color: #bb0000"> *</span>
<%= text_field_tag :enterprise_name, @user.firstname %>
<span id="valid_companyname"></span>
</p> </p>
</span> </span>
<!-- added by bai 增加账户里的性别--> <!-- added by bai 增加账户里的性别-->
<span id='gender' style='display:none'> <span id='gender' style='display:none'>
<% if @user.user_extensions.nil? %> <% if @user.user_extensions.nil? %>
<p style="width:400px;padding-left: 54px;"> <p style="width:400px;padding-left: 26px;">
<%= l(:label_gender) %>&nbsp;&nbsp; <%= l(:label_gender) %>&nbsp;&nbsp;
<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1'>#{l(:label_gender_female)}</option>".html_safe, :class => 'gender' %> <%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1'>#{l(:label_gender_female)}</option>".html_safe, :class => 'gender' %>
</p> </p>
<% else %> <% else %>
<% if @user.user_extensions.gender == 0 %><!-- label_gender_male --> <% if @user.user_extensions.gender == 0 %><!-- label_gender_male -->
<p style="width:400px;padding-left: 54px;"> <p style="width:400px;padding-left: 26px;">
<%= l(:label_gender) %>&nbsp;&nbsp; <%= l(:label_gender) %>&nbsp;&nbsp;
<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1'>#{l(:label_gender_female)}</option>".html_safe, :class => 'gender' %> <%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1'>#{l(:label_gender_female)}</option>".html_safe, :class => 'gender' %>
</p> </p>
<% else %> <% else %>
<p style="width:400px;padding-left: 54px;"> <p style="width:400px;padding-left: 26px;">
<%= l(:label_gender) %>&nbsp;&nbsp; <%= l(:label_gender) %>&nbsp;&nbsp;
<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1' selected='selected'>#{l(:label_gender_female)}</option>".html_safe, :class => 'gender' %> <%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1' selected='selected'>#{l(:label_gender_female)}</option>".html_safe, :class => 'gender' %>
</p> </p>
@ -194,43 +108,26 @@
<% end %> <% end %>
</span> </span>
<!-- added by Wen --> <!-- added by Wen -->
<p id="occupation_detail" style="padding-left: 24px; display: none">
<%= l(:field_occupation) %> <p style="padding-left: 26px;">
<span class="required">&nbsp;</span> <% if User.current.user_extensions.school.nil? %>
<% if User.current.user_extensions.nil? %> <%= l(:field_occupation) %>&nbsp;<span class="required">*</span>
<input id="province" name="province" style="display: none" type="text" value="请单击选择省份及学校" readonly> <input id="province" name="province" type="text" value="请单击选择省份及学校" readonly>
<input id="occupation" name="occupation" style="display: none" type="text" value="" /> <input id="occupation" name="occupation" type="hidden"/>
<input id="occupation_name" type="text" style="display: none" readonly/> <input id="occupation_name" type="text" readonly/>
<% else %> <% else %>
<% if User.current.user_extensions.identity == 3 || User.current.user_extensions.identity == 2 %> <%= l(:field_occupation) %>&nbsp;<span class="required">*</span>
<input id="province" name="province" type="text" value="<%= User.current.user_extensions.school.province %>" readonly/>
<input id="province" name="province" style="display: none" type="text" value="请单击选择省份及学校" readonly> <input id="occupation" name="occupation" type="hidden" value="<%= User.current.user_extensions.school.id %>"/>
<input id="occupation" name="occupation" style="display: none" type="text" value="<%= @user.user_extensions.occupation %>" /> <input id="occupation_name" type="text" value="<%= User.current.user_extensions.school.name %>" readonly/>
<input id="occupation_name" type="text" style="display: none" readonly/>
<% elsif User.current.user_extensions.school.nil? %>
<input id="province" name="province" style="display: none" type="text" value="请单击选择省份及学校" readonly>
<input id="occupation" name="occupation" style="display: none" type="text" />
<input id="occupation_name" type="text" style="display: none" readonly/>
<% else %>
<input id="province" name="province" style="display: none" type="text" value="<%= User.current.user_extensions.school.province %>" readonly/>
<input id="occupation" name="occupation" type="text" style="display: none" value="<%= User.current.user_extensions.school.id %>"/>
<input id="occupation_name" type="text" style="display: none" value="<%= User.current.user_extensions.school.name %>" readonly="true" style="background-color: #E2E2E2;"/>
<% end %>
<% end %> <% end %>
</p> </p>
<div id="WOpenWindow"> <div id="WOpenWindow">
<a class="modal_close" href="#"></a> <a class="modal_close" href="#"></a>
<h2><%= l(:lable_school_list)%></h2>
<h2>学校列表</h2>
&nbsp;&nbsp; &nbsp;&nbsp;
<div class="pcontent"> <div class="pcontent">
<ul id="provincelist" class="school_list"> <ul id="provincelist" class="school_list">
@ -266,31 +163,20 @@
<!-- end --> <!-- end -->
<p style="width:357px;padding-left: 27px;"> <p style="width:357px;padding-left: 26px;">
<%= f.text_field :mail, :required => true %> <%= f.text_field :mail, :required => true %>
</p> </p>
<p style="width:426px;padding-left:54px;"> <p style="width:426px;padding-left:26px;">
<%= f.select :language, :Chinese => :zh, :English => :en %> <%= f.select :language, :Chinese => :zh, :English => :en %>
</p> </p>
<% if !User.current.user_extensions.nil? %>
<% province = User.current.user_extensions.location %> <% province = User.current.user_extensions.location %>
<% city = User.current.user_extensions.location_city %> <% city = User.current.user_extensions.location_city %>
<% identity = User.current.user_extensions.identity %> <% identity = User.current.user_extensions.identity %>
<% occupation1 = User.current.user_extensions.occupation %>
<% occupation = User.current.user_extensions.occupation %>
<% title = User.current.user_extensions.technical_title %> <% title = User.current.user_extensions.technical_title %>
<% language = User.current.language %>
<% else %>
<% province = "湖南省" %>
<% city = "长沙"%>
<% identity = ""%>
<% occupation1 = ""%>
<% title = "" %>
<% language = ""%>
<% end %>
<script type="text/javascript" language="javascript"> <script type="text/javascript" language="javascript">
$().ready(function () { $().ready(function () {
var province = "<%= "#{province}" %>" var province = "<%= "#{province}" %>"
@ -298,15 +184,12 @@
init_province_and_city(document.getElementById('userProvince'), province, document.getElementById('userCity'), city); init_province_and_city(document.getElementById('userProvince'), province, document.getElementById('userCity'), city);
var identity = "<%= "#{identity}" %>" var identity = "<%= "#{identity}" %>"
var title = "<%= "#{title}" %>" var title = "<%= "#{title}" %>"
var language = "<%= "#{language}" %>" init_identity_and_title(document.getElementById('userIdentity'), identity, document.getElementById('userTechnical_title'), title);
var occupation1 = "<%= "#{occupation}" %>"
init_identity_and_title(document.getElementById('userIdentity'), identity, document.getElementById('userTechnical_title'), title, language);
}); });
</script> </script>
<p style="width:400px;padding-left: 57px;"><label style="margin-right: 5px;"><%= l(:label_location) %></label> <p style="width:400px;padding-left: 26px;"><%= l(:label_location) %>
<select onchange="showcity(this.value, document.getElementById('userCity'));" name="province" id="userProvince" class="location"> <select onchange="showcity(this.value, document.getElementById('userCity'));" name="province" id="userProvince" class="location">
<option value="">--请选择省份--</option> <option value="">--请选择省份--</option>
<option value="北京">北京</option> <option value="北京">北京</option>
@ -350,14 +233,46 @@
<% unless @user.user_extensions.identity == 2 %>
<p style="width:400px;padding-left: 26px;">
<%= l(:label_identity) %>
<select onchange="showtechnical_title(this.value, document.getElementById('userTechnical_title'));" name="identity" id="userIdentity" class="location">
<option value=""><%= l(:label_account_identity_choose) %></option>
<option value="0"><%= l(:label_account_identity_teacher) %></option>
<option value="1"><%= l(:label_account_identity_student) %></option>
<option value="3"><%= l(:label_account_identity_developer) %></option>
</select>
<span id='technical_title' style='display:none'>
<select name="technical_title" id="userTechnical_title"></select>
</span>
<span id='no' style='display:none'>
<!-- modified by fq -->
<% unless User.current.user_extensions.student_id.nil? %>
<%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => "请输入学号" %>
<% else %>
<%= text_field_tag :no, nil, :placeholder => "请输入学号" %></span>
<% end %>
<!-- end -->
</span>
<% else %>
<span style="display:none">
<select onchange="showtechnical_title(this.value, document.getElementById('userTechnical_title'));" name="identity" id="userIdentity" class="location">
<option value=""><%= l(:label_account_identity_choose) %></option>
<option value="0"><%= l(:label_account_identity_teacher) %></option>
<option value="1"><%= l(:label_account_identity_student) %></option>
<option value="2"><%= l(:label_account_identity_enterprise) %></option>
<option value="3"><%= l(:label_account_identity_developer) %></option>
</select>
</span>
</p>
<% end %>
</div> </div>
<% if Setting.openid? %> <% if Setting.openid? %>
<p> <p> <%= f.text_field :identity_url %> </p>
<%= f.text_field :identity_url %>
</p>
<% end %> <% end %>
<% @user.custom_field_values.select(&:editable?).each do |value| %> <% @user.custom_field_values.select(&:editable?).each do |value| %>
@ -589,56 +504,15 @@
} }
} }
} }
function init_identity_and_title(pField, identity, cField, title) {
function init_identity_and_title(pField, identity, cField, title, language) {
for (var i = 0; i < pField.options.length; i++) { for (var i = 0; i < pField.options.length; i++) {
if (pField.options[i].value == identity) { if (pField.options[i].value == identity) {
pField.selectedIndex = i; pField.selectedIndex = i;
} }
} }
showtechnical_title(identity, cField); showtechnical_title(identity, cField);
if(language == 'zh') {
switch (title) {
case 'Professor' :
title1 = '教授';
break;
case 'Associate professor' :
title1 = '副教授';
break;
case 'Lecturer' :
title1 = '讲师';
break;
case 'Teaching assistant' :
title1 = '助教';
break;
default :
title1 = title;
break;
}
}
else {
switch (title) {
case '教授' :
title1 = 'Professor';
break;
case '副教授' :
title1 = 'Associate professor';
break;
case '讲师' :
title1 = 'Lecturer';
break;
case '助教' :
title1 = 'Teaching assistant';
break;
default :
title1 = title;
break;
}
}
for (var i = 0; i < cField.options.length; i++) { for (var i = 0; i < cField.options.length; i++) {
if (cField.options[i].value == title1) { if (cField.options[i].value == title) {
cField.selectedIndex = i; cField.selectedIndex = i;
} }
} }
@ -652,11 +526,6 @@
$('#name').show() $('#name').show()
$('#enterprise').hide() $('#enterprise').hide()
$('#gender').show() $('#gender').show()
$('#occupation_detail').show()
$('input#province').show()
$('input#occupation_name').show()
$('input#occupation').hide()
var technical_titleOptions = new Array( var technical_titleOptions = new Array(
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>"); "<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
break; break;
@ -667,14 +536,7 @@
$('#name').show() $('#name').show()
$('#enterprise').hide() $('#enterprise').hide()
$('#gender').show() $('#gender').show()
$('#occupation_detail').show() var titleOptions = new Array("");
$('input#province').show()
$('input#occupation_name').show()
$('input#occupation').hide()
var technical_titleOptions = new Array(
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
break; break;
case '2' : case '2' :
@ -683,25 +545,7 @@
$('#name').hide() $('#name').hide()
$('#enterprise').show() $('#enterprise').show()
$('#gender').hide() $('#gender').hide()
$('#occupation_detail').hide() var titleOptions = new Array("");
var technical_titleOptions = new Array(
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
break;
case '3':
$('#technical_title').hide()
$('#no').hide()
$('#name').show()
$('#enterprise').hide()
$('#gender').show()
$('#occupation_detail').show()
$('input#province').hide()
$('input#occupation_name').hide()
$('input#occupation').show()
// document.getElementById("occupation").value = "";
var technical_titleOptions = new Array(
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
break; break;
default: default:
$('#technical_title').hide() $('#technical_title').hide()
@ -709,10 +553,7 @@
$('#name').show() $('#name').show()
$('#enterprise').hide() $('#enterprise').hide()
$('#gender').show() $('#gender').show()
$('#occupation_detail').hide() var titleOptions = new Array("");
var technical_titleOptions = new Array(
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
break; break;

View File

@ -66,6 +66,6 @@
</ul> </ul>
</div> </div>
<div id="show_score_detail"> <div id="show_score_detail">
<%= render :partial => 'projects/project_score_index', :locals => {:index => 0 } %> <%= render :partial => 'projects/project_score_index', :locals => {:index => 0,:project => @project } %>
</div> </div>
<% end %> <% end %>

View File

@ -1,13 +1,14 @@
<%= link_to '+ 添加标签', 'javascript:void(0);', <%= link_to '+ 添加标签', 'javascript:void(0);',
:class => "yellowBtn f_l", :class => "yellowBtn f_l",
:onclick=>"$('#add_tag_#{obj.id}').slideToggle();" if User.current.logged? %> <!-- $('#put-tag-form-#{obj.class}-#{obj.id}').toggle(); readmore(this); --> :onclick=>"$('#add_tag_#{obj.id}').slideToggle();" if User.current.logged? %> <!-- $('#put-tag-form-#{obj.class}-#{obj.id}').toggle(); readmore(this); -->
<span id="add_tag_<%= obj.id %>" style="display:none; vertical-align: middle;" class="ml10 f_l">
<%= form_for "tag_for_save",:remote=>true,:url => save_tag_path, <%= form_for "tag_for_save",:remote=>true,:url => save_tag_path,
:update => "tags_show", :update => "tags_show",
:complete => '$("#put-tag-form").hide();' do |f| %> :complete => '$("#put-tag-form").hide();' do |f| %>
<span id="add_tag_<%= obj.id %>" style="display:none; vertical-align: middle;" class="ml10 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 :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"%>
<%= f.submit "",:class => "submit f_l" %> <%= f.submit "",:class => "submit f_l" %>
</span>
<% end %> <% end %>
</span>

View File

@ -14,7 +14,7 @@
</span> </span>
<% end %> <% end %>
<% else %> <% else %>
<span style="color:#8c8a8a" class="f_l"> <!-- <span style="color:#8c8a8a" class="f_l">
&nbsp;&nbsp;&nbsp;<%= l(:label_tags_no) %> &nbsp;&nbsp;&nbsp;<#%= l(:label_tags_no) %> -->
</span> </span>
<% end %> <% end %>

View File

@ -1,8 +1,6 @@
<% if User.current.logged?%> <% if User.current.logged?%>
<% if User.current.user_extensions.identity == 0 %>
<%= link_to(l(:label_course_new), {:controller => 'courses', :action => 'new'}, <%= link_to(l(:label_course_new), {:controller => 'courses', :action => 'new'},
:class => 'icon icon-add') if User.current.allowed_to?(:add_course,nil, :global => true) %> :class => 'icon icon-add') if User.current.allowed_to?(:add_course,nil, :global => true) %>
<% end %>
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
<%= link_to l(:label_course_join_student), join_private_courses_courses_path ,:remote => true, :class => 'icon icon-add' %> <%= link_to l(:label_course_join_student), join_private_courses_courses_path ,:remote => true, :class => 'icon icon-add' %>
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;

View File

@ -1852,3 +1852,4 @@ en:
label_anonymous_comments: Anonymous comments label_anonymous_comments: Anonymous comments
label_anonymous: Anonymous label_anonymous: Anonymous
label_submit_comments: Submit_comments label_submit_comments: Submit_comments
label_course_empty_select: You have not selected course

View File

@ -2203,4 +2203,5 @@ zh:
label_submit_comments: 提交评论 label_submit_comments: 提交评论
field_evaluation_num: 匿评分配数量 field_evaluation_num: 匿评分配数量
label_my_score: 我的评分 label_my_score: 我的评分
field_open_anonymous_evaluation: 是否开启匿评 field_open_anonymous_evaluation: 是否使用匿评
label_course_empty_select: 尚未选择课程!

View File

@ -11,7 +11,7 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20141119011439) do ActiveRecord::Schema.define(:version => 20141120091234) do
create_table "activities", :force => true do |t| create_table "activities", :force => true do |t|
t.integer "act_id", :null => false t.integer "act_id", :null => false
@ -52,6 +52,7 @@ ActiveRecord::Schema.define(:version => 20141119011439) do
t.string "disk_directory" t.string "disk_directory"
t.integer "attachtype", :default => 1 t.integer "attachtype", :default => 1
t.integer "is_public", :default => 1 t.integer "is_public", :default => 1
t.integer "copy_from"
end end
add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id"

View File

@ -2,6 +2,8 @@
/* Redmine - project management software /* Redmine - project management software
Copyright (C) 2006-2013 Jean-Philippe Lang */ Copyright (C) 2006-2013 Jean-Philippe Lang */
function cleanArray (actual){ function cleanArray (actual){
var newArray = new Array(); var newArray = new Array();
for (var i = 0; i< actual.length; i++){ for (var i = 0; i< actual.length; i++){
@ -389,6 +391,7 @@ function submitPreview(url, form, target) {
$.ajax({ $.ajax({
url: url, url: url,
type: 'post', type: 'post',
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
data: $('#'+form).serialize(), data: $('#'+form).serialize(),
success: function(data){ success: function(data){
$('#'+target).html(data); $('#'+target).html(data);
@ -433,6 +436,7 @@ function scmEntryClick(id, url) {
el.addClass('loading'); el.addClass('loading');
$.ajax({ $.ajax({
url: url, url: url,
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
success: function(data){ success: function(data){
el.after(data); el.after(data);
el.addClass('open').addClass('loaded').removeClass('loading'); el.addClass('open').addClass('loaded').removeClass('loading');
@ -454,6 +458,7 @@ function randomKey(size) {
function updateIssueFrom(url) { function updateIssueFrom(url) {
$.ajax({ $.ajax({
url: url, url: url,
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
type: 'post', type: 'post',
data: $('#issue-form').serialize() data: $('#issue-form').serialize()
}); });
@ -462,6 +467,7 @@ function updateIssueFrom(url) {
function updateBulkEditFrom(url) { function updateBulkEditFrom(url) {
$.ajax({ $.ajax({
url: url, url: url,
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
type: 'post', type: 'post',
data: $('#bulk_edit_form').serialize() data: $('#bulk_edit_form').serialize()
}); });
@ -500,6 +506,7 @@ function observeSearchfield(fieldId, targetId, url) {
$.ajax({ $.ajax({
url: url, url: url,
type: 'get', type: 'get',
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
data: {q: $this.val()}, data: {q: $this.val()},
success: function(data){ if(targetId) $('#'+targetId).html(data); }, success: function(data){ if(targetId) $('#'+targetId).html(data); },
beforeSend: function(){ $this.addClass('ajax-loading'); }, beforeSend: function(){ $this.addClass('ajax-loading'); },
@ -540,6 +547,7 @@ function initMyPageSortable(list, url) {
$.ajax({ $.ajax({
url: url, url: url,
type: 'post', type: 'post',
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
data: {'blocks': $.map($('#list-'+list).children(), function(el){return $(el).attr('id');})} data: {'blocks': $.map($('#list-'+list).children(), function(el){return $(el).attr('id');})}
}); });
} }
@ -621,6 +629,14 @@ function transpotUrl (scope) {
$(document).ready(setupAjaxIndicator); $(document).ready(setupAjaxIndicator);
$(document).ready(hideOnLoad); $(document).ready(hideOnLoad);
$(document).ready(addFormObserversForDoubleSubmit); $(document).ready(addFormObserversForDoubleSubmit);
$(document).ready(function(){
$.ajaxSetup({
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}
});
}
)
function img_thumbnails() { function img_thumbnails() {
$('.thumbnails a').colorbox({rel:'nofollow'}); $('.thumbnails a').colorbox({rel:'nofollow'});

View File

@ -2203,7 +2203,7 @@ button.tab-right {
padding-bottom: 2px; padding-bottom: 2px;
text-align: center; text-align: center;
border: 1px solid #15BCCF; border: 1px solid #15BCCF;
border-bottom: 0px solid #15BCCF; border-bottom: 1px solid #15BCCF;
color:#606060; color:#606060;
font-weight:bold; font-weight:bold;

View File

@ -1,5 +1,5 @@
/* CSS Document */ /* CSS Document */
body{ font-size:12px !important; font-family:"微软雅黑","宋体" !important; line-height:1.9; background:#fff; font-style:normal;} body{ font-size:12px !important; font-family:"微软雅黑","宋体" !important; background:#fff; font-style:normal;}
div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span,textarea{ margin:0; padding:0;} div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span,textarea{ margin:0; padding:0;}
div,img,tr,td,textarea{ border:0;} div,img,tr,td,textarea{ border:0;}
table,tr,td{border:0; cellspacing:0; cellpadding:0;} table,tr,td{border:0; cellspacing:0; cellpadding:0;}
@ -15,7 +15,7 @@ a:hover{ text-decoration:underline;}
/* TAB 切换效果 */ /* TAB 切换效果 */
.tb_{ background-color: #eaeaea; height:40px; } .tb_{ background-color: #eaeaea; height:40px; }
.tb_ ul{height:40px; } .tb_ ul{height:40px; }
.tb_ li{float:left;height:35px;width: 90px;cursor:pointer; font-size:14px; padding-top:5px; text-align:center; } .tb_ li{float:left;height:30px;width: 90px;cursor:pointer; font-size:14px; padding-top:10px; text-align:center; }
a.tb_all{ margin-left:235px; font-size:12px; display:block; height:23px; padding-top:4px; width:90px; color:#7a7a7a; border:1px solid #cbcbcb; background:#fff; text-align: center;} a.tb_all{ margin-left:235px; font-size:12px; display:block; height:23px; padding-top:4px; width:90px; color:#7a7a7a; border:1px solid #cbcbcb; background:#fff; text-align: center;}
a:hover.tb_all{ background:#eaeaea; text-decoration:none;} a:hover.tb_all{ background:#eaeaea; text-decoration:none;}
@ -38,13 +38,13 @@ a:hover.tb_all{ background:#eaeaea; text-decoration:none;}
.pic_head a{ text-align:center; width:42px; overflow:hidden;text-overflow:ellipsis; white-space:nowrap;} .pic_head a{ text-align:center; width:42px; overflow:hidden;text-overflow:ellipsis; white-space:nowrap;}
.pic_head img{ border:1px solid #fff;} .pic_head img{ border:1px solid #fff;}
.pic_head img:hover{border:1px solid #15bccf;} .pic_head img:hover{border:1px solid #15bccf;}
.dis ul li.wname a{ width:260px; font-size:14px; color:#595959; padding:20px 0 0 15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;} .dis ul li.wname a{ width:260px; font-size:14px; color:#595959; padding:25px 0 0 15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.dis ul li.wdown a{padding-top:22px; color:#3d7ec2; margin-right:35px;} .dis ul li.wdown a{padding-top:25px; color:#3d7ec2; margin-right:35px;}
.wscore{ padding-top:22px; color:#888888; width:96px;} .wscore{ padding-top:25px; color:#888888; width:96px;}
.dis ul li.wping{margin-left:12px; } .dis ul li.wping{margin-left:12px; }
.dis ul li.wping a{ margin-top:18px; margin-bottom:3px; width:43px; height:23px; background:#15bccf; color:#fff; text-align:center; padding-top:3px;} .dis ul li.wping a{ margin-top:18px; margin-bottom:3px; width:43px; height:23px; background:#15bccf; color:#fff; text-align:center; padding-top:8px;}
.dis ul li.wping a:hover{ background-color:#03a1b3;} .dis ul li.wping a:hover{ background-color:#03a1b3;}
ul.wlist{ float:right; border-bottom:none; height:30px; margin-top:20px; } ul.wlist{ float:right; border-bottom:none; height:30px; margin-top:20px;line-height: 1.9; }
.wlist span{ border:1px solid #15bccf; padding:0 5px; margin-left:3px;} .wlist span{ border:1px solid #15bccf; padding:0 5px; margin-left:3px;}
.wlist a{ border:1px solid #15bccf; padding:0 5px; margin-left:3px;} .wlist a{ border:1px solid #15bccf; padding:0 5px; margin-left:3px;}
.wlist a:hover{ background:#15bccf; color:#fff; text-decoration:none;} .wlist a:hover{ background:#15bccf; color:#fff; text-decoration:none;}
@ -84,7 +84,7 @@ a.wzan_visited{background:url(images/pic_zan.png) 0 0 no-repeat;}
.ping_star span a:hover{background:url(images/star.png) -24px 0 no-repeat;} .ping_star span a:hover{background:url(images/star.png) -24px 0 no-repeat;}
.ping_con textarea{ height:76px; border:1px solid #15bccf; margin-bottom:5px; color:#666; font-size:12px;} .ping_con textarea{ height:76px; border:1px solid #15bccf; margin-bottom:5px; color:#666; font-size:12px;}
a.ping_sub{ float:right; height:22px; width:60px; margin-right:20px; background:#15bccf; color:#fff; text-align:center;} a.ping_sub{ float:right; height:22px; width:60px; margin-right:20px; background:#15bccf; color:#fff; text-align:center;}
a.ping_sub1{ float:right; height:22px; width:60px; background:#15bccf; color:#fff; text-align:center;} a.ping_sub1{ float:right; height:22px; width:60px; background:#15bccf; color:#fff; text-align:center;line-height: 1.9;}
a:hover.ping_sub{ background:#14a8b9;} a:hover.ping_sub{ background:#14a8b9;}
.recall{ border-top:1px solid #CCC; padding:5px 0;} .recall{ border-top:1px solid #CCC; padding:5px 0;}
.recall_head{ float:left;} .recall_head{ float:left;}
@ -92,7 +92,7 @@ a:hover.ping_sub{ background:#14a8b9;}
.recall_head img{ height:30px; width:30px;} .recall_head img{ height:30px; width:30px;}
.recall_head a:hover{border:1px solid #15bccf;} .recall_head a:hover{border:1px solid #15bccf;}
.recall_head img:hover{border:1px solid #15bccf;} .recall_head img:hover{border:1px solid #15bccf;}
.recall_con{ float:left;color:#777777;max-width: 530px;width: 90%; margin-left:10px; } .recall_con{ float:left;color:#777777;max-width: 530px;width: 80%; margin-left:10px; }
.recall_con a{ color:#15bccf; } .recall_con a{ color:#15bccf; }
.ping_list{ margin-top:15px;} .ping_list{ margin-top:15px;}
@ -128,7 +128,7 @@ a:hover.ping_sub{ background:#14a8b9;}
.w430{ width:430px;} .w430{ width:430px;}
.w350{ width:350px;} .w350{ width:350px;}
.w620{ width:580px; height:160px; border:1px solid #CCC;} .w620{ width:580px; height:160px; border:1px solid #CCC !important; padding-left: 3px !important;}
.bo{height:26px; border:1px solid #CCC !important; padding: 0 !important;} .bo{height:26px; border:1px solid #CCC !important; padding: 0 !important;}
a.tijiao{ height:28px !important; display:block !important; width:80px !important; color:#fff !important; background:#15bccf !important; text-align:center !important; padding-top:4px !important; float:left !important; margin-right:10px !important;} a.tijiao{ height:28px !important; display:block !important; width:80px !important; color:#fff !important; background:#15bccf !important; text-align:center !important; padding-top:4px !important; float:left !important; margin-right:10px !important;}
a:hover.tijiao{ background:#0f99a9 !important;} a:hover.tijiao{ background:#0f99a9 !important;}

View File

@ -649,14 +649,14 @@ input[class='nyan-clean-gray']:active, .nyan-clean-gray:active {
} }
.tools a:visited { .tools a:visited {
color: #fffbff; color: #116699;
text-decoration: none; text-decoration: none;
padding: 3px 5px 0px 5px; padding: 3px 5px 0px 5px;
width: 100px; width: 100px;
} }
.tools a:hover { .tools a:hover {
color: #fffbff; color: white;
padding: 3px 3px 0px 20px; padding: 3px 3px 0px 20px;
width: 88px; width: 88px;
text-decoration: none; text-decoration: none;

View File

@ -1,4 +1,4 @@
body{ font-size:12px; font-family:"微软雅黑","宋体"; line-height:1.9; background:#fff; font-style:normal;} body{ font-size:12px !important; font-family:"微软雅黑","宋体" !important; line-height:1.9 !important; background:#fff !important; font-style:normal !important;}
div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,form,span,textarea{ margin:0; padding:0;} div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,form,span,textarea{ margin:0; padding:0;}
div,img,tr,td,textarea{ border:0;} div,img,tr,td,textarea{ border:0;}
table,tr,td{border:0; cellspacing:0; cellpadding:0;} table,tr,td{border:0; cellspacing:0; cellpadding:0;}
@ -12,11 +12,12 @@ a:hover{ text-decoration:underline;}
.b_lblue{ background:#64bdd9 !important;} .b_lblue{ background:#64bdd9 !important;}
.b_dblue{ background:#55a1b9 !important; cursor:pointer !important;} .b_dblue{ background:#55a1b9 !important; cursor:pointer !important;}
.f_b{ font-weight: bold !important;} .f_b{ font-weight: bold !important;}
.c_blue{ color:#64bdd9;} .c_blue{ color:#64bdd9 !important;}
.c_grey{ color:#999999 !important;} .c_grey{ color:#999999 !important;}
.c_grey02{ color:#666666 !important;} .c_grey02{ color:#666666 !important;}
.font{ font-size: 12px;}
.f_14{ font-size:14px ;} .f_14{ font-size:14px ;}
.c_dblue{ color:#3e6d8e;} .c_dblue{ color:#3e6d8e !important;}
.w90{width:90px;} .w90{width:90px;}
.ml10{margin-left:10px;} .ml10{margin-left:10px;}
.ml5{margin-left:5px;} .ml5{margin-left:5px;}
@ -46,15 +47,38 @@ a:hover{ text-decoration:underline;}
text-shadow: none !important; text-shadow: none !important;
} }
a.re_fabu { display:block; width:90px; height:35px; font-size:14px; color:#fff; text-align:center; padding-top:5px; margin:5px; } a.re_fabu { display:block; width:90px; height:35px; font-size:14px; color:#fff; text-align:center; padding-top:5px; margin:5px; }
a:hover.re_fabu{background:#55a1b9;} a:hover.re_fabu{background:#55a1b9 !important;}
/****列表***/ /****列表***/
.re_con{ margin:5px; width:683px;} .re_con{ margin:5px; width:683px;}
.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; width:88px; height:22px; background:url(images/pic_select01.png) 0 0 no-repeat; color:#fff; font-weight:bold; margin-left:10px;} a.re_select{
a:hover.re_select{background:url(images/pic_select02.png) 0 0 no-repeat;} display: block;
.re_open{display:block; width:46px; height:22px; background:url(images/pic_open01.png) 0 0 no-repeat; color:#fff; font-weight:bold; margin-left:10px;} height: 22px;
a:hover.re_open{background:url(images/pic_open02.png) 0 0 no-repeat;} border: 1px solid #ff9900;
color: #ff9900;
margin-left: 10px;
padding-left: 10px;
padding-right: 10px;
}
a:hover.re_select{
background: #ff9900;
color: #fff;
text-decoration: none;}
.re_open{
display: block !important;
width: 46px !important;
height: 22px !important;
border: 1px solid #64bdd9 !important;
color: #64bdd9 !important;
margin-left: 10px !important;
}
a:hover.re_open
{
background: #64bdd9;
color: #fff !important;
text-decoration: none !important;
}
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:10px 0;} .re_con_box{ border-bottom:1px dashed #dadada; padding:10px 0;}
/****翻页***/ /****翻页***/
@ -76,7 +100,6 @@ a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;}
margin-top:2px !important; margin-top:2px !important;
margin-left:3px !important; margin-left:3px !important;
border:none !important; border:none !important;
margin-left:0px !important;
box-shadow: none !important; box-shadow: none !important;
padding: 0px !important; padding: 0px !important;
border-radius: 0 !important; border-radius: 0 !important;

View File

@ -498,7 +498,7 @@ color: #000000;
#sidebar a,#sidebar a.selected #sidebar a,#sidebar a.selected
{ {
display:inline-block; display:inline-block;
padding:4px 4px 4px 21px !important; padding:4px 4px 4px 21px;
transition:all .2s linear; transition:all .2s linear;
-moz-transition:all .2s linear; -moz-transition:all .2s linear;
-o-transition:all .2s linear; -o-transition:all .2s linear;
@ -1641,7 +1641,7 @@ div.left_wf a {
#sidebar a, #sidebar a.selected{ #sidebar a, #sidebar a.selected{
display: inline-block; display: inline-block;
padding: 0px !important; padding: 0px;
transition: all 0.2s linear 0s; transition: all 0.2s linear 0s;
} }