Merge branch 'szzh' into guange_dev

This commit is contained in:
sw 2015-03-12 17:09:20 +08:00
commit 78039a726e
115 changed files with 2139 additions and 1584 deletions

View File

@ -40,6 +40,17 @@ module Mobile
{status: 0} {status: 0}
end end
desc "忘记密码"
params do
requires :mail,type: String
end
post 'lost_password' do
us = UsersService.new
message = us.lost_password params
present :message, message
present :status, 0
end
end end
end end
end end

View File

@ -3,16 +3,23 @@
module Mobile module Mobile
module Apis module Apis
class Upgrade < Grape::API class Upgrade < Grape::API
include ApplicationHelper
resource :upgrade do resource :upgrade do
desc "get update info" desc "get update info"
params do params do
requires :platform, type: String, desc: '平台名android, ios' requires :platform, type: String, desc: '平台名android, ios'
end end
get do get do
@current_version = ::PhoneAppVersion.reorder('created_at desc').first
attachment = @current_version.attachments.first
if attachment.nil?
raise '未发现客户端!'
end
url = Setting.host_name + "/attachments/download/" + attachment.id.to_s + "/" + attachment.filename
{ {
version: '2', version: @current_version.version,
url: 'http://u06.shellinfo.cn/trustie/Trustie_Beta1.0.0_201412310917.apk', url: url,
desc: '更新了什么功能' desc: @current_version.description
} }
end end
end end

View File

@ -1,9 +1,15 @@
module Mobile module Mobile
module Entities module Entities
class CourseDynamic < Grape::Entity class CourseDynamic < Grape::Entity
include Redmine::I18n
def self.course_dynamic_expose(field) def self.course_dynamic_expose(field)
expose field do |c,opt| expose field do |c,opt|
c[field] if (c.is_a?(Hash) && c.key?(field)) if field == :update_time
(format_time(c[field]) if (c.is_a?(Hash) && c.key?(field)))
else
c[field] if (c.is_a?(Hash) && c.key?(field))
end
end end
end end
course_dynamic_expose :type course_dynamic_expose :type
@ -11,6 +17,8 @@ module Mobile
course_dynamic_expose :course_name course_dynamic_expose :course_name
course_dynamic_expose :course_id course_dynamic_expose :course_id
course_dynamic_expose :course_img_url course_dynamic_expose :course_img_url
course_dynamic_expose :message
course_dynamic_expose :update_time
end end
end end
end end

View File

@ -337,6 +337,40 @@ class AdminController < ApplicationController
end end
def create_version def create_version
@versions = PhoneAppVersion.reorder('created_at desc')
@new_version = PhoneAppVersion.new
@new_version.version = params[:version]
@new_version.description = params[:description]
if params[:attachments][:dummy][:file].nil? || params[:attachments][:dummy][:file] == ""
respond_to do |format|
flash.now[:error] = "#{l :label_version_create_fail}: #{l(:label_client_need)}"
#flash.now[:error] = "#{l :label_first_page_create_fail}: #{@course_page.errors.full_messages[0]}"
format.html {
render :action => 'mobile_version'
}
format.api { render_validation_errors(@new_version) }
end
else
@new_version.save_attachments(params[:attachments] || (params[:version] && params[:version][:uploads]))
if @new_version.save
respond_to do |format|
format.html {
flash[:notice] = l(:notice_successful_create)
redirect_to mobile_version_url
}
format.api { render_api_ok }
end
else
respond_to do |format|
flash.now[:error] = "#{l :label_version_create_fail}: #{@new_version.errors.full_messages[0]}"
#flash.now[:error] = "#{l :label_first_page_create_fail}: #{@course_page.errors.full_messages[0]}"
format.html {
render :action => 'mobile_version'
}
format.api { render_validation_errors(@new_version) }
end
end
end
end end

View File

@ -177,6 +177,25 @@ class ApplicationController < ActionController::Base
end end
end end
def logged_user_by_apptoken
#从手机端传来apptoken则将当前登陆用户变为对应的用户
if params[:apptoken]
token = ApiKey.where(access_token: params[:apptoken]).first
if token.expired?
return
end
if token && !token.expired?
@current_user = User.find(token.user_id)
end
unless @current_user.nil?
self.logged_user = @current_user
if @current_user
@current_user.update_column(:last_login_on, Time.now)
end
end
end
end
# Logs out current user # Logs out current user
def logout_user def logout_user
if User.current.logged? if User.current.logged?

View File

@ -231,6 +231,8 @@ class AttachmentsController < ApplicationController
format.html { redirect_to_referer_or softapplications_path(@attachment.container) } format.html { redirect_to_referer_or softapplications_path(@attachment.container) }
elsif !@attachment.container.nil? && @attachment.container.is_a?(Bid) elsif !@attachment.container.nil? && @attachment.container.is_a?(Bid)
format.html { redirect_to_referer_or respond_path(@attachment.container) } format.html { redirect_to_referer_or respond_path(@attachment.container) }
elsif !@attachment.container.nil? && @attachment.container.is_a?(PhoneAppVersion)
format.html { redirect_to_referer_or mobile_version_path }
else else
if @project.nil? if @project.nil?
format.html { redirect_to_referer_or forum_memo_path(@attachment.container.forum, @attachment.container) } format.html { redirect_to_referer_or forum_memo_path(@attachment.container.forum, @attachment.container) }
@ -415,7 +417,7 @@ private
@attachment.container.board.course) @attachment.container.board.course)
@course = @attachment.container.board.course @course = @attachment.container.board.course
else else
unless @attachment.container_type == 'Bid' || @attachment.container_type == 'HomeworkAttach' || @attachment.container_type == 'Memo' || @attachment.container_type == 'Softapplication' unless @attachment.container_type == 'Bid' || @attachment.container_type == 'HomeworkAttach' || @attachment.container_type == 'Memo' || @attachment.container_type == 'Softapplication' || @attachment.container_type == 'PhoneAppVersion'
@project = @attachment.project @project = @attachment.project
end end
end end

View File

@ -30,6 +30,7 @@ class BoardsController < ApplicationController
def index def index
#modify by nwb #modify by nwb
@flag = params[:flag] || false
if @project if @project
@boards = @project.boards.includes(:last_message => :author).all @boards = @project.boards.includes(:last_message => :author).all
@boards = [] << @boards[0] if @boards.any? @boards = [] << @boards[0] if @boards.any?

View File

@ -17,6 +17,7 @@ class CoursesController < ApplicationController
menu_item l(:label_sort_by_influence), :only => :index menu_item l(:label_sort_by_influence), :only => :index
before_filter :can_show_course, :except => [] before_filter :can_show_course, :except => []
before_filter :logged_user_by_apptoken,:only => [:show,:new_homework,:feedback]
before_filter :find_course, :except => [ :index, :search,:list, :new,:join,:unjoin, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise,:view_homework_attaches,:join_private_courses] before_filter :find_course, :except => [ :index, :search,:list, :new,:join,:unjoin, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise,:view_homework_attaches,:join_private_courses]
before_filter :authorize_course, :only => [:show, :settings, :edit, :update, :modules, :close, :reopen, :view_homework_attaches, :course] before_filter :authorize_course, :only => [:show, :settings, :edit, :update, :modules, :close, :reopen, :view_homework_attaches, :course]
before_filter :authorize_course_global, :only => [:view_homework_attaches, :new,:create] before_filter :authorize_course_global, :only => [:view_homework_attaches, :new,:create]

View File

@ -21,6 +21,7 @@ class FilesController < ApplicationController
menu_item :files menu_item :files
before_filter :auth_login1, :only => [:index] before_filter :auth_login1, :only => [:index]
before_filter :logged_user_by_apptoken,:only => [:index]
before_filter :find_project_by_project_id#, :except => [:getattachtype] before_filter :find_project_by_project_id#, :except => [:getattachtype]
before_filter :authorize, :except => [:getattachtype,:quote_resource_show,:search] before_filter :authorize, :except => [:getattachtype,:quote_resource_show,:search]
@ -98,6 +99,7 @@ class FilesController < ApplicationController
end end
def index def index
@flag = params[:flag] || false
#sort_init 'filename', 'asc' #sort_init 'filename', 'asc'
sort_init 'created_on', 'desc' sort_init 'created_on', 'desc'
sort_update 'created_on' => "#{Attachment.table_name}.created_on", sort_update 'created_on' => "#{Attachment.table_name}.created_on",

View File

@ -6,7 +6,7 @@ class HomeworkAttachController < ApplicationController
############################### ###############################
before_filter :can_show_course,except: [] before_filter :can_show_course,except: []
#判断当前角色权限时需先找到当前操作的project #判断当前角色权限时需先找到当前操作的project
before_filter :find_course_by_bid_id, :only => [:new] before_filter :logged_user_by_apptoken,:find_course_by_bid_id, :only => [:new]
before_filter :find_bid_and_course,:only => [:get_not_batch_homework,:get_batch_homeworks,:get_homeworks,:get_homework_jours, :get_student_batch_homework, :get_my_homework] before_filter :find_bid_and_course,:only => [:get_not_batch_homework,:get_batch_homeworks,:get_homeworks,:get_homework_jours, :get_student_batch_homework, :get_my_homework]
before_filter :find_course_by_hoemwork_id, :only => [:edit,:update,:destroy,:show,:add_homework_users,:destory_homework_users, :praise_homework] before_filter :find_course_by_hoemwork_id, :only => [:edit,:update,:destroy,:show,:add_homework_users,:destory_homework_users, :praise_homework]
#判断当前角色是否有操作权限 #判断当前角色是否有操作权限

View File

@ -107,17 +107,24 @@ class MembersController < ApplicationController
AppliedProject.deleteappiled(member.user_id, @project.id) AppliedProject.deleteappiled(member.user_id, @project.id)
end end
end end
respond_to do |format| if params[:flag]
format.html { redirect_to_settings_in_projects } flash[:notice] = l(:label_invite_success)
format.js { @members = members; @applied_members = applied_members; } respond_to do |format|
format.api { format.html { redirect_to invite_members_project_url(@project) }
@member = members.first end
if @member.valid? else
render :action => 'show', :status => :created, :location => membership_url(@member) respond_to do |format|
else format.html { redirect_to_settings_in_projects }
render_validation_errors(@member) format.js { @members = members; @applied_members = applied_members; }
end format.api {
} @member = members.first
if @member.valid?
render :action => 'show', :status => :created, :location => membership_url(@member)
else
render_validation_errors(@member)
end
}
end
end end
elsif @course elsif @course
course_info = [] course_info = []
@ -310,6 +317,7 @@ class MembersController < ApplicationController
end end
def autocomplete def autocomplete
@flag = params[:flag] || false
respond_to do |format| respond_to do |format|
format.js format.js
end end

View File

@ -180,6 +180,7 @@ class ProjectsController < ApplicationController
@project = Project.new @project = Project.new
@project.safe_attributes = params[:project] @project.safe_attributes = params[:project]
@project.organization_id = params[:organization_id] @project.organization_id = params[:organization_id]
@project.user_id = User.current.id
if validate_parent_id && @project.save if validate_parent_id && @project.save
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
# Add current user as a project member if he is not admin # Add current user as a project member if he is not admin
@ -333,8 +334,7 @@ class ProjectsController < ApplicationController
end end
def send_mail_to_member def send_mail_to_member
if !params[:mail].blank? && User.find_by_mail(params[:mail].to_s).nil?
if !params[:mail].nil? && User.find_by_mail(params[:mail].to_s).nil?
email = params[:mail] email = params[:mail]
Mailer.send_invite_in_project(email, @project, User.current).deliver Mailer.send_invite_in_project(email, @project, User.current).deliver
@is_zhuce =false @is_zhuce =false
@ -347,16 +347,27 @@ class ProjectsController < ApplicationController
end end
#发送邮件邀请新用户 #发送邮件邀请新用户
def invite_members_by_mail def invite_members_by_mail
@is_zhuce =false if User.current.member_of?(@project) || User.current.admin?
respond_to do |format| @is_zhuce = false
format.html respond_to do |format|
format.js format.html
format.js
end
else
render_403
end end
end end
# 邀请Trustie注册用户 # 邀请Trustie注册用户
def invite_members def invite_members
@member ||= @project.members.new if User.current.member_of?(@project) || User.current.admin?
@member ||= @project.members.new
respond_to do |format|
format.html
end
else
render_403
end
end end
def edit def edit

View File

@ -19,6 +19,7 @@ class UsersController < ApplicationController
layout :setting_layout layout :setting_layout
#Added by young #Added by young
before_filter :auth_login1, :only => [:show, :user_activities, :user_newfeedback] before_filter :auth_login1, :only => [:show, :user_activities, :user_newfeedback]
before_filter :logged_user_by_apptoken, :only => [:show,:user_newfeedback]
menu_item :activity menu_item :activity
menu_item :user_information, :only => :info menu_item :user_information, :only => :info
menu_item :user_course, :only => :user_courses menu_item :user_course, :only => :user_courses
@ -445,12 +446,13 @@ class UsersController < ApplicationController
activity = Activity.where(where_condition).where('user_id = ?', @user.id).order('id desc') activity = Activity.where(where_condition).where('user_id = ?', @user.id).order('id desc')
end end
activity = activity.reject { |e| activity = activity.reject { |e|
!User.current.admin? && e.act.nil? ||
(!User.current.admin? && !e.act.nil?
(((e.act_type == "Issue") && !e.act.project.visible?(User.current)) || (((e.act_type == "Issue") && !e.act.project.visible?(User.current)) ||
(e.act_type == "Bid" && !e.act.courses.first.nil? && e.act.courses.first.is_public == 0 && !User.current.member_of_course?(e.act.courses.first)) || (e.act_type == "Bid" && !e.act.courses.first.nil? && e.act.courses.first.is_public == 0 && !User.current.member_of_course?(e.act.courses.first)) ||
(e.act_type == "Journal" && e.act.respond_to?("Project") && !e.act.project.visible?(User.current)) || (e.act_type == "Journal" && e.act.respond_to?("Project") && !e.act.project.visible?(User.current)) ||
(e.act_type == "News" && ((!e.act.project.nil? && !e.act.project.visible?(User.current)) || (!e.act.course.nil? && e.act.course.is_public == 0 && !User.current.member_of_course?(e.act.course)))) || (e.act_type == "News" && ((!e.act.project.nil? && !e.act.project.visible?(User.current)) || (!e.act.course.nil? && e.act.course.is_public == 0 && !User.current.member_of_course?(e.act.course)))) ||
(e.act_type == "Message" && !e.act.board.nil? && ((!e.act.board.project.nil? && !e.act.board.project.visible?(User.current)) || (!e.act.board.course.nil? && e.act.board.course.is_public == 0 && !User.current.member_of_course?(e.act.board.course))))) (e.act_type == "Message" && !e.act.board.nil? && ((!e.act.board.project.nil? && !e.act.board.project.visible?(User.current)) || (!e.act.board.course.nil? && e.act.board.course.is_public == 0 && !User.current.member_of_course?(e.act.board.course))))))
} }
@activity_count = activity.count @activity_count = activity.count
@activity_pages = Paginator.new @activity_count, pre_count, params['page'] @activity_pages = Paginator.new @activity_count, pre_count, params['page']

View File

@ -28,7 +28,8 @@ class WelcomeController < ApplicationController
# 企业版定制: params[:project]为传过来的参数 # 企业版定制: params[:project]为传过来的参数
unless params[:organization].nil? unless params[:organization].nil?
@organization = Organization.find params[:organization] @organization = Organization.find params[:organization]
@organization_projects = Project.visible.joins(:project_status).joins("LEFT JOIN project_scores ON projects.id = project_scores.project_id").where("projects.organization_id = ?", @organization.id).order("score DESC").limit(10).all # @organization_projects = Project.joins(:project_status).joins("LEFT JOIN project_scores ON projects.id = project_scores.project_id").where("projects.organization_id = ?", @organization.id).order("score DESC").limit(10).all
@organization_projects = @organization.projects.visible.joins("LEFT JOIN project_scores ON projects.id = project_scores.project_id").order("project_scores.score DESC").limit(10).all
@part_projects = @organization_projects.count < 9 ? find_miracle_project( 9 - @organization_projects.count, 3,"score desc") : [] @part_projects = @organization_projects.count < 9 ? find_miracle_project( 9 - @organization_projects.count, 3,"score desc") : []
# @cur_projects = Project.find(params[:organization]) # @cur_projects = Project.find(params[:organization])
# @organization = @cur_projects.enterprise_name # @organization = @cur_projects.enterprise_name

View File

@ -490,6 +490,15 @@ module ApplicationHelper
s.html_safe s.html_safe
end end
#项目成员列表复选框生成
def project_member_check_box_tags_ex name, principals
s = ''
principals.each do |principal|
s << "<li>#{ check_box_tag name, principal.id, false, :id => nil } #{h link_to principal.userInfo, user_path( principal.id)}</li>\n"
end
s.html_safe
end
#扩展的checkbox生成 #扩展的checkbox生成
def principals_check_box_tags_ex(name, principals) def principals_check_box_tags_ex(name, principals)
s = '' s = ''
@ -1198,6 +1207,17 @@ module ApplicationHelper
html_safe html_safe
end end
def wiki_simple_format_without_paragraph(text)
text.to_s.
gsub(/\r\n?/, "\n"). # \r\n and \r -> \n
gsub(/\n\n+/, "<br /><br />"). # 2+ newline -> 2 br
gsub(/([^\n]\n)(?=[^\n])/, '\1<br />'). # 1 newline -> br
gsub("&amp;nbsp", " "). #gsub(/<\/?.*?>/,"").
gsub(/&lt;\/?.*?&gt;/, "").
gsub("&quot;", "'").
html_safe
end
def lang_options_for_select(blank=true) def lang_options_for_select(blank=true)
{ 'Chinese简体中文 '=> 'zh', :English => :en} { 'Chinese简体中文 '=> 'zh', :English => :en}
end end

View File

@ -351,10 +351,28 @@ module CoursesHelper
str str
end end
# added by nwb # added by meng
# 课程time+term简写2014.春/2014.秋)国际化输出
def get_course_term course def get_course_term course
str = ( course.try(:time).to_s << '.' << course.try(:term).to_s ) strterm = course.try(:term).to_s
str[0..-4] if !(User.current.language == 'zh')
strterm == '春季学期' ? strterm = 'spring term' : strterm = 'autumn term'
str = ( course.try(:time).to_s << '.' << strterm )
str[0..-6]
else
str = ( course.try(:time).to_s << '.' << strterm )
str[0..-4]
end
end
# added by meng
# 课程term春季学期/秋季学期)国际化输出
def get_course_term_locales course
str = course.try(:term).to_s
if !(User.current.language == 'zh')
str == '春季学期' ? str = ' ' + 'spring term' : str = ' ' + 'autumn term'
end
return str
end end
def members_to_user_ids members def members_to_user_ids members

View File

@ -48,7 +48,7 @@ module FilesHelper
def courses_check_box_tags(name,courses,current_course,attachment) def courses_check_box_tags(name,courses,current_course,attachment)
s = '' s = ''
courses.each do |course| courses.each do |course|
if !(attachment.container_type && attachment.container_id == course.id) && is_course_teacher(User.current,course) && course_in_current_or_next_term(course) if !course_contains_attachment?(course,attachment) && is_course_teacher(User.current,course) && course_in_current_or_next_term(course)
s << "<label>#{ check_box_tag name, course.id, false, :id => nil } #{h course.name}</label>&nbsp;[#{get_course_term course}]<br/>" s << "<label>#{ check_box_tag name, course.id, false, :id => nil } #{h course.name}</label>&nbsp;[#{get_course_term course}]<br/>"
end end
end end

View File

