Merge remote-tracking branch 'origin/szzh' into guange_dev

This commit is contained in:
guange 2015-03-13 11:30:25 +08:00
commit 08eae0e5eb
115 changed files with 2213 additions and 1443 deletions

View File

@ -40,6 +40,17 @@ module Mobile
{status: 0}
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

View File

@ -3,16 +3,23 @@
module Mobile
module Apis
class Upgrade < Grape::API
include ApplicationHelper
resource :upgrade do
desc "get update info"
params do
requires :platform, type: String, desc: '平台名android, ios'
end
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',
url: 'http://u06.shellinfo.cn/trustie/Trustie_Beta1.0.0_201412310917.apk',
desc: '更新了什么功能'
version: @current_version.version,
url: url,
desc: @current_version.description
}
end
end

View File

@ -1,9 +1,15 @@
module Mobile
module Entities
class CourseDynamic < Grape::Entity
include Redmine::I18n
def self.course_dynamic_expose(field)
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
course_dynamic_expose :type
@ -11,6 +17,8 @@ module Mobile
course_dynamic_expose :course_name
course_dynamic_expose :course_id
course_dynamic_expose :course_img_url
course_dynamic_expose :message
course_dynamic_expose :update_time
end
end
end

View File

@ -337,6 +337,40 @@ class AdminController < ApplicationController
end
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

View File

@ -177,6 +177,25 @@ class ApplicationController < ActionController::Base
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
def logout_user
if User.current.logged?

View File

@ -231,6 +231,8 @@ class AttachmentsController < ApplicationController
format.html { redirect_to_referer_or softapplications_path(@attachment.container) }
elsif !@attachment.container.nil? && @attachment.container.is_a?(Bid)
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
if @project.nil?
format.html { redirect_to_referer_or forum_memo_path(@attachment.container.forum, @attachment.container) }
@ -415,7 +417,7 @@ private
@attachment.container.board.course)
@course = @attachment.container.board.course
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
end
end

View File

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

View File

@ -17,6 +17,7 @@ class CoursesController < ApplicationController
menu_item l(:label_sort_by_influence), :only => :index
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 :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]

View File

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

View File

@ -6,7 +6,7 @@ class HomeworkAttachController < ApplicationController
###############################
before_filter :can_show_course,except: []
#判断当前角色权限时需先找到当前操作的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_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)
end
end
respond_to do |format|
format.html { redirect_to_settings_in_projects }
format.js { @members = members; @applied_members = applied_members; }
format.api {
@member = members.first
if @member.valid?
render :action => 'show', :status => :created, :location => membership_url(@member)
else
render_validation_errors(@member)
end
}
if params[:flag]
flash[:notice] = l(:label_invite_success)
respond_to do |format|
format.html { redirect_to invite_members_project_url(@project) }
end
else
respond_to do |format|
format.html { redirect_to_settings_in_projects }
format.js { @members = members; @applied_members = applied_members; }
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
elsif @course
course_info = []
@ -310,6 +317,7 @@ class MembersController < ApplicationController
end
def autocomplete
@flag = params[:flag] || false
respond_to do |format|
format.js
end

View File

@ -180,6 +180,7 @@ class ProjectsController < ApplicationController
@project = Project.new
@project.safe_attributes = params[:project]
@project.organization_id = params[:organization_id]
@project.user_id = User.current.id
if validate_parent_id && @project.save
@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
@ -333,30 +334,41 @@ class ProjectsController < ApplicationController
end
def send_mail_to_member
if !params[:mail].nil? && User.find_by_mail(params[:mail].to_s).nil?
if !params[:mail].blank? && User.find_by_mail(params[:mail].to_s).nil?
email = params[:mail]
Mailer.send_invite_in_project(email, @project, User.current).deliver
@is_zhuce =false
flash[:notice] = l(:notice_email_sent, :value => email)
else
@is_zhuce = true
end
respond_to do |format|
format.js
format.html{redirect_to invite_members_by_mail_project_url(@project)}
end
end
#发送邮件邀请新用户
def invite_members_by_mail
@is_zhuce =false
respond_to do |format|
format.html
format.js
if User.current.member_of?(@project) || User.current.admin?
@is_zhuce = false
respond_to do |format|
format.html
format.js
end
else
render_403
end
end
# 邀请Trustie注册用户
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
def edit

View File

@ -19,6 +19,7 @@ class UsersController < ApplicationController
layout :setting_layout
#Added by young
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 :user_information, :only => :info
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')
end
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 == "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 == "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_pages = Paginator.new @activity_count, pre_count, params['page']

View File

@ -28,7 +28,8 @@ class WelcomeController < ApplicationController
# 企业版定制: params[:project]为传过来的参数
unless params[:organization].nil?
@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") : []
# @cur_projects = Project.find(params[:organization])
# @organization = @cur_projects.enterprise_name

View File

@ -490,6 +490,15 @@ module ApplicationHelper
s.html_safe
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生成
def principals_check_box_tags_ex(name, principals)
s = ''
@ -1198,6 +1207,17 @@ module ApplicationHelper
html_safe
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)
{ 'Chinese简体中文 '=> 'zh', :English => :en}
end

View File

@ -351,10 +351,28 @@ module CoursesHelper
str
end
# added by nwb
# added by meng
# 课程time+term简写2014.春/2014.秋)国际化输出
def get_course_term course
str = ( course.try(:time).to_s << '.' << course.try(:term).to_s )
str[0..-4]
strterm = course.try(:term).to_s
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
def members_to_user_ids members

View File

@ -48,7 +48,7 @@ module FilesHelper
def courses_check_box_tags(name,courses,current_course,attachment)
s = ''
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/>"
end
end

View File

@ -23,15 +23,22 @@ module MembersHelper
principal_count = scope.count
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
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|
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')
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
# add by nwb
@ -71,4 +78,18 @@ module MembersHelper
s + content_tag('div', content_tag('ul', links), :class => 'applied_new')
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

