Merge branch 'szzh' of http://repository.trustie.net/xianbo/trustie2 into szzh
This commit is contained in:
commit
512f16a036
|
@ -125,7 +125,6 @@ GEM
|
|||
mocha (1.1.0)
|
||||
metaclass (~> 0.0.1)
|
||||
multi_json (1.10.1)
|
||||
mysql2 (0.3.11)
|
||||
mysql2 (0.3.11-x86-mingw32)
|
||||
net-ldap (0.3.1)
|
||||
nokogiri (1.6.3)
|
||||
|
|
|
@ -103,7 +103,7 @@ class AccountController < ApplicationController
|
|||
def register
|
||||
# @root_path="/home/pdl/redmine-2.3.2-0/apache2/"
|
||||
#
|
||||
@cache_identityy = params[:identity]||"" #身份
|
||||
#@cache_identityy = params[:identity]||"" #身份
|
||||
@cache_no = params[:no]||"" #学号
|
||||
@cache_technical_title = params[:technical_title]||"" #教师职称
|
||||
@cache_province = params[:province]||"" #省份
|
||||
|
@ -136,7 +136,7 @@ class AccountController < ApplicationController
|
|||
session[:auth_source_registration] = nil
|
||||
self.logged_user = @user
|
||||
flash[:notice] = l(:notice_account_activated)
|
||||
redirect_to my_account_url
|
||||
render :action => 'email_valid'
|
||||
end
|
||||
else
|
||||
@user.login = params[:user][:login]
|
||||
|
@ -144,22 +144,7 @@ class AccountController < ApplicationController
|
|||
@user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation]
|
||||
end
|
||||
|
||||
if(@cache_identityy == "")
|
||||
if params[:identity] == "2"
|
||||
@user.firstname = firstname_code
|
||||
@user.lastname = lastname_code
|
||||
end
|
||||
flash.now[:error]= l(:label_identity)+l(:'activerecord.errors.messages.empty')
|
||||
return
|
||||
end
|
||||
if(@cache_city == "")
|
||||
if params[:identity] == "2"
|
||||
@user.firstname = firstname_code
|
||||
@user.lastname = lastname_code
|
||||
end
|
||||
flash.now[:error]= l(:label_location)+l(:'activerecord.errors.messages.empty')
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
case Setting.self_registration
|
||||
when '1'
|
||||
|
@ -234,6 +219,10 @@ class AccountController < ApplicationController
|
|||
render :json => req
|
||||
end
|
||||
|
||||
def email_valid
|
||||
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def authenticate_user
|
||||
|
@ -363,7 +352,7 @@ class AccountController < ApplicationController
|
|||
UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
|
||||
Mailer.register(token).deliver
|
||||
flash[:notice] = l(:notice_account_register_done)
|
||||
redirect_to signin_url
|
||||
render action: 'email_valid', locals: {:mail => user.mail}
|
||||
else
|
||||
yield if block_given?
|
||||
end
|
||||
|
|
|
@ -16,7 +16,6 @@ class TagsController < ApplicationController
|
|||
include ActsAsTaggableOn::TagsHelper
|
||||
helper :projects
|
||||
helper :courses
|
||||
include TagsHelper
|
||||
helper :tags
|
||||
include OpenSourceProjectsHelper
|
||||
|
||||
|
|
|
@ -812,7 +812,7 @@ class UsersController < ApplicationController
|
|||
|
||||
# 必填自己的工作单位,其实就是学校
|
||||
def auth_user_extension
|
||||
if @user == User.current && (@user.user_extensions.nil? || @user.user_extensions.school.nil?)
|
||||
if @user == User.current && @user.user_extensions.nil?
|
||||
flash[:error] = l(:error_complete_occupation)
|
||||
redirect_to my_account_url
|
||||
end
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
class Course < ActiveRecord::Base
|
||||
include Redmine::SafeAttributes
|
||||
|
||||
|
@ -33,10 +34,10 @@ class Course < ActiveRecord::Base
|
|||
acts_as_attachable :view_permission => :view_files,
|
||||
:delete_permission => :manage_files
|
||||
|
||||
validates :password, presence: true
|
||||
validates :term, presence: true
|
||||
validates :name, presence: true
|
||||
validates :class_period, presence: true,format: {:with =>/^\d*$/}
|
||||
validates_presence_of :password, :term,:name,:description
|
||||
validates_format_of :class_period, :with =>/^[1-9]\d*$/
|
||||
validates_format_of :name,:with =>/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/
|
||||
validates_length_of :description, :maximum => 10000
|
||||
before_save :self_validate
|
||||
after_create :create_board_sync
|
||||
before_destroy :delete_all_members
|
||||
|
@ -309,3 +310,5 @@ class Course < ActiveRecord::Base
|
|||
# read_attribute('name') || Project.find_by_identifier(self.extra).try(:name)
|
||||
#end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ class News < ActiveRecord::Base
|
|||
validates_presence_of :title, :description
|
||||
validates_length_of :title, :maximum => 60
|
||||
validates_length_of :summary, :maximum => 255
|
||||
validates_length_of :description, :maximum => 10000
|
||||
|
||||
acts_as_attachable :delete_permission => :manage_news
|
||||
acts_as_searchable :columns => ['title', 'summary', "#{table_name}.description"], :include => :project
|
||||
|
|
|
@ -41,7 +41,7 @@ class Project < ActiveRecord::Base
|
|||
has_many :principals, :through => :member_principals, :source => :principal
|
||||
has_many :enabled_modules, :dependent => :delete_all
|
||||
has_and_belongs_to_many :trackers, :order => "#{Tracker.table_name}.position"
|
||||
has_many :issues, :dependent => :destroy, :include => [:status, :tracker]
|
||||
has_many :issues, :dependent => :destroy, :include => [:status, :tracker],:order => "id ASC"
|
||||
has_many :issue_changes, :through => :issues, :source => :journals
|
||||
has_many :versions, :dependent => :destroy, :order => "#{Version.table_name}.effective_date DESC, #{Version.table_name}.name DESC"
|
||||
has_many :time_entries, :dependent => :delete_all
|
||||
|
@ -1151,3 +1151,4 @@ class Project < ActiveRecord::Base
|
|||
|
||||
|
||||
end
|
||||
|
||||
|
|
|
@ -3,6 +3,6 @@ class WebFooterCompany < ActiveRecord::Base
|
|||
validates :name, presence: true, length: { maximum: 500 }
|
||||
validates :url, length: { maximum: 500 },
|
||||
format: { with: /(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/,
|
||||
message: l(:is_not_url_error)
|
||||
message: :invalid
|
||||
}
|
||||
end
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>注册帐号</title>
|
||||
<style type="text/css">
|
||||
#jihuo {
|
||||
background-image: url("./images/jingtanhao.JPG");
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<% email = @user.mail.split("@")[1] %>
|
||||
|
||||
<div style="border: 1px solid #c0c0c0 ; width:850px;" >
|
||||
|
||||
<h3 style=" padding-bottom: 8px; margin-top:5px; border-bottom: 1px solid #c0c0c0;color:black; ">
|
||||
<span id = "jihuo" style=" margin-left: 4%;"></span>邮箱激活</h3>
|
||||
|
||||
<div style="margin-left:auto; margin-right:auto">
|
||||
<center>
|
||||
<div >
|
||||
<h4 style="font-size: 18px;margin-top: 10px; margin-bottom: 10px;">请在24小时内点击邮件中的链接继续完成注册</h4>
|
||||
<div class="to-email">
|
||||
<span class="summary">邮件已发送到邮箱</span>
|
||||
<a href="#" class="f-blue"><%= @user.mail %></a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="http://mail.<%= email %>" style="background: #15bccf;margin: auto;
|
||||
color: #fff;
|
||||
font-size: 13px;
|
||||
|
||||
border: none;
|
||||
padding: 10px 16px;
|
||||
line-height: 1.33;" target="_blank">立即查收邮件</a></p>
|
||||
|
||||
<span class="tracking-ad" >
|
||||
<a href="javascript:void(0);" >没收到邮件?</a>
|
||||
</span>
|
||||
<div style = "margin-top: 10px; margin-bottom:10px;">
|
||||
|
||||
<span style="font-size: 16px">请先检查是否在垃圾邮件中</span>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</center>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
|
@ -3,287 +3,9 @@
|
|||
@nav_dispaly_main_project_label = 1
|
||||
@nav_dispaly_main_contest_label = 1 %>
|
||||
<% @nav_dispaly_forum_label = 1%>
|
||||
<!-- added by bai 增加地区-->
|
||||
<script type="text/javascript" language="javascript">
|
||||
function showcity(province, cityField) {
|
||||
switch (province) {
|
||||
case "北京" :
|
||||
var cityOptions = new Array(
|
||||
"东城", "西城", "朝阳", "丰台", "石景山", "海淀", "门头沟",
|
||||
"房山", "通州", "顺义", "昌平", "大兴", "平谷", "怀柔", "密云", "延庆");
|
||||
break;
|
||||
case "上海" :
|
||||
var cityOptions = new Array(
|
||||
"崇明", "黄浦", "卢湾", "徐汇", "长宁", "静安", "普陀", "闸北", "虹口", "杨浦", "闵行",
|
||||
"宝山", "嘉定", "浦东", "金山", "松江", "青浦", "南汇", "奉贤");
|
||||
break;
|
||||
case "广东" :
|
||||
var cityOptions = new Array(
|
||||
"广州", "深圳", "珠海", "东莞", "中山", "佛山", "惠州", "河源", "潮州", "江门", "揭阳", "茂名",
|
||||
"梅州", "清远", "汕头", "汕尾", "韶关", "顺德", "阳江", "云浮", "湛江", "肇庆");
|
||||
break;
|
||||
case "江苏" :
|
||||
var cityOptions = new Array(
|
||||
"南京", "常熟", "常州", "海门", "淮安", "江都", "江阴", "昆山", "连云港", "南通",
|
||||
"启东", "沭阳", "宿迁", "苏州", "太仓", "泰州", "同里", "无锡", "徐州", "盐城",
|
||||
"扬州", "宜兴", "仪征", "张家港", "镇江", "周庄");
|
||||
break;
|
||||
case "重庆" :
|
||||
var cityOptions = new Array(
|
||||
"万州", "涪陵", "渝中", "大渡口", "江北", "沙坪坝", "九龙坡", "南岸", "北碚", "万盛",
|
||||
"双挢", "渝北", "巴南", "黔江", "长寿", "綦江", "潼南", "铜梁", "大足", "荣昌", "壁山",
|
||||
"梁平", "城口", "丰都", "垫江", "武隆", "忠县", "开县", "云阳", "奉节", "巫山", "巫溪",
|
||||
"石柱", "秀山", "酉阳", "彭水", "江津", "合川", "永川", "南川");
|
||||
break;
|
||||
case "安徽" :
|
||||
var cityOptions = new Array(
|
||||
"合肥", "安庆", "蚌埠", "亳州", "巢湖", "滁州", "阜阳", "贵池", "淮北", "淮化", "淮南",
|
||||
"黄山", "九华山", "六安", "马鞍山", "宿州", "铜陵", "屯溪", "芜湖", "宣城");
|
||||
break;
|
||||
case "福建" :
|
||||
var cityOptions = new Array(
|
||||
"福州", "厦门", "泉州", "漳州", "龙岩", "南平", "宁德", "莆田", "三明");
|
||||
break;
|
||||
case "甘肃" :
|
||||
var cityOptions = new Array(
|
||||
"兰州", "白银", "定西", "敦煌", "甘南", "金昌", "酒泉", "临夏", "平凉", "天水",
|
||||
"武都", "武威", "西峰", "张掖");
|
||||
break;
|
||||
case "广西" :
|
||||
var cityOptions = new Array(
|
||||
"南宁", "百色", "北海", "桂林", "防城港", "贵港", "河池", "贺州", "柳州", "钦州", "梧州", "玉林");
|
||||
break;
|
||||
case "贵州" :
|
||||
var cityOptions = new Array(
|
||||
"贵阳", "安顺", "毕节", "都匀", "凯里", "六盘水", "铜仁", "兴义", "玉屏", "遵义");
|
||||
break;
|
||||
case "海南" :
|
||||
var cityOptions = new Array(
|
||||
"海口", "儋县", "陵水", "琼海", "三亚", "通什", "万宁");
|
||||
break;
|
||||
case "河北" :
|
||||
var cityOptions = new Array(
|
||||
"石家庄", "保定", "北戴河", "沧州", "承德", "丰润", "邯郸", "衡水", "廊坊", "南戴河", "秦皇岛",
|
||||
"唐山", "新城", "邢台", "张家口");
|
||||
break;
|
||||
case "黑龙江" :
|
||||
var cityOptions = new Array(
|
||||
"哈尔滨", "北安", "大庆", "大兴安岭", "鹤岗", "黑河", "佳木斯", "鸡西", "牡丹江", "齐齐哈尔",
|
||||
"七台河", "双鸭山", "绥化", "伊春");
|
||||
break;
|
||||
case "河南" :
|
||||
var cityOptions = new Array(
|
||||
"郑州", "安阳", "鹤壁", "潢川", "焦作", "济源", "开封", "漯河", "洛阳", "南阳", "平顶山",
|
||||
"濮阳", "三门峡", "商丘", "新乡", "信阳", "许昌", "周口", "驻马店");
|
||||
break;
|
||||
case "香港" :
|
||||
var cityOptions = new Array(
|
||||
"香港", "九龙", "新界");
|
||||
break;
|
||||
case "湖北" :
|
||||
var cityOptions = new Array(
|
||||
"武汉", "恩施", "鄂州", "黄冈", "黄石", "荆门", "荆州", "潜江", "十堰", "随州", "武穴",
|
||||
"仙桃", "咸宁", "襄阳", "襄樊", "孝感", "宜昌");
|
||||
break;
|
||||
case "湖南" :
|
||||
var cityOptions = new Array(
|
||||
"长沙", "常德", "郴州", "衡阳", "怀化", "吉首", "娄底", "邵阳", "湘潭", "益阳", "岳阳",
|
||||
"永州", "张家界", "株洲");
|
||||
break;
|
||||
case "江西" :
|
||||
var cityOptions = new Array(
|
||||
"南昌", "抚州", "赣州", "吉安", "景德镇", "井冈山", "九江", "庐山", "萍乡",
|
||||
"上饶", "新余", "宜春", "鹰潭");
|
||||
break;
|
||||
case "吉林" :
|
||||
var cityOptions = new Array(
|
||||
"长春", "吉林", "白城", "白山", "珲春", "辽源", "梅河", "四平", "松原", "通化", "延吉");
|
||||
break;
|
||||
case "辽宁" :
|
||||
var cityOptions = new Array(
|
||||
"沈阳", "鞍山", "本溪", "朝阳", "大连", "丹东", "抚顺", "阜新", "葫芦岛", "锦州",
|
||||
"辽阳", "盘锦", "铁岭", "营口");
|
||||
break;
|
||||
case "澳门" :
|
||||
var cityOptions = new Array("澳门");
|
||||
break;
|
||||
case "内蒙古" :
|
||||
var cityOptions = new Array(
|
||||
"呼和浩特", "阿拉善盟", "包头", "赤峰", "东胜", "海拉尔", "集宁", "临河", "通辽", "乌海",
|
||||
"乌兰浩特", "锡林浩特");
|
||||
break;
|
||||
case "宁夏" :
|
||||
var cityOptions = new Array(
|
||||
"银川", "固源", "石嘴山", "吴忠");
|
||||
break;
|
||||
case "青海" :
|
||||
var cityOptions = new Array(
|
||||
"西宁", "德令哈", "格尔木", "共和", "海东", "海晏", "玛沁", "同仁", "玉树");
|
||||
break;
|
||||
case "山东" :
|
||||
var cityOptions = new Array(
|
||||
"济南", "滨州", "兖州", "德州", "东营", "菏泽", "济宁", "莱芜", "聊城", "临沂",
|
||||
"蓬莱", "青岛", "曲阜", "日照", "泰安", "潍坊", "威海", "烟台", "枣庄", "淄博");
|
||||
break;
|
||||
case "山西" :
|
||||
var cityOptions = new Array(
|
||||
"太原", "长治", "大同", "候马", "晋城", "离石", "临汾", "宁武", "朔州", "忻州",
|
||||
"阳泉", "榆次", "运城");
|
||||
break;
|
||||
case "陕西" :
|
||||
var cityOptions = new Array(
|
||||
"西安", "安康", "宝鸡", "汉中", "渭南", "商州", "绥德", "铜川", "咸阳", "延安", "榆林");
|
||||
break;
|
||||
case "四川" :
|
||||
var cityOptions = new Array(
|
||||
"成都", "巴中", "达川", "德阳", "都江堰", "峨眉山", "涪陵", "广安", "广元", "九寨沟",
|
||||
"康定", "乐山", "泸州", "马尔康", "绵阳", "眉山", "南充", "内江", "攀枝花", "遂宁",
|
||||
"汶川", "西昌", "雅安", "宜宾", "自贡", "资阳");
|
||||
break;
|
||||
case "台湾" :
|
||||
var cityOptions = new Array(
|
||||
"台北", "基隆", "台南", "台中", "高雄", "屏东", "南投", "云林", "新竹", "彰化", "苗栗",
|
||||
"嘉义", "花莲", "桃园", "宜兰", "台东", "金门", "马祖", "澎湖");
|
||||
break;
|
||||
case "天津" :
|
||||
var cityOptions = new Array(
|
||||
"天津", "和平", "东丽", "河东", "西青", "河西", "津南", "南开", "北辰", "河北", "武清", "红挢",
|
||||
"塘沽", "汉沽", "大港", "宁河", "静海", "宝坻", "蓟县");
|
||||
break;
|
||||
case "新疆" :
|
||||
var cityOptions = new Array(
|
||||
"乌鲁木齐", "阿克苏", "阿勒泰", "阿图什", "博乐", "昌吉", "东山", "哈密", "和田", "喀什",
|
||||
"克拉玛依", "库车", "库尔勒", "奎屯", "石河子", "塔城", "吐鲁番", "伊宁");
|
||||
break;
|
||||
case "西藏" :
|
||||
var cityOptions = new Array(
|
||||
"拉萨", "阿里", "昌都", "林芝", "那曲", "日喀则", "山南");
|
||||
break;
|
||||
case "云南" :
|
||||
var cityOptions = new Array(
|
||||
"昆明", "大理", "保山", "楚雄", "大理", "东川", "个旧", "景洪", "开远", "临沧", "丽江",
|
||||
"六库", "潞西", "曲靖", "思茅", "文山", "西双版纳", "玉溪", "中甸", "昭通");
|
||||
break;
|
||||
case "浙江" :
|
||||
var cityOptions = new Array(
|
||||
"杭州", "安吉", "慈溪", "定海", "奉化", "海盐", "黄岩", "湖州", "嘉兴", "金华", "临安",
|
||||
"临海", "丽水", "宁波", "瓯海", "平湖", "千岛湖", "衢州", "江山", "瑞安", "绍兴", "嵊州",
|
||||
"台州", "温岭", "温州", "余姚", "舟山");
|
||||
break;
|
||||
case "海外" :
|
||||
var cityOptions = new Array(
|
||||
"美国", "日本", "英国", "法国", "德国", "其他");
|
||||
break;
|
||||
default:
|
||||
var cityOptions = new Array("");
|
||||
break;
|
||||
}
|
||||
|
||||
cityField.options.length = 0;
|
||||
for (var i = 0; i < cityOptions.length; i++) {
|
||||
cityField.options[i] = new Option(cityOptions[i], cityOptions[i]);
|
||||
/*
|
||||
if (cityField.options[i].value==city)
|
||||
{
|
||||
//alert("here put City ok!");
|
||||
document.oblogform["city"].selectedIndex = i;
|
||||
}*/
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" language="javascript">
|
||||
|
||||
window.onload = function(){
|
||||
var identity = "<%= @cache_identityy %>";
|
||||
var no = "<%= @cache_no %>";
|
||||
var technical_title = "<%= @cache_technical_title %>";
|
||||
var province = "<%= @cache_province %>";
|
||||
var city = "<%= @cache_city %>";
|
||||
var enterprise_name = "<%= @cache_enterprise_name %>";
|
||||
//还原身份
|
||||
if(identity!=null&&identity!=""){
|
||||
$('#userIdentity').children("option[value='"+identity+"']").attr("selected","selected");
|
||||
showtechnical_title(identity, document.getElementById('userTechnical_title'));
|
||||
if(identity=="0"){
|
||||
//还原教师职称
|
||||
$('#userTechnical_title').children("option[value='"+technical_title+"']").attr("selected","selected");
|
||||
}else if(identity=="1"){
|
||||
//还原学号
|
||||
$("input[id='no']").attr("value",no);
|
||||
}
|
||||
}
|
||||
//还原地区
|
||||
if(province!=null&&province!=""){
|
||||
$("#userProvince").children("option[value='"+province+"']").attr("selected","selected");
|
||||
showcity(province, document.getElementById('userCity'));
|
||||
$("select[id='userCity']").children("option[value='"+city+"']").attr("selected","selected");
|
||||
}
|
||||
//还原企业名
|
||||
if(enterprise_name!=null&&enterprise_name!=""){
|
||||
$("input[id='enterprise_name']").attr("value",enterprise_name);
|
||||
}
|
||||
}
|
||||
|
||||
function showtechnical_title(identity, technical_titleField) {
|
||||
var technical_titleOptions = null;
|
||||
switch (identity) {
|
||||
|
||||
case '0' :
|
||||
$('#technical_title').show()
|
||||
$('#no').hide()
|
||||
$('#name').show()
|
||||
$('#enterprise').hide()
|
||||
$('#gender').show()
|
||||
technical_titleOptions = new Array(
|
||||
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
|
||||
break;
|
||||
|
||||
case '1' :
|
||||
$('#technical_title').hide()
|
||||
$('#no').show()
|
||||
$('#name').show()
|
||||
$('#enterprise').hide()
|
||||
$('#gender').show()
|
||||
var titleOptions = new Array("");
|
||||
break;
|
||||
|
||||
case '2' :
|
||||
$('#technical_title').hide()
|
||||
$('#no').hide()
|
||||
$('#name').hide()
|
||||
$('#enterprise').show()
|
||||
$('#gender').hide()
|
||||
var titleOptions = new Array("");
|
||||
break;
|
||||
default:
|
||||
$('#technical_title').hide()
|
||||
$('#no').hide()
|
||||
$('#name').show()
|
||||
$('#enterprise').hide()
|
||||
$('#gender').show()
|
||||
var titleOptions = new Array("");
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
technical_titleField.options.length = 0;
|
||||
if(technical_titleOptions == null){
|
||||
return;
|
||||
}
|
||||
for (var i = 0; i < technical_titleOptions.length; i++) {
|
||||
technical_titleField.options[i] = new Option(technical_titleOptions[i], technical_titleOptions[i]);
|
||||
/*
|
||||
if (cityField.options[i].value==city)
|
||||
{
|
||||
//alert("here put City ok!");
|
||||
document.oblogform["city"].selectedIndex = i;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- end -->
|
||||
|
||||
|
@ -292,39 +14,7 @@
|
|||
<%= labelled_form_for @user, :url => register_path do |f| %>
|
||||
<%= error_messages_for 'user' %>
|
||||
<div class="box tabular">
|
||||
<p>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="info" align="right" style="width: 90px">
|
||||
<strong><%= l(:label_identity) %><span class="required"> *</span></strong></td>
|
||||
<td class="info" style="width: 10px">
|
||||
<select onchange="showtechnical_title(this.value, document.getElementById('userTechnical_title'));" name="identity" id="userIdentity" class="location">
|
||||
<option value="">--请选择身份--</option>
|
||||
<option value="0"><%= l(:label_teacher) %></option>
|
||||
<option value="1"><%= l(:label_student) %></option>
|
||||
<option value="2"><%= l(:label_enterprise) %></option>
|
||||
<option value="3"><%= l(:label_account_developer) %></option>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<span id='technical_title' style='display:none'>
|
||||
<select name="technical_title" id="userTechnical_title"></select>
|
||||
</span>
|
||||
<span id='no' style='display:none'>
|
||||
<strong>
|
||||
<%= l(:label_bidding_user_studentcode) %>
|
||||
<span class="required"> *</span>
|
||||
</strong>
|
||||
<% unless User.current.user_extensions.nil? %>
|
||||
<%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => "请输入学号" %>
|
||||
<% else %>
|
||||
<%= text_field_tag :no, nil, :placeholder => "请输入学号" %>
|
||||
<% end %>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
|
||||
<% if @user.auth_source_id.nil? %>
|
||||
<p><%= f.text_field :login, :size => 25, :required => true %><span id="valid_user_login"></span>
|
||||
<em class="info"><%= l(:label_max_number) %></em>
|
||||
|
@ -332,105 +22,19 @@
|
|||
<p><%= f.password_field :password, :size => 25, :required => true %>
|
||||
<em class="info"><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em>
|
||||
</p>
|
||||
<p><%= f.password_field :password_confirmation, :size => 25, :required => true %></p>
|
||||
<p><%= f.password_field :password_confirmation, :size => 25, :required => true %><span id="valid_password"></span></p>
|
||||
<% end %>
|
||||
<span id='name' style='display:none'>
|
||||
<p style="color: #ff0000"><%= l(:name_can_be_empty) %></p>
|
||||
<p><%= f.text_field :firstname, :required => false %></p>
|
||||
<p><%= f.text_field :lastname, :required => false %></p>
|
||||
</span>
|
||||
<span id='enterprise' style='display:none'>
|
||||
|
||||
<p>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="info" align="right" style="width: 90px">
|
||||
<strong>企业名
|
||||
<span class="required"> *</span>
|
||||
</strong>
|
||||
</td>
|
||||
<td class="info" style="width: 10px">
|
||||
<%= text_field_tag :enterprise_name %>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
</span>
|
||||
<p>
|
||||
<%= f.text_field :mail, :required => true %>
|
||||
<%= f.text_field :mail,:size => 25, :required => true %>
|
||||
<span id="valid_user_mail"></span>
|
||||
</p>
|
||||
<p>
|
||||
<em class="info"><%= "#{l(:label_mail_attention)} " %></em>
|
||||
</p>
|
||||
<p><%= f.select :language, lang_options_for_select, :required => true %></p>
|
||||
<!-- added by bai 增加了身份、性别和地区-->
|
||||
|
||||
<span id='gender' style='display:none'>
|
||||
<p>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="info" align="right" style="width: 90px">
|
||||
<strong><%= l(:label_gender) %><span class="required"> </span></strong></td>
|
||||
<td class="info" style="width: 10px">
|
||||
<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option>
|
||||
<option value = '1'>#{l(:label_gender_female)}</option>".html_safe %>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
</span>
|
||||
<p>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="info" align="right" style="width: 90px">
|
||||
<strong><%= l(:label_location) %><span class="required"> *</span></strong>
|
||||
</td>
|
||||
<td class="info" style="width: 80px">
|
||||
<select onchange="showcity(this.value, document.getElementById('userCity'));" name="province" id="userProvince">
|
||||
<option value="">--请选择省份--</option>
|
||||
<option value="北京">北京</option>
|
||||
<option value="上海">上海</option>
|
||||
<option value="广东">广东</option>
|
||||
<option value="江苏">江苏</option>
|
||||
<option value="浙江">浙江</option>
|
||||
<option value="重庆">重庆</option>
|
||||
<option value="安徽">安徽</option>
|
||||
<option value="福建">福建</option>
|
||||
<option value="甘肃">甘肃</option>
|
||||
<option value="广西">广西</option>
|
||||
<option value="贵州">贵州</option>
|
||||
<option value="海南">海南</option>
|
||||
<option value="河北">河北</option>
|
||||
<option value="黑龙江">黑龙江</option>
|
||||
<option value="河南">河南</option>
|
||||
<option value="湖北">湖北</option>
|
||||
<option value="湖南">湖南</option>
|
||||
<option value="江西">江西</option>
|
||||
<option value="吉林">吉林</option>
|
||||
<option value="辽宁">辽宁</option>
|
||||
<option value="内蒙古">内蒙古</option>
|
||||
<option value="宁夏">宁夏</option>
|
||||
<option value="青海">青海</option>
|
||||
<option value="山东">山东</option>
|
||||
<option value="山西">山西</option>
|
||||
<option value="陕西">陕西</option>
|
||||
<option value="四川">四川</option>
|
||||
<option value="天津">天津</option>
|
||||
<option value="新疆">新疆</option>
|
||||
<option value="西藏">西藏</option>
|
||||
<option value="云南">云南</option>
|
||||
<option value="香港">香港特别行政区</option>
|
||||
<option value="澳门">澳门特别行政区</option>
|
||||
<option value="台湾">台湾</option>
|
||||
<option value="海外">海外</option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="info" style="width: 100px">
|
||||
<select name="city" id="userCity"></select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
|
||||
|
||||
<!-- end -->
|
||||
</div>
|
||||
|
||||
|
@ -453,7 +57,7 @@
|
|||
jQuery(document).ready(function () {
|
||||
var $login = $('#user_login')
|
||||
var $mail = $('#user_mail')
|
||||
|
||||
var $password_confirmation = $('#user_password_confirmation')
|
||||
$login.blur(function (event) {
|
||||
if ($(this).is('#user_login')) {
|
||||
$.get(
|
||||
|
@ -485,6 +89,19 @@
|
|||
});
|
||||
}
|
||||
;
|
||||
});
|
||||
$password_confirmation.blur(function () {
|
||||
var pas1 = document.getElementById("user_password").value;
|
||||
var pas2 = document.getElementById("user_password_confirmation").value;
|
||||
if (pas1 == pas2) {
|
||||
$('#valid_password').html('<span class="green">' + "<%= l(:setting_password_success) %>"+ "</span>");
|
||||
}
|
||||
else {
|
||||
$('#valid_password').html('<span class="red">' + "<%= l(:setting_password_error) %>" + "</span>");
|
||||
}
|
||||
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -24,7 +24,7 @@
|
|||
<% end %>
|
||||
<% if reply_allow %>
|
||||
<%= link_to l(:label_bid_respond_quote),'',
|
||||
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"} %>
|
||||
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea')); $('##{ids} textarea') ;return false;"} %>
|
||||
<%= link_to(l(:button_quote), contests_path(:id => contest,
|
||||
:journal_id => journal),
|
||||
:remote => true,
|
||||
|
|
|
@ -1,21 +1,6 @@
|
|||
<!-- fq -->
|
||||
<script type="text/javascript" language="javascript">
|
||||
function clearInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == content) {
|
||||
$('#' + id).val('');
|
||||
}
|
||||
}
|
||||
|
||||
function showInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == '') {
|
||||
$('#' + id).val(content);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<%= form_for('contest_message',
|
||||
<div style="width: 80%; margin-left:10%;">
|
||||
<%= form_for('contest_message',
|
||||
:remote => true, :method => :post,
|
||||
:url => {:controller => 'contests',
|
||||
:action => 'create',
|
||||
|
@ -28,52 +13,24 @@
|
|||
</div>
|
||||
|
||||
<% if User.current.logged? %>
|
||||
<table border="0" width="525px" align="center" >
|
||||
<tr>
|
||||
|
||||
<!-- modified by longjun 修改格式 -->
|
||||
<td>
|
||||
<%= f.text_area 'message',
|
||||
:rows => 3,
|
||||
:cols => 65,
|
||||
:placeholder => l(:label_my_respond),
|
||||
:style => "resize: none;",
|
||||
:class => 'noline'
|
||||
:style => "resize: none; width: 98%",
|
||||
:class => 'noline',
|
||||
:maxlength => 250
|
||||
%>
|
||||
</td>
|
||||
<!-- end longjun -->
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<%= f.text_field :reference_user_id, :style=>"display:none"%> <!--what function?-->
|
||||
|
||||
<!-- modified by bai -->
|
||||
<table border="0" width="525px" align="center">
|
||||
<tr>
|
||||
<!-- modified by longjun 修改格式 -->
|
||||
<td align="right">
|
||||
<%= submit_tag l(:button_leave_meassge),
|
||||
:name => nil ,
|
||||
:class => "contest_btn",
|
||||
:onmouseout => "this.style.backgroundPosition = 'left top'",
|
||||
:onmouseover => "this.style.backgroundPosition = 'left -31px'"
|
||||
%>
|
||||
<%= submit_tag l(:button_clear_meassge),
|
||||
:name => nil,
|
||||
:onclick => "clearMessage('contest_message_message');",
|
||||
:type => 'button', :class => "bid_btn",
|
||||
:onmouseout => "this.style.backgroundPosition = 'left top'",
|
||||
:onmouseover => "this.style.backgroundPosition = 'left -31px'"
|
||||
%>
|
||||
</td>
|
||||
<!-- end longjun -->
|
||||
</tr>
|
||||
</table>
|
||||
<!-- 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 %>
|
||||
<div style="font-size: 14px;margin:10px;padding-left: 13px">
|
||||
<%= l(:label_user_login_tips) %>
|
||||
<%= link_to l(:label_user_login_new), signin_path %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<div class="cl"></div>
|
||||
</div>
|
|
@ -165,7 +165,7 @@
|
|||
:onblur => 'regexDevelopers();'
|
||||
%>
|
||||
|
||||
<span style="font-size: 10px" id="span_softapplication_application_developers">
|
||||
<span style="font-size: 10px; " id="span_softapplication_application_developers">
|
||||
(<%= l(:label_workdescription_lengthlimit) %>)
|
||||
</span>
|
||||
</tr>
|
||||
|
|
|
@ -313,3 +313,4 @@
|
|||
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false %>
|
||||
</div>
|
||||
<% html_title(l(:label_contest_joincontest)) -%>
|
||||
|
||||
|
|
|
@ -4,5 +4,41 @@
|
|||
<%= render :partial => 'contest_jours',
|
||||
:locals => { :contest => @contest, :journals => @jour, :state => false}
|
||||
%>
|
||||
<script>
|
||||
var W3CDOM = document.createElement && document.getElementsByTagName;
|
||||
|
||||
window.onload = setMaxLength;
|
||||
|
||||
function setMaxLength() {
|
||||
if (!W3CDOM) return;
|
||||
var textareas = document.getElementsByTagName('textarea');
|
||||
for (var i=0;i<textareas.length;i++) {
|
||||
var textarea = textareas[i];
|
||||
setMaxLengthItem(textareas[i]);
|
||||
}
|
||||
}
|
||||
function setMaxLengthItem(textarea){
|
||||
if (textarea.getAttribute('maxlength')) {
|
||||
var counter = document.createElement('div');
|
||||
counter.className = 'counter';
|
||||
var counterClone = counter.cloneNode(true);
|
||||
counterClone.innerHTML = '<span>0</span>/'+textarea.getAttribute('maxlength');
|
||||
textarea.parentNode.insertBefore(counterClone,textarea.nextSibling);
|
||||
textarea.relatedElement = counterClone.getElementsByTagName('span')[0];
|
||||
textarea.onkeyup = textarea.onchange = checkMaxLength;
|
||||
textarea.onkeyup();
|
||||
}
|
||||
}
|
||||
|
||||
function checkMaxLength() {
|
||||
var maxLength = this.getAttribute('maxlength');
|
||||
var currentLength = this.value.length;
|
||||
if (currentLength > maxLength)
|
||||
this.relatedElement.className = 'toomuch';
|
||||
else
|
||||
this.relatedElement.className = '';
|
||||
this.relatedElement.firstChild.nodeValue = currentLength;
|
||||
}
|
||||
|
||||
</script>
|
||||
<% html_title(l(:label_user_response)) -%>
|
||||
|
|
|
@ -17,13 +17,14 @@
|
|||
<%= f.text_area 'course_message', :rows => 3, :cols => 65,
|
||||
:placeholder => "#{l(:label_welcome_my_respond)}",
|
||||
:style => "resize: none; width: 98%",
|
||||
:class => 'noline'%>
|
||||
:class => 'noline',:maxlength => 250%>
|
||||
<%= submit_tag l(:button_leave_meassge), :name => nil , :class => "enterprise" , :style => "display: block; float: right; margin-right: 1%; margin-top: 1px;"%>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
|
||||
<div id="history">
|
||||
<%= render :partial => 'history',:locals => { :contest => @contest, :journals => @jour, :state => false} %>
|
||||
</div>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<% end %>
|
||||
<% if reply_allow %>
|
||||
<%= link_to l(:label_bid_respond_quote),'',
|
||||
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"} %>
|
||||
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea')); $('##{ids} textarea') ;return false;"} %>
|
||||
|
||||
<% end %>
|
||||
</span>
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
<% attachmenttypes = @course.attachmenttypes %>
|
||||
<% sufixtypes = @course.contenttypes %>
|
||||
|
||||
|
@ -10,40 +9,12 @@
|
|||
<%#= link_to(l(:label_attachment_new), 'javascript:void(0);', :onclick=>"$('#file_buttons').slideToggle();", :class => 'icon icon-add') if User.current.allowed_to?(:manage_files, @course) %>
|
||||
<div class="clearfix"></div>
|
||||
<div id="file_buttons" class="nhidden">
|
||||
|
||||
<%= 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, @course) %>
|
||||
<%= 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, @course) %>
|
||||
<p></p>
|
||||
<div id="upload_file_div" class="relation_file_div hidden">
|
||||
<%= render :partial => 'course_new', locals: {course: @course} %>
|
||||
</div>
|
||||
|
||||
<div id="relation_file_div" class="relation_file_div hidden">
|
||||
<fieldset>
|
||||
<legend>搜索</legend>
|
||||
<%= form_tag(
|
||||
attachments_autocomplete_path(:format => 'js'),
|
||||
:remote => true,
|
||||
:method => :post) do %>
|
||||
<%= label_tag(:attach_search, "按关键字搜索:") %>
|
||||
<%= text_field_tag(:attach_search) %>
|
||||
<%#= submit_tag("Search") %>
|
||||
<% end -%>
|
||||
<%= form_tag course_attach_relation_path(:format => 'js'),
|
||||
method: :post,
|
||||
remote: true,
|
||||
id: "relation_file_form",
|
||||
:class => 'hidden' do %>
|
||||
<%= hidden_field_tag(:class_name, 'course') %>
|
||||
<%= hidden_field_tag(:class_id, params[:course_id]) %>
|
||||
<div id="relation_file">
|
||||
</div>
|
||||
<div class="kclearfix" style='margin-top: 10px;'>
|
||||
<%= submit_tag(l(:button_add)) -%>
|
||||
</div>
|
||||
<% end -%>
|
||||
</fieldset>
|
||||
<div class="line_under" style="margin:20px 0px;"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="box" id="files-box">
|
||||
<label for="files-box" style="font-weight:bold;"> <%= l(:label_files_filter) %></label>
|
||||
|
|
|
@ -20,6 +20,28 @@
|
|||
<% end %>
|
||||
<div class="line_under" style="margin:20px 0px;"></div>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend><%=l(:label_attachment_new)%></legend>
|
||||
<% attachmenttypes = course.attachmenttypes %>
|
||||
<%= error_messages_for 'attachment' %>
|
||||
<%= form_tag(course_files_path(course), :multipart => true,:remote => true,:method => :post,:name=>"upload_form", :class => "tabular") do %>
|
||||
|
||||
<p>
|
||||
<% if attachmenttypes.any? %>
|
||||
<%= l(:attachment_type) %></label>
|
||||
<%= select_tag "attachment_type",
|
||||
options_from_collection_for_select(attachmenttypes, "id",
|
||||
"typeName", 2), {style: 'width:100px'} %>
|
||||
<% end %>
|
||||
</p>
|
||||
|
||||
<p><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p>
|
||||
|
||||
<%= submit_tag l(:button_add) %>
|
||||
<% end %>
|
||||
</fieldset>
|
||||
|
||||
<script type='text/javascript'>
|
||||
function tagAddClick(id,objId,objTag)
|
||||
{
|
||||
|
|
|
@ -69,7 +69,9 @@
|
|||
|
||||
<% if User.current.logged? %>
|
||||
<%= f.text_area 'user_message', :rows => 3, :cols => 65,
|
||||
:style => "resize: none;", :class => 'noline', :placeholder => l(:text_caracters_maximum,:count=>250)%>
|
||||
:style => "resize: none;", :class => 'noline', :placeholder => l(:text_caracters_maximum,:count=>250),
|
||||
:maxlength => 250
|
||||
%>
|
||||
<%= f.text_field :reference_user_id, :style=>"display:none"%>
|
||||
<div style="float:right">
|
||||
<a href="#" class="ping_sub1" id="jours_submit" onclick="submit1();"><%= l(:label_submit_comments) %></a>
|
||||
|
|
|
@ -1,6 +1,42 @@
|
|||
<% reply_allow = JournalsForMessage.create_by_user? User.current %>
|
||||
|
||||
|
||||
<script type="text/javascript" language="javascript">
|
||||
var W3CDOM = document.createElement && document.getElementsByTagName;
|
||||
|
||||
// window.onload = setMaxLength;
|
||||
$(document).ready(setMaxLength());
|
||||
function setMaxLength() {
|
||||
if (!W3CDOM) return;
|
||||
var textareas = document.getElementsByTagName('textarea');
|
||||
for (var i=0;i<textareas.length;i++) {
|
||||
var textarea = textareas[i];
|
||||
setMaxLengthItem(textareas[i]);
|
||||
}
|
||||
}
|
||||
function setMaxLengthItem(textarea){
|
||||
if (textarea.getAttribute('maxlength')) {
|
||||
var counter = document.createElement('div');
|
||||
counter.className = 'counter';
|
||||
var counterClone = counter.cloneNode(true);
|
||||
counterClone.innerHTML = '<span>0</span>/'+textarea.getAttribute('maxlength');
|
||||
textarea.parentNode.insertBefore(counterClone,textarea.nextSibling);
|
||||
textarea.relatedElement = counterClone.getElementsByTagName('span')[0];
|
||||
textarea.onkeyup = textarea.onchange = checkMaxLength;
|
||||
textarea.onkeyup();
|
||||
}
|
||||
}
|
||||
|
||||
function checkMaxLength() {
|
||||
var maxLength = this.getAttribute('maxlength');
|
||||
var currentLength = this.value.length;
|
||||
if (currentLength > maxLength)
|
||||
this.relatedElement.className = 'toomuch';
|
||||
else
|
||||
this.relatedElement.className = '';
|
||||
this.relatedElement.firstChild.nodeValue = currentLength;
|
||||
}
|
||||
function test(){alert('test');}
|
||||
//<!CDATA[
|
||||
function g(o){return document.getElementById(o);}
|
||||
function HoverLi(n){
|
||||
|
|
|
@ -56,3 +56,56 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!--add by huang-->
|
||||
<% cache "footer" do %>
|
||||
<div class="clearfix"></div>
|
||||
<div id="footer" style="margin-left:-5px;padding-top: 20px;clear: both;font-size: 12px;">
|
||||
<div style="border-top:solid 1px #C6E9F1;"></div>
|
||||
<div class="base_footer">
|
||||
<div align="center">
|
||||
|
||||
<!--gcm-->
|
||||
<p>
|
||||
<span><%=l(:label_organizers)%></span>
|
||||
<span class="footer_text_link"><%= link_to l(:label_organizers_information),"http://www.nudt.edu.cn/ArticleShow.asp?ID=47",:target=>"_blank"%></span>
|
||||
<span class="footer_text_link"><%= link_to l(:label_organizers_information_institute), "http://www.nudt.edu.cn/ArticleShow.asp?ID=41", :target => "_blank" %></span>
|
||||
<span id="copyright"><%=l(:label_copyright)%>©2007~2014</span>
|
||||
<span id="contact_us" class="footer_text_link"><%= link_to l(:label_contact_us),"http://" + Setting.host_name + "/projects/2/member", :target=>"_blank" %></span>
|
||||
<span id="record"class="footer_text_link"><%= link_to l(:label_record),"http://www.miibeian.gov.cn/", :target => "_blank" %></span>
|
||||
|
||||
</p>
|
||||
<div id="logo_link">
|
||||
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/nudt.png',:size=>'100x30',:alt=>"国防科学技术大学计算机学院"),"http://www.nudt.edu.cn/special.asp?classid=12", :target => "_blank" %></span>
|
||||
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/peking_eecs.png',:size=>'100x30',:alt=>"北京大学信息科学技术学院软件研究所"), "http://eecs.pku.edu.cn", :target => "_blank" %></span>
|
||||
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/buaa_scse.png',:size=>'100x30',:alt=>"北京航空航天大学计算机学院"), "http://scse.buaa.edu.cn/", :target => "_blank" %></span>
|
||||
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/iscas.png',:size=>'100x30',:alt=>"中国科学院软件研究所"), "http://www.iscas.ac.cn", :target => "_blank" %></span>
|
||||
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/inforbus.png',:size=>'100x30',:alt=>"山东中创软件商用中间件股份有限公司"), "http://www.inforbus.com", :target => "_blank" %></span>
|
||||
</div>
|
||||
<!--gcm-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="debug hidden">
|
||||
<%= debug(params) if Rails.env.development? %>
|
||||
</div>
|
||||
<div class="hidden">
|
||||
<script src="http://s4.cnzz.com/z_stat.php?id=1000482288&web_id=1000482288" language="JavaScript">
|
||||
</script>
|
||||
<script>
|
||||
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-46523987-1', 'trustie.net');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -238,6 +238,13 @@
|
|||
<%= @user.user_extensions.occupation %>
|
||||
</td>
|
||||
</tr>
|
||||
<% elsif @user.user_extensions.identity == 2 %>
|
||||
<tr>
|
||||
<td style="padding-left: 18px" width="70px"><%= l(:label_company_name) %>:</td>
|
||||
<td class="font_lighter_sidebar" style="padding-left: 0px" width="170px">
|
||||
<%= @user.firstname %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr>
|
||||
<td style="padding-left: 31px" width="76px"><%= l(:label_location) %>:</td><td class="font_lighter_sidebar" style="padding-left: 0px" width="170px"><%= @user.user_extensions.location %><%= @user.user_extensions.location_city %></td>
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
<style type="text/css">
|
||||
.reply_content p {
|
||||
margin-top: 13px;
|
||||
margin-bottom: 13px;
|
||||
}
|
||||
</style>
|
||||
<div class="lz">
|
||||
<!-- 在这里添加赞和踩-->
|
||||
<span id="praise_tread" style="float: right"> <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%> </span>
|
||||
|
|
|
@ -62,12 +62,45 @@
|
|||
</legend>
|
||||
|
||||
<!-- 昵称 -->
|
||||
<p style="width:630px;padding-left: 54px;">
|
||||
<p style="width:630px;padding-left: 40px;">
|
||||
<%= f.text_field :login, :required => true, :size => 25, :name => "login"%>
|
||||
<span class='font_lighter'><%= l(:label_max_number) %></span>
|
||||
<br/>
|
||||
</p>
|
||||
|
||||
<p style="width:400px;padding-left: 54px;">
|
||||
<%= l(:label_identity) %><span style="color: #ff0000"> *</span>
|
||||
<select onchange="showtechnical_title(this.value, $('#userTechnical_title'));" name="identity" id="userIdentity" class="location">
|
||||
<option value="">
|
||||
<%= l(:label_account_identity_choose) %>
|
||||
</option>
|
||||
<option value="0">
|
||||
<%= l(:label_account_identity_teacher) %>
|
||||
</option>
|
||||
<option value="1">
|
||||
<%= l(:label_account_identity_student) %>
|
||||
</option>
|
||||
<option value="2">
|
||||
<%= l(:label_account_identity_enterprise) %>
|
||||
</option>
|
||||
<option value="3">
|
||||
<%= l(:label_account_identity_developer) %>
|
||||
</option>
|
||||
|
||||
</select>
|
||||
<span id='technical_title' style='display:none'>
|
||||
<select name="technical_title" id="userTechnical_title"></select>
|
||||
</span>
|
||||
<span id='no' style='display:none'>
|
||||
<!-- modified by fq -->
|
||||
<% unless User.current.user_extensions.student_id.nil? %>
|
||||
<%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => "请输入学号" %>
|
||||
<% else %>
|
||||
<%= text_field_tag :no, nil, :placeholder => "请输入学号" %></span>
|
||||
<% end %>
|
||||
<!-- end -->
|
||||
</span>
|
||||
</p>
|
||||
<div>
|
||||
<span id='name' style='display:none'>
|
||||
<p style="width:530px;padding-left: 54px;">
|
||||
|
@ -85,8 +118,8 @@
|
|||
</span>
|
||||
|
||||
<span id='enterprise' style='display:none'>
|
||||
<p style="width:400px;padding-left: 54px;">
|
||||
<%= l(:label_company_name)%>
|
||||
<p style="width:400px;padding-left: 40px;">
|
||||
<%= l(:label_company_name)%><span style="color: red"> *</span>
|
||||
<%= text_field_tag :enterprise_name, @user.firstname %>
|
||||
</p>
|
||||
</span>
|
||||
|
@ -112,12 +145,19 @@
|
|||
<% end %>
|
||||
<% end %>
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- added by Wen -->
|
||||
<p style="padding-left: 26px;">
|
||||
<% unless @user.user_extensions.identity == 2 %>
|
||||
<p id="occupation_detail" style="padding-left: 26px; display: none">
|
||||
|
||||
<%= l(:field_occupation) %>
|
||||
<span class="required">*</span>
|
||||
<% if User.current.user_extensions.identity == 3 %>
|
||||
<span class="required"> </span>
|
||||
<% if User.current.user_extensions.identity == 3 || User.current.user_extensions.identity == 2 %>
|
||||
|
||||
<input id="province" name="province" style="display: none" type="text" value="请单击选择省份及学校" readonly>
|
||||
<input id="occupation" name="occupation" style="display: none" type="text" value="<%= @user.user_extensions.occupation %>" />
|
||||
<input id="occupation_name" type="text" style="display: none" readonly/>
|
||||
|
@ -132,7 +172,7 @@
|
|||
<input id="occupation" name="occupation" type="text" style="display: none" value="<%= User.current.user_extensions.school.id %>"/>
|
||||
<input id="occupation_name" type="text" style="display: none" value="<%= User.current.user_extensions.school.name %>" readonly="true" style="background-color: #E2E2E2;"/>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
</p>
|
||||
|
||||
<div id="WOpenWindow">
|
||||
|
@ -249,60 +289,7 @@
|
|||
|
||||
|
||||
|
||||
<% unless @user.user_extensions.identity == 2 %>
|
||||
<p style="width:400px;padding-left: 54px;">
|
||||
<%= l(:label_identity) %>
|
||||
<select onchange="showtechnical_title(this.value, $('#userTechnical_title'));" name="identity" id="userIdentity" class="location">
|
||||
<option value="">
|
||||
<%= l(:label_account_identity_choose) %>
|
||||
</option>
|
||||
<option value="0">
|
||||
<%= l(:label_account_identity_teacher) %>
|
||||
</option>
|
||||
<option value="1">
|
||||
<%= l(:label_account_identity_student) %>
|
||||
</option>
|
||||
<option value="3">
|
||||
<%= l(:label_account_identity_developer) %>
|
||||
</option>
|
||||
|
||||
</select>
|
||||
<span id='technical_title' style='display:none'>
|
||||
<select name="technical_title" id="userTechnical_title"></select>
|
||||
</span>
|
||||
<span id='no' style='display:none'>
|
||||
<!-- modified by fq -->
|
||||
<% unless User.current.user_extensions.student_id.nil? %>
|
||||
<%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => "请输入学号" %>
|
||||
<% else %>
|
||||
<%= text_field_tag :no, nil, :placeholder => "请输入学号" %></span>
|
||||
<% end %>
|
||||
<!-- end -->
|
||||
</span>
|
||||
</p>
|
||||
<% else %>
|
||||
<p>
|
||||
<span style="display:none">
|
||||
<select onchange="showtechnical_title(this.value, document.getElementById('userTechnical_title'));" name="identity" id="userIdentity" class="location">
|
||||
<option value="">
|
||||
<%= l(:label_account_identity_choose) %>
|
||||
</option>
|
||||
<option value="0">
|
||||
<%= l(:label_account_identity_teacher) %>
|
||||
</option>
|
||||
<option value="1">
|
||||
<%= l(:label_account_identity_student) %>
|
||||
</option>
|
||||
<option value="2">
|
||||
<%= l(:label_account_identity_enterprise) %>
|
||||
</option>
|
||||
<option value="3">
|
||||
<%= l(:label_account_identity_developer) %>
|
||||
</option>
|
||||
</select>
|
||||
</span>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -604,9 +591,11 @@
|
|||
$('#name').show()
|
||||
$('#enterprise').hide()
|
||||
$('#gender').show()
|
||||
$('#occupation_detail').show()
|
||||
$('input#province').show()
|
||||
$('input#occupation_name').show()
|
||||
$('input#occupation').hide()
|
||||
|
||||
var technical_titleOptions = new Array(
|
||||
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
|
||||
break;
|
||||
|
@ -617,9 +606,11 @@
|
|||
$('#name').show()
|
||||
$('#enterprise').hide()
|
||||
$('#gender').show()
|
||||
$('#occupation_detail').show()
|
||||
$('input#province').show()
|
||||
$('input#occupation_name').show()
|
||||
$('input#occupation').hide()
|
||||
|
||||
var technical_titleOptions = new Array(
|
||||
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
|
||||
|
||||
|
@ -631,9 +622,7 @@
|
|||
$('#name').hide()
|
||||
$('#enterprise').show()
|
||||
$('#gender').hide()
|
||||
$('input#province').show()
|
||||
$('input#occupation_name').show()
|
||||
$('input#occupation').hide()
|
||||
$('#occupation_detail').hide()
|
||||
var technical_titleOptions = new Array(
|
||||
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
|
||||
|
||||
|
@ -644,6 +633,7 @@
|
|||
$('#name').show()
|
||||
$('#enterprise').hide()
|
||||
$('#gender').show()
|
||||
$('#occupation_detail').show()
|
||||
$('input#province').hide()
|
||||
$('input#occupation_name').hide()
|
||||
$('input#occupation').show()
|
||||
|
@ -658,6 +648,7 @@
|
|||
$('#name').show()
|
||||
$('#enterprise').hide()
|
||||
$('#gender').show()
|
||||
$('#occupation_detail').show()
|
||||
var technical_titleOptions = new Array(
|
||||
"<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>");
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<% end %>
|
||||
<% if reply_allow %>
|
||||
<%= link_to l(:label_bid_respond_quote),'',
|
||||
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"} %>
|
||||
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea')); $('##{ids} textarea') ;return false;"} %>
|
||||
|
||||
<% end %>
|
||||
</span>
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
<%= f.text_area 'project_message', :rows => 3, :cols => 65,
|
||||
:placeholder => "#{l(:label_welcome_my_respond)}",
|
||||
:style => "resize: none; width: 98%",
|
||||
:class => 'noline'%>
|
||||
:class => 'noline',:maxlength => 250%>
|
||||
<%= submit_tag l(:button_leave_meassge), :name => nil , :class => "enterprise" , :style => "display: block; float: right; margin-right: 1%; margin-top: 1px;"%>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div id="history">
|
||||
<%= render :partial => 'history',:locals => { :journals => @jour, :state => false} %>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// });
|
||||
// })
|
||||
</script>
|
||||
<!-- 1代表是user类型 2代表是project类型 3代表是issue类型 4代表需求 9代表课程-->
|
||||
<!-- 1代表是user类型 2代表是project类型 3代表是issue类型 4代表需求 7代表竞赛 9代表课程-->
|
||||
<% @tags = obj.reload.tag_list %>
|
||||
|
||||
<% if non_list_all and (@tags.size > 0) %>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<% end %>
|
||||
<% if reply_allow %>
|
||||
<%= link_to l(:label_bid_respond_quote),'',
|
||||
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"} %>
|
||||
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea')); $('##{ids} textarea') ;return false;"} %>
|
||||
|
||||
<% end %>
|
||||
</span>
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
) %>
|
||||
</p>
|
||||
<%= content_tag 'div', :id => 'notified-projects', :style => (@user.mail_notification == 'selected' ? '' : 'display:none;') do %>
|
||||
<p><em style="color: #acaeb1"><%= l(:text_user_mail_option) %></em></p>
|
||||
<%= render_project_nested_lists_new(@user.projects) do |project|
|
||||
content_tag('label',
|
||||
check_box_tag(
|
||||
|
@ -17,7 +18,7 @@
|
|||
) + ' ' + h(project.name)
|
||||
)
|
||||
end %>
|
||||
<p><em class="info"><%= l(:text_user_mail_option) %></em></p>
|
||||
|
||||
<% end %>
|
||||
<p>
|
||||
<label>
|
||||
|
|
|
@ -12,3 +12,40 @@
|
|||
</div>
|
||||
<ul class="wlist"><%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%></ul>
|
||||
</div>
|
||||
<script>
|
||||
var W3CDOM = document.createElement && document.getElementsByTagName;
|
||||
|
||||
window.onload = setMaxLength;
|
||||
|
||||
function setMaxLength() {
|
||||
if (!W3CDOM) return;
|
||||
var textareas = document.getElementsByTagName('textarea');
|
||||
for (var i=0;i<textareas.length;i++) {
|
||||
var textarea = textareas[i];
|
||||
setMaxLengthItem(textareas[i]);
|
||||
}
|
||||
}
|
||||
function setMaxLengthItem(textarea){
|
||||
if (textarea.getAttribute('maxlength')) {
|
||||
var counter = document.createElement('div');
|
||||
counter.className = 'counter';
|
||||
var counterClone = counter.cloneNode(true);
|
||||
counterClone.innerHTML = '<span>0</span>/'+textarea.getAttribute('maxlength');
|
||||
textarea.parentNode.insertBefore(counterClone,textarea.nextSibling);
|
||||
textarea.relatedElement = counterClone.getElementsByTagName('span')[0];
|
||||
textarea.onkeyup = textarea.onchange = checkMaxLength;
|
||||
textarea.onkeyup();
|
||||
}
|
||||
}
|
||||
|
||||
function checkMaxLength() {
|
||||
var maxLength = this.getAttribute('maxlength');
|
||||
var currentLength = this.value.length;
|
||||
if (currentLength > maxLength)
|
||||
this.relatedElement.className = 'toomuch';
|
||||
else
|
||||
this.relatedElement.className = '';
|
||||
this.relatedElement.firstChild.nodeValue = currentLength;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
@ -35,50 +35,31 @@
|
|||
border: #d5dee9 1px solid;
|
||||
}
|
||||
</style>
|
||||
<div style="width: 80%; margin-left:10%;">
|
||||
<%= form_for('new_form', :remote => true, :method => :post,
|
||||
:url => {:controller => 'words',
|
||||
:action => 'create',
|
||||
:user_id => user.id,
|
||||
:sta => sta}) do |f|%>
|
||||
|
||||
<script type="text/javascript" language="javascript">
|
||||
function clearInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == content) {
|
||||
$('#' + id).val('');
|
||||
}
|
||||
}
|
||||
|
||||
function showInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == '') {
|
||||
$('#' + id).val(content);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<%= form_for('new_form', :remote => true, :method => :post,
|
||||
:url => {:controller => 'words',
|
||||
:action => 'create',
|
||||
:user_id => user.id,
|
||||
:sta => sta}) do |f|%>
|
||||
|
||||
<div id = 'pre_show'>
|
||||
<div id = 'pre_show'>
|
||||
<%= render :partial => 'words/pre_show', :locals => {:content => @content} %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if User.current.logged? %>
|
||||
<table border="0" width="525px" align="center" >
|
||||
<tr>
|
||||
<td><%= f.text_area 'user_message', :rows => 3, :cols => 65, :value => "#{l(:label_leave_a_message)}", :onfocus => "clearInfo('new_form_user_message','#{l(:label_leave_a_message)}')", :onblur => "showInfo('new_form_user_message','#{l(:label_leave_a_message)}')", :style => "resize: none;", :class => 'noline'%></td>
|
||||
</tr>
|
||||
</table>
|
||||
<%= f.text_field :reference_user_id, :style=>"display:none"%>
|
||||
<table border="0" width="525px" align="center">
|
||||
<tr>
|
||||
<td align="right"> <%= submit_tag l(:button_leave_meassge), :name => nil , :class => "enterprise", :onmouseout => "this.style.backgroundPosition = 'left top'", :onmouseover => "this.style.backgroundPosition = 'left -31px'"%>
|
||||
<%= submit_tag l(:button_cancel), :name => nil, :class => "enterprise", :onclick => "clearMessage('new_form_user_message');", :onmouseout => "this.style.backgroundPosition = 'left top'", :onmouseover => "this.style.backgroundPosition = 'left -31px'" %> </td>
|
||||
</tr>
|
||||
</table>
|
||||
<% else %>
|
||||
<div style="font-size: 14px;margin:10px;">
|
||||
<% if User.current.logged? %>
|
||||
<%= f.text_area 'user_message', :rows => 3, :cols => 65,
|
||||
:placeholder => "#{l(:label_leave_a_message)}",
|
||||
:style => "resize: none; width: 98%",
|
||||
:class => 'noline',:maxlength => 250%>
|
||||
|
||||
<%= 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 %>
|
||||
<div style="font-size: 14px;margin:10px;">
|
||||
<%= l(:label_user_login_tips) %>
|
||||
<%= link_to l(:label_user_login_new), signin_path %>
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="cl"></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
|
|
@ -291,7 +291,7 @@ zh:
|
|||
field_open_student: 学生列表公开
|
||||
field_parent: 上级项目
|
||||
field_is_in_roadmap: 在路线图中显示
|
||||
field_login: 昵称
|
||||
field_login: 登录名
|
||||
field_mail_notification: 邮件通知
|
||||
field_admin: 管理员
|
||||
field_last_login_on: 最后登录
|
||||
|
@ -393,6 +393,8 @@ zh:
|
|||
setting_repository_log_display_limit: 在文件变更记录页面上显示的最大修订版本数量
|
||||
setting_openid: 允许使用OpenID登录和注册
|
||||
setting_password_min_length: 最短密码长度
|
||||
setting_password_error: 密码不一致
|
||||
setting_password_success: 密码设置成功
|
||||
setting_new_project_user_role_id: 非管理员用户新建项目时将被赋予的(在该项目中的)角色
|
||||
setting_default_projects_modules: 新建项目默认启用的模块
|
||||
setting_issue_done_ratio: 计算问题完成度:
|
||||
|
@ -540,7 +542,7 @@ zh:
|
|||
label_url_prompt: 网址需以"http://"或"https://"开头,例:http://forge.trustie.net
|
||||
web_footer_company_create_fail: 合作单位创建失败
|
||||
web_footer_company_update_fail: 合作单位更新失败
|
||||
is_not_url_error: 不是正确的url
|
||||
is_not_url_error: 不是正确的网址
|
||||
label_x_projects:
|
||||
zero: 无项目
|
||||
one: 1 个项目
|
||||
|
@ -680,7 +682,7 @@ zh:
|
|||
label_my_page_block: 我的工作台模块
|
||||
label_administration: 管理
|
||||
label_login: 登录
|
||||
label_login_prompt: 邮箱/昵称
|
||||
label_login_prompt: 邮箱/登录名
|
||||
lable_user_name: 登录名
|
||||
label_logout: 退出
|
||||
label_help: 帮助
|
||||
|
@ -854,7 +856,7 @@ zh:
|
|||
label_roadmap_overdue: "%{value} 延期"
|
||||
label_roadmap_no_issues: 该版本没有问题
|
||||
label_user_search_type: 搜索类型
|
||||
label_search_by_login: 昵称
|
||||
label_search_by_login: 登录名
|
||||
label_search_by_name: 名字
|
||||
label_search_by_email: 邮箱
|
||||
label_search: 搜索
|
||||
|
@ -1593,7 +1595,7 @@ zh:
|
|||
label_tags_user_mail: 用户邮箱:
|
||||
label_tags_user_name: 用户名:
|
||||
label_tags_numbers: Tag统计:
|
||||
label_max_number: 昵称是在网站中显示的您的公开标识,至多25个字符。
|
||||
label_max_number: 登录名是在网站中显示的您的公开标识,至多25个字符。
|
||||
label_mail_attention: qq邮箱可能收不到此邮件,其他邮箱如果没有收到可能在垃圾邮件中,其中gmail与教育网邮箱的激活邮件有时比较慢,请耐心等待。
|
||||
label_your_course: 您的课程《
|
||||
label_have_message : 》有新的留言
|
||||
|
@ -2074,7 +2076,7 @@ zh:
|
|||
label_attending_contest: 参加竞赛
|
||||
label_new_attendingcontest_work: 新建参赛作品
|
||||
label_workname_lengthlimit: 25个汉字以内
|
||||
label_workdescription_lengthlimit: 125个汉字以内,用英文逗号隔开
|
||||
label_workdescription_lengthlimit: 125个汉字以内,用','隔开
|
||||
label_please_input_password: 请输入竞赛密码
|
||||
label_please_select_project: 请选择项目
|
||||
label_upload_softworkpacket_photo: 上传作品软件包和作品截图
|
||||
|
|
|
@ -207,6 +207,7 @@ RedmineApp::Application.routes.draw do
|
|||
match 'account/lost_password', :via => [:get, :post], :as => 'lost_password'
|
||||
match 'account/activate', :via => :get
|
||||
match 'account/valid_ajax', :via => :get
|
||||
get 'account/email_valid', :to => 'account#email_valid'
|
||||
|
||||
match 'projects/:id/wiki', :to => 'wikis#edit', :via => :post
|
||||
match 'projects/:id/wiki/destroy', :to => 'wikis#destroy', :via => [:get, :post]
|
||||
|
|
|
@ -121,10 +121,12 @@ module Redmine
|
|||
return render_menu_node_with_children(node, project)
|
||||
else
|
||||
caption, url, selected = extract_node_details(node, project)
|
||||
unless url.to_s.include?( 'code_review')
|
||||
return content_tag('li',
|
||||
render_single_menu_node(node, caption, url, selected))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def render_menu_node_with_children(node, project=nil)
|
||||
caption, url, selected = extract_node_details(node, project)
|
||||
|
@ -170,9 +172,9 @@ module Redmine
|
|||
end
|
||||
|
||||
def render_single_menu_node(item, caption, url, selected)
|
||||
unless url.include?('code_review')
|
||||
|
||||
link_to(h(caption), url, item.html_options(:selected => selected))
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def render_unattached_menu_item(menu_item, project)
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 7.9 KiB |
|
@ -92,7 +92,7 @@ a:hover.ping_sub{ background:#14a8b9;}
|
|||
.recall_head img{ height:30px; width:30px;}
|
||||
.recall_head a:hover{border:1px solid #15bccf;}
|
||||
.recall_head img:hover{border:1px solid #15bccf;}
|
||||
.recall_con{ float:left;color:#777777;max-width: 530px; margin-left:10px; }
|
||||
.recall_con{ float:left;color:#777777;max-width: 530px;width: 90%; margin-left:10px; }
|
||||
.recall_con a{ color:#15bccf; }
|
||||
|
||||
.ping_list{ margin-top:15px;}
|
||||
|
|
|
@ -86,10 +86,15 @@ span[id^=valid_user] {
|
|||
}
|
||||
|
||||
.clearfix {
|
||||
width: 100%;
|
||||
/*width: 100%;
|
||||
height: 0px;
|
||||
clear: both;
|
||||
display: block;
|
||||
display: block;*/
|
||||
display: inline-block;
|
||||
width: 80px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
|
|
Loading…
Reference in New Issue