@ -23,15 +23,22 @@ module MembersHelper
principal_count = scope.count principal_count = scope.count
principal_pages = Redmine::Pagination::Paginator.new principal_count, 10, params['page'] #by young principal_pages = Redmine::Pagination::Paginator.new principal_count, 10, params['page'] #by young
principals = scope.offset(principal_pages.offset).limit(principal_pages.per_page).all principals = scope.offset(principal_pages.offset).limit(principal_pages.per_page).all
s = content_tag('div', principals_check_box_tags_ex('membership[user_ids][]', principals), :id => 'principals') s = content_tag('div', principals_check_box_tags_ex('membership[user_ids][]', principals), :id => 'principals')
links = pagination_links_full(principal_pages, principal_count, :per_page_links => false) {|text, parameters, options| links = pagination_links_full(principal_pages, principal_count, :per_page_links => false) {|text, parameters, options|
link_to text, autocomplete_project_memberships_path(project, parameters.merge(:q => params[:q], :format => 'js')), :remote => true link_to text, autocomplete_project_memberships_path(project, parameters.merge(:q => params[:q], :format => 'js')), :remote => true
} }
s + content_tag('div', content_tag('ul', links), :class => 'pagination_new') s + content_tag('div', content_tag('ul', links), :class => 'pagination_new')
end
#获取项目可邀请的成员列表
def render_project_members project
scope = Principal.active.sorted.not_member_of(project).like(params[:q])
principals = paginateHelper scope,10
s = content_tag('ul', project_member_check_box_tags_ex('membership[user_ids][]', principals), :class => 'mb5', :style => "margin-left: -40px;")
links = pagination_links_full(@obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true){|text, parameters, options|
link_to text, autocomplete_project_memberships_path(project, parameters.merge(:q => params[:q],:flag => true, :format => 'js')), :remote => true
}
s + content_tag('ul', links,:class => 'wlist')
end end
# add by nwb # add by nwb
@ -71,4 +78,18 @@ module MembersHelper
s + content_tag('div', content_tag('ul', links), :class => 'applied_new') s + content_tag('div', content_tag('ul', links), :class => 'applied_new')
end end
private
def paginateHelper obj, pre_size=20
@obj_count = obj.count
@obj_pages = Redmine::Pagination::Paginator.new @obj_count, pre_size, params['page']
if obj.kind_of? ActiveRecord::Base or obj.kind_of? ActiveRecord::Relation
obj.limit(@obj_pages.per_page).offset(@obj_pages.offset)
elsif obj.kind_of? Array
obj[@obj_pages.offset, @obj_pages.per_page]
else
logger.error "[ApplicationController] Error : application_controller#paginateHelper ===> unknow category: #{obj.class}"
raise RuntimeError, 'unknow type, Please input you type into this helper.'
end
end
end end

View File

@ -283,6 +283,6 @@ module WatchersHelper
def exit_project_link(project) def exit_project_link(project)
link_to(l(:label_exit_project),exit_cur_project_path(project.id), link_to(l(:label_exit_project),exit_cur_project_path(project.id),
:remote => true, :confirm => l(:lable_sure_exit_project), :style => "color: #fff; display:block; padding: 0px 5px;margin-right:10px;height:22px;background:none repeat scroll 0% 0% #64BDD9;TES" ) :remote => true, :confirm => l(:lable_sure_exit_project), :style => "color: #fff; display:block; padding: 0px 5px; margin-right: 10px; height: 22px; line-height: 22px; background: none repeat scroll 0% 0% #64BDD9; TES" )
end end
end end

View File

@ -341,7 +341,7 @@ module WelcomeHelper
end end
str str
rescue Exception => e rescue Exception => e
str << content_tag("span", l(:field_user_active_unknow)) str << content_tag("span", l('user.active.unknow'))
end end
def show_event_reply event def show_event_reply event

View File

@ -1,3 +1,6 @@
class PhoneAppVersion < ActiveRecord::Base class PhoneAppVersion < ActiveRecord::Base
attr_accessible :description, :version attr_accessible :description, :version
validates_presence_of :description, :version
validates_uniqueness_of :version
acts_as_attachable
end end

View File

@ -131,7 +131,7 @@ class Project < ActiveRecord::Base
#ActiveModel::Dirty 这里有一个changed方法。对任何对象都可以用 #ActiveModel::Dirty 这里有一个changed方法。对任何对象都可以用
after_save :update_inherited_members, :if => Proc.new {|project| project.inherit_members_changed?} after_save :update_inherited_members, :if => Proc.new {|project| project.inherit_members_changed?}
# 创建project之后默认创建一个board之后的board去掉了board的概念 # 创建project之后默认创建一个board之后的board去掉了board的概念
after_create :create_board_sync after_create :create_board_sync,:acts_as_forge_activities
before_destroy :delete_all_members before_destroy :delete_all_members
def remove_references_before_destroy def remove_references_before_destroy
return if self.id.nil? return if self.id.nil?
@ -1154,6 +1154,13 @@ class Project < ActiveRecord::Base
end end
end end
# Time 2015-03-10 15:33:16
# Author lizanle
# Description 新建项目要在ForgeActivities中加一条数据。
def acts_as_forge_activities
fa = ForgeActivity.new(:user_id => User.current.id,:project_id => self.id,
:forge_act_id => self.id,:forge_act_type => "ProjectCreateInfo")
fa.save!
end
end end

View File

@ -33,16 +33,32 @@ class UserExtensions < ActiveRecord::Base
return self.brief_introduction return self.brief_introduction
end end
# added by bai # added by meng
def show_identity def show_identity
if self.identity == 0 if self.identity == 0
user_identity = '教师' if User.current.language == 'zh'
user_identity = '教师'
else
user_identity = 'Teacher'
end
elsif self.identity == 1 elsif self.identity == 1
user_identity = '学生' if User.current.language == 'zh'
user_identity = '学生'
else
user_identity = 'Student'
end
elsif self.identity == 2 elsif self.identity == 2
user_identity = '企业' if User.current.language == 'zh'
user_identity = '企业'
else
user_identity = 'Enterprise'
end
elsif self.identity == 3 elsif self.identity == 3
user_identity = '开发者' if User.current.language == 'zh'
user_identity = '开发者'
else
user_identity = 'Developer'
end
else else
user_identity = '' user_identity = ''
end end

View File

@ -344,27 +344,67 @@ class CoursesService
else else
membership = @user.coursememberships.all(:conditions => Course.visible_condition(current_user)) membership = @user.coursememberships.all(:conditions => Course.visible_condition(current_user))
end end
if membership.nil? || membership.count == 0
raise l(:label_no_courses,:locale => current_user.language.nil? ? 'zh':current_user.language)
end
membership.sort! {|older, newer| newer.created_on <=> older.created_on } membership.sort! {|older, newer| newer.created_on <=> older.created_on }
result = [] result = []
membership.each do |mp| membership.each do |mp|
course = mp.course course = mp.course
unless current_user.nil? || !(current_user.admin? || course.is_public == 1 || (course.is_public == 0 && current_user.member_of_course?(course))) latest_course_dynamics = []
count,is_teacher = get_course_anonymous_evaluation current_user,course latest_news = course.news.order("created_on desc").first
if is_teacher unless latest_news.nil?
student_commit_number = count latest_course_dynamics << {:type => 1,:time => latest_news.created_on,:message => l(:label_recently_updated_notification,:locale => current_user.language.nil? ? 'zh':current_user.language)}
else end
need_anonymous_comments_count = count latest_message = course.journals_for_messages.order("created_on desc").first
unless latest_message.nil?
latest_course_dynamics << {:type => 2,:time => latest_message.created_on,:message => l(:label_recently_updated_message,:locale => current_user.language.nil? ? 'zh':current_user.language)}
end
latest_attachment = course.attachments.order("created_on desc").first
unless latest_attachment.nil?
latest_course_dynamics << {:type => 3,:time => latest_attachment.created_on,:message => l(:label_recently_updated_courseware,:locale => current_user.language.nil? ? 'zh':current_user.language)}
end
latest_bid = course.homeworks.order('updated_on DESC').first
unless latest_bid.nil?
latest_course_dynamics << {:type => 4,:time => latest_bid.updated_on,:message => l(:label_recently_updated_homework,:locale => current_user.language.nil? ? 'zh':current_user.language)}
end
#每个作业中的最新留言
messages = []
course.homeworks.each do |bid|
jour = bid.journals_for_messages.order("created_on desc").first
unless jour.nil?
messages << jour
end end
news_count = course.news.count end
message_count = course.journals_for_messages.count unless messages.count == 0
messages.sort!{|order,newer| newer.created_on <=> order.created_on}
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 1,:count => message_count} end
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 2,:count => need_anonymous_comments_count} latest_bid_message = messages.first
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 3,:count => student_commit_number} unless latest_bid_message.nil?
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 4,:count => news_count} latest_course_dynamics << {:type => 4,:time => latest_bid_message.created_on,:message => '最近更新了作业'}#l(:label_recently_updated_message,:locale => current_user.language.nil? ? 'zh':current_user.language)}
#{:course_name => course.name,:need_anonymous_comments_count=>need_anonymous_comments_count,:student_commit_number=>student_commit_number,:news_count=> news_count,:message_count=>message_count} end
#每个作业中学生最后提交的作业
homeworks = []
course.homeworks.each do |bid|
homework_attach = bid.homeworks.order('updated_at DESC').first
unless homework_attach.nil?
homeworks << homework_attach
end
end
unless homeworks.count == 0
homeworks.sort!{|order,newer| newer.updated_at <=> order.updated_at}
end
latest_homework_attach = homeworks.first
unless latest_homework_attach.nil?
latest_course_dynamics << {:type => 4,:time => latest_homework_attach.updated_at,:message => '最近更新了作业'}#l(:label_recently_updated_homework,:locale => current_user.language.nil? ? 'zh':current_user.language)}
end
latest_course_dynamics.sort!{|order,newer| newer[:time] <=> order[:time]}
latest_course_dynamic = latest_course_dynamics.first
unless latest_course_dynamic.nil?
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => latest_course_dynamic[:type],:update_time => latest_course_dynamic[:time],:message => latest_course_dynamic[:message],:count => nil}
end end
end end
result.sort!{|order,newer| newer[:update_time] <=> order[:update_time]}
result result
end end

View File

@ -80,6 +80,28 @@ class UsersService
{:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} {:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction}
end end
#忘记密码
def lost_password params
user = ::User.find_by_mail(params[:mail].to_s)
# user not found or not active
unless user && user.active?
raise l(:notice_account_unknown_email,:locale => 'zh')
end
# user cannot change its password
unless user.change_password_allowed?
raise l(:notice_can_t_change_password,:locale => user.language)
return
end
# create a new token for password recovery
token = Token.new(:user => user, :action => "recovery")
if token.save
Thread.new do
Mailer.lost_password(token).deliver
end
return l(:notice_account_lost_email_sent,:locale => user.language)
end
end
#编辑用户 #编辑用户
#gender 1female 0male 其他male #gender 1female 0male 其他male
def edit_user params def edit_user params

View File

@ -1,9 +1,20 @@
<h3><%= l(:label_mobile_version) %></h3> <h3><%= l(:label_mobile_version) %></h3>
<a href="javascript:void(0)" onclick="$('#new_version').slideToggle(400); ">发布新版本</a> <a href="javascript:void(0)" onclick="$('#new_version').slideToggle(400); ">发布新版本</a>
<div> <div>
<form id="new_version" style="display: none"> <%= form_tag({:controller => 'admin', :action => 'create_version'},{:id => 'new_version',:style=>'display:none'}) do %>
发布新版本 <p style="margin-left:60px;padding-right: 20px;">
</form> <label for='version'><%= l(:label_version_number) %>:</label>
<%= text_field_tag 'version', params[:version],:value => @new_version.version, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
</p>
<p style="margin-left:60px;padding-right: 20px;">
<label for='description'><%= l(:label_version_description)%>:</label>
<%= text_field_tag 'description', params[:description],:value => @new_version.description,:size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
</p>
<p style="margin-left:60px;padding-right: 20px;">
<%= render :partial => 'attachments/form', :locals => {:container => @new_version} %>
</p>
<%= submit_tag l(:button_save), :class => "small", :name => nil %>
<% end %>
</div> </div>
<br/> <br/>
<div>当前版本:</div> <div>当前版本:</div>
@ -25,7 +36,10 @@
<% end %> <% end %>
</tbody> </tbody>
</table> </table>
<% if !@versions.first.nil? && @versions.first.attachments.any?%>
<% options = {:author => true, :deletable => true } %>
<%= render :partial => 'attachments/links', :locals => {:attachments => @versions.first.attachments, :options => options, :is_float => true} %>
<% end %>
<br/> <br/>
<div>历史版本:</div> <div>历史版本:</div>

View File

@ -172,9 +172,9 @@
<tr> <tr>
<td style="text-align: left" colspan="2"> <td style="text-align: left" colspan="2">
<span class="font_lighter"> <span class="font_lighter">
<%= l(:label_create_time) %> <%= l(:label_end_time) %>
:&nbsp; :&nbsp;
<%=format_time bid.created_on %> <%= bid.deadline %>
</span> </span>
<span style="float: right"> <span style="float: right">
<% if betweentime(bid.deadline) < 0 %> <% if betweentime(bid.deadline) < 0 %>

View File

@ -7,7 +7,7 @@
} }
} }
</script> </script>
<div id="add-message" class="add_frame" style="display:none;"> <div id="add-message" class="add_frame" style="display:<%= !@flag.nil?&&@flag=='true' ? '' : 'none' %>;">
<% if User.current.logged? %> <% if User.current.logged? %>
<div class="project_r_h"> <div class="project_r_h">
<h2 class="project_h2"><%= l(:label_message_new) %></h2> <h2 class="project_h2"><%= l(:label_message_new) %></h2>

View File

@ -12,7 +12,7 @@
<tr> <tr>
<td class="info_font" style="width: 240px;" rowspan="2"> <td class="info_font" style="width: 240px;" rowspan="2">
<a href="http://<%= Setting.host_course%>" style="color: #15bccf;"> <a href="http://<%= Setting.host_course%>" style="color: #15bccf;">
高校课程实践社区 <%= l(:label_courses_community)%>
</a> </a>
</td> </td>
<td class="location-list"> <td class="location-list">

View File

@ -7,7 +7,7 @@
<tr> <tr>
<td class="info_font" style="width: 240px;" rowspan="2"> <td class="info_font" style="width: 240px;" rowspan="2">
<a href="http://<%= Setting.host_course%>" style="color: #15bccf;"> <a href="http://<%= Setting.host_course%>" style="color: #15bccf;">
高校课程实践社区 <%= l(:label_courses_community)%>
</a> </a>
</td> </td>
<td class="location-list"> <td class="location-list">

View File

@ -28,7 +28,7 @@
</div> </div>
<% if @grouped.empty? %> <% if @grouped.empty? %>
<p class="nodata"> <p class="nodata" style="margin-top: 30px;">
<%= l(:label_no_data) %> <%= l(:label_no_data) %>
</p> </p>
<% end %> <% end %>

View File

@ -1,38 +1,45 @@
<div class="project_r_h"> <div class="project_r_h">
<h2 class="project_h2"><%=h @document.title %></h2> <h2 class="project_h2"><%= l(:project_module_documents) %></h2>
</div> </div>
<div class="frame-wiki"> <div class="frame-wiki">
<div class="contextual">
<% if User.current.allowed_to?(:edit_documents, @project) %>
<%= link_to l(:button_edit), edit_document_path(@document), :class => 'icon icon-edit', :accesskey => accesskey(:edit) %>
<% end %>
<% if User.current.allowed_to?(:delete_documents, @project) %>
<%= delete_link document_path(@document) %>
<% end %>
</div>
<p style="padding-top: 5px">
<%= h @document.title %>
</p>
<p>
<em><%#=h @document.category.name %>
<br />
<%= format_date @document.created_on %></em>
</p>
<div class="wiki">
<%= textilizable @document, :description, :attachments => @document.attachments %>
</div>
<div class="contextual"> <div style="border-top:solid 1px #C6E9F1;"></div>
<% if User.current.allowed_to?(:edit_documents, @project) %> <h3><%= l(:label_attachment_plural) %></h3>
<%= link_to l(:button_edit), edit_document_path(@document), :class => 'icon icon-edit', :accesskey => accesskey(:edit) %> <%= link_to_attachments @document %>
<% end %>
<% if User.current.allowed_to?(:delete_documents, @project) %> <% if authorize_for('documents', 'add_attachment') %>
<%= delete_link document_path(@document) %> <p>
<% end %> <%= link_to l(:label_attachment_new), {}, :onclick => "$('#add_attachment_form').show(); return false;",
</div> :id => 'attach_files_link' %>
</p>
<%= form_tag({ :controller => 'documents', :action => 'add_attachment', :id => @document }, :multipart => true, :id => "add_attachment_form", :style => "display:none;") do %>
<p><em><%#=h @document.category.name %><br /> <div class="box">
<%= format_date @document.created_on %></em></p> <p>
<div class="wiki"> <%= render :partial => 'attachments/form' %>
<%= textilizable @document, :description, :attachments => @document.attachments %> </p>
</div> </div>
<%= submit_tag l(:button_add) %>
<div style="border-top:solid 1px #C6E9F1;"></div> <% end %>
<h3><%= l(:label_attachment_plural) %></h3> <% end %>
<%= link_to_attachments @document %>
<% html_title @document.title -%>
<% if authorize_for('documents', 'add_attachment') %>
<p><%= link_to l(:label_attachment_new), {}, :onclick => "$('#add_attachment_form').show(); return false;",
:id => 'attach_files_link' %></p>
<%= form_tag({ :controller => 'documents', :action => 'add_attachment', :id => @document }, :multipart => true, :id => "add_attachment_form", :style => "display:none;") do %>
<div class="box">
<p><%= render :partial => 'attachments/form' %></p>
</div>
<%= submit_tag l(:button_add) %>
<% end %>
<% end %>
<% html_title @document.title -%>
</div> </div>

View File

@ -37,7 +37,7 @@
:description_placeholder => l(:label_optional_description) :description_placeholder => l(:label_optional_description)
} %> } %>
<!--<input type="submit" name="" value="上传文件" class="f_l ml10" style="width:80px; height:26px;">--> <!--<input type="submit" name="" value="上传文件" class="f_l ml10" style="width:80px; height:26px;">-->
<label class="f_l ml10 c_grey"> <label class="f_l ml10 c_grey" style=" margin-top: 3px;">
<span id="upload_file_count"> <span id="upload_file_count">
<%= l(:label_no_file_uploaded)%> <%= l(:label_no_file_uploaded)%>
</span> </span>

View File

@ -11,7 +11,7 @@
<%= link_to(l(:label_upload_files), 'javascript:void(0);', :class => 'icon m5p5 button_submit', :onclick => "$('#relation_file_div').slideUp();$('#upload_file_div').slideToggle('slow');") if User.current.allowed_to?(:manage_files, @project) %> <%= link_to(l(:label_upload_files), 'javascript:void(0);', :class => 'icon m5p5 button_submit', :onclick => "$('#relation_file_div').slideUp();$('#upload_file_div').slideToggle('slow');") if User.current.allowed_to?(:manage_files, @project) %>
<%= link_to(l(:label_relation_files), 'javascript:void(0);', :onclick => "$('#upload_file_div').slideUp();$('#relation_file_div').slideToggle();", :class => 'icon m5p5 button_submit') if User.current.allowed_to?(:manage_files, @project) %> <%= link_to(l(:label_relation_files), 'javascript:void(0);', :onclick => "$('#upload_file_div').slideUp();$('#relation_file_div').slideToggle();", :class => 'icon m5p5 button_submit') if User.current.allowed_to?(:manage_files, @project) %>
<p></p> <p></p>
<div id="upload_file_div" class="relation_file_div hidden"> <div id="upload_file_div" class="relation_file_div <%= !@flag.nil?&&@flag=="true" ? '' : 'hidden'%>">
<%= render :partial => 'new', locals: {project: @project} %> <%= render :partial => 'new', locals: {project: @project} %>
</div> </div>
<div id="relation_file_div" class="relation_file_div hidden"> <div id="relation_file_div" class="relation_file_div hidden">

View File

@ -1,5 +1,5 @@
<div class="project_r_h"> <div class="project_r_h">
<h2 class="project_h2"><%=l(:label_attachment_new)%></h2> <h2 class="project_h2"><%= l(:label_course_file) %></h2>
</div> </div>
<%= error_messages_for 'attachment' %> <%= error_messages_for 'attachment' %>
@ -8,11 +8,10 @@
<% if @versions.any? %> <% if @versions.any? %>
<p><label for="version_id"><%=l(:field_version)%></label> <p><label for="version_id"><%=l(:field_version)%></label>
<%= select_tag "version_id", content_tag('option', '') + <%= select_tag "version_id", content_tag('option', '') + options_from_collection_for_select(@versions, "id", "name") %></p>
options_from_collection_for_select(@versions, "id", "name") %></p>
<% end %> <% end %>
<p><label><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p> <p><label><%= l(:label_attachment_plural) %></label><%= render :partial => 'attachments/form' %></p>
</div> </div>
<%= submit_tag l(:button_add) %> <%= submit_tag l(:button_add) %>
<% end %> <% end %>

View File

@ -1,6 +1,6 @@
$(function(){ $(function(){
$("#button1").click(function(){ $("#button1").click(function(){
myTips("您的意见已经反馈到公共贴吧的新手讨论吧,我们会第一时间解决您的问题,谢谢支持!","success"); myTips(<%= l(:label_forums_feedback_success)%>,"success");
}); });
}) })

View File