View File

@ -283,6 +283,6 @@ module WatchersHelper
def exit_project_link(project)
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

View File

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

View File

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

View File

@ -131,7 +131,7 @@ class Project < ActiveRecord::Base
#ActiveModel::Dirty 这里有一个changed方法。对任何对象都可以用
after_save :update_inherited_members, :if => Proc.new {|project| project.inherit_members_changed?}
# 创建project之后默认创建一个board之后的board去掉了board的概念
after_create :create_board_sync
after_create :create_board_sync,:acts_as_forge_activities
before_destroy :delete_all_members
def remove_references_before_destroy
return if self.id.nil?
@ -1154,6 +1154,13 @@ class Project < ActiveRecord::Base
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

View File

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

View File

@ -344,27 +344,67 @@ class CoursesService
else
membership = @user.coursememberships.all(:conditions => Course.visible_condition(current_user))
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 }
result = []
membership.each do |mp|
course = mp.course
unless current_user.nil? || !(current_user.admin? || course.is_public == 1 || (course.is_public == 0 && current_user.member_of_course?(course)))
count,is_teacher = get_course_anonymous_evaluation current_user,course
if is_teacher
student_commit_number = count
else
need_anonymous_comments_count = count
latest_course_dynamics = []
latest_news = course.news.order("created_on desc").first
unless latest_news.nil?
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)}
end
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
news_count = course.news.count
message_count = course.journals_for_messages.count
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 1,:count => message_count}
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 2,:count => need_anonymous_comments_count}
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 3,:count => student_commit_number}
result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 4,:count => news_count}
#{: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
unless messages.count == 0
messages.sort!{|order,newer| newer.created_on <=> order.created_on}
end
latest_bid_message = messages.first
unless latest_bid_message.nil?
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)}
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
result.sort!{|order,newer| newer[:update_time] <=> order[:update_time]}
result
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}
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
def edit_user params

View File

@ -1,9 +1,20 @@
<h3><%= l(:label_mobile_version) %></h3>
<a href="javascript:void(0)" onclick="$('#new_version').slideToggle(400); ">发布新版本</a>
<div>
<form id="new_version" style="display: none">
发布新版本
</form>
<%= form_tag({:controller => 'admin', :action => 'create_version'},{:id => 'new_version',:style=>'display:none'}) do %>
<p style="margin-left:60px;padding-right: 20px;">
<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>
<br/>
<div>当前版本:</div>
@ -25,7 +36,10 @@
<% end %>
</tbody>
</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/>
<div>历史版本:</div>

View File

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

View File

@ -7,7 +7,7 @@
}
}
</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? %>
<div class="project_r_h">
<h2 class="project_h2"><%= l(:label_message_new) %></h2>

View File

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

View File

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

View File

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

View File

@ -1,38 +1,45 @@
<div class="project_r_h">
<h2 class="project_h2"><%=h @document.title %></h2>
<h2 class="project_h2"><%= l(:project_module_documents) %></h2>
</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">
<% 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><em><%#=h @document.category.name %><br />
<%= format_date @document.created_on %></em></p>
<div class="wiki">
<%= textilizable @document, :description, :attachments => @document.attachments %>
</div>
<div style="border-top:solid 1px #C6E9F1;"></div>
<h3><%= l(:label_attachment_plural) %></h3>
<%= link_to_attachments @document %>
<% 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 style="border-top:solid 1px #C6E9F1;"></div>
<h3><%= l(:label_attachment_plural) %></h3>
<%= link_to_attachments @document %>
<% 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>

View File

@ -37,7 +37,7 @@
:description_placeholder => l(:label_optional_description)
} %>
<!--<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">
<%= l(:label_no_file_uploaded)%>
</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_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>
<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} %>
</div>
<div id="relation_file_div" class="relation_file_div hidden">

View File

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

View File

@ -1,6 +1,6 @@
$(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 %>
<%= text_area_tag 'user_notes', "", :class => 'noline',
:style => "resize: none;", :rows => 4,
:placeholder => l(:label_projects_feedback_respond_content),
:placeholder => l(:label_feedback_respond_content),
:maxlength => 250 %>
<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_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 %>
<%= 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;"%>
<% end %>

View File

@ -25,7 +25,7 @@
:homework_id =>homework.id },
:remote => true, :confirm => l(:text_are_you_sure), :title => l(:button_delete)) %>
<% 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;"}
%>
</span>

View File

@ -11,7 +11,7 @@
<div class="recall_con">
<% id = 'project_respond_form_'+ reply.id.to_s %>
<%= link_to reply.user.name, user_path(reply.user) %>
回复
<%= l(:label_reply_to)%>
<% parent_jour = JournalsForMessage.find reply.m_reply_id %>
<% if show_name && parent_jour %>
<%= 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)) %>
<% end %>
<% 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;"} %>
<% end %> <!-- #{l(:label_reply_plural)} #{m_reply_id.user.name}: -->
</span>

View File

@ -42,7 +42,7 @@
<% ids = 'project_respond_form_'+ jour.id.to_s%>
<div class="ping_disfoot">
<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;"}
%>
</span>

View File

@ -65,7 +65,7 @@
</span>
<% ids = 'project_respond_form_'+ journal.id.to_s%>
<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;"}
%>
<% if journal.user==User.current|| User.current.admin? %>

View File

@ -2,7 +2,7 @@
<h2 class="project_h2">问题跟踪</h2>
</div>
<div class="problem_top">
<% if @project.enabled_modules.where("name = 'issue_tracking'").count > 0 %>
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
<span>
<% 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,

View File

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

View File