@ -1,13 +1,13 @@
<%= form_tag({:controller => 'homework_attach', :action => 'add_jour_reply'}, :remote => true) do %> <%= form_tag({:controller => 'homework_attach', :action => 'add_jour_reply'}, :remote => true) do %>
<%= text_area_tag 'user_notes', "", :class => 'noline', <%= text_area_tag 'user_notes', "", :class => 'noline',
:style => "resize: none;", :rows => 4, :style => "resize: none;", :rows => 4,
:placeholder => l(:label_projects_feedback_respond_content), :placeholder => l(:label_feedback_respond_content),
:maxlength => 250 %> :maxlength => 250 %>
<span style="float: left; margin-top: 1px; margin-right: 4px;"></span> <span style="float: left; margin-top: 1px; margin-right: 4px;"></span>
<%= hidden_field_tag 'reference_id', params[:reference_id], :value => journal.id %> <%= hidden_field_tag 'reference_id', params[:reference_id], :value => journal.id %>
<%= hidden_field_tag 'reference_user_id', params[:reference_user_id], :value => m_reply_id.user.id %> <%= hidden_field_tag 'reference_user_id', params[:reference_user_id], :value => m_reply_id.user.id %>
<%= hidden_field_tag 'reference_message_id', params[:reference_message_id], :value => m_reply_id.id %> <%= hidden_field_tag 'reference_message_id', params[:reference_message_id], :value => m_reply_id.id %>
<%= submit_tag l(:button_projects_feedback_respond), <%= submit_tag l(:button_feedback_respond),
:name => nil , :class => "enterprise", :style => "float: right; margin-top: 1px; margin-right: 4px;"%> :name => nil , :class => "enterprise", :style => "float: right; margin-top: 1px; margin-right: 4px;"%>
<% end %> <% end %>

View File

@ -25,7 +25,7 @@
:homework_id =>homework.id }, :homework_id =>homework.id },
:remote => true, :confirm => l(:text_are_you_sure), :title => l(:button_delete)) %> :remote => true, :confirm => l(:text_are_you_sure), :title => l(:button_delete)) %>
<% end %> <% end %>
<%= link_to l(:label_projects_feedback_respond),'', <%= link_to l(:button_reply),'',
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), ''); $('##{ids} textarea') ;return false;"} {:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), ''); $('##{ids} textarea') ;return false;"}
%> %>
</span> </span>

View File

@ -11,7 +11,7 @@
<div class="recall_con"> <div class="recall_con">
<% id = 'project_respond_form_'+ reply.id.to_s %> <% id = 'project_respond_form_'+ reply.id.to_s %>
<%= link_to reply.user.name, user_path(reply.user) %> <%= link_to reply.user.name, user_path(reply.user) %>
回复 <%= l(:label_reply_to)%>
<% parent_jour = JournalsForMessage.find reply.m_reply_id %> <% parent_jour = JournalsForMessage.find reply.m_reply_id %>
<% if show_name && parent_jour %> <% if show_name && parent_jour %>
<%= link_to parent_jour.user.name, user_path(parent_jour.user) %> <%= link_to parent_jour.user.name, user_path(parent_jour.user) %>
@ -34,7 +34,7 @@
:remote => true, :confirm => l(:text_are_you_sure), :method => 'delete', :class => "delete", :title => l(:button_delete)) %> :remote => true, :confirm => l(:text_are_you_sure), :method => 'delete', :class => "delete", :title => l(:button_delete)) %>
<% end %> <% end %>
<% if reply_allow %> <% if reply_allow %>
<%= link_to l(:label_projects_feedback_respond),'', <%= link_to l(:button_reply),'',
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{id}'), $('##{id} textarea'), ''); return false;"} %> {:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{id}'), $('##{id} textarea'), ''); return false;"} %>
<% end %> <!-- #{l(:label_reply_plural)} #{m_reply_id.user.name}: --> <% end %> <!-- #{l(:label_reply_plural)} #{m_reply_id.user.name}: -->
</span> </span>

View File

@ -42,7 +42,7 @@
<% ids = 'project_respond_form_'+ jour.id.to_s%> <% ids = 'project_respond_form_'+ jour.id.to_s%>
<div class="ping_disfoot"> <div class="ping_disfoot">
<span> <span>
<%= link_to l(:label_projects_feedback_respond),'', <%= link_to l(:label_newfeedback_respond),'',
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), ''); $('##{ids} textarea') ;return false;"} {:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), ''); $('##{ids} textarea') ;return false;"}
%> %>
</span> </span>

View File

@ -65,7 +65,7 @@
</span> </span>
<% ids = 'project_respond_form_'+ journal.id.to_s%> <% ids = 'project_respond_form_'+ journal.id.to_s%>
<span> <span>
<%= link_to l(:label_projects_feedback_respond),'', <%= link_to l(:button_reply),'',
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"} {:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"}
%> %>
<% if journal.user==User.current|| User.current.admin? %> <% if journal.user==User.current|| User.current.admin? %>

View File

@ -2,7 +2,7 @@
<h2 class="project_h2">问题跟踪</h2> <h2 class="project_h2">问题跟踪</h2>
</div> </div>
<div class="problem_top"> <div class="problem_top">
<% if @project.enabled_modules.where("name = 'issue_tracking'").count > 0 %> <% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
<span> <span>
<% if User.current.member_of?(@project) %> <% if User.current.member_of?(@project) %>
<%= link_to l(:label_issue_new), {:controller => 'issues', :action => 'new', :copy_from => nil}, :param => :project_id, :caption => :label_issue_new, <%= link_to l(:label_issue_new), {:controller => 'issues', :action => 'new', :copy_from => nil}, :param => :project_id, :caption => :label_issue_new,

View File

@ -5,4 +5,6 @@
per_page: number of items to fetch per page per_page: number of items to fetch per page
remote: data-remote remote: data-remote
-%> -%>
<span class="spacer">
<%= raw(t 'views.pagination.truncate') %>
</span>

View File

@ -62,7 +62,7 @@
$.fn.fix = function(options){ $.fn.fix = function(options){
var defaults = { var defaults = {
float : 'right', float : 'right',
minStatue : false, minStatue : true,
skin : 'blue', skin : 'blue',
durationTime : 1000 durationTime : 1000
} }
@ -107,7 +107,7 @@
$(function(){ $(function(){
$("#button1").click(function(){ $("#button1").click(function(){
myTips("您的意见已经反馈到公共贴吧的新手讨论吧,我们会第一时间解决您的问题,谢谢支持!","success"); myTips("<%= l(:label_feedback_success) %>","success");
}); });
}) })
@ -153,7 +153,7 @@ function cookieget(n)
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<title>意见反馈</title> <title><%= l(:label_feedback) %></title>
</head> </head>
<body style="height:auto" > <body style="height:auto" >
@ -161,15 +161,15 @@ function cookieget(n)
<div class="scrollsidebar" id="scrollsidebar" style="float: right"> <div class="scrollsidebar" id="scrollsidebar" style="float: right">
<div class="side_content"> <div class="side_content">
<div class="side_list"> <div class="side_list">
<div class="side_title"><a title="意见反馈" class="close_btn"><span><%= l(:label_feedback) %></span></a></div> <div class="side_title"><a title="<%= l(:label_feedback) %>" class="close_btn"><span><%= l(:label_feedback) %></span></a></div>
<div class="side_center"> <div class="side_center">
<div class="custom_service"> <div class="custom_service">
<% get_memo %> <% get_memo %>
<%= form_for(@new_memo, :url => create_feedback_forum_path(@public_forum)) do |f| %> <%= form_for(@new_memo, :url => create_feedback_forum_path(@public_forum)) do |f| %>
<%= f.text_area :subject, :class => "opnionText",:placeholder => "有什么想说的,尽管来咆哮吧~~"%> <%= f.text_area :subject, :class => "opnionText", :placeholder => l(:label_feedback_tips) %>
<%= f.hidden_field :content, :required => true ,:value=>'该贴来自用户反馈!'%> <%= f.hidden_field :content, :required => true , :value => l(:label_feedback_value) %>
<%#= f.submit :value => l(:label_memo_create), :class => "opnionButton", :id => "button1" %> <%#= f.submit :value => l(:label_memo_create), :class => "opnionButton", :id => "button1" %>
<a href="javascript:void(0);" class="opnionButton" style=" color:#fff;" id="" onclick="f_submit();">提&nbsp;&nbsp;交</a> <a href="javascript:void(0);" class="opnionButton" style=" color:#fff;" id="" onclick="f_submit();"><%= l(:label_submit)%></a>
<% end %> <% end %>
</div> </div>
<div class="msgserver"> <div class="msgserver">
@ -180,7 +180,7 @@ function cookieget(n)
<div class="side_bottom"></div> <div class="side_bottom"></div>
</div> </div>
</div> </div>
<div class="show_btn"><span>提交</span></div> <div class="show_btn"><span><%= l(:label_submit)%></span></div>
</div> </div>
<!-- ?ú?? ?á?? --> <!-- ?ú?? ?á?? -->
<script type="text/javascript"> <script type="text/javascript">

View File

@ -7,7 +7,7 @@
<tr> <tr>
<td class="info_font" style="width: 240px;" rowspan="2"> <td class="info_font" style="width: 240px;" rowspan="2">
<a href="http://<%= Setting.host_course%>" style="color: #15bccf;"> <a href="http://<%= Setting.host_course%>" style="color: #15bccf;">
高校课程实践社区 <%= l(:label_courses_community)%>
</a> </a>
</td> </td>
<td style="width: auto; color: #15bccf"> <td style="width: auto; color: #15bccf">

View File

@ -154,7 +154,7 @@
<!--description--> <!--description-->
<div class="inf_user_context"> <div class="inf_user_context">
<div class="font_title_left"> <div class="font_title_left">
<%= l(:label_project_overview) %> <%= l(:label_overview) %>
</div> </div>
<div style="padding-bottom: 8px"> <div style="padding-bottom: 8px">
<% if @bid.description.size>0 %> <% if @bid.description.size>0 %>

View File

@ -37,7 +37,7 @@
<tr> <tr>
<td class="info_font" style="width: 240px;" rowspan="2"> <td class="info_font" style="width: 240px;" rowspan="2">
<a href="http://<%= Setting.host_course%>" style="color: #15bccf;"> <a href="http://<%= Setting.host_course%>" style="color: #15bccf;">
高校课程实践社区 <%= l(:label_courses_community)%>
</a> </a>
</td> </td>
<td style="color: #15bccf"> <td style="color: #15bccf">
@ -86,7 +86,7 @@
<td> <td>
<p class="top-content-list"> <p class="top-content-list">
<%= link_to "主页", home_path %> <%= link_to l(:field_homepage), home_path %>
> >
<a href="http://<%= Setting.host_course%>" class="link_other_item"> <a href="http://<%= Setting.host_course%>" class="link_other_item">
<%=l(:label_courses_management_platform)%> <%=l(:label_courses_management_platform)%>
@ -230,7 +230,7 @@
</td> </td>
<td class="font_lighter_sidebar"> <td class="font_lighter_sidebar">
<%= @course.time %> <%= @course.time %>
<%= @course.term %> <%= get_course_term_locales @course %>
</td> </td>
</tr> </tr>
<!-- end --> <!-- end -->

View File

@ -29,7 +29,7 @@
<div class="top-content"> <div class="top-content">
<table> <table>
<tr> <tr>
<td class="info_font" style="width: 240px; color: #15bccf">软件项目托管社区</td> <td class="info_font" style="width: 240px; color: #15bccf"><%= l(:label_projects_community)%></td>
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td> <td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
<td rowspan="2" width="250px"> <td rowspan="2" width="250px">
<div class="top-content-search"> <div class="top-content-search">

View File

@ -50,7 +50,7 @@
<tr> <tr>
<td class="info_font" style="width: 240px;" rowspan="2"> <td class="info_font" style="width: 240px;" rowspan="2">
<a href="http://<%= Setting.host_course%>" style="color: #15bccf;"> <a href="http://<%= Setting.host_course%>" style="color: #15bccf;">
高校课程实践社区 <%= l(:label_courses_community)%>
</a> </a>
</td> </td>
<td style="width: auto; color: #15bccf"> <td style="width: auto; color: #15bccf">

View File

@ -33,7 +33,7 @@
<div class="top-content"> <div class="top-content">
<table> <table>
<tr> <tr>
<td class="info_font" style="width: 240px; color: #15bccf">软件项目托管社区</td> <td class="info_font" style="width: 240px; color: #15bccf"><%= l(:label_projects_community)%></td>
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td> <td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
<td rowspan="2" width="250px"> <td rowspan="2" width="250px">
<div class="top-content-search"> <div class="top-content-search">

View File

@ -174,7 +174,7 @@
<div class="inf_user_context" style="line-height: normal;margin-top: 10px;"> <div class="inf_user_context" style="line-height: normal;margin-top: 10px;">
<div class="font_title_left"> <div class="font_title_left">
<%= l(:label_project_overview) %> <%= l(:label_overview) %>
</div> </div>
<div style="padding-bottom: 8px"> <div style="padding-bottom: 8px">
<% if @contest.description.size>0 %> <% if @contest.description.size>0 %>

View File

@ -86,7 +86,7 @@
<div class="inf_user_context"> <div class="inf_user_context">
<div class="font_title_left"> <div class="font_title_left">
<%= l(:label_project_overview) %> <%= l(:label_overview) %>
</div> </div>
<div style="padding-bottom: 8px"> <div style="padding-bottom: 8px">

View File

@ -29,7 +29,7 @@
<div class="top-content"> <div class="top-content">
<table> <table>
<tr> <tr>
<td class="info_font" style="width: 240px;" rowspan="2"><a href="http://<%= Setting.host_name%>" style="color: #15bccf;"> 软件项目托管社区 </a></td> <td class="info_font" style="width: 240px;" rowspan="2"><a href="http://<%= Setting.host_name%>" style="color: #15bccf;"> <%= l(:label_projects_community)%> </a></td>
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td> <td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
<td rowspan="2" width="250px"> <td rowspan="2" width="250px">
<div class="top-content-search"> <div class="top-content-search">
@ -39,8 +39,7 @@
var name = $.trim($("#name").val()); var name = $.trim($("#name").val());
if(name.length == 0) if(name.length == 0)
{ {
$("#project_name_span").text("<%= l(:label_search_conditions_not_null) %> $("#project_name_span").text("<%= l(:label_search_conditions_not_null) %>");
");
$("#project_name_span").css('color','#ff0000'); $("#project_name_span").css('color','#ff0000');
$("#project_name_span").focus(); $("#project_name_span").focus();
return false; return false;
@ -51,12 +50,22 @@
return true; return true;
} }
} }
// 项目描述超过展开
$(function(){
$(".subNav").click(function(){
$(this).toggleClass("currentDd").siblings(".subNav").removeClass("currentDd")
$(this).toggleClass("currentDt").siblings(".subNav").removeClass("currentDt")
// 修改数字控制速度, slideUp(500)控制卷起速度
$(this).next(".navContent").slideToggle(500).siblings(".navContent").slideUp(500);
})
})
function submitSerch() function show_more_msg()
{ {$("#course_description").toggleClass("course_description_none");}
if(regexName()){$("#project_search_form").submit();}
}
</script> </script>
<%= form_tag(projects_search_path, :method => :get, :id => "project_search_form") do %> <%= form_tag(projects_search_path, :method => :get, :id => "project_search_form") do %>
<%= text_field_tag 'name', params[:name], :size => 20, :onkeyup => "regexName();", :style => "float:left" %> <%= text_field_tag 'name', params[:name], :size => 20, :onkeyup => "regexName();", :style => "float:left" %>
<%= hidden_field_tag 'project_type', params[:project_type] %> <%= hidden_field_tag 'project_type', params[:project_type] %>
@ -78,17 +87,6 @@
</div> </div>
<!-- 左边侧栏内容 --> <!-- 左边侧栏内容 -->
<div id="sidebar"> <div id="sidebar">
<script type="text/javascript">
$(function() {
$(".subNav").click(function() {
$(this).toggleClass("currentDd").siblings(".subNav").removeClass("currentDd")
$(this).toggleClass("currentDt").siblings(".subNav").removeClass("currentDt")
// 修改数字控制速度, slideUp(500)控制卷起速度
$(this).next(".navContent").slideToggle(500).siblings(".navContent").slideUp(500);
})
})
</script>
<div class="project_left"> <div class="project_left">
<div class="project_info"> <div class="project_info">
<div class="pr_info_logo fl mr10 mb5"> <div class="pr_info_logo fl mr10 mb5">
@ -103,67 +101,82 @@
</div> </div>
<!-- 项目得分 --> <!-- 项目得分 -->
<div class="cl"></div> <div class="cl"></div>
<div class="pr_info_name><%= link_to @project.name, project_path(@project) %> <div class="pr_info_name">
<%= link_to @project.name, project_path(@project) %>
<% if !@project.is_public? %> <% if !@project.is_public? %>
<span class="img_private ">私有</span> <span class="img_private"><%= l(:label_private)%></span>
<% end %> <% end %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<div class="pr_info_score"> <div class="pr_info_score">
<% if @project.project_type == 0 %> <% if @project.project_type == 0 %>
<%= l(:label_project_grade)%> : <%= l(:label_project_score)%> :
<%= link_to(format("%.2f" ,project_scores(@project) ).to_i, {:controller => 'projects', <%= link_to(format("%.2f" ,project_scores(@project) ).to_i, {:controller => 'projects',
:action => 'show_projects_score', :action => 'show_projects_score',
:remote => true, :remote => true,
:id => @project.id }, :id => @project.id },
:style => "color: #EC6300;")%> :style => "color: #EC6300;") %>
<% end %> <% end %>
</div> </div>
<div class="pr_info_foot"> <div class="pr_info_foot">
<%= l(:label_member) %><a class="info_foot_num" href="#" target="_blank"><%= link_to "#{@project.members.count}", project_member_path(@project) %></a> <%= l(:label_member) %><span class="info_foot_num" >
<span>| </span><%= l(:label_user_watchered) %><a class="info_foot_num" href="#" target="_blank"><%= link_to @project.watcher_users.count, :controller=>"projects", :action=>"watcherlist", :id => @project %></a> <%= link_to "#{@project.members.count}", project_member_path(@project), :style => "color:#3CA5C6;font-weight:bold" %></span>
<span>| </span><%= l(:project_module_attachments) %><a class="info_foot_num" href="#" target="_blank"><%= link_to "#{@project.attachments.count}", project_files_path(@project) %></a></div> <span>| </span>
<%= l(:label_user_watcher) %><span class="info_foot_num">
<%= link_to "#{@project.watcher_users.count}", {:controller=>"projects", :action=>"watcherlist", :id => @project.id}, :style => "color:#3CA5C6;font-weight:bold" %></span>
<span>| </span>
<%= l(:project_module_attachments) %><span class="info_foot_num" >
<%= link_to "#{@project.attachments.count}", project_files_path(@project), :style => "color:#3CA5C6;font-weight:bold" %></a></div>
<div class="cl"></div> <div class="cl"></div>
</div><!--项目信息 end--> </div><!--项目信息 end-->
<div class="subNavBox"> <div class="subNavBox">
<% if User.current.member_of?(@project) %> <% if User.current.member_of?(@project) %>
<div class="subNav currentDd currentDt subNav_jiantou">邀请</div> <div class="subNav currentDd currentDt subNav_jiantou"><%= l(:label_invite)%></div>
<ul class="navContent " style="display:block; padding-left: 0px; margin-top:0px;"> <ul class="navContent " style="display:block; padding-left: 0px; margin-top:0px;">
<li><%= link_to "发送邮件邀请新用户", :controller=>"projects", :action=>"invite_members_by_mail", :id => @project %></li> <li><%= link_to l(:label_invite_new_user), :controller=>"projects", :action=>"invite_members_by_mail", :id => @project %></li>
<li><%= link_to "邀请Trustie注册用户", :controller=>"projects", :action=>"invite_members", :id => @project %></li> <li><%= link_to l(:label_invite_trustie_user), :controller=>"projects", :action=>"invite_members", :id => @project %></li>
</ul> </ul>
<% end %> <% end %>
<div class="subNav"> <div class="subNav">
<%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :style => "color:#3CA5C6" %> <%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :style => "color:#3CA5C6" %>
<span class="subnav_num">(<%= ForgeActivity.where("project_id = ?", @project.id).count %>)</span>
</div> </div>
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
<div class="subNav"> <div class="subNav">
<%= link_to l(:label_issue_tracking), project_issues_path(@project), :style => "color:#3CA5C6" %><span class="subnav_num">(<%= @project.issues.count %>)</span> <%= link_to l(:label_issue_tracking), project_issues_path(@project), :style => "color:#3CA5C6" %><span class="subnav_num">(<%= @project.issues.count %>)</span>
<span> <span>
<% if User.current.logged? && User.current.member_of?(@project) %> <% if User.current.member_of?(@project) %>
<%= link_to "+发布问题", new_project_issue_path(@project) , :style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:3px;background:#28be6c;float:right;line-height:20px;" %></span> <%= link_to "+"+l(:label_release_issue), new_project_issue_path(@project) , :style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:3px;background:#28be6c;float:right;line-height:20px;" %></span>
<% end %>
</div>
<div class="subNav">
<%= link_to "讨论区", project_boards_path(@project), :style => "color:#3CA5C6" %>
<span class="subnav_num">(<%= @project.boards.first.topics.count %>)</span>
<% if User.current.logged? && User.current.member_of?(@project) %>
<%= link_to "+发贴", new_board_message_path(@project.boards.first, true), :layout => 'base_projects',:style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:4px;background:#28be6c;float:right;line-height:20px;" %>
<% end %>
</div>
<div class="subNav">
<%= link_to l(:label_course_file), project_files_path(@project), :style => "color:#3CA5C6" %><span class="subnav_num">(<%= @project.attachments.count %>)</span>
<% if User.current.logged? && User.current.member_of?(@project) %>
<%= link_to "+上传资源", new_project_file_path(@project),:style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:3px;background:#28be6c;float:right;line-height:20px;" %>
<% end %>
</div>
<div class="subNav">
<%= link_to l(:field_user_active_changeset), {:controller => 'repositories', :action => 'show', :id => @project.id}, :style => "color:#3CA5C6" %>
<span class="subnav_num">(<%= @project.repositories.count %>)</span>
<% if User.current.logged? && User.current.member_of?(@project) %>
<%= link_to "+创建版本库", new_project_repository_path(@project),:style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:3px;background:#28be6c;float:right;line-height:20px;" %>
<% end %> <% end %>
</div> </div>
<% end %>
<% unless @project.enabled_modules.where("name = 'boards'").empty? %>
<div class="subNav">
<%= link_to l(:project_module_boards), project_boards_path(@project), :style => "color:#3CA5C6" %>
<span class="subnav_num">(<%= @project.boards.first.topics.count %>)</span>
<% if User.current.member_of?(@project) %>
<%= link_to "+"+l(:project_module_boards_post), project_boards_path(@project, :flag => true), :layout => 'base_projects',:style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:4px;background:#28be6c;float:right;line-height:20px;" %>
<% end %>
</div>
<% end%>
<% unless @project.enabled_modules.where("name = 'files'").empty? %>
<div class="subNav">
<%= link_to l(:label_course_file), project_files_path(@project), :style => "color:#3CA5C6" %><span class="subnav_num">(<%= @project.attachments.count %>)</span>
<% if User.current.member_of?(@project) %>
<%= link_to "+"+l(:label_upload_files), project_files_path(@project,:flag => true),:style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:3px;background:#28be6c;float:right;line-height:20px;" %>
<% end %>
</div>
<% end%>
<% unless @project.enabled_modules.where("name = 'repository'").empty? %>
<div class="subNav">
<%= link_to l(:project_module_repository), {:controller => 'repositories', :action => 'show', :id => @project.id}, :style => "color:#3CA5C6" %>
<span class="subnav_num">(<%= @project.repositories.count %>)</span>
<%# if User.current.member_of?(@project) %>
<%#= link_to "+"+l(:project_module_create_repository), new_project_repository_path(@project),:style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:3px;background:#28be6c;float:right;line-height:20px;" %>
<%# end %>
</div>
<% end %>
<div class="subNav subNav_jiantou"><%= l(:label_more) %></div> <div class="subNav subNav_jiantou"><%= l(:label_more) %></div>
<ul class="navContent" style="padding-left: 0px"> <ul class="navContent" style="padding-left: 0px">
@ -171,14 +184,16 @@
</ul> </ul>
</div><!--项目侧导航 end--> </div><!--项目侧导航 end-->
<div class="cl"></div> <div class="cl"></div>
<!-- 项目描述 -->
<div class="project_intro"> <div class="project_intro">
<h4 class="project_h4">项目简介:</h4><%= @project.description %> <div id="course_description" class="course_description">
<div class="lg-foot"> <h4 ><%= l(:label_project_overview) %></h4><%= @project.description %>
展开更多信息 <span class="g-arr-down"><img src="/images/new_project/jiantou.jpg" width="12" height="6" /></span>
</div> </div>
</div><!--项目简介 end--> <div class="lg-foot" onclick="show_more_msg();"><%= l(:label_expend_information) %><span class="g-arr-down"><img src="/images/jiantou.jpg" width="12" height="6" /></span></div>
</div>
<!-- tag模块 -->
<div class="project_Label"> <div class="project_Label">
<h4 class="project_h4">标签:</h4> <h4 class="project_h4"><%= l(:label_tag)%>:</h4>
<div class="tag_h" > <div class="tag_h" >
<div class="user_tags"> <div class="user_tags">
<div id="tags"> <div id="tags">

View File

@ -217,7 +217,7 @@
</td> </td>
</tr> </tr>
<% end %> <% end %>
<% unless @user.user_extensions.location.empty?%> <% unless @user.user_extensions.nil?&&@user.user_extensions.location.empty?%>
<tr> <tr>
<td style=" float: right" width="70px"> <td style=" float: right" width="70px">

View File

@ -1,12 +1,16 @@
<% if @project%> <% if @project%>
$('#principals_for_new_member').html('<%= escape_javascript(render_principals_for_new_members(@project)) %>'); <% if @flag == "true"%>
$('#principals_for_new_member').html('<%= escape_javascript(render_project_members(@project)) %>');
<% else%>
$('#principals_for_new_member').html('<%= escape_javascript(render_principals_for_new_members(@project)) %>');
<% end%>
<% elsif @course%> <% elsif @course%>
var checked = $("#principals input:checked").size(); var checked = $("#principals input:checked").size();
if(checked > 0) if(checked > 0)
{ {
alert('翻页或搜索后将丢失当前选择的用户数据!'); alert('翻页或搜索后将丢失当前选择的用户数据!');
} }
$('#principals_for_new_member').html('<%= escape_javascript(render_principals_for_new_course_members(@course)) %>'); $('#principals_for_new_member').html('<%= escape_javascript(render_principals_for_new_course_members(@course)) %>');
<%end%> <%end%>
var collection=$("#principals_for_new_member").children("#principals").children("label"); var collection=$("#principals_for_new_member").children("#principals").children("label");
collection.css("text-overflow","ellipsis"); collection.css("text-overflow","ellipsis");

View File

@ -8,7 +8,7 @@
<div class="top-content"> <div class="top-content">
<table> <table>
<tr> <tr>
<td class="info_font" style="width: 240px; color: #15bccf">软件项目托管社区</td> <td class="info_font" style="width: 240px; color: #15bccf"><%= l(:label_projects_community)%></td>
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td> <td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
<td rowspan="2" width="250px"> <td rowspan="2" width="250px">
<div class="top-content-search"> <div class="top-content-search">
@ -17,7 +17,7 @@
</tr> </tr>
<tr> <tr>
<td style="padding-left: 8px"><%= link_to request.host()+"/forums", forums_path %></td> <td style="padding-left: 8px"><%= link_to request.host()+"/forums", forums_path %></td>
<td><p class="top-content-list"><%=link_to l(:label_home),home_path %> > <%=link_to '公共贴吧', :controller => 'forums', :action => 'index' %> > <%=link_to @forum.name %></p></td> <td><p class="top-content-list"><%=link_to l(:label_home),home_path %> > <%=link_to l(:label_forum), :controller => 'forums', :action => 'index' %> > <%=link_to @forum.name %></p></td>
</tr> </tr>
</table> </table>
</div> </div>

View File

@ -64,7 +64,7 @@
$("#my_account_form").submit(); $("#my_account_form").submit();
} }
else { else {
parent.alert("姓氏和名字不能为空"); parent.alert("<%= l(:label_firstname_lastname_empty)%>");
} }
} }
function get_options(value) { function get_options(value) {
@ -320,7 +320,7 @@
<p style="width:400px;padding-left: 55px;"><label style="margin-right: 5px;" for="userProvince"><%= l(:label_location) %></label> <p style="width:400px;padding-left: 55px;"><label style="margin-right: 5px;" for="userProvince"><%= l(:label_location) %></label>
<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=""><%= l('location.select.click')%></option>
<option value="北京">北京</option> <option value="北京">北京</option>
<option value="上海">上海</option> <option value="上海">上海</option>
<option value="广东">广东</option> <option value="广东">广东</option>

View File

@ -19,7 +19,7 @@
<div> <div>
<%= render :partial => 'news/news', :collection => @news %> <%= render :partial => 'news/news', :collection => @news %>
<div class=more><%= link_to"更多",:contoller=>'project',:action=>'index'%></div> <div class=more><%= link_to l(:button_more),:contoller=>'project',:action=>'index'%></div>
</div> </div>
<% end %> <% end %>
<%= call_hook(:view_projects_show_right, :project => @project) %> <%= call_hook(:view_projects_show_right, :project => @project) %>
@ -47,7 +47,7 @@
</li> <% end -%> </li> <% end -%>
</ul> </ul>
<% end -%> <% end -%>
<div class=more><%= link_to"更多",:contoller=>'project',:action=>'index'%></div> <div class=more><%= link_to l(:button_more),:contoller=>'project',:action=>'index'%></div>
</div> </div>

View File

@ -2,12 +2,12 @@
<%= text_area_tag 'project_respond', "", <%= text_area_tag 'project_respond', "",
:class => 'noline', :required => true, :class => 'noline', :required => true,
:style => "resize: none;", :rows => 3, :style => "resize: none;", :rows => 3,
:placeholder => l(:label_projects_feedback_respond_content), :placeholder => l(:label_feedback_respond_content),
:maxlength => 250 %> :maxlength => 250 %>
<%= hidden_field_tag 'reference_id', params[:reference_id], :value => journal.id %> <%= hidden_field_tag 'reference_id', params[:reference_id], :value => journal.id %>
<%= hidden_field_tag 'reference_user_id', params[:reference_user_id], :value => m_reply_id.user.id %> <%= hidden_field_tag 'reference_user_id', params[:reference_user_id], :value => m_reply_id.user.id %>
<%= hidden_field_tag 'reference_message_id', params[:reference_message_id], :value => m_reply_id.id %> <%= hidden_field_tag 'reference_message_id', params[:reference_message_id], :value => m_reply_id.id %>
<%= submit_tag l(:button_projects_feedback_respond), :name => nil , :class => "enterprise"%> <%= submit_tag l(:button_feedback_respond), :name => nil , :class => "enterprise"%>
<%end%> <%end%>

View File

@ -4,27 +4,45 @@
<% end %> <% end %>
</li> </li>
<li> <li>
<%= link_to l(:field_user_active_news), project_news_index_path(@project) %> <% unless @project.enabled_modules.where("name = 'news'").empty? %>
<%= link_to l(:project_module_news), project_news_index_path(@project) %>
<% end %>
</li> </li>
<li> <li>
<% unless @project.enabled_modules.where("name = 'wiki'").empty? %>
<%= link_to l(:project_module_wiki), project_wiki_path(@project) %> <%= link_to l(:project_module_wiki), project_wiki_path(@project) %>
<% end %>
</li> </li>
<li> <li>
<% unless @project.enabled_modules.where("name = 'code_review'").empty? %>
<%= link_to l(:project_module_code_review), {controller: 'code_review', action: 'index', id: @project.id} %> <%= link_to l(:project_module_code_review), {controller: 'code_review', action: 'index', id: @project.id} %>
<% end %>
</li> </li>
<li> <li>
<% unless @project.enabled_modules.where("name = 'calendar'").empty? %>
<%= link_to l(:project_module_calendar),project_calendar_path(@project) %> <%= link_to l(:project_module_calendar),project_calendar_path(@project) %>
<% end %>
</li> </li>
<li> <li>
<% unless @project.enabled_modules.where("name = 'gantt'").empty? %>
<%= link_to l(:project_module_gantt) ,project_gantt_path(@project) %> <%= link_to l(:project_module_gantt) ,project_gantt_path(@project) %>
<% end %>
</li> </li>
<li> <li>
<% unless @project.enabled_modules.where("name = 'documents'").empty? %>
<%= link_to l(:project_module_documents), project_documents_path(@project) %> <%= link_to l(:project_module_documents), project_documents_path(@project) %>
<% end %>
</li>
<li>
<%= link_to l(:label_roadmap) ,project_roadmap_path(@project) %>
</li> </li>
<li> <li>
<%= link_to l(:label_project_tool_response) ,project_feedback_path(@project)%> <%= link_to l(:label_project_tool_response) ,project_feedback_path(@project)%>
</li> </li>
<li> <li>
<% unless @project.enabled_modules.where("name = 'dts'").empty? %>
<%= link_to l(:label_module_share) ,share_show_path(@project) %> <%= link_to l(:label_module_share) ,share_show_path(@project) %>
<% end %>
</li> </li>

View File

@ -1,7 +1,8 @@
<div class="project_r_h"> <div class="project_r_h">
<h2 class="project_h2">邀请加入</h2> <h2 class="project_h2">邀请加入</h2>
</div> </div>
<%= error_messages_for 'member' %> <%#= render_flash_messages %>
<% <%
roles = Role.givable.all roles = Role.givable.all
if @project.project_type == Project::ProjectType_course if @project.project_type == Project::ProjectType_course
@ -14,36 +15,46 @@
<div style="margin-left: 30px" > <div style="margin-left: 30px" >
<div class="floatbox" style="margin:100px;"> <div class="floatbox" style="margin:100px;">
<div ><a href="#" class="box_close"></a></div> <div >
<a href="#" class="box_close"></a>
</div>
<div class="cl"></div> <div class="cl"></div>
<div class="box_main"> <div class="box_main">
<h3 class="box_h3">邀请Trustie注册用户</h3> <h3 class="box_h3">邀请Trustie注册用户</h3>
<% if roles.any? %> <% if roles.any? %>
<%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %> <%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :method => :post}) do |f| %>
<div class="invi_search">
<input hidden="hidden" value="true" name="flag">
<input id="principal_search" class="invi_search_input fl" type="text" placeholder="输入用户名称搜索好友">
<%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js',:flag => true) }')" %>
<div class="cl"></div>
<div class="invi_search"> <div id="principals_for_new_member">
<%= label_tag "principal_search", l(:label_principal_search) %> <%= render_project_members(@project) %>
<%= text_field_tag 'principal_search', nil %> </div>
<%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %> <div class="cl"></div>
<div id="principals_for_new_member"> <ul class="rolebox">
<%= render_principals_for_new_members(@project) %> <li class="fl mr5">
</div> <%= l(:label_role_plural) %>:
<p style="padding-top: 5px"> </li>
<%= l(:label_role_plural) %>: <% roles.each do |role| %>
<% roles.each do |role| %> <li class="fl mr5">
<label> <%= check_box_tag 'membership[role_ids][]', role.id %>
<%= check_box_tag 'membership[role_ids][]', role.id %> <%= h role %>
<%= h role %> </li>
</label> <% end %>
</ul>
<div class="cl mb10"></div>
<a href="#" class="btn_free" onclick="$('#new_membership').submit();">
<%= l(:label_invite_members)%>
</a>
</div>
<!--<p>-->
<!--<%#= submit_tag l(:label_invite_members), :id => 'member-add-submit', :style => 'display:block; width:80px; text-align:center; color:#fff; height:26px; padding-top:3px; margin-bottom:10px;' %>-->
<!--</p>-->
<% end %> <% end %>
</p>
<p>
<%= submit_tag l(:label_invite_members), :id => 'member-add-submit', :style => 'display:block; width:80px; text-align:center; color:#fff; height:26px; padding-top:3px; margin-bottom:10px;' %>
</p>
<% end %>
<% end %> <% end %>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,3 +1,12 @@
<script>
function ismail(mail) {
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (filter.test(mail)) return true;
else {
alert('您的电子邮件格式不正确');
return false;}
}
</script>
<div class="project_r_h"> <div class="project_r_h">
<h2 class="project_h2">邀请加入</h2> <h2 class="project_h2">邀请加入</h2>
</div> </div>
@ -9,7 +18,7 @@
<div class="box_main"> <div class="box_main">
<h3 class="box_h3">发送邮件邀请新用户</h3> <h3 class="box_h3">发送邮件邀请新用户</h3>
<p class="box_p"> <p class="box_p">
输入好友邮箱地址Trustie帮您免费发送 输入好友邮箱地址Trustie会自动为该邮箱注册用户
</p> </p>
<div id="is_registed"> <div id="is_registed">
<%= render :partial => 'regested', locals: { :isregisted => false} %> <%= render :partial => 'regested', locals: { :isregisted => false} %>

View File

@ -2,18 +2,22 @@
@nav_dispaly_forum_label = 1 %> @nav_dispaly_forum_label = 1 %>
<%= labelled_form_for @project do |f| %> <%= labelled_form_for @project do |f| %>
<div class="project_new"><%=l(:label_project_new)%><span class="description"> <%=raw l(:label_project_new_description)%></span> <div class="project_new">
<%=l(:label_project_new)%>
<span class="description">
</span>
<div class="box tabular" > <div class="box tabular" >
<p style="font-weight: bold; color: rgb(237,137,36)"> <p style="font-weight: bold; color: rgb(237,137,36)">
<%=raw l(:label_project_new_description)%> <%=raw l(:label_project_new_description)%>
</p> </p>
<%= render :partial => 'form', :locals => { :f => f } %> <%= render :partial => 'form', :locals => { :f => f } %>
<span style="padding-left: 60px"> <span style="padding-left: 60px">
<%= submit_tag l(:button_create), :class => "enterprise"%> <%= submit_tag l(:button_create), :class => "enterprise"%>
</span> </span>
</div> </div>
<%#= submit_tag l(:button_create_and_continue), :name => 'continue' %> <%#= submit_tag l(:button_create_and_continue), :name => 'continue' %>
<%= javascript_tag "$('#project_name').focus();" %> <%= javascript_tag "$('#project_name').focus();" %>
</div>
<% end %> <% end %>
<% html_title(l(:label_project_new)) -%> <% html_title(l(:label_project_new)) -%>

View File

@ -21,7 +21,37 @@
<div class="scroll"> <div class="scroll">
<% unless @events_pages.empty? %> <% unless @events_pages.empty? %>
<% @events_pages.each do |e| -%> <% @events_pages.each do |e| -%>
<% act = e.forge_act; <% if e.forge_act_type == "ProjectCreateInfo"%>
<div class="font_description">
<table width="660">
<tr>
<td>
<%= image_tag(url_to_avatar(e.user), :class => "avatar") %>
</td>
<td colspan="2">
<table width="580">
<tr>
<td>
<%= link_to_user(e.user)%>
<%= l(:label_project_new) %>
<%= link_to e.project.name %>
<strong> !</strong>
</td>
</tr>
<tr>
<td class="font_lighter" >
<%= l :label_create_time %>:
<%= format_time(e.created_at) %>
</table>
</td>
</tr>
</table>
</div>
<% end %>
<% next if e.forge_act_type.safe_constantize.nil?
act = e.forge_act;
next if act.nil? %> next if act.nil? %>
<% if e.forge_act_type == "Issue" %> <% if e.forge_act_type == "Issue" %>
<div class="activity-item underline-evreycontent" style="font-size: 14px;line-height:1.5em;width: 100%;word-wrap: break-word;word-break: break-all;margin-top: 10px;"> <div class="activity-item underline-evreycontent" style="font-size: 14px;line-height:1.5em;width: 100%;word-wrap: break-word;word-break: break-all;margin-top: 10px;">
@ -180,4 +210,4 @@
</div> </div>
</div> </div>
<%= paginate @events_pages, :window => 3%> <%= paginate @events_pages, :left => 3, :right => 3%>

View File

@ -1,8 +1,8 @@
<div style="width: 57%;margin: 10px auto;"> <div style="width: 57%;margin: 10px auto;">
<%= form_tag( search_stores_path, method: 'post') do %> <%= form_tag( search_stores_path, method: 'post') do %>
<%= text_field_tag 'name', params[:name], placeholder:'请输入要搜索的关键字', name: "name", :class => 'blueinputbar', :style => 'width:450px;'%> <%= text_field_tag 'name', params[:name], placeholder: l('welcome.search.information'), name: "name", :class => 'blueinputbar', :style => 'width:450px;'%>
&nbsp;&nbsp; &nbsp;&nbsp;
<%= submit_tag l(:label_search), :class => "enterprise"%> <%= submit_tag l(:label_search), :class => "enterprise"%>
<% end %> <% end %>
<div class='font_lighter' style="display: inline-block; margin-top:3px;">全站文件搜索。不会搜索私有项目中的内容。</div> <div class='font_lighter' style="display: inline-block; margin-top:3px;"><%= l(:label_resources_search_all)%></div>
</div> </div>