@ -62,7 +62,7 @@
$.fn.fix = function(options){
var defaults = {
float : 'right',
minStatue : false,
minStatue : true,
skin : 'blue',
durationTime : 1000
}
@ -107,7 +107,7 @@
$(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">
<head>
<title>意见反馈</title>
<title><%= l(:label_feedback) %></title>
</head>
<body style="height:auto" >
@ -161,15 +161,15 @@ function cookieget(n)
<div class="scrollsidebar" id="scrollsidebar" style="float: right">
<div class="side_content">
<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="custom_service">
<% get_memo %>
<%= form_for(@new_memo, :url => create_feedback_forum_path(@public_forum)) do |f| %>
<%= f.text_area :subject, :class => "opnionText",:placeholder => "有什么想说的,尽管来咆哮吧~~"%>
<%= f.hidden_field :content, :required => true ,:value=>'该贴来自用户反馈!'%>
<%= f.text_area :subject, :class => "opnionText", :placeholder => l(:label_feedback_tips) %>
<%= f.hidden_field :content, :required => true , :value => l(:label_feedback_value) %>
<%#= 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 %>
</div>
<div class="msgserver">
@ -180,7 +180,7 @@ function cookieget(n)
<div class="side_bottom"></div>
</div>
</div>
<div class="show_btn"><span>提交</span></div>
<div class="show_btn"><span><%= l(:label_submit)%></span></div>
</div>
<!-- ?ú?? ?á?? -->
<script type="text/javascript">

View File

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

View File

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

View File

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

View File

@ -29,7 +29,7 @@
<div class="top-content">
<table>
<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 rowspan="2" width="250px">
<div class="top-content-search">

View File

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

View File

@ -33,7 +33,7 @@
<div class="top-content">
<table>
<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 rowspan="2" width="250px">
<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="font_title_left">
<%= l(:label_project_overview) %>
<%= l(:label_overview) %>
</div>
<div style="padding-bottom: 8px">
<% if @contest.description.size>0 %>

View File

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

View File

@ -29,7 +29,7 @@
<div class="top-content">
<table>
<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 rowspan="2" width="250px">
<div class="top-content-search">
@ -39,8 +39,7 @@
var name = $.trim($("#name").val());
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").focus();
return false;
@ -51,12 +50,22 @@
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()
{
if(regexName()){$("#project_search_form").submit();}
}
function show_more_msg()
{$("#course_description").toggleClass("course_description_none");}
</script>
<%= 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" %>
<%= hidden_field_tag 'project_type', params[:project_type] %>
@ -78,17 +87,6 @@
</div>
<!-- 左边侧栏内容 -->
<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_info">
<div class="pr_info_logo fl mr10 mb5">
@ -103,67 +101,93 @@
</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? %>
<span class="img_private ">私有</span>
<span class="img_private"><%= l(:label_private)%></span>
<% end %>
</div>
<div class="cl"></div>
<div class="pr_info_score">
<% if @project.project_type == 0 %>
<%= l(:label_project_grade)%> :
<%= link_to(format("%.2f" ,project_scores(@project) ).to_i, {:controller => 'projects',
:action => 'show_projects_score',
:remote => true,
:id => @project.id },
:style => "color: #EC6300;")%>
<%= l(:label_project_score)%> :
<%= link_to(format("%.2f" ,project_scores(@project) ).to_i, {:controller => 'projects',
:action => 'show_projects_score',
:remote => true,
:id => @project.id },
:style => "color: #EC6300;") %>
<% end %>
</div>
<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>
<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>
<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>
<%= l(:label_member) %><span class="info_foot_num" >
<%= link_to "#{@project.members.count}", project_member_path(@project), :style => "color:#3CA5C6;font-weight:bold" %></span>
<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><!--项目信息 end-->
<div class="subNavBox">
<% 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;">
<li><%= link_to "发送邮件邀请新用户", :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_new_user), :controller=>"projects", :action=>"invite_members_by_mail", :id => @project %></li>
<li><%= link_to l(:label_invite_trustie_user), :controller=>"projects", :action=>"invite_members", :id => @project %></li>
</ul>
<% end %>
<div class="subNav">
<%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :style => "color:#3CA5C6" %>
<% unless ForgeActivity.where("project_id = ?", @project.id).count == 0 %>
<span class="subnav_num">(<%= ForgeActivity.where("project_id = ?", @project.id).count %>)</span>
<% end %>
</div>
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
<div class="subNav">
<%= link_to l(:label_issue_tracking), project_issues_path(@project), :style => "color:#3CA5C6" %><span class="subnav_num">(<%= @project.issues.count %>)</span>
<span>
<% if User.current.logged? && 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>
<% 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;" %>
<%= link_to l(:label_issue_tracking), project_issues_path(@project), :style => "color:#3CA5C6" %>
<% unless @project.issues.count == 0 %>
<span class="subnav_num">(<%= @project.issues.count %>)</span><span>
<% end %>
<% if User.current.member_of?(@project) %>
<%= 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>
<% 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" %>
<% unless @project.boards.first.topics.count == 0 %>
<span class="subnav_num">(<%= @project.boards.first.topics.count %>)</span>
<% end %>
<% 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" %>
<% unless @project.attachments.count == 0 %>
<span class="subnav_num">(<%= @project.attachments.count %>)</span>
<% end %>
<% 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" %>
<% unless @project.repositories.count == 0 %>
<span class="subnav_num">(<%= @project.repositories.count %>)</span>
<% end %>
<%# 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>
<ul class="navContent" style="padding-left: 0px">
@ -171,14 +195,16 @@
</ul>
</div><!--项目侧导航 end-->
<div class="cl"></div>
<!-- 项目描述 -->
<div class="project_intro">
<h4 class="project_h4">项目简介:</h4><%= @project.description %>
<div class="lg-foot">
展开更多信息 <span class="g-arr-down"><img src="/images/new_project/jiantou.jpg" width="12" height="6" /></span>
<div id="course_description" class="course_description">
<h4 ><%= l(:label_project_overview) %></h4><%= @project.description %>
</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">
<h4 class="project_h4">标签:</h4>
<h4 class="project_h4"><%= l(:label_tag)%>:</h4>
<div class="tag_h" >
<div class="user_tags">
<div id="tags">

View File

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

View File

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

View File

@ -8,7 +8,7 @@
<div class="top-content">
<table>
<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 rowspan="2" width="250px">
<div class="top-content-search">
@ -17,7 +17,7 @@
</tr>
<tr>
<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>
</table>
</div>

View File

@ -64,7 +64,7 @@
$("#my_account_form").submit();
}
else {
parent.alert("姓氏和名字不能为空");
parent.alert("<%= l(:label_firstname_lastname_empty)%>");
}
}
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>
<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>