View File

@ -2,19 +2,31 @@
<%= render :partial => "tags/tag_name",:locals => {:obj => obj,:non_list_all => false ,:object_flag => object_flag} %> <%= render :partial => "tags/tag_name",:locals => {:obj => obj,:non_list_all => false ,:object_flag => object_flag} %>
</div> </div>
<% if User.current.logged? %> <% if User.current.logged? %>
<span> <%= toggle_link ("+ 添加标签"), 'put-tag-form', {:focus => 'tags_name'} %> </span> <span> <%= toggle_link (l(:label_add_tag)), 'put-tag-form', {:focus => 'tags_name'} %> </span>
<% end %> <% end %>
<div id="put-tag-form" style="display: none;text-align: center"> <div id="put-tag-form" style="display: none;text-align: center">
<%= form_for "tag_for_save",:remote=>true,:url=>tag_path, <%= form_for "tag_for_save",:remote=>true,:url=>tag_path,
:update => "tags_show", :update => "tags_show",
:complete => '$("#put-tag-form").slideUp();' do |f| %> :complete => '$("#put-tag-form").slideUp();' do |f| %>
<%= f.text_field :name ,:id => "tags_name",:size=>"20", <table>
<tr>
<td>
<%= f.text_field :name ,:id => "tags_name",:size=>"20",
:require=>true, :require=>true,
:maxlength => Setting.tags_max_length, :maxlength => Setting.tags_max_length,
:minlength=>Setting.tags_min_length %> :minlength=>Setting.tags_min_length %>
<%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%> </td>
<%= f.text_field :object_flag,:value=> object_flag,:style=>"display:none"%>
<a href="#" onclick='$("#tags_name").parent().submit();' type="button" class="submit f_l" style="margin-top: 10px;"></a> <%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%>
<%= f.text_field :object_flag,:value=> object_flag,:style=>"display:none"%>
<td style="margin-left: 5px">
<a href="#" onclick='$("#tags_name").parent().submit();' type="button" class="submit f_l"></a>
</td>
<tr>
</table>
<% end %> <% end %>
</div> </div>

View File

@ -9,18 +9,35 @@
<tr> <tr>
<td class="r1" style="word-break: break-all;word-wrap: break-word;"> <td class="r1" style="word-break: break-all;word-wrap: break-word;">
<div class="cb"> <div class="cb">
<strong><%= l(:label_attachment) %>:&nbsp;&nbsp;<%= file.filename %></strong> <strong>
<%= l(:label_attachment) %>:
&nbsp;&nbsp;
<%= file.filename %>
</strong>
<span style="margin-left: 4px;"> <span style="margin-left: 4px;">
<%= link_to_attachment file, {:download => true, :text => image_tag("/images/button/dl.png", width: "70px", alt: l(:button_download), :class => 'download_icon')}%> <%= link_to_attachment file, {:download => true, :text => image_tag("/images/button/dl.png", width: "70px", alt: l(:button_download), :class => 'download_icon')}%>
</span> </span>
</div> </div>
<strong><%= l(:field_description) %></strong>:&nbsp;&nbsp;<%= file.description %> <strong>
<div class="c9 gray-color"> <%= l('attachment.category')%><%=result_come_from file%> </div> <%= l(:field_description) %>
</strong>:
&nbsp;&nbsp;
<%= file.description %>
<div class="c9 gray-color">
<%= l('label_attachment_category')%>
<%=result_come_from file%>
</div>
<span class="gray blue-color"> <span class="gray blue-color">
<%= l('attachment.download_num')%><%= file.downloads%>| <%= l('label_attachment_download_num')%>
<%= l('attachment.size')%><%= number_to_human_size(file.filesize) %>| <%= file.downloads%>|
<%= l('attachment.sharer')%><a class="gray" ><%= link_to file.author, user_path(file.author), target: "_blank" unless file.author.blank? %></a>| <%= l('label_attachment_size')%>
<%= l('attachment.upload_time')%><%= format_time(file.created_on) %> <%= number_to_human_size(file.filesize) %>|
<%= l('label_attachment_sharer')%>
<a class="gray" >
<%= link_to file.author, user_path(file.author), target: "_blank" unless file.author.blank? %>
</a>|
<%= l('label_attachment_upload_time')%>
<%= format_time(file.created_on) %>
</span> </span>
<div style="display: none"></div> <div style="display: none"></div>
</td> </td>

View File

@ -1,9 +1,9 @@
<div>&nbsp;&nbsp;&nbsp; 踩别人的帖子数量 * (-2) = <%= option_num.tread %> * (-2) = <%= option_num.tread * (-2) %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.skill.tramples')%> * (-2) = <%= option_num.tread %> * (-2) = <%= option_num.tread * (-2) %></div>
<div>&nbsp;&nbsp;&nbsp; 帖子被一级会员顶的次数 * 4 = <%= option_num.praise_by_one %> * 4 = <%= option_num.praise_by_one * 4 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.skill.like.level1')%> * 4 = <%= option_num.praise_by_one %> * 4 = <%= option_num.praise_by_one * 4 %></div>
<div>&nbsp;&nbsp;&nbsp; 帖子被二级会员顶的次数 * 6 = <%= option_num.praise_by_two %> * 6 = <%= option_num.praise_by_two * 6 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.skill.like.level2')%> * 6 = <%= option_num.praise_by_two %> * 6 = <%= option_num.praise_by_two * 6 %></div>
<div>&nbsp;&nbsp;&nbsp; 帖子被三级会员顶的次数 * 8 = <%= option_num.praise_by_three %> * 8 = <%= option_num.praise_by_three * 8 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.skill.like.level3')%> * 8 = <%= option_num.praise_by_three %> * 8 = <%= option_num.praise_by_three * 8 %></div>
<div>&nbsp;&nbsp;&nbsp; 帖子被一级会员踩的次数 * (-2) = <%= option_num.tread_by_one %> * (-2) = <%= option_num.tread_by_one * (-2) %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.skill.dislike.level1')%> * (-2) = <%= option_num.tread_by_one %> * (-2) = <%= option_num.tread_by_one * (-2) %></div>
<div>&nbsp;&nbsp;&nbsp; 帖子被二级会员踩的次数 * (-4) = <%= option_num.tread_by_two %> * (-4) = <%= option_num.tread_by_two * (-4) %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.skill.dislike.level2')%> * (-4) = <%= option_num.tread_by_two %> * (-4) = <%= option_num.tread_by_two * (-4) %></div>
<div>&nbsp;&nbsp;&nbsp; 帖子被三级会员踩的次数 * (-6) = <%= option_num.tread_by_three %> * (-6) = <%= option_num.tread_by_three * (-6) %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.skill.dislike.level3')%> * (-6) = <%= option_num.tread_by_three %> * (-6) = <%= option_num.tread_by_three * (-6) %></div>
<div>&nbsp;&nbsp;&nbsp; 技术得分 = <%= option_num.tread * (-2) %> + <%= option_num.praise_by_one * 4 %> + <%= option_num.praise_by_two * 6 %> + <%= option_num.praise_by_three * 8 %> + (<%= option_num.tread_by_one * (-2) %>) + ( <%= option_num.tread_by_two * (-4) %>) + (<%= option_num.tread_by_three * (-6) %>) = <%= skill(option_num) %> </div> <div>&nbsp;&nbsp;&nbsp; <%= l(:label_user_score_of_skill)%> = <%= option_num.tread * (-2) %> + <%= option_num.praise_by_one * 4 %> + <%= option_num.praise_by_two * 6 %> + <%= option_num.praise_by_three * 8 %> + (<%= option_num.tread_by_one * (-2) %>) + ( <%= option_num.tread_by_two * (-4) %>) + (<%= option_num.tread_by_three * (-6) %>) = <%= skill(option_num) %> </div>

View File

@ -57,7 +57,7 @@
</span> </span>
<span style="float: right; padding-left: 8px"> <span style="float: right; padding-left: 8px">
<%= l(:label_course_term) %> <%= l(:label_course_term) %>
: <%= @course.time %><%= @course.term %> : <%= @course.time %><%= get_course_term_locales @course %>
</span> </span>
<% end %> <% end %>
</td> </td>

View File

@ -2,8 +2,8 @@
<div class="menu"> <div class="menu">
<%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if @user == User.current %> <%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if @user == User.current %>
<ul> <ul>
<li mode='doing' class="on">进行中</li> <li mode='doing' class="on"><%= l('user.courses.doing')%></li>
<li mode='end'>已完结</li> <li mode='end'><%= l('user.courses.done')%></li>
</ul> </ul>
</div> </div>

View File

@ -2,8 +2,8 @@
<div class="menu"> <div class="menu">
<%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if user == User.current %> <%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if user == User.current %>
<ul> <ul>
<li mode='doing' class="on">进行中</li> <li mode='doing' class="on"><%= l('user.courses.doing')%></li>
<li mode='end'>已完结</li> <li mode='end'><%= l('user.courses.done')%></li>
</ul> </ul>
</div> </div>

View File

@ -1,7 +1,7 @@
<div>&nbsp;&nbsp;&nbsp; 提交代码次数 * 4 = <%= option_num.changeset %> * 4 = <%= option_num.changeset * 4 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.commit.codes')%> * 4 = <%= option_num.changeset %> * 4 = <%= option_num.changeset * 4 %></div>
<div>&nbsp;&nbsp;&nbsp; 提交文档次数 * 4 = <%= option_num.document %> * 4 = <%= option_num.document * 4 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.commit.documents')%> * 4 = <%= option_num.document %> * 4 = <%= option_num.document * 4 %></div>
<div>&nbsp;&nbsp;&nbsp; 提交附件次数 * 4 = <%= option_num.attachment %> * 4 = <%= option_num.attachment * 4 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.commit.attachments')%> * 4 = <%= option_num.attachment %> * 4 = <%= option_num.attachment * 4 %></div>
<div>&nbsp;&nbsp;&nbsp; 更新缺陷完成度次数 * 2 = <%= option_num.issue_done_ratio %> * 2 = <%= option_num.issue_done_ratio * 2 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.update_issues')%> * 2 = <%= option_num.issue_done_ratio %> * 2 = <%= option_num.issue_done_ratio * 2 %></div>
<div>&nbsp;&nbsp;&nbsp; 发布缺陷数量 * 4 = <%= option_num.post_issue %> * 4 = <%= option_num.post_issue * 4 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.release_issues')%> * 4 = <%= option_num.post_issue %> * 4 = <%= option_num.post_issue * 4 %></div>
<div>&nbsp;&nbsp;&nbsp; 项目贡献得分 = <%= option_num.changeset * 4 %> + <%= option_num.document * 4 %> + <%= option_num.attachment * 4 %> + <%= option_num.issue_done_ratio * 2 %> + <%= option_num.post_issue * 4 %> = <%= active(option_num) %> </div> <div>&nbsp;&nbsp;&nbsp; <%= l(:label_user_score_of_active)%> = <%= option_num.changeset * 4 %> + <%= option_num.document * 4 %> + <%= option_num.attachment * 4 %> + <%= option_num.issue_done_ratio * 2 %> + <%= option_num.post_issue * 4 %> = <%= active(option_num) %> </div>

View File

@ -16,8 +16,8 @@
<div class="menu"> <div class="menu">
<%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if @user == User.current %> <%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if @user == User.current %>
<ul> <ul>
<li mode='doing' class="on"><%= l('user.courses.doing')%></li> <li mode='doing' class="on"><%= l(:label_course_doing)%></li>
<li mode='end'><%= l('user.courses.done')%></li> <li mode='end'><%= l(:label_course_done)%></li>
</ul> </ul>
</div> </div>

View File

@ -1,3 +1,3 @@
<div>&nbsp;&nbsp;&nbsp; 被关注人数 * 2 = <%= option_num.follow %> * 2 = <%= option_num.follow * 2 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.influence.followers')%> * 2 = <%= option_num.follow %> * 2 = <%= option_num.follow * 2 %></div>
<div>&nbsp;&nbsp;&nbsp; 影响力得分 = <%= option_num.follow * 2 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l(:label_user_score_of_influence)%> = <%= option_num.follow * 2 %></div>

View File

@ -1,7 +1,7 @@
<div>&nbsp;&nbsp;&nbsp; 发帖数量 * 2 = <%= option_num.memo %> * 2 = <%= option_num.memo * 2 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.memos')%> * 2 = <%= option_num.memo %> * 2 = <%= option_num.memo * 2 %></div>
<div>&nbsp;&nbsp;&nbsp; 对缺陷留言数量 * 1 = <%= option_num.messages_for_issues %> * 1 = <%= option_num.messages_for_issues * 1 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.message_for_issues')%> * 1 = <%= option_num.messages_for_issues %> * 1 = <%= option_num.messages_for_issues * 1 %></div>
<div>&nbsp;&nbsp;&nbsp; 更改缺陷状态次数 * 1 = <%= option_num.issues_status %> * 1= <%= option_num.issues_status * 1 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.issue_status')%> * 1 = <%= option_num.issues_status %> * 1= <%= option_num.issues_status * 1 %></div>
<div>&nbsp;&nbsp;&nbsp; 对留言的回复数量 * 1 = <%= option_num.replay_for_message %> * 1 = <%= option_num.replay_for_message * 1 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.reply_for_messages')%> * 1 = <%= option_num.replay_for_message %> * 1 = <%= option_num.replay_for_message * 1 %></div>
<div>&nbsp;&nbsp;&nbsp; 对帖子的回复数量 * 1 = <%= option_num.replay_for_memo %> * 1 = <%= option_num.replay_for_memo * 1 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.reply_for_memos')%> * 1 = <%= option_num.replay_for_memo %> * 1 = <%= option_num.replay_for_memo * 1 %></div>
<div>&nbsp;&nbsp;&nbsp; 协同得分 = <%= option_num.memo * 2 %> + <%= option_num.messages_for_issues * 1 %> + <%= option_num.issues_status * 1 %> + <%= option_num.replay_for_message * 1 %> + <%= option_num.replay_for_memo * 1 %> = <%= collaboration(option_num) %>  </div> <div>&nbsp;&nbsp;&nbsp; <%= l(:label_user_score_of_collaboration)%> = <%= option_num.memo * 2 %> + <%= option_num.messages_for_issues * 1 %> + <%= option_num.issues_status * 1 %> + <%= option_num.replay_for_message * 1 %> + <%= option_num.replay_for_memo * 1 %> = <%= collaboration(option_num) %>  </div>

View File

@ -2,7 +2,7 @@
<div class="menu-div"> <div class="menu-div">
<div class="menu"> <div class="menu">
<span style="color: #000; font-weight: bold;"> <span style="color: #000; font-weight: bold;">
<%= l(:label_user_activity, :value => @user.name) %> <%= l(:label_user_activities, :name => @user.name) %>
</span> </span>
<ul><%#链接绑定在页面最下方的jQuery%> <ul><%#链接绑定在页面最下方的jQuery%>
<li mode='all' class="<%= "on" if @state.eql?(0) %>"> <li mode='all' class="<%= "on" if @state.eql?(0) %>">
@ -63,16 +63,37 @@
<%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %>
</strong> </strong>
&nbsp; &nbsp;
<% if User.current.language == "zh" %>
<span class="font_lighter">
<%= l(:label_i_have_feedback) %>
<%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %>
<%= l(:label_of_feedback) + l(:label_layouts_feedback) %>
</span>
<% else %>
<span class="font_lighter">
<%= l(:label_i_have_feedback) %>
<%= l(:label_layouts_feedback) + l(:label_of_feedback) %>
<%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %>
</span>
<% end %>
<% else %> <% else %>
<strong> <strong>
<%= link_to("#{e.user.name}", user_path(e.user_id)) %> <%= link_to("#{e.user.name}", user_path(e.user_id)) %>
</strong> </strong>
<% end %> <% if User.current.language == "zh" %>
<span class="font_lighter"> <span class="font_lighter">
<%= l(:label_have_feedback) %> <%= l(:label_have_feedback) %>
<%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %> <%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %>
<%= l(:label_of_feedback) + l(:label_layouts_feedback) %> <%= l(:label_of_feedback) + l(:label_layouts_feedback) %>
</span> </span>
<% else %>
<span class="font_lighter">
<%= l(:label_have_feedback) %>
<%= l(:label_layouts_feedback) + l(:label_of_feedback) %>
<%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %>
</span>
<% end %>
<% end %>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -91,7 +112,7 @@
<td> <td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <span class="font_lighter">
<%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %> <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %>
</span> </span>
</div> </div>
<div style="display: inline-block; float: right; margin-top: 0px"></div> <div style="display: inline-block; float: right; margin-top: 0px"></div>
@ -155,7 +176,7 @@
<td> <td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <span class="font_lighter">
<%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %> <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %>
</span> </span>
</div> </div>
<!--<div style="display: inline-block; float: right; margin-top: 0px">--> <!--<div style="display: inline-block; float: right; margin-top: 0px">-->
@ -216,7 +237,7 @@
<td> <td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <span class="font_lighter">
<%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %> <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %>
</span> </span>
</div> </div>
<div style="display: inline-block; float: right; margin-top: 0px"></div> <div style="display: inline-block; float: right; margin-top: 0px"></div>
@ -333,7 +354,7 @@
<td> <td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <span class="font_lighter">
<%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %> <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %>
</span> </span>
</div> </div>
<div style="display: inline-block; float: right; margin-top: 0px"></div> <div style="display: inline-block; float: right; margin-top: 0px"></div>
@ -372,7 +393,7 @@
<td> <td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <span class="font_lighter">
<%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %> <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %>
</span> </span>
</div> </div>
<div style="display: inline-block; float: right; margin-top: 0px"></div> <div style="display: inline-block; float: right; margin-top: 0px"></div>
@ -417,7 +438,7 @@
<td> <td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <span class="font_lighter">
<%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %> <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %>
</span> </span>
</div> </div>
<div style="display: inline-block; float: right; margin-top: 0px"> <div style="display: inline-block; float: right; margin-top: 0px">
@ -457,7 +478,7 @@
<td> <td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <span class="font_lighter">
<%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %> <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %>
</span> </span>
</div> </div>
<div style="display: inline-block; float: right; margin-top: 0px"> <div style="display: inline-block; float: right; margin-top: 0px">
@ -493,7 +514,7 @@
<td> <td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <span class="font_lighter">
<%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %> <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %>
</span> </span>
</div> </div>
<div style="display: inline-block; float: right; margin-top: 0px"> <div style="display: inline-block; float: right; margin-top: 0px">
@ -548,7 +569,7 @@
<td> <td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <span class="font_lighter">
<%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %> <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %>
</span> </span>
</div> </div>
</tr> </tr>
@ -569,7 +590,7 @@
</div> </div>
<% else %> <!-- < %# unless @activity.empty? %> --> <% else %> <!-- < %# unless @activity.empty? %> -->
<% if @user == User.current %> <% if @user == User.current %>
<%= l(:label_user_activities) %> <%= l(:label_user_activities_no) %>
<% else %> <% else %>
<p class="font_description"> <p class="font_description">
<%= l(:label_user_activities_other) %> <%= l(:label_user_activities_other) %>
@ -596,7 +617,7 @@
<% elsif e.jour_type == 'User' %> <% elsif e.jour_type == 'User' %>
<%= l(:label_in_users) %><%= link_to(e.jour.firstname, feedback_path(e.jour)) %>&nbsp;<%= l(:label_quote_my_words) %> <%= l(:label_in_users) %><%= link_to(e.jour.firstname, feedback_path(e.jour)) %>&nbsp;<%= l(:label_quote_my_words) %>
<% elsif e.jour_type == 'Project' %> <% elsif e.jour_type == 'Project' %>
<%= '在'<<l(:field_project) %><%= link_to(e.jour.name, feedback_path(e.jour)) %>&nbsp;<%= l(:label_reply_plural) %> <%= l(:label_in_projects) %><%= link_to(e.jour.name, feedback_path(e.jour)) %>&nbsp;<%= l(:label_reply_plural) %>
<% end %> <% end %>
<% else %> <% else %>
<%= l(:label_about_requirement) %><%= link_to(e.jour.name, respond_path(e.jour_id)) %>&nbsp;<%= l(:label_have_respond) %> <%= l(:label_about_requirement) %><%= link_to(e.jour.name, respond_path(e.jour_id)) %>&nbsp;<%= l(:label_have_respond) %>

View File

@ -25,7 +25,7 @@
<table width="580" border="0"> <table width="580" border="0">
<tr> <tr>
<td colspan="2" valign="top"><strong> <%= link_to_user(membership.user) if membership.respond_to?(:user) %></strong> <td colspan="2" valign="top"><strong> <%= link_to_user(membership.user) if membership.respond_to?(:user) %></strong>
<span class="font_lighter"> <%= l(:label_peoject_take_in) %></span> <%= link_to_project(membership.project) %></td> <span class="font_lighter"> <%= l(:label_project_take_in) %></span> <%= link_to_project(membership.project) %></td>
</tr> </tr>
<tr> <tr>
<td colspan="2" width="580" style="word-break:break-all;word-wrap: break-word;"> <td colspan="2" width="580" style="word-break:break-all;word-wrap: break-word;">

View File

@ -1,4 +1,7 @@
<!--modified by young--> <!--modified by young-->
<div class="project_r_h">
<h2 class="project_h2"><%= l(:label_roadmap) %></h2>
</div>
<div class="content-title-top"> <div class="content-title-top">
<%= link_to l(:label_version_new), new_project_version_path(@project), :class => 'icon icon-add' if User.current.allowed_to?(:manage_versions, @project) %> <%= link_to l(:label_version_new), new_project_version_path(@project), :class => 'icon icon-add' if User.current.allowed_to?(:manage_versions, @project) %>
</div> </div>

View File