View File

@ -19,7 +19,7 @@
<div>
<%= 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>
<% end %>
<%= call_hook(:view_projects_show_right, :project => @project) %>
@ -47,7 +47,7 @@
</li> <% end -%>
</ul>
<% 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>

View File

@ -2,12 +2,12 @@
<%= text_area_tag 'project_respond', "",
:class => 'noline', :required => true,
:style => "resize: none;", :rows => 3,
:placeholder => l(:label_projects_feedback_respond_content),
:placeholder => l(:label_feedback_respond_content),
:maxlength => 250 %>
<%= 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_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%>

View File

@ -4,27 +4,45 @@
<% end %>
</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>
<% unless @project.enabled_modules.where("name = 'wiki'").empty? %>
<%= link_to l(:project_module_wiki), project_wiki_path(@project) %>
<% end %>
</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} %>
<% end %>
</li>
<li>
<% unless @project.enabled_modules.where("name = 'calendar'").empty? %>
<%= link_to l(:project_module_calendar),project_calendar_path(@project) %>
<% end %>
</li>
<li>
<% unless @project.enabled_modules.where("name = 'gantt'").empty? %>
<%= link_to l(:project_module_gantt) ,project_gantt_path(@project) %>
<% end %>
</li>
<li>
<% unless @project.enabled_modules.where("name = 'documents'").empty? %>
<%= link_to l(:project_module_documents), project_documents_path(@project) %>
<% end %>
</li>
<li>
<%= link_to l(:label_roadmap) ,project_roadmap_path(@project) %>
</li>
<li>
<%= link_to l(:label_project_tool_response) ,project_feedback_path(@project)%>
</li>
<li>
<% unless @project.enabled_modules.where("name = 'dts'").empty? %>
<%= link_to l(:label_module_share) ,share_show_path(@project) %>
<% end %>
</li>

View File

@ -1,7 +1,8 @@
<div class="project_r_h">
<h2 class="project_h2">邀请加入</h2>
</div>
<%= error_messages_for 'member' %>
<%#= render_flash_messages %>
<%
roles = Role.givable.all
if @project.project_type == Project::ProjectType_course
@ -14,36 +15,46 @@
<div style="margin-left: 30px" >
<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="box_main">
<h3 class="box_h3">邀请Trustie注册用户</h3>
<% 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">
<%= label_tag "principal_search", l(:label_principal_search) %>
<%= text_field_tag 'principal_search', nil %>
<%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %>
<div id="principals_for_new_member">
<%= render_project_members(@project) %>
</div>
<div class="cl"></div>
<div id="principals_for_new_member">
<%= render_principals_for_new_members(@project) %>
</div>
<p style="padding-top: 5px">
<%= l(:label_role_plural) %>:
<% roles.each do |role| %>
<label>
<%= check_box_tag 'membership[role_ids][]', role.id %>
<%= h role %>
</label>
<ul class="rolebox">
<li class="fl mr5">
<%= l(:label_role_plural) %>:
</li>
<% roles.each do |role| %>
<li class="fl mr5">
<%= check_box_tag 'membership[role_ids][]', role.id %>
<%= h role %>
</li>
<% 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 %>
</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 %>
</div>
</div>
</div>
</div>

View File

@ -1,5 +1,29 @@
<script>
function verifyAddress() {
var email = $('#mail').val();
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (email == "" || filter.test(email)) {
$("#valid_email").html("");
}
else
{
$("#valid_email").html("您所填写的电子邮件格式不正确");
}
}
// if (filter.test(email)&& !(email.value == null)) return true;
// else
// {
// document.getElementById('valid_email').innerHTML = "您所填写的电子邮件格式不正确";
// document.getElementById('valid_email').style.color = "#FF0000";
// return false;
// }
//
// }
</script>
<div class="project_r_h">
<h2 class="project_h2">邀请加入</h2>
<h2 class="project_h2"><%= l(:label_invite_join)%></h2>
</div>
<div class="floatbox" style="margin:130px;">
<div >
@ -7,18 +31,22 @@
</div>
<div class="cl"></div>
<div class="box_main">
<h3 class="box_h3">发送邮件邀请新用户</h3>
<h3 class="box_h3"><%= l(:label_invite_new_user)%></h3>
<p class="box_p">
输入好友邮箱地址Trustie帮您免费发送
<%= l(:label_invite_email_tips)%>
</p>
<div id="is_registed">
<%= render :partial => 'regested', locals: { :isregisted => false} %>
</div>
<%= form_tag('send_mail_to_member', :controller => 'projects',:action => 'send_mail_to_member', method: 'get',:remote=>true) do %>
<%= text_field_tag 'mail', '邮箱', :class => "fb_item fl" %>
<div class="cl"></div>
<div class="cl"></div>
<%= submit_tag '免费发送', :style => "display:block; width:80px; text-align:center; color:#fff; height:26px; padding-top:3px; margin-bottom:10px;" %>
<%= form_tag('send_mail_to_member', :controller => 'projects',:action => 'send_mail_to_member', method: 'get') do %>
<span id="valid_email" style="color: #FF0000;"></span>
<%= text_field_tag 'mail', '', :class => "fb_item fl", :placeholder => l(:label_input_email), :onblur => "verifyAddress();" %>
<div class="cl"></div>
<div class="cl"></div>
<a href="#" class="btn_free" onclick="$(this).parent().submit();">
<%= l(:label_send_email)%>
</a>
<%#= submit_tag '免费发送', :style => "display:block; width:80px; text-align:center; color:#fff; height:26px; padding-top:3px; margin-bottom:10px;" %>
<% end %>
</div>
</div>

View File

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

View File

@ -21,7 +21,37 @@
<div class="scroll">
<% unless @events_pages.empty? %>
<% @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? %>
<% 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;">
@ -180,4 +210,4 @@
</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;">
<%= 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;
<%= submit_tag l(:label_search), :class => "enterprise"%>
<% 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>

View File

@ -2,19 +2,31 @@
<%= render :partial => "tags/tag_name",:locals => {:obj => obj,:non_list_all => false ,:object_flag => object_flag} %>
</div>
<% 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 %>
<div id="put-tag-form" style="display: none;text-align: center">
<%= form_for "tag_for_save",:remote=>true,:url=>tag_path,
:update => "tags_show",
: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,
:maxlength => Setting.tags_max_length,
:minlength=>Setting.tags_min_length %>
<%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%>
<%= 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>
</td>
<%= 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 %>
</div>

View File

@ -9,18 +9,35 @@
<tr>
<td class="r1" style="word-break: break-all;word-wrap: break-word;">
<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;">
<%= 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>
</div>
<strong><%= l(:field_description) %></strong>:&nbsp;&nbsp;<%= file.description %>
<div class="c9 gray-color"> <%= l('attachment.category')%><%=result_come_from file%> </div>
<strong>
<%= 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">
<%= l('attachment.download_num')%><%= file.downloads%>|
<%= l('attachment.size')%><%= number_to_human_size(file.filesize) %>|
<%= l('attachment.sharer')%><a class="gray" ><%= link_to file.author, user_path(file.author), target: "_blank" unless file.author.blank? %></a>|
<%= l('attachment.upload_time')%><%= format_time(file.created_on) %>
<%= l('label_attachment_download_num')%>
<%= file.downloads%>|
<%= l('label_attachment_size')%>
<%= 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>
<div style="display: none"></div>
</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; 帖子被一级会员顶的次数 * 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; 帖子被三级会员顶的次数 * 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; 帖子被二级会员踩的次数 * (-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; 技术得分 = <%= 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('userscore.skill.tramples')%> * (-2) = <%= option_num.tread %> * (-2) = <%= option_num.tread * (-2) %></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; <%= l('userscore.skill.like.level2')%> * 6 = <%= option_num.praise_by_two %> * 6 = <%= option_num.praise_by_two * 6 %></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; <%= l('userscore.skill.dislike.level1')%> * (-2) = <%= option_num.tread_by_one %> * (-2) = <%= option_num.tread_by_one * (-2) %></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; <%= l('userscore.skill.dislike.level3')%> * (-6) = <%= option_num.tread_by_three %> * (-6) = <%= option_num.tread_by_three * (-6) %></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 style="float: right; padding-left: 8px">
<%= l(:label_course_term) %>
: <%= @course.time %><%= @course.term %>
: <%= @course.time %><%= get_course_term_locales @course %>
</span>
<% end %>
</td>

View File

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

View File

@ -2,8 +2,8 @@
<div class="menu">
<%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if user == User.current %>
<ul>
<li mode='doing' class="on">进行中</li>
<li mode='end'>已完结</li>
<li mode='doing' class="on"><%= l('user.courses.doing')%></li>
<li mode='end'><%= l('user.courses.done')%></li>
</ul>
</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; 提交文档次数 * 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; 更新缺陷完成度次数 * 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; 项目贡献得分 = <%= 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('userscore.active.commit.codes')%> * 4 = <%= option_num.changeset %> * 4 = <%= option_num.changeset * 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; <%= l('userscore.active.commit.attachments')%> * 4 = <%= option_num.attachment %> * 4 = <%= option_num.attachment * 4 %></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; <%= l('userscore.active.release_issues')%> * 4 = <%= option_num.post_issue %> * 4 = <%= option_num.post_issue * 4 %></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">
<%= link_to "#{l(:label_course_new)}", new_course_path, class: 'icon icon-add' if @user == User.current %>
<ul>
<li mode='doing' class="on"><%= l('user.courses.doing')%></li>
<li mode='end'><%= l('user.courses.done')%></li>
<li mode='doing' class="on"><%= l(:label_course_doing)%></li>
<li mode='end'><%= l(:label_course_done)%></li>
</ul>
</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; 影响力得分 = <%= 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; <%= 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; 对缺陷留言数量 * 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; 对留言的回复数量 * 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; 协同得分 = <%= 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('userscore.collaboration.memos')%> * 2 = <%= option_num.memo %> * 2 = <%= option_num.memo * 2 %></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; <%= l('userscore.collaboration.issue_status')%> * 1 = <%= option_num.issues_status %> * 1= <%= option_num.issues_status * 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; <%= l('userscore.collaboration.reply_for_memos')%> * 1 = <%= option_num.replay_for_memo %> * 1 = <%= option_num.replay_for_memo * 1 %></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">
<span style="color: #000; font-weight: bold;">
<%= l(:label_user_activity, :value => @user.name) %>
<%= l(:label_user_activities, :name => @user.name) %>
</span>
<ul><%#链接绑定在页面最下方的jQuery%>
<li mode='all' class="<%= "on" if @state.eql?(0) %>">
@ -63,16 +63,37 @@
<%= link_to("#{l(:label_i)}", user_path(e.user_id)) %>
</strong>
&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 %>
<strong>
<%= link_to("#{e.user.name}", user_path(e.user_id)) %>
</strong>
<% end %>
<span class="font_lighter">
<% if User.current.language == "zh" %>
<span class="font_lighter">
<%= l(:label_have_feedback) %>
<%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %>
<%= 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>
</tr>
<tr>
@ -91,7 +112,7 @@
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<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>
</div>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
@ -155,7 +176,7 @@
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<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>
</div>
<!--<div style="display: inline-block; float: right; margin-top: 0px">-->
@ -216,7 +237,7 @@
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<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>
</div>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
@ -333,7 +354,7 @@
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<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>
</div>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
@ -372,7 +393,7 @@
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<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>
</div>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
@ -417,7 +438,7 @@
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<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>
</div>
<div style="display: inline-block; float: right; margin-top: 0px">
@ -457,7 +478,7 @@
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<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>
</div>
<div style="display: inline-block; float: right; margin-top: 0px">
@ -493,7 +514,7 @@
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<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>
</div>
<div style="display: inline-block; float: right; margin-top: 0px">
@ -548,7 +569,7 @@
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<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>
</div>
</tr>
@ -569,7 +590,7 @@
</div>
<% else %> <!-- < %# unless @activity.empty? %> -->
<% if @user == User.current %>
<%= l(:label_user_activities) %>
<%= l(:label_user_activities_no) %>
<% else %>
<p class="font_description">
<%= l(:label_user_activities_other) %>
@ -596,7 +617,7 @@
<% elsif e.jour_type == 'User' %>
<%= l(:label_in_users) %><%= link_to(e.jour.firstname, feedback_path(e.jour)) %>&nbsp;<%= l(:label_quote_my_words) %>
<% 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 %>
<% else %>
<%= 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">
<tr>
<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>
<td colspan="2" width="580" style="word-break:break-all;word-wrap: break-word;">

View File

@ -1,4 +1,7 @@
<!--modified by young-->
<div class="project_r_h">
<h2 class="project_h2"><%= l(:label_roadmap) %></h2>
</div>
<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) %>
</div>