@ -1,4 +1,7 @@
<!--modified by young--> <!--modified by young-->
<div class="project_r_h">
<h2 class="project_h2"><%= l(:label_roadmap) %></h2>
</div>
<div class="contextual" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"> <div class="contextual" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
<%= link_to(l(:button_edit), edit_version_path(@version), :class => 'icon icon-edit') if User.current.allowed_to?(:manage_versions, @version.project) %> <%= link_to(l(:button_edit), edit_version_path(@version), :class => 'icon icon-edit') if User.current.allowed_to?(:manage_versions, @version.project) %>
<%= link_to_if_authorized(l(:button_edit_associated_wikipage, <%= link_to_if_authorized(l(:button_edit_associated_wikipage,

View File

@ -1,8 +1,8 @@
<div > <div >
<%= form_tag( search_stores_path, method: 'post') do %> <%= form_tag( search_stores_path, method: 'post') do %>
<%= text_field_tag 'name', params[:name], placeholder:'请输入要搜索的关键字', name: "name", :class => 'blueinputbar', :style => 'width:300px;'%> <%= text_field_tag 'name', params[:name], placeholder: l('welcome.search.information'), name: "name", :class => 'blueinputbar', :style => 'width:300px;'%>
&nbsp;&nbsp; &nbsp;&nbsp;
<%= submit_tag l(:label_search), :class => "enterprise"%> <%= submit_tag l(:label_search), :class => "enterprise"%>
<% end %> <% end %>
<div class='font_lighter' style="margin: 0; padding: 0; margin-top: 4px;">全站文件搜索。不会搜索私有项目中的内容。</div> <div class='font_lighter' style="margin: 0; padding: 0; margin-top: 4px;"><%= l(:label_resources_search_all)%></div>
</div> </div>

View File

@ -133,7 +133,24 @@
</div> </div>
<div class="welcome_left" id="welcome_left"> <div class="welcome_left" id="welcome_left">
<% unless @contest_page.nil? %> <% unless @contest_page.nil? %>
<span class="font_welcome_trustie"><%= @contest_page.title %></span> <span class="font_welcome_tdescription">, <%= @contest_page.description %></span> <span class="font_welcome_trustie">
<!--
edit by meng
@@contest_page.title存储在first_page表中的title字段
原本代码
<%= @contest_page.title %>
!-->
<%= l(:label_welcome_trustie_contest) %>
</span>
<span class="font_welcome_tdescription">,
<!--
edit by meng
@course_page.description存储在first_page表中的description字段
原本代码
<%= @contest_page.description %>
!-->
<%= l(:label_welcome_trustie_contest_description) %>
</span>
<% end %> <% end %>
</div> </div>

View File

@ -56,12 +56,24 @@
</span> </span>
<% unless @course_page.nil? %> <% unless @course_page.nil? %>
<span class="font_welcome_trustie"> <span class="font_welcome_trustie">
<%= @course_page.title %> <!--
edit by meng
@course_page.title存储在first_page表中的title字段
原本代码
<%= @course_page.title %>
!-->
<%= l(:label_welcome_trustie_course) %>
</span> </span>
<% if @school_id.nil? and (User.current.user_extensions.nil? || User.current.user_extensions.school.nil?) %> <% if @school_id.nil? and (User.current.user_extensions.nil? || User.current.user_extensions.school.nil?) %>
<span class="font_welcome_tdescription">, <span class="font_welcome_tdescription">,
<%= @course_page.description %> <!--
edit by meng
@course_page.description存储在first_page表中的description字段
原本代码
<%= @course_page.description %>
!-->
<%= l(:label_welcome_trustie_course_description) %>
</span> </span>
<% else %> <% else %>
<% if @school_id == "0" %> <% if @school_id == "0" %>

View File

@ -29,5 +29,5 @@
</p> </p>
<div class="text-diff" style="word-break: break-all;word-wrap: break-word;"> <div class="text-diff" style="word-break: break-all;word-wrap: break-word;">
<%= simple_format_without_paragraph @diff.to_html %> <%= wiki_simple_format_without_paragraph @diff.to_html %>
</div> </div>

View File

@ -11,7 +11,7 @@
<% id = 'project_respond_form_'+journal.id.to_s%> <% id = 'project_respond_form_'+journal.id.to_s%>
<span> <span>
<% if reply_allow %> <% if reply_allow %>
<%= link_to l(:label_projects_feedback_respond),'#', <%= link_to l(:button_reply),'#',
{:focus => 'project_respond', {:focus => 'project_respond',
:onclick => "toggleAndSettingWordsVal($('##{id}'), :onclick => "toggleAndSettingWordsVal($('##{id}'),
$('##{id} textarea'), $('##{id} textarea'),

View File

@ -14,7 +14,7 @@
<div class="recall_con"> <div class="recall_con">
<% id = 'project_respond_form_'+ reply.id.to_s %> <% id = 'project_respond_form_'+ reply.id.to_s %>
<%= link_to reply.user.name, user_path(reply.user) %> <%= link_to reply.user.name, user_path(reply.user) %>
回复 <%= l(:label_reply_to)%>
<% if show_name %> <% if show_name %>
<%= link_to parent_jour.user.name, user_path(parent_jour.user) %> <%= link_to parent_jour.user.name, user_path(parent_jour.user) %>
<% else %> <% else %>
@ -36,7 +36,7 @@
:remote => true, :confirm => l(:text_are_you_sure), :method => 'delete', :class => "delete", :title => l(:button_delete)) %> :remote => true, :confirm => l(:text_are_you_sure), :method => 'delete', :class => "delete", :title => l(:button_delete)) %>
<% end %> <% end %>
<% if reply_allow %> <% if reply_allow %>
<%= link_to l(:label_projects_feedback_respond),'', <%= link_to l(:button_reply),'',
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{id}'), $('##{id} textarea'), ''); return false;"} %> {:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{id}'), $('##{id} textarea'), ''); return false;"} %>
<% end %> <!-- #{l(:label_reply_plural)} #{m_reply_id.user.name}: --> <% end %> <!-- #{l(:label_reply_plural)} #{m_reply_id.user.name}: -->
</span> </span>

View File

@ -51,7 +51,7 @@ function checkMaxLength() {
<% ids = 'project_respond_form_'+ journal.id.to_s%> <% ids = 'project_respond_form_'+ journal.id.to_s%>
<span> <span>
<% if reply_allow %> <% if reply_allow %>
<%= link_to l(:label_projects_feedback_respond),'', <%= link_to l(:button_reply),'',
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"} {:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"}
%> %>
<% end %> <% end %>

View File

@ -47,15 +47,15 @@
</div> </div>
<% if User.current.logged? %> <% if User.current.logged? %>
<% if @user.safe_attribute? 'user_message' %> <%# if @user.safe_attribute? 'user_message' %>
<%= f.text_area 'user_message', :rows => 3, :cols => 65, <%= f.text_area 'user_message', :rows => 3, :cols => 65,
:placeholder => "#{l(:label_leave_a_message)}", :placeholder => "#{l(:label_leave_a_message)}",
:style => "resize: none; width: 98%", :style => "resize: none; width: 98%",
:class => 'noline'%> :class => 'noline'%>
<% end %> <%# end %>
<%= f.text_field :reference_user_id, :style=>"display:none"%> <%= f.text_field :reference_user_id, :style=>"display:none"%>
<%= submit_tag l(:button_leave_meassge), :name => nil , :class => "enterprise" , :style => "display: block; float: right; margin-right: 1%; margin-top: 1px;"%> <%= submit_tag l(:button_leave_meassge), :name => nil , :class => "enterprise" , :style => "display: block; float: right; margin-right: 1%; margin-top: 1px;"%>
<% else %> <%else %>
<div style="font-size: 14px;margin:10px;"> <div style="font-size: 14px;margin:10px;">
<%= l(:label_user_login_tips) %> <%= l(:label_user_login_tips) %>
<%= link_to l(:label_user_login_new), signin_path %> <%= link_to l(:label_user_login_new), signin_path %>

View File

@ -1,14 +1,14 @@
<%= form_tag(words_create_reply_path, :remote => true) do %> <%= form_tag(words_create_reply_path, :remote => true) do %>
<%= text_area_tag 'user_notes', "", :class => 'noline', <%= text_area_tag 'user_notes', "", :class => 'noline',
:style => "resize: none;", :rows => 4, :style => "resize: none;", :rows => 4,
:placeholder => l(:label_projects_feedback_respond_content), :placeholder => l(:label_feedback_respond_content),
:maxlength => 250 %> :maxlength => 250 %>
<%= hidden_field_tag 'reference_id', params[:reference_id], :value => journal.id %> <%= hidden_field_tag 'reference_id', params[:reference_id], :value => journal.id %>
<%= hidden_field_tag 'reference_user_id', params[:reference_user_id], :value => m_reply_id.user.id %> <%= hidden_field_tag 'reference_user_id', params[:reference_user_id], :value => m_reply_id.user.id %>
<%= hidden_field_tag 'reference_message_id', params[:reference_message_id], :value => m_reply_id.id %> <%= hidden_field_tag 'reference_message_id', params[:reference_message_id], :value => m_reply_id.id %>
<%= hidden_field_tag 'show_name',params[:show_name],:value => show_name.nil? ? true : show_name %> <%= hidden_field_tag 'show_name',params[:show_name],:value => show_name.nil? ? true : show_name %>
<%= submit_tag l(:button_projects_feedback_respond), :name => nil , <%= submit_tag l(:button_feedback_respond), :name => nil ,
:class => "enterprise", :class => "enterprise",
:style => "float: right; margin-top: 1px; margin-right: 4px;"%> :style => "float: right; margin-top: 1px; margin-right: 4px;"%>

View File

@ -23,7 +23,7 @@
Kaminari.configure do |config| Kaminari.configure do |config|
# config.default_per_page = 25 # config.default_per_page = 25
# config.max_per_page = nil # config.max_per_page = nil
config.window = 2 config.window = 0
# config.outer_window = 3 # config.outer_window = 3
# config.left = 2 # config.left = 2
# config.right = 2 # config.right = 2

View File

@ -31,13 +31,13 @@ en:
# #
lable_user_name: Username lable_user_name: Username
label_login_prompt: Email/Trustie account label_login_prompt: Email/Trustie account
label_stay_logged_in: "Keep me signed in" label_stay_logged_in: "Remember me"
label_password_lost: "Forget password" label_password_lost: "Forget password"
button_login: Login button_login: Login
# account_controller中判断用户名或密码输入有误的提示信息 # account_controller中判断用户名或密码输入有误的提示信息
notice_account_invalid_creditentials: "Invalid user or password." notice_account_invalid_creditentials: "Invalid user or password."
# account_controller中判断未激活的提示信息 # account_controller中判断未激活的提示信息
notice_account_invalid_creditentials_new: "Please check your email to activate your account." notice_account_invalid_creditentials_new: "Please check your email to activate your account. Email verification helps our support team verify ownership if you lose account access and allows you to receive all the notifications you ask for. "
# #
@ -81,10 +81,10 @@ en:
# #
# 激活 # 激活
# #
label_regiter_account: Registering for an account label_regiter_account: Sign up for Trustie
label_email_valid: E-mail activation label_email_valid: Email verification
notice_email_register_time: "Please click on the link in the email to continue to complete the registration within 24 hours" notice_email_register_time: "Please click the link in verification email to complete the registration within 24 hours."
notice_email_arrival: "An activation email has been sent to the email address you register." notice_email_arrival: "An activation email has been sent to the email address you register."
label_check_email: "Now check your email" label_check_email: "Now check your email"
label_mail_resend: "Resend the activation email" label_mail_resend: "Resend verification email"
notice_account_activated: "Your Trustie account has been activated. You can now sign in." notice_account_activated: "Your Trustie account has been activated. You can now sign in."

View File

@ -39,7 +39,7 @@ zh:
# account_controller中判断用户名或密码输入有误的提示信息 # account_controller中判断用户名或密码输入有误的提示信息
notice_account_invalid_creditentials: "无效的用户名或密码" notice_account_invalid_creditentials: "无效的用户名或密码"
# account_controller中判断未激活的提示信息 # account_controller中判断未激活的提示信息
notice_account_invalid_creditentials_new: "您还未到邮箱激活" notice_account_invalid_creditentials_new: "您还未到邮箱激活。如果您丢失帐户,电子邮件验证帮助我们的支持团队验证帐户的所有权,并允许您接收所有您要求的通知。"
# #
@ -84,7 +84,7 @@ zh:
# #
label_regiter_account: 注册帐号 label_regiter_account: 注册帐号
label_email_valid: 邮箱激活 label_email_valid: 邮箱激活
notice_email_register_time: 请在24小时内点击邮件中的链接继续完成注册 notice_email_register_time: 请在24小时内点击邮件中的链接完成注册
notice_email_arrival: 邮件已发送到邮箱 notice_email_arrival: 邮件已发送到邮箱
label_check_email: 立即查收邮件 label_check_email: 立即查收邮件
label_mail_resend: 重新发送激活邮件 label_mail_resend: 重新发送激活邮件

View File

@ -155,12 +155,20 @@ en:
actionview_instancetag_blank_option: Please select actionview_instancetag_blank_option: Please select
#
# Trustie公共标签
#
#
#
label_user: User label_user: User
label_project: Project label_project: Project
label_issue: Issue label_issue: Issue
label_requirement: Calls label_requirement: Calls
label_forum: Forum label_forum: Forum
label_contest: Contest
label_issue_plural: Issues Tracking label_issue_plural: Issues Tracking
label_project_plural: Projects label_project_plural: Projects
@ -172,7 +180,21 @@ en:
label_loading: Loading... label_loading: Loading...
label_create_time: Created time
label_update_time: Update time
label_reply: Reply
label_anonymous: Anonymous #作业和留言 模块
text_are_you_sure: Are you sure? #js 提示
# 项目、课程、用户公用
label_settings: Settings
label_information_plural: Information
label_member_plural: Members
# #
# Trustie按钮类 # Trustie按钮类
# #
@ -184,9 +206,13 @@ en:
button_cancel: Cancel button_cancel: Cancel
label_submit: Submit label_submit: Submit
button_project_tags_add: Add button_project_tags_add: Add
label_more: More label_more: "More>>"
button_download: Download button_download: Download
button_delete: Delete
# #
# Trustie上传头像模块 # Trustie上传头像模块
# #
@ -194,7 +220,6 @@ en:
# #
button_upload_photo: Upload photo button_upload_photo: Upload photo
button_delete_file: delete button_delete_file: delete
text_are_you_sure: Are you sure?
error_attachment_too_big: "This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})" error_attachment_too_big: "This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})"
error_pic_type: "Only supports the following image formats:" error_pic_type: "Only supports the following image formats:"
@ -207,7 +232,7 @@ en:
label_tag: Tag label_tag: Tag
label_tags_no: no tags now label_tags_no: no tags now
label_more_tags: More label_more_tags: More
label_add_tag: '+ Add tags' label_add_tag: "+ Add tags"
label_tags_count: "The total number of tags" label_tags_count: "The total number of tags"
@ -251,14 +276,98 @@ en:
sharer: "Sharer" sharer: "Sharer"
upload_time: "Upload time:" upload_time: "Upload time:"
#
# 项目托管平台主页
#
# 用户动态栏
#
lable_user_active: Recent Activities
user:
active:
published: released
uploaded: uploaded
updated: updated
unknow: unknown content
field_user_active_news: ' news'
field_user_active_issue: ' issue'
field_user_active_attachment: ' attachment'
field_user_active_message: ' message'
field_user_active_reply: ' reply'
field_user_active_bid: ' work'
field_user_active_memo: ' memo'
field_user_active_document: ' document'
field_user_active_changeset: ' repository'
field_user_active_issue_note: ' issue-note'
field_updated_on: Updated on
field_time_ago: ago
field_active_reply: "Reply("
# 用户动态中event.title和event.description
# 通过act_as_event方法的option配置
# "#{o.tracker.name} ##{o.id} (#{o.status}): #{o.subject}"
# "缺陷 #1869 (已解决):subject"
# tracker.name和status在数据库中以中文字段形式存储
# 项目托管平台主页 > 贴吧动态栏
lable_bar_active: Question&Feedback
label_my_question: My-question
label_my_feedback: My-feedback
label_updated_time: "Updated %{value} ago"
label_question_sponsor: Sponsor
label_final_reply: Last-reply
#
# 项目托管平台
#
# 意见反馈
#
label_feedback: Feedback
label_feedback_tips: "Anything you want to say roar it here ~~"
label_technical_support: "Support: "
label_feedback_success: "Your comments have been posted back to the bar of discussion by newbie(in the Public Post Bar), we will be the first time to solve your problem, thanks for your support!"
label_feedback_value: "The posts comes from user feedback"
#
# Trustie
#
# 新闻
#
label_news: 新闻
# #
# Trustie # Trustie
# #
# # 日志
# #
label_log_detail: "日志详情"
label_log_delete_log: "删除日志"
label_log_access_analysis: "访问统计"
label_log_time_analysis: "耗时分析"
label_log_refresh: "刷新"
label_log_key: "关键字:"
label_log_time: "时间:"
label_log_delete_confirm: "确认清除该天日志内容?"
label_log_access_count: "访问次数"
label_log_url: "URL路径"
label_log_ip: "访问IP"
label_log_access_time: "访问时间"
label_log_access_controller_action: "模块路径"
label_log_response_time: "响应时间"
label_log_views_time: "页面渲染时间"
label_log_views_time_percent: "页面渲染时间百分比"
label_log_active_record_time: "AR响应时间"
label_log_active_record_time_percent: "AR响应时间百分比"
views:
pagination:
first: "&laquo; 首页"
last: "末页 &raquo;"
previous: "&laquo; 上一页"
next: "下一页 &raquo;"
truncate: "..."

View File

@ -6,178 +6,39 @@ zh:
direction: ltr direction: ltr
jquery: jquery:
locale: "zh-CN" locale: "zh-CN"
date:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%Y-%m-%d"
short: "%b%d日"
long: "%Y年%b%d日"
zh_date:
formats:
default: "%Y年%m月%d日"
day_names: [星期天, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
# Don't forget the nil at the beginning; there's no such thing as a 0th month
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
# Used in date_select and datime_select.
order:
- :year
- :month
- :day
errors:
messages:
email_verifier:
email_not_real: 必须指定一个真实的邮箱地址
out_of_mail_server: 指向了一个已停用的邮箱服务器
no_mail_server: 域名地址没有邮件功能
failure: 邮箱地址不能被验证
exception: 邮箱不能发送成功
time:
formats:
default: "%Y年%b%d日 %A %H:%M:%S"
time: "%H:%M"
short: "%b%d日 %H:%M"
long: "%Y年%b%d日 %H:%M"
am: "上午"
pm: "下午"
datetime:
distance_in_words:
half_a_minute: "半分钟"
less_than_x_seconds:
one: "1秒内"
other: "少于 %{count} 秒"
x_seconds:
one: "1秒"
other: "%{count} 秒"
less_than_x_minutes:
one: "1分钟内"
other: "少于 %{count} 分钟"
x_minutes:
one: "1分钟"
other: "%{count} 分钟"
about_x_hours:
one: "大约1小时"
other: "大约 %{count} 小时"
x_hours:
one: "1 小时"
other: "%{count} 小时"
x_days:
one: "1天"
other: "%{count} 天"
about_x_months:
one: "大约1个月"
other: "大约 %{count} 个月"
x_months:
one: "1个月"
other: "%{count} 个月"
about_x_years:
one: "大约1年"
other: "大约 %{count} 年"
over_x_years:
one: "超过1年"
other: "超过 %{count} 年"
almost_x_years:
one: "将近 1 年"
other: "将近 %{count} 年"
number:
# Default format for numbers
format:
separator: "."
delimiter: ""
precision: 3
human:
format:
delimiter: ""
precision: 3
storage_units:
format: "%n %u"
units:
byte:
one: "Byte"
other: "Bytes"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
array:
sentence_connector: "和"
skip_last_comma: false
activerecord:
errors:
template:
header:
one: "由于发生了一个错误 %{model} 无法保存"
other: "%{count} 个错误使得 %{model} 无法保存"
messages:
inclusion: "不包含于列表中"
exclusion: "是保留关键字"
invalid: "是无效的"
confirmation: "与确认值不匹配"
accepted: "必须是可被接受的"
empty: "不能留空"
blank: "不能为空字符"
too_long: "过长(最长为 %{count} 个字符)"
too_short: "过短(最短为 %{count} 个字符)"
wrong_length: "长度非法(必须为 %{count} 个字符)"
taken: "已经被使用"
not_a_number: "不是数字"
not_a_date: "不是合法日期"
greater_than: "必须大于 %{count}"
greater_than_or_equal_to: "必须大于或等于 %{count}"
equal_to: "必须等于 %{count}"
less_than: "必须小于 %{count}"
less_than_or_equal_to: "必须小于或等于 %{count}"
odd: "必须为单数"
even: "必须为双数"
greater_than_start_date: "必须在起始日期之后"
not_same_project: "不属于同一个项目"
circular_dependency: "此关联将导致循环依赖"
cant_link_an_issue_with_a_descendant: "问题不能关联到它的子任务"
groupname_repeat: "该班名已存在"
attachment_all: "全部"
attachment_sufix_browse: "文件类型"
attachment_browse: "内容类型"
attachment_type: '分类'
general_text_No: '否'
general_text_Yes: '是'
general_text_no: '否'
general_text_yes: '是'
general_lang_name: 'Simplified Chinese (简体中文)'
general_csv_separator: ','
general_csv_decimal_separator: '.'
general_csv_encoding: gb18030
general_pdf_encoding: gb18030
general_first_day_of_week: '7'
actionview_instancetag_blank_option: 请选择
#
# Trustie公共标签
#
#
#
label_user: 用户 label_user: 用户
label_project: 项目 label_project: 项目
label_issue: 问题 label_issue: 问题
label_requirement: 需求 label_requirement: 需求
label_forum: 公共贴吧 label_forum: 公共贴吧
label_contest: 竞赛
field_description: 描述 field_description: 描述
label_loading: 载入中... label_loading: 载入中...
label_create_time: 创建时间
label_update_time: 更新时间
label_reply: 回复
label_anonymous: 匿名 #作业和留言 模块
text_are_you_sure: 您确定要删除吗? #js 提示
# 项目、课程、用户公用
label_settings: 配置
label_information_plural: 信息
label_member_plural: 成员
# #
# Trustie按钮类 # Trustie按钮类
# #
@ -189,9 +50,12 @@ zh:
button_cancel: 取消 button_cancel: 取消
label_submit: 提交 label_submit: 提交
button_project_tags_add: 增加 button_project_tags_add: 增加
label_more: 更多>> label_more: "更多>>"
button_download: 下载 button_download: 下载
button_more: 更多
button_delete: 删除
# #
# Trustie上传头像模块 # Trustie上传头像模块
# #
@ -199,7 +63,6 @@ zh:
# #
button_upload_photo: 上传图片 button_upload_photo: 上传图片
button_delete_file: 删除 button_delete_file: 删除
text_are_you_sure: 您确定要删除吗?
error_attachment_too_big: 该文件无法上传。超过文件大小限制 (%{max_size}) error_attachment_too_big: 该文件无法上传。超过文件大小限制 (%{max_size})
error_pic_type: "仅支持如下图片格式:" error_pic_type: "仅支持如下图片格式:"
@ -263,5 +126,105 @@ zh:
sharer: "共享者:" sharer: "共享者:"
upload_time: "上传时间:" upload_time: "上传时间:"
#
# 项目托管平台主页
#
# 用户动态栏
#
lable_user_active: 用户动态
user:
active:
published: 发表了
uploaded: 上传了
updated: 更新了
unknow: 未知内容
field_user_active_news: 新闻
field_user_active_issue: 问题
field_user_active_attachment: 附件
field_user_active_message: 主题
field_user_active_reply: 回复
field_user_active_bid: 作业
field_user_active_memo: 主题
field_user_active_document: 文件
field_user_active_changeset: 版本库
field_user_active_issue_note: 问题说明
field_updated_on: 更新于
field_time_ago:
field_active_reply: "回复("
#
# 项目托管平台主页
#
# 贴吧动态栏
#
lable_bar_active: 问题和反馈动态
label_my_question: 我要提问
label_my_feedback: 我要反馈
label_updated_time: " 更新于 %{value} 之前"
label_question_sponsor: 楼主
label_final_reply: 最后回复
#
# 项目托管平台
#
# 意见反馈
#
label_feedback: 意见反馈
label_feedback_tips: "有什么想说的,尽管来咆哮吧~~"
label_technical_support: "技术支持:"
label_feedback_success: "您的意见已经反馈到公共贴吧的新手讨论吧,我们会第一时间解决您的问题,谢谢支持!"
label_feedback_value: "该贴来自用户反馈!"
#
#
#
# 评论
#
label_find_all_comments: 查看所有评论
label_comments_count: (%{count}条评论)
#
#
#
# 新闻
#
label_news: 新闻
#
#
#
# 日志
#
label_log_detail: "日志详情"
label_log_delete_log: "删除日志"
label_log_access_analysis: "访问统计"
label_log_time_analysis: "耗时分析"
label_log_refresh: "刷新"
label_log_key: "关键字:"
label_log_time: "时间:"
label_log_delete_confirm: "确认清除该天日志内容?"
label_log_access_count: "访问次数"
label_log_url: "URL路径"
label_log_ip: "访问IP"
label_log_access_time: "访问时间"
label_log_access_controller_action: "模块路径"
label_log_response_time: "响应时间"
label_log_views_time: "页面渲染时间"
label_log_views_time_percent: "页面渲染时间百分比"
label_log_active_record_time: "AR响应时间"
label_log_active_record_time_percent: "AR响应时间百分比"
views:
pagination:
first: "&laquo; 首页"
last: "末页 &raquo;"
previous: "&laquo; 上一页"
next: "下一页 &raquo;"
truncate: "..."

View File

@ -1,3 +1,18 @@
en: en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl) # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr direction: ltr
# 托管平台主页 > 底部承办单位
label_hosted_by: Organizer
label_hosted_by: National Key Laboratory for Parallel and Distributed Processing, NUDT
label_sponsor: Department of Computer Science and Technology, NUDT
label_co_organizer_NUDT: College of Computer, NUDT
label_co_organizer_EECS: Institute of Software, EECS
label_co_organizer_BHU: Beihang University School of Computer Science & Engineering
label_co_organizer_CAS: Institute of Software, CAS
label_co_organizer_InforS: InforSuite
label_rights_reserved: ©2007~2014
label_contact_us: Contact
# 英文版不需要显示国内许可证 ,需要页面做判断
# label_license: 湘ICP备09019772

View File

@ -1,4 +1,62 @@
en: en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl) # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr direction: ltr
#
# 课程托管平台
#
# 课程公共标签
#
label_course_join_student: 加入课程
label_course_new: 新建课程
label_homework: 课程作业
label_course_news: 课程通知
label_main_teacher: 主讲教师
label_course_term: 开课学期
label_join_course: 加入
label_exit_course: exit course
# 资源库 (课程、项目按类型分)
label_course_file: File
label_upload_files: Upload
#
# 课程托管平台主页
#
# 热门课程栏
#
label_school_no_course: The school did not offer any courses, you can view other school curriculum
label_school_less_course: The school offers courses in less, you can view other school curriculum
#
# 课程托管平台
#
# 新建课程
#
lable_input_class: Type in class period here
# 教师权限课程关闭和重启
label_course_closed: Close
label_course_reload: Reopen
label_course_closed_tips: "Are you sure you want to reopen the course?"
# end
# 课程排序
label_sort_by_time: sorted by time
label_sort_by_active: sorted by active
label_sort_by_influence: sorted by influence
label_sort_by_activity: Sort by activities
# end
#
# 课程托管平台
#
# 课程资源上传
#
label_file_upload: Resource files
label_file_upload_error_messages: "Upload error, please check your network environment, and refresh the page to upload."
button_confirm: Confirm

View File

@ -5,6 +5,64 @@ zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl) # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr direction: ltr
#
# 课程托管平台
#
# 课程公共标签
#
label_course_join_student: 加入课程
label_course_new: 新建课程
label_homework: 课程作业
label_course_news: 课程通知
label_main_teacher: 主讲教师
label_course_term: 开课学期
label_join_course: 加入
label_exit_course: 退出
# 资源库 (课程、项目按类型分)
label_course_file: 资源库
label_upload_files: 上传资源
#
# 课程托管平台主页
#
# 热门课程栏
#
label_school_no_course: 该学校本学期未开设任何课程,您可以查看其他学校课程
label_school_less_course: 该学校本学期开设课程较少,您也可以查看其他学校课程
#
# 课程托管平台
#
# 新建课程
#
lable_input_class: 在此输入课时
# 教师权限课程关闭和重启
label_course_closed: 关闭
label_course_reload: 重开
label_course_closed_tips: "确定要%{desc}课程?"
# end
# 课程排序
label_sort_by_time: 按时间排序
label_sort_by_active: 按活跃度排序
label_sort_by_influence: 按影响力排序
label_sort_by_activity: 按动态数排序
# end
# #

View File

@ -27,7 +27,7 @@ en:
notice_account_deleted: "Your account has been permanently deleted." notice_account_deleted: "Your account has been permanently deleted."
notice_user_successful_create: "User %{id} created." notice_user_successful_create: "User %{id} created."
error_attachment_empty: "error in add file" error_attachment_empty: "error in add file"
error_class_period_only_num: "class period can only digital" error_class_period_only_num: "class period can only digital"
error_can_t_load_default_data: "Default configuration could not be loaded: %{value}" error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
error_scm_not_found: "The entry or revision was not found in the repository." error_scm_not_found: "The entry or revision was not found in the repository."
@ -102,7 +102,6 @@ en:
field_user: User field_user: User
field_principal: Principal field_principal: Principal
field_role: Role field_role: Role
field_homepage: Homepage
field_parent: Subproject of field_parent: Subproject of
field_is_in_roadmap: Issues displayed in roadmap field_is_in_roadmap: Issues displayed in roadmap
field_admin: Administrator field_admin: Administrator
@ -332,15 +331,8 @@ en:
project_module_issue_tracking: Issue tracking project_module_issue_tracking: Issue tracking
project_module_time_tracking: Time tracking project_module_time_tracking: Time tracking
project_module_news: News
project_module_documents: Documents
project_module_files: Files project_module_files: Files
project_module_wiki: Wiki project_module_boards: Forums
project_module_repository: Repository
project_module_boards: Forums
project_module_calendar: Calendar
project_module_gantt: Gantt
# edit by meng # edit by meng
lable_hot_course: Hot Courses lable_hot_course: Hot Courses
label_course_join_student: Join a course label_course_join_student: Join a course
@ -354,7 +346,7 @@ en:
label_user_for_project_grade: Score label_user_for_project_grade: Score
label_relation_files: Select an existing resource label_relation_files: Select an existing resource
# Personal signature tips # Personal signature tips
label_my_brief_introduction: How are feeling today? Leave your footprints ~
# create course and course info # create course and course info
@ -378,27 +370,21 @@ en:
label_student_score: Student's score label_student_score: Student's score
label_without_score: No evaluated label_without_score: No evaluated
label_homework_description: Description label_homework_description: Description
label_responses: Messages
lable_has_commit_homework: You have submitted your work lable_has_commit_homework: You have submitted your work
label_user_create_project_homework: created the task label_user_create_project_homework: created the task
label_commit_limit: Expired but can submit your work label_commit_limit: Expired but can submit your work
# steam the student # steam the student
label_current_group: Current group label_current_group: Current group
# DTS Test tool
project_module_dts: DTS Test tool
label_module_share: DTS Test tool
field_dts_test: DTS Test tool
# Feedback module
label_technical_support: Support
label_feedback: Feedback
#end
label_user_plural: Users label_user_plural: Users
label_user_new: New user label_user_new: New user
label_user_anonymous: Anonymous label_user_anonymous: Anonymous
label_activity_project: 'Project: ' #added by bai label_user_activity: "%{value}'s activities"
label_project_plural: Projects label_project_plural: Projects
label_project_deposit: Projects
label_first_page_made: Homepage customization label_first_page_made: Homepage customization
label_project_first_page: Project hosting platform page label_project_first_page: Project hosting platform page
label_course_first_page: Practice teaching platform of home page label_course_first_page: Practice teaching platform of home page
@ -445,7 +431,6 @@ en:
label_role_non_member: Non member label_role_non_member: Non member
label_member: Members label_member: Members
label_member_new: New member label_member_new: New member
label_member_plural: Members
label_tracker: Tracker label_tracker: Tracker
label_tracker_plural: Trackers label_tracker_plural: Trackers
label_tracker_new: New tracker label_tracker_new: New tracker
@ -454,34 +439,29 @@ en:
label_issue_status_plural: Issue statuses label_issue_status_plural: Issue statuses
label_issue_status_new: New status label_issue_status_new: New status
label_issue_category: Issue category label_issue_category: Issue category
label_issue_category_plural: Issue categories
label_issue_category_new: New category label_issue_category_new: New category
label_custom_field: Custom field label_custom_field: Custom field
label_custom_field_plural: Custom fields label_custom_field_plural: Custom fields
label_custom_field_new: New custom field label_custom_field_new: New custom field
label_enumerations: Enumerations label_enumerations: Enumerations
label_enumeration_new: New value label_enumeration_new: New value
label_information: Information
label_information_plural: Information
label_please_login: Please log in label_please_login: Please log in
label_home: Home label_home: Home
label_my_page: My page label_my_page: My page
label_my_message: Msgs
label_my_projects: My projects
label_my_page_block: My page block label_my_page_block: My page block
label_administration: Administration label_administration: Administration
label_login: Login
# end # end
label_help: Help label_help: Help
label_last_login: Last connection label_last_login: Last connection
label_registered_on: Registered on label_registered_on: Registered on
label_activity: Activities
label_overall_activity: Overall activity label_overall_activity: Overall activity
label_user_activity: "%{value}'s activity"
label_new: New label_new: New
label_new_user: registered a new account
label_logged_as: Logged in as label_logged_as: Logged in as
label_environment: Environment label_environment: Environment
label_authentication: Authentication label_authentication: Authentication
@ -522,7 +502,6 @@ en:
label_overview: Activities label_overview: Activities
label_version: Version label_version: Version
label_version_new: New version label_version_new: New version
label_version_plural: Versions
label_close_versions: Close completed versions label_close_versions: Close completed versions
label_confirmation: Confirmation label_confirmation: Confirmation
label_export_to: 'Also available in:' label_export_to: 'Also available in:'
@ -622,7 +601,7 @@ en:
label_repository_no: Have no repository label_repository_no: Have no repository
label_repository_new_repos: New repository label_repository_new_repos: New repository
#end #end
label_repository_plural: Repositories
label_browse: Browse label_browse: Browse
label_branch: Branch label_branch: Branch
label_revision: Revision label_revision: Revision
@ -647,7 +626,6 @@ en:
label_roadmap_due_in: "Due in %{value}" label_roadmap_due_in: "Due in %{value}"
label_roadmap_overdue: "%{value} late" label_roadmap_overdue: "%{value} late"
label_roadmap_no_issues: No issues for this version label_roadmap_no_issues: No issues for this version
label_search: Search
label_result_plural: Results label_result_plural: Results
label_all_words: All words label_all_words: All words
label_wiki: Wiki label_wiki: Wiki
@ -714,7 +692,7 @@ en:
label_message_last: Last message label_message_last: Last message
label_message_new: New message label_message_new: New message
label_message_posted: Message added label_message_posted: Message added
label_reply_plural: Replies
label_send_information: Send account information to the user label_send_information: Send account information to the user
label_year: Year label_year: Year
label_month: Month label_month: Month
@ -727,7 +705,6 @@ en:
label_feeds_access_key: RSS access key label_feeds_access_key: RSS access key
label_missing_feeds_access_key: Missing a RSS access key label_missing_feeds_access_key: Missing a RSS access key
label_feeds_access_key_created_on: "RSS access key created %{value} ago" label_feeds_access_key_created_on: "RSS access key created %{value} ago"
label_module_plural: Modules
label_added_time_by: "Added by %{author} %{age} ago" label_added_time_by: "Added by %{author} %{age} ago"
label_updated_time_by: "Updated by %{author} %{age} ago" label_updated_time_by: "Updated by %{author} %{age} ago"
label_jump_to_a_project: Jump to a project... label_jump_to_a_project: Jump to a project...
@ -826,7 +803,7 @@ en:
button_uncheck_all: Uncheck all button_uncheck_all: Uncheck all
button_collapse_all: Collapse all button_collapse_all: Collapse all
button_expand_all: Expand all button_expand_all: Expand all
button_delete: Delete
button_create_and_continue: Create and continue button_create_and_continue: Create and continue
button_test: Test button_test: Test
button_edit: Edit button_edit: Edit
@ -983,7 +960,6 @@ en:
enumeration_issue_priorities: Issue priorities enumeration_issue_priorities: Issue priorities
enumeration_doc_categories: Document categories enumeration_doc_categories: Document categories
enumeration_activities: Activities
enumeration_system_activity: System Activity enumeration_system_activity: System Activity
description_filter: Filter description_filter: Filter
description_search: Searchfield description_search: Searchfield
@ -1030,27 +1006,13 @@ en:
#huang #huang
label_file_new: Download label_file_new: Download
label_user_edit: "Edit information"
label_my_course: "My Course"
label_user_info: "User information" #huang 添加
label_user_watcher: "Followers" # huang添加的 # modified by bai
label_user_fans: "Followed by" # modified by bai
# modify by men
label_x_user_fans:
zero: fan
one: fan
other: fans
#end
label_user_commits: "Code commits" label_user_commits: "Code commits"
label_user_watchered: "Followed by" # huang添加的
label_user_newfeedback: "Messages" ## huang添加的 # modified by bai
label_user_login: "Last login:"
label_user_mail: "E-mail:" label_user_mail: "E-mail:"
label_user_joinin: "Join date:"
label_user_activities: "You have no activities,come and join us!" label_overview: "Overview"
label_user_activities_other: The user has no activities now
label_project_overview: "Overview"
label_project_tool: "Tool" label_project_tool: "Tool"
label_project_issues: "Issues" label_project_issues: "Issues"
label_project_newother: "See other comments" label_project_newother: "See other comments"
@ -1069,21 +1031,21 @@ en:
label_unapply_project: Unsubscribe label_unapply_project: Unsubscribe
#fq #fq
button_leave_meassge: Submit
button_clear_meassge: Reset button_clear_meassge: Reset
label_leave_message_to: leave %{name} a message label_leave_message_to: leave %{name} a message
label_leave_message: Message content label_leave_message: Message content
label_message: message board label_message: message board
field_add: Add before %{time} field_add: Add before %{time}
button_more: More button_more: More
label_user_response: Feedback # modified by bai
label_bidding_project: projects label_bidding_project: projects
button_bidding: I will participate in it button_bidding: I will participate in it
label_new_call: New call label_new_call: New call
label_user_information: My informations label_user_information: My informations
#Customer addedAdded by nie #Customer addedAdded by nie
label_create_time: Created time
label_current_contributors: current contributors label_current_contributors: current contributors
#modify by men #modify by men
label_x_current_contributors: label_x_current_contributors:
@ -1112,10 +1074,7 @@ en:
label_member_since: joined label_member_since: joined
label_contribute_to: Participates %{project_count} projects label_contribute_to: Participates %{project_count} projects
#modify by men #modify by men
label_x_contribute_to:
zero: Participates %{count} project
one: Participates %{count} project
other: Participates %{count} projects
#end #end
label_total_commit: Totally %{total_commit} commits # modified by bai label_total_commit: Totally %{total_commit} commits # modified by bai
#modify by men #modify by men
@ -1170,11 +1129,11 @@ en:
label_leave_me_message: left a message to me label_leave_me_message: left a message to me
label_leave_others_message: leave message to him/her label_leave_others_message: leave message to him/her
label_leave_a_message: Leave him/her a message
label_leave_your_message: Leave a message to you label_leave_your_message: Leave a message to you
label_new_activities: ' has a new activity in' # modified by bai label_new_activities: ' has a new activity in' # modified by bai
label_new_activity: ' has a new activity in'
label_i_new_activity: ' have a new activity in'
label_create_project: had participated in label_create_project: had participated in
label_praise: praise label_praise: praise
label_cancel_praise: cancel praise label_cancel_praise: cancel praise
@ -1199,19 +1158,19 @@ en:
#end #end
label_me: me label_me: me
label_my: my label_my: my
label_i: I
label_join_bidding: joined the bidding label_join_bidding: joined the bidding
label_bidding_user: Bidding user label_bidding_user: Bidding user
label_bidding_reason: Bidding reason label_bidding_reason: Bidding reason
label_username: username label_username: username
label_password: password label_password: password
label_about_requirement: about requirement
label_about_issue: about issue
label_quote_my_words: ' quoted my words'
label_have_respond: had a respond
label_welcome: Welcome label_welcome: Welcome
label_goto: Go to>>
label_join: join Trustie label_join: join Trustie
label_repository_new: link to existing SVN repository label_repository_new: link to existing SVN repository
label_repository_path: path of repository label_repository_path: path of repository
@ -1223,7 +1182,7 @@ en:
label_exist_repository_path: Define exist repository's path of URL and format must be file:///, http://, https://, svn:// label_exist_repository_path: Define exist repository's path of URL and format must be file:///, http://, https://, svn://
label_project_no_activity: The project has no activities now label_project_no_activity: The project has no activities now
label_follow_no_requirement: You don't have followed any requirements label_follow_no_requirement: You don't have followed any requirements
label_no_user_respond_you: There is no respond for you
label_all_revisions: All revisions label_all_revisions: All revisions
label_repository_name: Repository name label_repository_name: Repository name
@ -1240,9 +1199,7 @@ en:
label_welcome_my_respond: Please leave your comments and suggestions here label_welcome_my_respond: Please leave your comments and suggestions here
label_no_current_fans: The user has no fans now label_no_current_fans: The user has no fans now
label_no_current_watchers: The user hasn't watched others label_no_current_watchers: The user hasn't watched others
label_project_tool_response: Response
label_course_feedback: Feedback label_course_feedback: Feedback
label_active_call: call
label_boy: Man label_boy: Man
@ -1280,16 +1237,13 @@ en:
label_bids_new_money: input the award money,such as 500,2.5 etc. label_bids_new_money: input the award money,such as 500,2.5 etc.
label_bids_new_credit: input the work corresponding course credits,such as 3,2.5 etc. label_bids_new_credit: input the work corresponding course credits,such as 3,2.5 etc.
label_bids_new_content: input the award content,such as certificate,things etc. label_bids_new_content: input the award content,such as certificate,things etc.
label_user_login_tips: You havn't logged in,for leaving message please login first
label_user_login_new: login label_user_login_new: login
label_project_sort: the way of sorting label_project_sort: the way of sorting
#modified by bai #modified by bai
label_sort_by_time: sorted by time
label_sort_by_active: sorted by active
label_sort_by_influence: sorted by influence
#end #end
label_bids_published: published
label_bids_published_ago: ago
# label_welcome_trustie: Trustie # label_welcome_trustie: Trustie
# label_welcome_trustie_project: Online projects hosting platform # label_welcome_trustie_project: Online projects hosting platform
# label_welcome_trustie_course: Online Courses practice platform # label_welcome_trustie_course: Online Courses practice platform
@ -1298,15 +1252,12 @@ en:
# label_welcome_trustie_course_description: Teachers and Students for Chinese universities to provide social-oriented curriculum management, resource sharing, cooperation achieved, collaborative research. # label_welcome_trustie_course_description: Teachers and Students for Chinese universities to provide social-oriented curriculum management, resource sharing, cooperation achieved, collaborative research.
# label_welcome_trustie_contest_description: Software for Chinese college students and practitioners to provide social-oriented contest management, code hosting, resource sharing, cooperation and exchange. # label_welcome_trustie_contest_description: Software for Chinese college students and practitioners to provide social-oriented contest management, code hosting, resource sharing, cooperation and exchange.
# label_welcome_trustie_description: a socialized collaboration platform for project management, collaborative research, software development and software crowdsourcing for creative university students and entrepreneurs. # label_welcome_trustie_description: a socialized collaboration platform for project management, collaborative research, software development and software crowdsourcing for creative university students and entrepreneurs.
label_bid_respond_quote: Respond
label_bid_if_agreement: If you like me, please press me #bai label_bid_if_agreement: If you like me, please press me #bai
label_bid_respond_delete: Delete
label_newfeedback_message: messages
label_newfeedback_quote: Respond
label_newfeedback_delete: Delete
label_layouts_feedback: Messages
label_have_feedback: Have
label_of_feedback: Of
label_welcome_participate: participates label_welcome_participate: participates
#modify by men #modify by men
label_x_welcome_participate: label_x_welcome_participate:
@ -1316,25 +1267,20 @@ en:
#end #end
label_welcome_participate_project: projects label_welcome_participate_project: projects
label_projects_feedback: responded to the project label_projects_feedback: responded to the project
label_projects_feedback_respond: Respond
label_projects_feedback_respond_success: Respond success label_projects_feedback_respond_success: Respond success
button_projects_feedback_respond: Respond
label_projects_feedback_respond_content: Please input your words
label_in_issues: in the issue
label_in_bids: in the call
label_in_users: in the user
label_user_create_project: has created label_user_create_project: has created
#added by bai #added by bai
label_identity: Identity
label_teacher: Teacher label_teacher: Teacher
label_student: Student label_student: Student
label_school_all: Schools
label_school_not_fount: Not found by your input query condition. label_school_not_fount: Not found by your input query condition.
label_other: Other label_other: Other
label_location: Location
#end #end
label_course: Course label_course: Course
label_course_new: New course label_course_new: New course
@ -1360,18 +1306,15 @@ en:
one: teachers one: teachers
other: teachers other: teachers
#add by men #add by men
label_brief_introduction: Personality words
label_technical_title: Title
label_technicl_title_professor: Professor
label_technicl_title_associate_professor: Associate professor
label_technicl_title_lecturer: Lecturer
label_technicl_title_teaching_assistant: Teaching assistant
label_enter_college: College Entrance label_enter_college: College Entrance
lable_enter_enterprise: Enterprise Entrance lable_enter_enterprise: Enterprise Entrance
label_homework_info: Status label_homework_info: Status
label_question_student: Feedback label_question_student: Feedback
label_student_response: Feedback label_student_response: Feedback
label_my_question: Please raise your questions here # label_my_question: Please raise your questions here
label_teacher_homework: "Teacher's name" label_teacher_homework: "Teacher's name"
label_course_homework: Corresponding courses label_course_homework: Corresponding courses
@ -1395,7 +1338,7 @@ en:
text_command: The password is required when applying a course, and it will be released by the teacher of. text_command: The password is required when applying a course, and it will be released by the teacher of.
label_enterprise_into: Enterprise Entrance label_enterprise_into: Enterprise Entrance
label_college_into: College Entrance label_college_into: College Entrance
label_user_course: Courses
label_new_course: Courses label_new_course: Courses
field_tea_name: Teacher field_tea_name: Teacher
label_course_college: College label_course_college: College
@ -1435,8 +1378,8 @@ en:
label_main_term: Term label_main_term: Term
label_teacher_work_unit: Position label_teacher_work_unit: Position
label_course_overview: Status label_course_overview: Status
label_course_file: File
label_stores_index: Resource search
label_course_news: News label_course_news: News
#wang #wang
label_contest_userresponse: Userresponse label_contest_userresponse: Userresponse
@ -1450,10 +1393,10 @@ en:
label_bids_task_list: Tasks list label_bids_task_list: Tasks list
label_join_course: join course label_join_course: join course
label_exit_course: exit course
label_new_join: Join label_new_join: Join
label_new_join_order: Please input the course order. label_new_join_order: Please input the course order.
label_homeworks_form_new_description: Release a task,the submit form of the task may be accessory or project,setting in the task form. label_homeworks_form_new_description: Release a task, the submit form of the task may be accessory or project, setting in the task form.
label_course_settings: Setting label_course_settings: Setting
field_homework_type: Submit form field_homework_type: Submit form
label_task_submit_form_accessory: Submitted as accessory label_task_submit_form_accessory: Submitted as accessory
@ -1468,14 +1411,11 @@ en:
label_assign_homework: assigned homewok label_assign_homework: assigned homewok
label_noawards: No awards label_noawards: No awards
label_requirement_enterprise: Requirements
label_requirement_enterprise_list: Requirements List label_requirement_enterprise_list: Requirements List
label_contest_innovate: Competition community
label_software_user: Users
label_course_practice: Courses
label_course_all: Teacher label_course_all: Teacher
label_teacher_all: Student label_teacher_all: Student
label_user_home: User Space
field_hidden_repo: code protected field_hidden_repo: code protected
label_newbie_faq: newbie FAQ label_newbie_faq: newbie FAQ
@ -1501,8 +1441,8 @@ en:
label_activity_time: publish date label_activity_time: publish date
label_your_course: your course label_your_course: your course
label_have_message : have a new message label_have_message: have a new message
:lable_not_receive_mail: Click here don't receive email form site lable_not_receive_mail: Click here don't receive email form site
#added by linchun as competition# #added by linchun as competition#
label_current_hot_contest: Latest Hot Competition label_current_hot_contest: Latest Hot Competition
@ -1510,211 +1450,9 @@ en:
label_issue_feedback_activities: Question&Feedback label_issue_feedback_activities: Question&Feedback
label_more_information: More... label_more_information: More...
label_release_time: Release-time label_release_time: Release-time
label_question_sponsor: Sponsor
label_final_reply: Final-reply
label_reply: Reply
label_weixin: WeiXin label_weixin: WeiXin
#
# Trustie个人主页
#
# Trustie个人主页>
# 动态栏
label_user_activity: "%{name} Activities"
label_user_all_activity: All activities
label_user_activity_myself: About me
label_user_all_respond: All replies
# 项目栏
label_project_unadd: "No project, go to creat it!"
label_project_un: "You haven't joined any project yet!"
label_has_watched_project: The projects of attention
label_project_take: The projects of participation
# 托管平台主页
# edit by meng
# 托管平台主页> 顶部菜单
field_homepage: Homepage
label_project_deposit: Projects
label_course_practice: Courses
label_forum_all: Forums
# label_school_all: Schools
label_contest_innovate: Competition community
label_software_user: Users
label_requirement_enterprise: Requirements
label_stores_index: Resource search
# 托管平台主页 > 搜索提示信息
welcome:
search:
information: "Please input the keywords!" # 搜索提示信息
select: # 下拉列表
project: project
course: course
user: user
userinfo:
nickname: nickname
showname: name
email: email
# 托管平台主页 > 下方托管平台链接
label_projects_management_platform: Projects-platform
label_courses_management_platform: Courses-platform
label_contests_management_platform: Competitions-platform
# 托管平台主页 > 底部承办单位
label_hosted_by: Organizer
label_hosted_by: National Key Laboratory for Parallel and Distributed Processing, NUDT
label_sponsor: Department of Computer Science and Technology, NUDT
label_co_organizer_NUDT: College of Computer, NUDT
label_co_organizer_EECS: Institute of Software, EECS
label_co_organizer_BHU: Beihang University School of Computer Science & Engineering
label_co_organizer_CAS: Institute of Software, CAS
label_co_organizer_InforS: InforSuite
label_rights_reserved: ©2007~2014
label_contact_us: Contact
# 英文版不需要显示国内许可证 ,需要页面做判断
# label_license: 湘ICP备09019772
# 项目托管平台
# 项目托管平台主页 > 主旨
label_welcome_trustie_project: Trustie online projects hosting platform
label_welcome_trustie_project_description: "Software for Chinese college students and practitioners to provide social-oriented project management, code hosting, resource sharing, cooperation and exchange."
# 项目托管平台主页 > 热门项目栏
lable_hot_projects: Hot Projects
label_project_new: New project
label_join_project: Join a project
label_private: private
label_project_member_amount: "%{count} members"
label_project_score_tips: "Considering all activities of the project, project's score reflects the activity level of project"
label_project_score: Score
# 项目托管平台主页 > 用户动态栏
lable_user_active: Recent Activities
user:
active:
published: released
uploaded: uploaded
updated: updated
unknow: Unknown content
field_user_active_news: ' news'
field_user_active_issue: ' issue'
field_user_active_attachment: ' attachment'
field_user_active_message: ' message'
field_user_active_reply: ' reply'
field_user_active_bid: ' work'
field_user_active_memo: ' memo'
field_user_active_document: ' document'
field_user_active_changeset: ' repository'
field_user_active_issue_note: ' issue-note'
field_updated_on: Updated on
field_time_ago: ago
field_active_reply: "Reply("
# 用户动态中event.title和event.description
# 通过act_as_event方法的option配置
# "#{o.tracker.name} ##{o.id} (#{o.status}): #{o.subject}"
# "缺陷 #1869 (已解决):subject"
# tracker.name和status在数据库中以中文字段形式存储
# 项目托管平台主页 > 贴吧动态栏
lable_bar_active: Recent Posts
label_my_question: My-question
label_my_feedback: My-feedback
label_updated_time: "Updated %{value} ago"
label_question_sponsor: Sponsor
label_final_reply: Last-reply
# 项目托管平台 > 新建项目
label_project_new_description: "A project can be used to do anything that requires distributed collaboration."
field_name: Name
field_description: Description
field_identifier: Identifier
text_length_between: "Length between %{min} and %{max} characters."
text_project_identifier_info: "Only lower case letters (a-z), numbers, dashes and underscores are allowed, must start with a lower case letter.<br />Once saved, the identifier cannot be changed."
field_is_public: Public
field_hidden_repo: code protected
button_create: Create
# 项目托管平台 > 加入项目
project:
join:
title: 快速进入项目通道
description: "只要持有项目的ID就可快速申请加入所在项目。项目页面搜索不到的私有项目只能从此通道进入哦"
id:
label: "Project ID:"
tips: "Project ID is the number within the project's url"
# 公共
label_apply_project: Apply Project
# 课程托管平台主页
# 课程托管平台主页 > 主旨
label_welcome_trustie_course: Trustie online courses practice platform
label_welcome_trustie_course_description: Teachers and Students for Chinese universities to provide social-oriented curriculum management, resource sharing, cooperation achieved, collaborative research.
# 课程托管平台主页 >
# 竞赛托管平台主页
# 竞赛托管平台主页 > 主旨
label_welcome_trustie_contest: Trustie online contests practice platform
label_welcome_trustie_contest_description: Software for Chinese college students and practitioners to provide social-oriented contest management, code hosting, resource sharing, cooperation and exchange.
# 竞赛托管平台主页 >
# edit by meng
# emailer translation
mail_issue_greetings: "Dear user , Greetings from Trustie"
mail_issue_footer: "Unsubscribe this message?"
mail_issue_title_userin: "in"
mail_issue_title_active: "has a new activity which relevants to you , please pay more attention to this!"
mail_issue_subject: "Title"
mail_issue_content: "Content"
mail_issue_sent_from: "From"
mail_issue_from_project: "project issue"
mail_issue_attachments: "Attachments"
mail_issue_reply: "Want reply"
#end
# modified by meng
# file_upload translation
label_file_upload: Resource files
label_file_upload_error_messages: "Upload error, please check your network environment, and refresh the page to upload."
button_confirm: Confirm
# shut down and restart course
label_course_closed: Close
label_course_reopen: Reopen
label_course_closed_tips: "Are you sure you want to reopen the course?"
# end
label_work_quantity: work label_work_quantity: work
label_contest_work: Competition work label_contest_work: Competition work
@ -1730,7 +1468,6 @@ en:
label_attendingcontestwork_deposit_project: Deposit project label_attendingcontestwork_deposit_project: Deposit project
label_attendingcontestwork_sorting_intimation: You can re-scoring, but just record the last scoring result! label_attendingcontestwork_sorting_intimation: You can re-scoring, but just record the last scoring result!
label_upload_files: Files-upload
label_upload_softwarepackage: Softwarepackage-upload label_upload_softwarepackage: Softwarepackage-upload
label_upload_cuttingphoto: Photo-upload label_upload_cuttingphoto: Photo-upload
label_system_platform: Platform label_system_platform: Platform
@ -1806,7 +1543,7 @@ en:
label_contest_notification: Notice label_contest_notification: Notice
lable_contest_user: Release person lable_contest_user: Release person
label_contest_innovate_community: Competition community
label_user_login_score_and_comment: You are not logged in, please log in and then score and comment the work! label_user_login_score_and_comment: You are not logged in, please log in and then score and comment the work!
label_user_login_notificationcomment: You are not logged in, please log in and then comment the notification! label_user_login_notificationcomment: You are not logged in, please log in and then comment the notification!
@ -1815,7 +1552,7 @@ en:
label_borad_project: Project-borad label_borad_project: Project-borad
label_update_time: Update time
label_project_notice: release the notice label_project_notice: release the notice
label_no_file_uploaded: No file uploaded label_no_file_uploaded: No file uploaded
label_forum_new: New forum label_forum_new: New forum
@ -1823,47 +1560,36 @@ en:
bale_edit_notice: Edit bale_edit_notice: Edit
label_user_grade: Individual score label_user_grade: Individual score
label_active_homework: homework
label_course_term: Semester label_course_term: Semester
label_comment_time: Comment time label_comment_time: Comment time
label_bidding_user_studentcode: Student ID
label_bidding_user_studentname: name label_bidding_user_studentname: name
# label_organizers: Organizer
# label_organizers_information: National Key Laboratory of Parallel and Distributed Processing, NUDT
# label_organizers_information_institute: Department of Computer Sciencer and Technology
# label_copyright: Copyright
# label_contact_us: Contact us
# label_record: 湘ICP备09019772
label_check_comment: Check comment label_check_comment: Check comment
label_notification: Notification label_notification: Notification
label_must_answer: Will answer label_must_answer: Will answer
label_poll_title: The questionnaire survey _ questionnaire page label_poll_title: The questionnaire survey _ questionnaire page
label_question_number: 'question %{question_number}:' label_question_number: 'question %{question_number}:'
label_complete_question: The answer has been completed label_complete_question: The answer has been completed
#end #end
# ajax异步验证 # ajax异步验证
modal_valid_passing: can be used. modal_valid_passing: can be used.
label_school_no_course: The school did not offer any courses, you can view other school curriculum
label_school_less_course: The school offers courses in less, you can view other school curriculum
label_file_not_found: Sorry, the file can't be downloaded now! label_file_not_found: Sorry, the file can't be downloaded now!
label_goto_homepage: Return to the home page label_goto_homepage: Return to the home page
label_trustie_team: The Trustie development team label_trustie_team: The Trustie development team
label_memos_max_length: The content of the post up to 65535 characters in length label_memos_max_length: The content of the post up to 65535 characters in length
label_forums_max_length: Post Bar describing the maximum length of 65535 characters label_forums_max_length: Post Bar describing the maximum length of 65535 characters
label_unknow_type: Unknow type label_unknow_type: Unknow type
label_score_less_than_zero: Score less than 0, revised to 0
review_assignments: Review assignments review_assignments: Review assignments
label_my_school: My school label_my_school: My school
label_all_schol: All school label_all_schol: All school
label_select_province: Please select the provinces label_select_province: Please select the provinces
label_search_conditions_not_null: The search conditions cannot be blank
label_attachment: attachment label_attachment: attachment
label_max_length: A maximum of 250 characters label_max_length: A maximum of 250 characters
@ -1876,3 +1602,10 @@ en:
label_submit_comments: Submit_comments label_submit_comments: Submit_comments
label_course_empty_select: You have not selected course label_course_empty_select: You have not selected course
label_enterprise_page_made: enterprise_page label_enterprise_page_made: enterprise_page
#api
label_recently_updated_notification: Recently updated notification
label_recently_updated_homework: Recently updated the homework
label_recently_updated_message: Recently updated the message
label_recently_updated_courseware: Recently updated the courseware
label_no_courses: You do not participate in any course, please search the curriculum, course, or create a course!

View File

@ -0,0 +1,3 @@
en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr

View File

@ -0,0 +1,6 @@
# Chinese (China) translations for Ruby on Rails
#
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr

View File

@ -2,3 +2,18 @@ en:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl) # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr direction: ltr
#
# 邮件模块
#
# 项目问题跟踪邮件
#
mail_issue_greetings: "Dear user , Greetings from Trustie"
mail_issue_footer: "Unsubscribe this message?"
mail_issue_title_userin: "in"
mail_issue_title_active: "has a new activity which relevants to you , please pay more attention to this!"
mail_issue_subject: "Title"
mail_issue_content: "Content"
mail_issue_sent_from: "From"
mail_issue_from_project: "project issue"
mail_issue_attachments: "Attachments"
mail_issue_reply: "Want reply"

Some files were not shown because too many files have changed in this diff Show More