View File

@ -1,4 +1,7 @@
<!--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;">
<%= 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,

View File

@ -1,8 +1,8 @@
<div >
<%= 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;
<%= submit_tag l(:label_search), :class => "enterprise"%>
<% 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>

View File

@ -133,7 +133,24 @@
</div>
<div class="welcome_left" id="welcome_left">
<% 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 %>
</div>

View File

@ -56,12 +56,24 @@
</span>
<% unless @course_page.nil? %>
<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>
<% if @school_id.nil? and (User.current.user_extensions.nil? || User.current.user_extensions.school.nil?) %>
<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>
<% else %>
<% if @school_id == "0" %>

View File

@ -29,5 +29,5 @@
</p>
<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>

View File

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

View File

@ -14,7 +14,7 @@
<div class="recall_con">
<% id = 'project_respond_form_'+ reply.id.to_s %>
<%= link_to reply.user.name, user_path(reply.user) %>
回复
<%= l(:label_reply_to)%>
<% if show_name %>
<%= link_to parent_jour.user.name, user_path(parent_jour.user) %>
<% else %>
@ -36,7 +36,7 @@
:remote => true, :confirm => l(:text_are_you_sure), :method => 'delete', :class => "delete", :title => l(:button_delete)) %>
<% end %>
<% 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;"} %>
<% end %> <!-- #{l(:label_reply_plural)} #{m_reply_id.user.name}: -->
</span>

View File

@ -51,7 +51,7 @@ function checkMaxLength() {
<% ids = 'project_respond_form_'+ journal.id.to_s%>
<span>
<% 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;"}
%>
<% end %>

View File

@ -47,15 +47,15 @@
</div>
<% 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,
:placeholder => "#{l(:label_leave_a_message)}",
:style => "resize: none; width: 98%",
:class => 'noline'%>
<% end %>
<%# end %>
<%= 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;"%>
<% else %>
<%else %>
<div style="font-size: 14px;margin:10px;">
<%= l(:label_user_login_tips) %>
<%= link_to l(:label_user_login_new), signin_path %>

View File

@ -1,14 +1,14 @@
<%= form_tag(words_create_reply_path, :remote => true) do %>
<%= text_area_tag 'user_notes', "", :class => 'noline',
:style => "resize: none;", :rows => 4,
:placeholder => l(:label_projects_feedback_respond_content),
:placeholder => l(:label_feedback_respond_content),
:maxlength => 250 %>
<%= 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_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 %>
<%= submit_tag l(:button_projects_feedback_respond), :name => nil ,
<%= submit_tag l(:button_feedback_respond), :name => nil ,
:class => "enterprise",
:style => "float: right; margin-top: 1px; margin-right: 4px;"%>

View File

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

View File

@ -31,13 +31,13 @@ en:
#
lable_user_name: Username
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"
button_login: Login
# account_controller中判断用户名或密码输入有误的提示信息
notice_account_invalid_creditentials: "Invalid user or password."
# 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_email_valid: E-mail activation
notice_email_register_time: "Please click on the link in the email to continue to complete the registration within 24 hours"
label_regiter_account: Sign up for Trustie
label_email_valid: Email verification
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."
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."

View File

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

View File

@ -155,12 +155,20 @@ en:
actionview_instancetag_blank_option: Please select
#
# Trustie公共标签
#
#
#
label_user: User
label_project: Project
label_issue: Issue
label_requirement: Calls
label_forum: Forum
label_contest: Contest
label_issue_plural: Issues Tracking
label_project_plural: Projects
@ -172,7 +180,21 @@ en:
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按钮类
#
@ -184,9 +206,13 @@ en:
button_cancel: Cancel
label_submit: Submit
button_project_tags_add: Add
label_more: More
label_more: "More>>"
button_download: Download
button_delete: Delete
#
# Trustie上传头像模块
#
@ -194,7 +220,6 @@ en:
#
button_upload_photo: Upload photo
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_pic_type: "Only supports the following image formats:"
@ -207,7 +232,7 @@ en:
label_tag: Tag
label_tags_no: no tags now
label_more_tags: More
label_add_tag: '+ Add tags'
label_add_tag: "+ Add tags"
label_tags_count: "The total number of tags"
@ -251,14 +276,98 @@ en:
sharer: "Sharer"
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
#
#
#
# 日志
#
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,6 +1,3 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
@ -166,18 +163,39 @@ zh:
general_first_day_of_week: '7'
actionview_instancetag_blank_option: 请选择
#
# Trustie公共标签
#
#
#
label_user: 用户
label_project: 项目
label_issue: 问题
label_requirement: 需求
label_forum: 公共贴吧
label_contest: 竞赛
field_description: 描述
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按钮类
#
@ -189,9 +207,12 @@ zh:
button_cancel: 取消
label_submit: 提交
button_project_tags_add: 增加
label_more: 更多>>
label_more: "更多>>"
button_download: 下载
button_more: 更多
button_delete: 删除
#
# Trustie上传头像模块
#
@ -199,7 +220,6 @@ zh:
#
button_upload_photo: 上传图片
button_delete_file: 删除
text_are_you_sure: 您确定要删除吗?
error_attachment_too_big: 该文件无法上传。超过文件大小限制 (%{max_size})
error_pic_type: "仅支持如下图片格式:"
@ -263,5 +283,105 @@ zh:
sharer: "共享者:"
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:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
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:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
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)
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_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_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."
@ -102,7 +102,6 @@ en:
field_user: User
field_principal: Principal
field_role: Role
field_homepage: Homepage
field_parent: Subproject of
field_is_in_roadmap: Issues displayed in roadmap
field_admin: Administrator
@ -332,15 +331,8 @@ en:
project_module_issue_tracking: Issue tracking
project_module_time_tracking: Time tracking
project_module_news: News
project_module_documents: Documents
project_module_files: Files
project_module_wiki: Wiki
project_module_repository: Repository
project_module_boards: Forums
project_module_calendar: Calendar
project_module_gantt: Gantt
project_module_boards: Forums
# edit by meng
lable_hot_course: Hot Courses
label_course_join_student: Join a course
@ -354,7 +346,7 @@ en:
label_user_for_project_grade: Score
label_relation_files: Select an existing resource
# Personal signature tips
label_my_brief_introduction: How are feeling today? Leave your footprints ~
# create course and course info
@ -378,27 +370,21 @@ en:
label_student_score: Student's score
label_without_score: No evaluated
label_homework_description: Description
label_responses: Messages
lable_has_commit_homework: You have submitted your work
label_user_create_project_homework: created the task
label_commit_limit: Expired but can submit your work
# steam the student
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_new: New user
label_user_anonymous: Anonymous
label_activity_project: 'Project: ' #added by bai
label_user_activity: "%{value}'s activities"
label_project_plural: Projects
label_project_deposit: Projects
label_first_page_made: Homepage customization
label_project_first_page: Project hosting platform page
label_course_first_page: Practice teaching platform of home page
@ -445,7 +431,6 @@ en:
label_role_non_member: Non member
label_member: Members
label_member_new: New member
label_member_plural: Members
label_tracker: Tracker
label_tracker_plural: Trackers
label_tracker_new: New tracker
@ -454,34 +439,29 @@ en:
label_issue_status_plural: Issue statuses
label_issue_status_new: New status
label_issue_category: Issue category
label_issue_category_plural: Issue categories
label_issue_category_new: New category
label_custom_field: Custom field
label_custom_field_plural: Custom fields
label_custom_field_new: New custom field
label_enumerations: Enumerations
label_enumeration_new: New value
label_information: Information
label_information_plural: Information
label_please_login: Please log in
label_home: Home
label_my_page: My page
label_my_message: Msgs
label_my_projects: My projects
label_my_page_block: My page block
label_administration: Administration
label_login: Login
# end
label_help: Help
label_last_login: Last connection
label_registered_on: Registered on
label_activity: Activities
label_overall_activity: Overall activity
label_user_activity: "%{value}'s activity"
label_new: New
label_new_user: registered a new account
label_logged_as: Logged in as
label_environment: Environment
label_authentication: Authentication
@ -522,7 +502,6 @@ en:
label_overview: Activities
label_version: Version
label_version_new: New version
label_version_plural: Versions
label_close_versions: Close completed versions
label_confirmation: Confirmation
label_export_to: 'Also available in:'
@ -622,7 +601,7 @@ en:
label_repository_no: Have no repository
label_repository_new_repos: New repository
#end
label_repository_plural: Repositories
label_browse: Browse
label_branch: Branch
label_revision: Revision
@ -647,7 +626,6 @@ en:
label_roadmap_due_in: "Due in %{value}"
label_roadmap_overdue: "%{value} late"
label_roadmap_no_issues: No issues for this version
label_search: Search
label_result_plural: Results
label_all_words: All words
label_wiki: Wiki
@ -714,7 +692,7 @@ en:
label_message_last: Last message
label_message_new: New message
label_message_posted: Message added
label_reply_plural: Replies
label_send_information: Send account information to the user
label_year: Year
label_month: Month
@ -727,7 +705,6 @@ en:
label_feeds_access_key: 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_module_plural: Modules
label_added_time_by: "Added by %{author} %{age} ago"
label_updated_time_by: "Updated by %{author} %{age} ago"
label_jump_to_a_project: Jump to a project...
@ -826,7 +803,7 @@ en:
button_uncheck_all: Uncheck all
button_collapse_all: Collapse all
button_expand_all: Expand all
button_delete: Delete
button_create_and_continue: Create and continue
button_test: Test
button_edit: Edit
@ -983,7 +960,6 @@ en:
enumeration_issue_priorities: Issue priorities
enumeration_doc_categories: Document categories
enumeration_activities: Activities
enumeration_system_activity: System Activity
description_filter: Filter
description_search: Searchfield
@ -1030,27 +1006,13 @@ en:
#huang
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_watchered: "Followed by" # huang添加的
label_user_newfeedback: "Messages" ## huang添加的 # modified by bai
label_user_login: "Last login:"
label_user_mail: "E-mail:"
label_user_joinin: "Join date:"
label_user_activities: "You have no activities,come and join us!"
label_user_activities_other: The user has no activities now
label_project_overview: "Overview"
label_overview: "Overview"
label_project_tool: "Tool"
label_project_issues: "Issues"
label_project_newother: "See other comments"
@ -1069,21 +1031,21 @@ en:
label_unapply_project: Unsubscribe
#fq
button_leave_meassge: Submit
button_clear_meassge: Reset
label_leave_message_to: leave %{name} a message
label_leave_message: Message content
label_message: message board
field_add: Add before %{time}
button_more: More
label_user_response: Feedback # modified by bai
label_bidding_project: projects
button_bidding: I will participate in it
label_new_call: New call
label_user_information: My informations
#Customer addedAdded by nie
label_create_time: Created time
label_current_contributors: current contributors
#modify by men
label_x_current_contributors:
@ -1112,10 +1074,7 @@ en:
label_member_since: joined
label_contribute_to: Participates %{project_count} projects
#modify by men
label_x_contribute_to:
zero: Participates %{count} project
one: Participates %{count} project
other: Participates %{count} projects
#end
label_total_commit: Totally %{total_commit} commits # modified by bai
#modify by men
@ -1170,11 +1129,11 @@ en:
label_leave_me_message: left a message to me
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_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_praise: praise
label_cancel_praise: cancel praise
@ -1199,19 +1158,19 @@ en:
#end
label_me: me
label_my: my
label_i: I
label_join_bidding: joined the bidding
label_bidding_user: Bidding user
label_bidding_reason: Bidding reason
label_username: username
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_goto: Go to>>
label_join: join Trustie
label_repository_new: link to existing SVN 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_project_no_activity: The project has no activities now
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_repository_name: Repository name
@ -1240,9 +1199,7 @@ en:
label_welcome_my_respond: Please leave your comments and suggestions here
label_no_current_fans: The user has no fans now
label_no_current_watchers: The user hasn't watched others
label_project_tool_response: Response
label_course_feedback: Feedback
label_active_call: call
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_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_user_login_tips: You havn't logged in,for leaving message please login first
label_user_login_new: login
label_project_sort: the way of sorting
#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
label_bids_published: published
label_bids_published_ago: ago
# label_welcome_trustie: Trustie
# label_welcome_trustie_project: Online projects hosting 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_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_bid_respond_quote: Respond
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
#modify by men
label_x_welcome_participate:
@ -1316,25 +1267,20 @@ en:
#end
label_welcome_participate_project: projects
label_projects_feedback: responded to the project
label_projects_feedback_respond: Respond
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
#added by bai
label_identity: Identity
label_teacher: Teacher
label_student: Student
label_school_all: Schools
label_school_not_fount: Not found by your input query condition.
label_other: Other
label_location: Location
#end
label_course: Course
label_course_new: New course
@ -1360,18 +1306,15 @@ en:
one: teachers
other: teachers
#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
lable_enter_enterprise: Enterprise Entrance
label_homework_info: Status
label_question_student: 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_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.
label_enterprise_into: Enterprise Entrance
label_college_into: College Entrance
label_user_course: Courses
label_new_course: Courses
field_tea_name: Teacher
label_course_college: College
@ -1435,8 +1378,8 @@ en:
label_main_term: Term
label_teacher_work_unit: Position
label_course_overview: Status
label_course_file: File
label_stores_index: Resource search
label_course_news: News
#wang
label_contest_userresponse: Userresponse
@ -1450,10 +1393,10 @@ en:
label_bids_task_list: Tasks list
label_join_course: join course
label_exit_course: exit course
label_new_join: Join
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
field_homework_type: Submit form
label_task_submit_form_accessory: Submitted as accessory
@ -1468,14 +1411,11 @@ en:
label_assign_homework: assigned homewok
label_noawards: No awards
label_requirement_enterprise: Requirements
label_requirement_enterprise_list: Requirements List
label_contest_innovate: Competition community
label_software_user: Users
label_course_practice: Courses
label_course_all: Teacher
label_teacher_all: Student
label_user_home: User Space
field_hidden_repo: code protected
label_newbie_faq: newbie FAQ
@ -1501,8 +1441,8 @@ en:
label_activity_time: publish date
label_your_course: your course
label_have_message : have a new message
:lable_not_receive_mail: Click here don't receive email form site
label_have_message: have a new message
lable_not_receive_mail: Click here don't receive email form site
#added by linchun as competition#
label_current_hot_contest: Latest Hot Competition
@ -1510,211 +1450,9 @@ en:
label_issue_feedback_activities: Question&Feedback
label_more_information: More...
label_release_time: Release-time
label_question_sponsor: Sponsor
label_final_reply: Final-reply
label_reply: Reply
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_contest_work: Competition work
@ -1730,7 +1468,6 @@ en:
label_attendingcontestwork_deposit_project: Deposit project
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_cuttingphoto: Photo-upload
label_system_platform: Platform
@ -1806,7 +1543,7 @@ en:
label_contest_notification: Notice
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_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_update_time: Update time
label_project_notice: release the notice
label_no_file_uploaded: No file uploaded
label_forum_new: New forum
@ -1823,47 +1560,36 @@ en:
bale_edit_notice: Edit
label_user_grade: Individual score
label_active_homework: homework
label_course_term: Semester
label_comment_time: Comment time
label_bidding_user_studentcode: Student ID
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_notification: Notification
label_must_answer: Will answer
label_poll_title: The questionnaire survey _ questionnaire page
label_question_number: 'question %{question_number}:'
label_complete_question: The answer has been completed
#end
#end
# ajax异步验证
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_goto_homepage: Return to the home page
label_trustie_team: The Trustie development team
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_unknow_type: Unknow type
label_score_less_than_zero: Score less than 0, revised to 0
review_assignments: Review assignments
label_my_school: My school
label_all_schol: All school
label_select_province: Please select the provinces
label_search_conditions_not_null: The search conditions cannot be blank
label_attachment: attachment
label_max_length: A maximum of 250 characters
@ -1876,3 +1602,10 @@ en:
label_submit_comments: Submit_comments
label_course_empty_select: You have not selected course
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)
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