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

This commit is contained in:
sw 2014-05-16 11:04:49 +08:00
commit b27b3e0a5a
61 changed files with 2351 additions and 1645 deletions

View File

@ -111,8 +111,7 @@ class AccountController < ApplicationController
user_params = params[:user] || {} user_params = params[:user] || {}
@user = User.new @user = User.new
@user.safe_attributes = user_params @user.safe_attributes = user_params
#这里判断 if params[:identity] == "2" # 2 企业
if params[:identity] == "2"
@user.firstname = params[:enterprise_name] @user.firstname = params[:enterprise_name]
@user.lastname = l(:field_enterprise) @user.lastname = l(:field_enterprise)
end end
@ -132,16 +131,6 @@ class AccountController < ApplicationController
@user.login = params[:user][:login] @user.login = params[:user][:login]
unless user_params[:identity_url].present? && user_params[:password].blank? && user_params[:password_confirmation].blank? unless user_params[:identity_url].present? && user_params[:password].blank? && user_params[:password_confirmation].blank?
@user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation] @user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation]
# system "htpasswd -mb "+@root_path+"user.passwd "+params[:user][:login]+" "+user_params[:password]
# system "echo -e '\n"+params[:user][:login]+"-write:"+
# " "+params[:user][:login]+"' >> "+@root_path+"group.passwd"
# system "mkdir "+@root_path+"htdocs/"+params[:user][:login]
#
# system "echo -e 'Allow from all \n Order Deny,Allow \n "+
# "<Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> \n"+
# "Require group "+params[:user][:login]+"-write \n "+
# "</Limit> \n ' >>"+
# @root_path+"htdocs/"+params[:user][:login]+"/.htaccess"
end end
case Setting.self_registration case Setting.self_registration
@ -183,6 +172,33 @@ class AccountController < ApplicationController
redirect_to signin_path redirect_to signin_path
end end
def valid_ajax
req = Hash.new(false)
req[:message] = ''
valid_attr = params[:valid]
valid_value = params[:value]
faker = User.new
if valid_attr.eql?('login')
faker.login = valid_value
faker.valid?
req[:valid] = faker.errors[:login].blank?
req[:message] = faker.errors[:login]
end
if valid_attr.eql?('mail')
faker.mail = valid_value
faker.valid?
req[:valid] = faker.errors[:mail].blank?
req[:message] = faker.errors[:mail]
end
req[:message] = l(:modal_valid_passing) if req[:message].blank?
render :json => req
end
private private
def authenticate_user def authenticate_user

View File

@ -1,6 +0,0 @@
#资源类型编辑control
class AttachmentTypeEditController < ApplicationController
def index
end
end

View File

@ -62,6 +62,17 @@ class AttachmentsController < ApplicationController
end end
end end
#更新资源文件类型
def updateType
@attachment = Attachment.find(params[:attachmentid])
if @attachment != nil
@attachment.attachtype = params[:newtype]
@attachment.save
render :text =>'success'
else
render :text=>'error'
end
end
def thumbnail def thumbnail
if @attachment.thumbnailable? && thumbnail = @attachment.thumbnail(:size => params[:size]) if @attachment.thumbnailable? && thumbnail = @attachment.thumbnail(:size => params[:size])

View File

@ -7,7 +7,7 @@ class BidsController < ApplicationController
menu_item :homework_respond, :only => :homework_respond menu_item :homework_respond, :only => :homework_respond
menu_item :homework_statistics, :only => :homework_statistics menu_item :homework_statistics, :only => :homework_statistics
#Ended by young #Ended by young
before_filter :find_bid, :only => [:show, :show_project, :create,:destroy,:more,:back,:add,:new,:show_results,:set_reward, :add_homework, :fork, :create_fork, before_filter :find_bid, :only => [:show, :show_project, :create,:destroy,:more,:back,:add,:delete,:new,:show_results,:set_reward, :add_homework, :fork, :create_fork,
:show_course, :show_bid_project, :show_bid_user, :join_in_contest, :unjoin_in_contest, :new_join,:show_participator, :settings] :show_course, :show_bid_project, :show_bid_user, :join_in_contest, :unjoin_in_contest, :new_join,:show_participator, :settings]
# added by fq # added by fq
before_filter :require_login, :only => [:join_in_contest, :unjoin_in_contest] before_filter :require_login, :only => [:join_in_contest, :unjoin_in_contest]
@ -500,6 +500,15 @@ class BidsController < ApplicationController
end end
end end
#删除已提交的项目作业(不删项目)
def delete
binding_project = params[:binding_project]
if BidingProject.delete(binding_project)
redirect_to project_for_bid_path
else
redirect_to 403;
end
end
## 新建留言 ## 新建留言
def create def create
@ -693,7 +702,10 @@ class BidsController < ApplicationController
redirect_to respond_path(@bid) redirect_to respond_path(@bid)
else else
@bid.safe_attributes = params[:bid] @bid.safe_attributes = params[:bid]
render :action => 'new_bid' @homework = @bid
@project = Project.find_by_id(params[:course_id])
@project_id = @project.id
render file: 'projects/new_homework', layout: 'base_courses'
end end
end end
@ -715,14 +727,14 @@ class BidsController < ApplicationController
def update def update
@bid = Bid.find(params[:id]) @bid = Bid.find(params[:id])
@project = @bid.courses.first @project = @bid.courses.first#Project.find(params[:course_id])
if @bid.update_attributes(params[:bid]) if @bid.update_attributes(params[:bid])
flash[:notice] = l(:label_update_homework_succeed) flash[:notice] = l(:label_update_homework_succeed)
#@project = Project.find(params[:course_id]) #@project = Project.find(params[:course_id])
redirect_to project_homework_path(@project) redirect_to project_homework_path(@project)
else else
@bid.safe_attributes = params[:bid] @bid.safe_attributes = params[:bid]
render :action => 'edit', :layout =>'base_courses' ,:bid_id=>@bid.id,:project_id =>@project render :action => 'edit', :layout =>'base_courses'
end end
end end

View File

@ -4,7 +4,8 @@ class ContestsController < ApplicationController
menu_item :respond menu_item :respond
menu_item :project, :only => :show_project menu_item :project, :only => :show_project
menu_item :application, :only => :show_softapplication menu_item :application, :only => :show_softapplication
before_filter :find_contest, :only => [:show_contest, :show_project, :show_softapplication, :create,:destroy,:more,:back,:add,:add_softapplication,:new,:show_results, :set_reward, menu_item :attendingcontest, :only => :show_attendingcontest
before_filter :find_contest, :only => [:show_contest, :show_project, :show_softapplication, :show_attendingcontest, :create,:destroy,:more,:back,:add,:add_softapplication,:new,:show_results, :set_reward,
:show_contest_project, :show_contest_user, :join_in_contest, :unjoin_in_contest, :new_join,:show_participator, :settings] :show_contest_project, :show_contest_user, :join_in_contest, :unjoin_in_contest, :new_join,:show_participator, :settings]
# added by fq # added by fq
@ -252,6 +253,7 @@ class ContestsController < ApplicationController
############ ############
##显示参赛的应用 ##显示参赛的应用
def show_softapplication def show_softapplication
# @membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current)) # @membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current))
# @option = [] # @option = []
@ -288,6 +290,66 @@ class ContestsController < ApplicationController
end end
end end
###我要参赛
def show_attendingcontest
##取出参赛项目
@membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current))
@option = []
# @contesting_project_count = @contesting_project_all.count
# @contesting_project_pages = Paginator.new @contesting_project_count, per_page_option, params['page']
@membership.each do |membership|
unless(membership.project.project_type==1)
membership.member_roles.each{|role|
if(role.role_id == 3)
@option << membership.project
end
}
end
end
@user = @contest.author
@contesting_project = @contest.contesting_projects.all
if params[:student_id].present?
@temp = []
@contesting_project.each do |pro|
if pro.project && pro.project.project_status
if /#{params[:student_id]}/ =~ pro.user.user_extensions.student_id
@temp << pro
end
end
@temp
end
@contesting_project = @temp
else
@temp = []
@contesting_project.each do |pro|
if pro.project && pro.project.project_status
@temp << pro
end
@temp
end
if @temp.size > 0
@contesting_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade}
end
end
##取出参赛应用
@softapplication = Softapplication.all
@contesting_softapplication = @contest.contesting_softapplications.reverse
@contesting_softapplication = paginateHelper @contesting_softapplication, 10
##引用base_newcontest整体样式
@contest = Contest.find_by_id(params[:id])
respond_to do |format|
format.html {
render :layout => 'base_newcontest'
}
format.api
end
end
###end
###添加已创建的参赛项目 ###添加已创建的参赛项目
def add def add
project = Project.find(params[:contest]) project = Project.find(params[:contest])

View File

@ -94,7 +94,7 @@ class MemosController < ApplicationController
@reply_pages = Paginator.new @reply_count, pre_count, page @reply_pages = Paginator.new @reply_count, pre_count, page
@replies = @memo.children. @replies = @memo.children.
includes(:author, :attachments). includes(:author, :attachments).
reorder("#{Memo.table_name}.created_at ASC"). reorder("#{Memo.table_name}.created_at DESC").
limit(@reply_pages.per_page). limit(@reply_pages.per_page).
offset(@reply_pages.offset). offset(@reply_pages.offset).
all all

View File

@ -43,7 +43,7 @@ class MessagesController < ApplicationController
@reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page @reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page
@replies = @topic.children. @replies = @topic.children.
includes(:author, :attachments, {:board => :project}). includes(:author, :attachments, {:board => :project}).
reorder("#{Message.table_name}.created_on ASC"). reorder("#{Message.table_name}.created_on DESC").
limit(@reply_pages.per_page). limit(@reply_pages.per_page).
offset(@reply_pages.offset). offset(@reply_pages.offset).
all all

View File

@ -295,8 +295,12 @@ class ProjectsController < ApplicationController
project_type = params[:project_type].to_i project_type = params[:project_type].to_i
projects_all = (project_type.eql? Project::ProjectType_course) ? Project.course_entities : Project.project_entities projects_all = (project_type.eql? Project::ProjectType_course) ? Project.course_entities : Project.project_entities
@projects = projects_all.visible @projects = projects_all.visible
@projects_all = @projects.visible.like(params[:name]) if params[:name].present? #@projects_all = @projects.visible.like(params[:name]) if params[:name].present?
if params[:name].present?
@projects_all = @projects.visible.like(params[:name])
else
@projects_all = @projects;
end
@project_count = @projects_all.count @project_count = @projects_all.count
@project_pages = Paginator.new @project_count, per_page_option, params['page'] @project_pages = Paginator.new @project_count, per_page_option, params['page']
@ -808,6 +812,8 @@ class ProjectsController < ApplicationController
@render_file = 'member_list' @render_file = 'member_list'
# 判断是否课程 # 判断是否课程
if @project.project_type == Project::ProjectType_course if @project.project_type == Project::ProjectType_course
@teachers= searchTeacherAndAssistant(@project)
@canShowCode = isCourseTeacher(User.current.id)
case params[:role] case params[:role]
when '1' when '1'
@subPage_title = l :label_teacher_list @subPage_title = l :label_teacher_list
@ -829,6 +835,15 @@ class ProjectsController < ApplicationController
render :layout => 'base_courses' if @project.project_type == 1 render :layout => 'base_courses' if @project.project_type == 1
end end
#判断指定用户是否为课程教师
def isCourseTeacher(id)
result = false
if @teachers.find_by_user_id(id) != nil
result = true
end
result
end
def sort_project_members project, members def sort_project_members project, members
#userGrade = UserGrade.where(:project_id => project.id) #userGrade = UserGrade.where(:project_id => project.id)
users = UserGrade.where(:project_id => project.id). users = UserGrade.where(:project_id => project.id).

View File

@ -47,7 +47,26 @@ class SchoolController < ApplicationController
options << "<option value = '#{p.province}' >#{p.province}</option>" options << "<option value = '#{p.province}' >#{p.province}</option>"
end end
render :text => options # 取id取学校名
# 连接子表: 查询已添加用户的学校
school = School.select("id, name").
joins("RIGHT JOIN (
SELECT DISTINCT school_id
FROM #{UserExtensions.table_name}
WHERE school_id IS NOT NULL) AS sids ON schools.id = sids.school_id").
where("#{School.table_name}.id IS NOT NULL")
options_s = ""
school.each do |s|
options_s << "<li style = 'width: 33%; float: left'><a id=#{s.id} onclick='test(this.id, this.text)'>#{s.name}</a></li>"
end
res = Hash.new
res[:text] = options
res[:text_s] = options_s
render :json => res
end end
@ -79,8 +98,11 @@ class SchoolController < ApplicationController
end end
def search_school def search_school
if params[:province].nil? or params[:province] == "0"
@school = School.where("name LIKE '%"+params[:key_word]+"%'");
else
@school = School.where("province = ? AND name LIKE '%"+params[:key_word]+"%'", params[:province]); @school = School.where("province = ? AND name LIKE '%"+params[:key_word]+"%'", params[:province]);
end
options = "" options = ""
@school.each do |s| @school.each do |s|
options << "<li style = 'width: 33%; float: left'><a id=#{s.id} onclick='test(this.id)'>#{s.name}</a></li>" options << "<li style = 'width: 33%; float: left'><a id=#{s.id} onclick='test(this.id)'>#{s.name}</a></li>"

View File

@ -106,11 +106,13 @@ class SoftapplicationsController < ApplicationController
@softapplication.save_attachments(params[:attachments]) @softapplication.save_attachments(params[:attachments])
respond_to do |format| respond_to do |format|
if @softapplication.save if @softapplication.save
format.js
format.html { redirect_to @softapplication, notice: 'Softapplication was successfully created.' } format.html { redirect_to @softapplication, notice: 'Softapplication was successfully created.' }
format.json { render json: @softapplication, status: :created, location: @softapplication } # format.json { render json: @softapplication, status: :created, location: @softapplication }
else else
format.js { render status: 406 }
format.html { render action: "new" } format.html { render action: "new" }
format.json { render json: @softapplication.errors, status: :unprocessable_entity } # format.json { render json: @softapplication.errors, status: :unprocessable_entity }
end end
end end
end end

View File

@ -38,6 +38,7 @@ class UsersController < ApplicationController
:user_homeworks, :destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments, :user_homeworks, :destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments,
:watch_bids, :watch_contests, :info, :watch_projects, :show_score, :topic_score_index, :project_score_index, :watch_bids, :watch_contests, :info, :watch_projects, :show_score, :topic_score_index, :project_score_index,
:activity_score_index, :influence_score_index, :score_index] :activity_score_index, :influence_score_index, :score_index]
before_filter :auth_user_extension, only: :show
accept_api_auth :index, :show, :create, :update, :destroy,:tag_save accept_api_auth :index, :show, :create, :update, :destroy,:tag_save
#william #william
@ -548,6 +549,14 @@ class UsersController < ApplicationController
format.api { render_validation_errors(@user) } format.api { render_validation_errors(@user) }
end end
end end
unless @user.id.nil?
#后台注册的用户默认权限为男性开发员
ue = UserExtensions.create(:identity => 3,
:gender => 0,
:user_id => @user.id)
ue.save
end
end end
def edit def edit
@ -735,4 +744,12 @@ class UsersController < ApplicationController
def setting_layout(default_base='base_users') def setting_layout(default_base='base_users')
User.current.admin? ? 'base_admin' : default_base User.current.admin? ? 'base_admin' : default_base
end end
# 必填自己的工作单位,其实就是学校
def auth_user_extension
if @user == User.current && @user.user_extensions.school.nil?
flash[:error] = l(:error_complete_occupation)
redirect_to my_account_path
end
end
end end

View File

@ -390,6 +390,16 @@ module ApplicationHelper
s.html_safe s.html_safe
end end
#扩展的checkbox生成
def principals_check_box_tags_ex(name, principals)
s = ''
principals.each do |principal|
s << "<label>#{ check_box_tag name, principal.id, false, :id => nil } #{h principal.userInfo }</label>\n"
end
s.html_safe
end
# Returns a string for users/groups option tags # Returns a string for users/groups option tags
def principals_options_for_select(collection, selected=nil) def principals_options_for_select(collection, selected=nil)
s = '' s = ''

View File

@ -55,7 +55,7 @@ module FilesHelper
result = true result = true
end end
if result if result
if contentType != l(:attachment_all) && contentType != attachment.suffix_type if contentType != '0' && contentType != attachment.suffix_type
result = false result = false
end end
end end

View File

@ -24,7 +24,7 @@ module MembersHelper
principal_pages = Redmine::Pagination::Paginator.new principal_count, 10, params['page'] #by young principal_pages = Redmine::Pagination::Paginator.new principal_count, 10, params['page'] #by young
principals = scope.offset(principal_pages.offset).limit(principal_pages.per_page).all principals = scope.offset(principal_pages.offset).limit(principal_pages.per_page).all
s = content_tag('div', principals_check_box_tags('membership[user_ids][]', principals), :id => 'principals') s = content_tag('div', principals_check_box_tags_ex('membership[user_ids][]', principals), :id => 'principals')
links = pagination_links_full(principal_pages, principal_count, :per_page_links => false) {|text, parameters, options| links = pagination_links_full(principal_pages, principal_count, :per_page_links => false) {|text, parameters, options|
link_to text, autocomplete_project_memberships_path(project, parameters.merge(:q => params[:q], :format => 'js')), :remote => true link_to text, autocomplete_project_memberships_path(project, parameters.merge(:q => params[:q], :format => 'js')), :remote => true

View File

@ -285,6 +285,7 @@ class Attachment < ActiveRecord::Base
result result
end end
def self.attach_filesex(obj, attachments,attachment_type) def self.attach_filesex(obj, attachments,attachment_type)
result = obj.save_attachmentsex(attachments, User.current,attachment_type) result = obj.save_attachmentsex(attachments, User.current,attachment_type)
obj.attach_saved_attachments obj.attach_saved_attachments

View File

@ -3,7 +3,7 @@ class Attachmentstype < ActiveRecord::Base
has_many :attachments, :foreign_key => "attachtype",:primary_key => "id" has_many :attachments, :foreign_key => "attachtype",:primary_key => "id"
# 当前使用的文件内容分类列表 # 当前使用的文件内容分类列表
@@SuffixArr = ['pdf','zip','doc','docx','rar','txt','jpg','bmp','xls','xlsx'] @@SuffixArr = ['pdf','zip','doc','docx','ppt','pptx','rar','txt','jpg','bmp','xls','xlsx']
def suffixArr def suffixArr
@@SuffixArr @@SuffixArr

View File

@ -991,6 +991,11 @@ class Issue < ActiveRecord::Base
"#{tracker} ##{id}: #{subject}" "#{tracker} ##{id}: #{subject}"
end end
# 缺陷在项目中的序号
def inProjectIndex
(self.project.issues.index(self).to_i + 1).to_s
end
# Returns a string of css classes that apply to the issue # Returns a string of css classes that apply to the issue
def css_classes def css_classes
s = "issue tracker-#{tracker_id} status-#{status_id} #{priority.try(:css_classes)}" s = "issue tracker-#{tracker_id} status-#{status_id} #{priority.try(:css_classes)}"

View File

@ -29,7 +29,7 @@ class Journal < ActiveRecord::Base
# end # end
attr_accessor :indice attr_accessor :indice
acts_as_event :title => Proc.new {|o| status = ((s = o.new_status) ? " (#{s})" : nil); "#{o.issue.tracker} ##{o.issue.id}#{status}: #{o.issue.subject}" }, acts_as_event :title =>Proc.new {|o| status = ((s = o.new_status) ? " (#{s})" : nil); "#{o.issue.tracker} ##{o.issue.inProjectIndex}#{status}: #{o.issue.subject}" },
:description =>:notes, :description =>:notes,
:author => :user, :author => :user,
:group => :issue, :group => :issue,

View File

@ -1,4 +1,8 @@
class School < ActiveRecord::Base class School < ActiveRecord::Base
attr_accessible :name, :province attr_accessible :name, :province
has_many :courses has_many :courses
def to_s
self.name.to_s
end
end end

View File

@ -191,6 +191,10 @@ class User < Principal
end end
} }
#选择项目成员时显示的用户信息文字
def userInfo
info=self.name + ' (' + self.login + ')';
end
###添加留言 fq ###添加留言 fq
def add_jour(user, notes, reference_user_id = 0, options = {}) def add_jour(user, notes, reference_user_id = 0, options = {})

View File

@ -278,7 +278,7 @@
<% if @user.auth_source_id.nil? %> <% if @user.auth_source_id.nil? %>
<p><%= f.text_field :login, :size => 25, :required => true %> <p><%= f.text_field :login, :size => 25, :required => true %><span id="valid_user_login"></span>
<em class="info"><%= l(:label_max_number) %></em></p> <em class="info"><%= l(:label_max_number) %></em></p>
<p><%= f.password_field :password, :size => 25, :required => true %> <p><%= f.password_field :password, :size => 25, :required => true %>
<em class="info"><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em></p> <em class="info"><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em></p>
@ -294,7 +294,7 @@
<td class="info" style="width: 10px"> <td class="info" style="width: 10px">
<%= text_field_tag :enterprise_name %></td></tr></table></p> <%= text_field_tag :enterprise_name %></td></tr></table></p>
</span> </span>
<p><%= f.text_field :mail, :required => true %></p> <p><%= f.text_field :mail, :required => true %><span id="valid_user_mail"></span></p>
<p> <p>
<em class="info"><%="#{l(:label_mail_attention)} "%></em></p> <em class="info"><%="#{l(:label_mail_attention)} "%></em></p>
<p><%= f.select :language, lang_options_for_select , :required => true %></p> <p><%= f.select :language, lang_options_for_select , :required => true %></p>
@ -368,3 +368,36 @@
<script type="text/javascript">
var $login = $('#user_login')
var $mail = $('#user_mail')
jQuery(document).ready(function() {
$login.blur(function(event) {
var $parent = $(this).parent();
if ( $(this).is('#user_login')) {
$.get('<%=account_valid_ajax_path%>?valid=login&value='+this.value, function(data) {
if (data.valid) {
$('#valid_user_login').html('<span class="green">'+data.message+"</span>");
}else{
$('#valid_user_login').html('<span class="red">'+data.message+"</span>");
}
});
};
});
$mail.blur(function(event) {
var $parent = $(this).parent();
if ( $(this).is('#user_mail')) {
$.get('<%=account_valid_ajax_path%>?valid=mail&value='+this.value, function(data) {
if (data.valid) {
$('#valid_user_mail').html('<span class="green">'+data.message+"</span>");
}else{
$('#valid_user_mail').html('<span class="red">'+data.message+"</span>");
}
});
};
});
});
</script>

View File

@ -0,0 +1,14 @@
<% edit_allowed = User.current.allowed_to?(:manage_files, @project) %>
<% if attachmenttypes.any? %>
<div id="put-tag-form-<%=attachment.id%>" class="hidden">
<%= select_tag "attachment_type",
options_from_collection_for_select(attachmenttypes, "id",
"typeName",attachment.attachtype), :onchange=>"attachmenttypes_change("+attachment.id.to_s + ",this.value)"%>
</div>
<%= link_to(image_tag('edit/edit.png'), 'javascript:void(0);',:style=>"white-space:nowrap;", :id=>"edit_box"+attachment.id.to_s ,
:onclick =>"$('#put-tag-form-" +attachment.id.to_s+ "').show();
$('#attach_type_id_label" +attachment.id.to_s+ "').hide();
$('#edit_box" +attachment.id.to_s+ "').hide();") if edit_allowed %>
<% end %>

View File

@ -13,8 +13,10 @@
<span class="font_lighter"><%= l(:label_user_create_project_homework) %></span> <span class="font_lighter"><%= l(:label_user_create_project_homework) %></span>
<span><%= link_to(bid.name, respond_path(bid), :class => 'bid_path') %></span> <span><%= link_to(bid.name, respond_path(bid), :class => 'bid_path') %></span>
<span style="float: right"> <span style="float: right">
<% if(User.current.logged? && (!Member.where('user_id = ? and project_id = ?', User.current.id, bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, bid.courses.first.id).first.roles&Role.where('id = ? or id = ? or id =?',5, 10, 7)).size >0)) %>
<%# 提交作业按钮 %> <%# 提交作业按钮 %>
<%= link_to l(:label_commit_homework), '#OpenWindow', rel: 'leanModal', onclick: "showSubH(#{bid.id}, '#{bid.name}');" if User.current.member_of?(@project) %> <%= link_to l(:label_commit_homework), '#OpenWindow', rel: 'leanModal', onclick: "showSubH(#{bid.id}, '#{bid.name}');" if User.current.member_of?(@project) %>
<% end %>
<% if (User.current.admin?||User.current.id==bid.author_id) %> <% if (User.current.admin?||User.current.id==bid.author_id) %>
<%= link_to( <%= link_to(
l(:button_edit), l(:button_edit),
@ -33,10 +35,19 @@
</tr> </tr>
<tr> <tr>
<td colspan="2"><span class="font_lighter"> <td colspan="2"><span class="font_lighter">
<% @bidding_project = bid.biding_projects.all
@temp = []
@bidding_project.each do |pro|
if pro.project && pro.project.project_status
@temp << pro
end
@temp
end
%>
<% if bid.homework_type == 1%> <% if bid.homework_type == 1%>
<%= l(:label_x_homework_project, :count => bid.homeworks.count) %>(<strong><%= link_to bid.homeworks.count, project_for_bid_path(bid.id) %></strong>) <%= l(:label_x_homework_project, :count => bid.homeworks.count) %>(<strong><%= link_to bid.homeworks.count, project_for_bid_path(bid.id) %></strong>)
<% else %> <% else %>
<%= l(:label_x_homework_project, :count => bid.biding_projects.count) %>(<strong><%= link_to bid.biding_projects.count, project_for_bid_path(bid.id) %></strong>) <%= l(:label_x_homework_project, :count => @temp.count) %>(<strong><%= link_to @temp.count, project_for_bid_path(bid.id) %></strong>)
<% end %></span> <% end %></span>
<span class="font_lighter"><%= l(:label_x_responses, :count => bid.commit) %>(<strong><%= link_to bid.commit, respond_path(bid) %></strong>)</span> <span class="font_lighter"><%= l(:label_x_responses, :count => bid.commit) %>(<strong><%= link_to bid.commit, respond_path(bid) %></strong>)</span>
<span style="float: right"> <span style="float: right">

View File

@ -148,11 +148,17 @@
</span></td> </span></td>
</tr> </tr>
<tr> <tr>
<td> <td colspan="2">
<% if Time.parse(@bid.deadline.to_s) < Time.parse(b_project.created_at.to_s) %> <% if Time.parse(@bid.deadline.to_s) < Time.parse(b_project.created_at.to_s) %>
<span class="required">迟交</span> <span class="required">迟交</span>
<% end %> <% end %>
</td> </td>
<td align="right">
<% if b_project.user.id == User.current.id || User.current.id == b_project.bid.author.id
%>
<%= link_to image_tag('delete.png'),{ :action => "delete", :binding_project => b_project}, :confirm => "Are you sure?" %>
<% end %>
</td>
</tr> </tr>
</table> </table>
</td> </td>

View File

@ -18,9 +18,14 @@
</tr> </tr>
<tr> <tr>
<td><span class="font_lighter"><%= l(:label_contest_project, :count => contest.contesting_projects.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_projects.count, show_project_contest_path(contest), :target => "_blank") %></span></strong>)</span> <td class="font_lighter">
<span class="font_lighter"><%= l(:label_contest_softapplication, :count => contest.contesting_softapplications.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_softapplications.count, show_softapplication_contest_path(contest), :target => "_blank") %></span></strong>)</span> <!-- <span class="font_lighter"><%= l(:label_contest_project, :count => contest.contesting_projects.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_projects.count, show_project_contest_path(contest), :target => "_blank") %></span></strong>)</span>
<span class="font_lighter"><%= l(:label_contest_softapplication, :count => contest.contesting_softapplications.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_softapplications.count, show_softapplication_contest_path(contest), :target => "_blank") %></span></strong>)</span> -->
<% if contest.id == 2 or contest.id == 3 or contest.id == 6 %>
<%= l(:label_contest_work, :count => contest.contesting_projects.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.projects.where('is_public=1').count, show_attendingcontest_contest_path(contest), :target => "_blank") %></span></strong>)
<% else %>
<%= l(:label_contest_work, :count => contest.contesting_softapplications.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_softapplications.count, show_attendingcontest_contest_path(contest), :target => "_blank") %></span></strong>)
<% end %>
</td> </td>
</tr> </tr>

View File

@ -0,0 +1,246 @@
<style>
input[type="submit"].contest_btn {
vertical-align: middle;
width: 60px;
height: 30px;
line-height: 18px;
font-size: 14px;
color: rgb(0, 0, 0);
background: url("/images/button/bg103.jpg") no-repeat scroll left top transparent;
padding: 0px 0px 4px 0px;
border-radius: 2px;
border: 1px solid rgb(148, 148, 148);
box-shadow: none;
text-shadow: none;
margin-top: -10px;
/*margin-right: -4px;*/
}
input[type="button"].contest_btn {
width: 60px;
height: 30px;
line-height: 18px;
font-size: 14px;
color: rgb(0, 0, 0);
background: url("/images/button/bg103.jpg") no-repeat scroll left top transparent;
padding: 0px 0px 4px 0px;
border-radius: 2px;
border: 1px solid rgb(148, 148, 148);
box-shadow: none;
text-shadow: none;
margin-top: -10px;
margin-right: -2px;
}
textarea:focus {
border: #d5dee9 1px solid;
}
</style>
<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);
}
}
function cancel() {
$("#put-bid-form").hide();
}
function cancel() {
$("#put-project-form").hide();
}
</script>
<!--参赛步骤-->
<div style="padding-left: 17px; padding-bottom: 15px">
温馨提示:如果您希望在我们平台托管参赛数据和代码,请按下面参赛步骤参赛!
</div>
<% if User.current.logged? %>
<div style="padding-bottom: 10px; line-height: 25px">
<div style="padding-left: 17px; font-size: 15px">
<strong>参赛步骤:</strong>
</div>
<div style="padding-left: 82px; ">
<span style="padding-top: 50px">步骤1</span>
<span><%#= link_to '新建参赛作品', new_softapplication_path(:target=>'_blank'), :target=>'_blank' %></span>
<span><%= link_to '新建参赛作品', "javascript:void(0);", onclick: "$('#put-project-form').toggle();" %></span>
<span style="font-size: 12px; color: grey">先点击“新建参赛作品”然后刷新页面再继续步骤2。</span>
</div>
<div style="padding-left: 82px; ">
<span style="padding-top: 50px">步骤2</span>
<span><%= link_to '关联参赛作品', "javascript:void(0);", onclick: "$('#put-bid-form').toggle();" %></span>
</div>
</div>
<!--点击新建参赛作品弹出框-->
<div id="put-project-form" style="display: none; padding-left: 83px; width: 70%">
<%= form_for Softapplication.new, :remote=>true, :url => softapplications_path, :complete => '$("#put-bid-form").hide();' do |f| %>
<fieldset class="contes-new-box", style="padding-left: 36px">
<tr style="width:700px; margin-left: -10px">
<span><%= l(:label_softapplication_name) %></span>
<span class="contest-star"> * </span>: <td ><%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr></ br>
<br />
<br />
<tr style="width:800px;">
<span><%= l(:label_softapplication_version_available) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :android_min_version_available, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr></ br>
<br />
<br />
<tr style="width:800px;">
<span><%= l(:label_softapplication_type) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr></ br>
<br />
<br />
<tr style="width:800px;">
<span><%= l(:label_softapplication_description) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :description, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr></ br>
<br />
<br />
<tr style="width:800px;">
<span><%= l(:label_softapplication_developers) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :application_developers, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr></ br>
<br />
<br />
<fieldset style="width: 500px", style="padding-top: 10px">
<legend>
上传应用软件包和应用截图
</legend>
<%= render_flash_messages %>
<p id="put-bid-form-partial">
<%= render :partial => 'attachments/form' %>
</p>
<p style="font-size: 10px">
1、<%= l(:label_upload_softapplication_packets_mustpacketed)%>
<br>
2、<%= l(:label_upload_softapplication_photo_condition)%>
</p>
<p style="font-size: 10px; color: red">
<%= l(:label_updated_caution)%>
</p>
</fieldset>
</fieldset></br>
<div class="align-center", style="padding-top: -3px; padding-bottom: 8px">
<%= submit_tag l(:button_create), :onclick => "cancel();" %>
</div>
<% end %>
</div>
<!--点击关联参赛作品后弹出关联框-->
<div id="put-bid-form" style="display: none; padding-left: 83px; width: 70%">
<%= form_for "contest_for_save", :remote=>true, :url => {:controller => 'contests', :action => 'add_softapplication'}, :update => "contesting_softapplication_list", :complete => '$("#put-bid-form").hide();' do |f| %>
<table id="contesting_table" border="0" width="102%" style="margin-left: -3px;">
<!--该table为点击关联参赛作品后弹出的-->
<tr style="padding-left: 50px">
<%= select_tag 'contest', options_for_select(select_option_app_helper(@softapplication)), :name => 'contest', :class => 'grayline' %>
</tr>
<tr>
<td><%= f.text_area :contest_message, :id => "contest_message", :required => true, :rows => 2, :cols => 40, :placeholder => l(:label_bid_reason), :style => "resize: none;", :class => 'noline'%></td>
</tr>
<tr>
<td align="right"> <%= submit_tag l(:button_add), :name => nil , :class => "enterprise",
:onmouseout => "this.style.backgroundPosition = 'left top'",
:onmouseover => "this.style.backgroundPosition = 'left -30px'"%>
<%= submit_tag l(:button_cancel), :name => nil, :onclick => "cancel();",
:type => 'button', :class => "enterprise", :onmouseout => "this.style.backgroundPosition = 'left top'",
:onmouseover => "this.style.backgroundPosition = 'left -30px'" %> </td>
</tr>
</table>
<% end %>
</div>
<% end %>
<div class="underline-contests_three"></div>
<!--参赛作品列表,通过判断竞赛的id为2,3,6的显示参赛作品为提交的项目否则显示参赛的应用-->
<% if @contest.id == 2 or @contest.id == 3 or @contest.id == 6 %>
<% @contesting_project.sort.reverse.each do |c_project|%>
<% if c_project.project %>
<div style="padding-left: 18px">
<div style="font-size: 15px">
<tr>
<td><strong>参赛作品: </strong></td>
<td> <%= link_to(c_project.project.name, project_path(c_project.project), :target => '_blank') %> </td>
</tr></br>
</div>
<div style="padding-left: 68px">
<tr>
<td>简介:</td>
<td> <%= c_project.project.description.truncate(90, omission: '...') %> </td>
</tr></br>
</div>
<div style="padding-left: 68px; padding-bottom: 8px">
<tr>
<td>发布时间:</td>
<td> <%= format_time c_project.created_at%> </td>
</tr>
</div>
</div>
<% end %>
<div class="underline-contests_three"></div>
<% end %>
<% else %>
<% @contesting_softapplication.each do |c_softapplication|%>
<% if c_softapplication.softapplication %>
<div style="padding-left: 18px">
<div style="font-size: 15px">
<tr>
<td><strong>参赛作品: </strong></td>
<td> <%= link_to(c_softapplication.softapplication.name, softapplication_path(c_softapplication.softapplication), :target => '_blank') %> </td>
</tr></br>
</div>
<div style="padding-left: 68px">
<tr>
<td>简介:</td>
<td> <%= c_softapplication.softapplication.description.truncate(90, omission: '...') %> </td>
</tr></br>
</div>
<div style="padding-left: 68px; padding-bottom: 8px">
<tr>
<td>发布时间:</td>
<td> <%= format_time c_softapplication.created_at %> </td>
</tr>
</div>
</div>
<% end %>
<div class="underline-contests_three"></div>
<% end %>
<% end %>
<div class="pagination">
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false %>
</div>

View File

@ -1,24 +1,28 @@
<% selAttachType =@attachtype %>
<% selContentType =@contenttype %>
<% attachmenttypes = @project.attachmenttypes %>
<% delete_allowed = User.current.allowed_to?(:manage_files, @project) %> <% delete_allowed = User.current.allowed_to?(:manage_files, @project) %>
<% edit_allowed = User.current.allowed_to?(:manage_files, @project) %> <% edit_allowed = User.current.allowed_to?(:manage_files, @project) %>
<ul id="all_browse_ul">
<table class="list files" id="ver-zebra"> <table class="list files" id="ver-zebra">
<colgroup> <colgroup>
<col class="vzebra-odd"/> <col class="vzebra-odd"/>
<col class="vzebra-even"/> <col class="vzebra-even"/>
<col class="vzebra-odd"/> <col class="vzebra-odd"/>
<col class="vzebra-even"/> <col class="vzebra-even"/>
<col class="vzebra-odd" /> <!-- <col class="vzebra-odd"/> -->
</colgroup> </colgroup>
<thead><tr> <thead>
<tr>
<%= sort_header_tag('filename', :caption => l(:field_filename), :scope => "col", :id => "vzebra-adventure") %> <%= sort_header_tag('filename', :caption => l(:field_filename), :scope => "col", :id => "vzebra-adventure") %>
<%= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc', :scope =>"col" , :id => "vzebra-comedy")%> <%#= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc', :scope => "col", :id => "vzebra-comedy") %>
<%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc', :scope => "col", :id => "vzebra-children") %> <%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc', :scope => "col", :id => "vzebra-children") %>
<%= sort_header_tag('attach_type', :caption => l(:attachment_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-attachmenttype") %> <%= sort_header_tag('attach_type', :caption => l(:attachment_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-attachmenttype") %>
<%= sort_header_tag('content_type', :caption => l(:attachment_sufix_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-contenttype") %> <%= sort_header_tag('content_type', :caption => l(:attachment_sufix_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-contenttype") %>
<%= sort_header_tag('downloads', :caption => l(:field_downloads), :default_order => 'desc', :scope => "col", :id => "vzebra-action") %> <%= sort_header_tag('downloads', :caption => l(:field_downloads), :default_order => 'desc', :scope => "col", :id => "vzebra-action") %>
<%= sort_header_tag('operation', :caption => "", :scope => "col", :id => "vzebra-children") %> <%= sort_header_tag('operation', :caption => "", :scope => "col", :id => "vzebra-children") %>
<!-- <%= sort_header_tag('description', :caption => l(:field_description)) %> --> <!-- <%= sort_header_tag('description', :caption => l(:field_description)) %> -->
</tr></thead> </tr>
</thead>
<tbody> <tbody>
<% @containers.each do |container| %> <% @containers.each do |container| %>
<% next if container.attachments.empty? -%> <% next if container.attachments.empty? -%>
@ -31,10 +35,15 @@
<% end -%> <% end -%>
<% container.attachments.each do |file| %> <% container.attachments.each do |file| %>
<tr class="file <%= cycle("odd", "odd") %>"> <tr class="file <%= cycle("odd", "odd") %>">
<td class="filename" style="font-size: 13px; width: 240px; "><%= link_to_attachment file, :download => true, :title => file.filename+"\n"+file.description.to_s, :style => "width: 230px; overflow: hidden; white-space: nowrap;text-overflow: ellipsis;" %></td> <td class="filename" style="font-size: 13px; "><%= link_to_attachment file, :download => true, :title => file.filename+"\n"+file.description.to_s, :style => "width: 230px; overflow: hidden; white-space: nowrap;text-overflow: ellipsis;" %></td>
<td class="created_on"><%= format_time(file.created_on) %></td> <!-- <td class="created_on"><%#= format_time(file.created_on) %></td> -->
<td class="filesize"><%= number_to_human_size(file.filesize) %></td> <td class="filesize"><%= number_to_human_size(file.filesize) %></td>
<td class="attach_type"><%= file.attachmentstype.typeName %></td> <td class="attach_type">
<span id="attach_type_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.attachmentstype.typeName %></span>
<span id="attach_type_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'attachments/type_edit', :locals => {:attachmenttypes => attachmenttypes, :attachment => file, :contentype => selContentType} %>
</span>
</td>
<td class="content_type"><%= file.show_suffix_type %></td> <td class="content_type"><%= file.show_suffix_type %></td>
<td class="downloads"><%= file.downloads %></td> <td class="downloads"><%= file.downloads %></td>
<!-- <td class="digest" width="300px"><%= file.description %></td> --> <!-- <td class="digest" width="300px"><%= file.description %></td> -->
@ -44,9 +53,9 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class='description' colspan="5"> <td class='description' colspan="6">
<div class="tags_area"> <div class="tags_area">
<% @preTags = %w|预设A 预设B 预设C 预设D 预设E 预设Z | %> <%# @preTags = %w|预设A 预设B 预设C 预设D 预设E 预设Z | %>
<%= render :partial => 'tags/tag', :locals => {:obj => file, :object_flag => "6"} %> <%= render :partial => 'tags/tag', :locals => {:obj => file, :object_flag => "6"} %>
<div class="tags_gradint"></div> <div class="tags_gradint"></div>
</div> </div>
@ -61,4 +70,3 @@
</tbody> </tbody>
</table> </table>
</ul>

View File

@ -1,21 +1,20 @@
<% selAttachType =@attachtype %> <% selAttachType =@attachtype %>
<% selContentType =@contenttype %> <% selContentType =@contenttype %>
<% attachmenttypes = @project.attachmenttypes %>
<% delete_allowed = User.current.allowed_to?(:manage_files, @project) %> <% delete_allowed = User.current.allowed_to?(:manage_files, @project) %>
<% edit_allowed = User.current.allowed_to?(:manage_files, @project) %> <% edit_allowed = User.current.allowed_to?(:manage_files, @project) %>
<div id="catarory_browse_div" class="catarory_browse_div"> <table class="list files" id="ver-zebra">
<ul id="catarory_browse_ul">
<table class="list files" id="ver-zebra1">
<colgroup> <colgroup>
<col class="vzebra-odd"/> <col class="vzebra-odd"/>
<col class="vzebra-even"/> <col class="vzebra-even"/>
<col class="vzebra-odd"/> <col class="vzebra-odd"/>
<col class="vzebra-even"/> <col class="vzebra-even"/>
<col class="vzebra-odd"/> <!-- <col class="vzebra-odd"/> -->
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<%= sort_header_tag('filename', :caption => l(:field_filename), :scope => "col", :id => "vzebra-adventure") %> <%= sort_header_tag('filename', :caption => l(:field_filename), :scope => "col", :id => "vzebra-adventure") %>
<%= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc', :scope => "col", :id => "vzebra-comedy") %> <%#= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc', :scope => "col", :id => "vzebra-comedy") %>
<%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc', :scope => "col", :id => "vzebra-children") %> <%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc', :scope => "col", :id => "vzebra-children") %>
<%= sort_header_tag('attach_type', :caption => l(:attachment_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-attachmenttype") %> <%= sort_header_tag('attach_type', :caption => l(:attachment_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-attachmenttype") %>
<%= sort_header_tag('content_type', :caption => l(:attachment_sufix_browse), :default_order => 'desc', :scope =>"col", :id=> "vzebra-contenttype")%> <%= sort_header_tag('content_type', :caption => l(:attachment_sufix_browse), :default_order => 'desc', :scope =>"col", :id=> "vzebra-contenttype")%>
@ -30,10 +29,17 @@
<% container.attachments.each do |file| %> <% container.attachments.each do |file| %>
<% if isTypeOk(file,selAttachType,selContentType) %> <% if isTypeOk(file,selAttachType,selContentType) %>
<tr class="file <%= cycle("odd", "odd") %>"> <tr class="file <%= cycle("odd", "odd") %>">
<td class="filename" style="font-size: 13px; width: 240px; "><%= link_to_attachment file, :download => true, :title => file.filename+"\n"+file.description.to_s, :style => "width: 230px; overflow: hidden; white-space: nowrap;text-overflow: ellipsis;" %></td> <td class="filename" style="font-size: 13px; "><%= link_to_attachment file, :download => true, :title => file.filename+"\n"+file.description.to_s, :style => "width: 230px; overflow: hidden; white-space: nowrap;text-overflow: ellipsis;" %></td>
<td class="created_on"><%= format_time(file.created_on) %></td> <!-- <td class="created_on"><%#= format_time(file.created_on) %></td> -->
<td class="filesize"><%= number_to_human_size(file.filesize) %></td> <td class="filesize"><%= number_to_human_size(file.filesize) %></td>
<td class="attach_type"><%= file.attachmentstype.typeName %></td> <td class="attach_type">
<span id="attach_type_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.attachmentstype.typeName %></span>
&nbsp;
<span id="attach_type_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'attachments/type_edit', :locals => {:attachmenttypes => attachmenttypes,
:attachment => file,:contentype=>selContentType} %>
</span>
</td>
<td class="content_type"><%= file.show_suffix_type %></td> <td class="content_type"><%= file.show_suffix_type %></td>
<td class="downloads"><%= file.downloads %></td> <td class="downloads"><%= file.downloads %></td>
<!-- <td class="digest" width="300px"><%= file.description %></td> --> <!-- <td class="digest" width="300px"><%= file.description %></td> -->
@ -43,9 +49,9 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class='description' colspan="5"> <td class='description' colspan="6">
<div class="tags_area"> <div class="tags_area">
<% @preTags = %w|预设A 预设B 预设C 预设D 预设E 预设Z | %> <%# @preTags = %w|预设A 预设B 预设C 预设D 预设E 预设Z | %>
<%= render :partial => 'tags/tag', :locals => {:obj => file, :object_flag => "6"} %> <%= render :partial => 'tags/tag', :locals => {:obj => file, :object_flag => "6"} %>
<div class="tags_gradint"></div> <div class="tags_gradint"></div>
</div> </div>
@ -62,5 +68,4 @@
</tbody> </tbody>
</table> </table>
</ul>
</div>

View File

@ -1,4 +1,4 @@
<% if @attachtype==0 && @contenttype==l(:attachment_all)%> <% if @attachtype==0 && @contenttype=='0' %>
$("#all_browse_div").html('<%= j(render partial: "show_all_attachment")%>'); $("#all_browse_div").html('<%= j(render partial: "show_all_attachment")%>');
<%else%> <%else%>
$("#all_browse_div").html('<%= j(render partial: "sort_by_attachtypel")%>'); $("#all_browse_div").html('<%= j(render partial: "sort_by_attachtypel")%>');

View File

@ -1,177 +1,6 @@
<!-- <h3> --><!-- %=l(:label_attachment_plural)%></h3 --> <!-- <h3> --><!-- %=l(:label_attachment_plural)%></h3 -->
<% attachmenttypes = @project.attachmenttypes %> <% attachmenttypes = @project.attachmenttypes %>
<% sufixtypes = @project.contenttypes %> <% sufixtypes = @project.contenttypes %>
<style>
#ver-zebra, .file_table_des
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
margin: 5px 10px;
width: 98%;
text-align: left;
border-collapse: collapse;
line-height: 20px;
font-size: 14px;
}
#ver-zebra th
{
font-size: 14px;
font-weight: normal;
padding: 12px 15px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
color: #039;
text-align: left;
}
#ver-zebra td
{
padding: 8px 15px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
color: #669;
}
#ver-zebra td.description {
background-color: white;
padding: 0px;
margin: 0px auto;
}
#ver-zebra1, .file_table_des
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
margin: 5px 10px;
width: 98%;
text-align: left;
border-collapse: collapse;
line-height: 20px;
font-size: 14px;
}
#ver-zebra1 th
{
font-size: 14px;
font-weight: normal;
padding: 12px 15px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
color: #039;
text-align: left;
}
#ver-zebra1 td
{
padding: 8px 15px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
color: #669;
}
#ver-zebra1 td.description {
background-color: white;
padding: 0px;
margin: 0px auto;
}
div.tags_area {
padding: 2px 10px 10px 10px;
margin: 0px;
margin-bottom: 10px;
/*border-bottom: 1px dashed #CCCCCC;*/
overflow: hidden;
position: relative;
}
.tags_gradint {
}
.read-more{
padding: 5px;
border-top: 4px double #ddd;
background: #fff;
color: #333;
}
.read-more a{
padding-right: 22px;
background: no-repeat 100% 50%;
font-weight: bold;
text-decoration: none;
}
.read-more a:hover{
color: #000;
}
.vzebra-odd
{
background: #eff2ff;
}
.vzebra-even
{
background: #e8edff;
}
#ver-zebra #vzebra-adventure, #ver-zebra #vzebra-children
{
background: #ffffff;
border-bottom: 1px solid #c8d4fd;
}
#ver-zebra #vzebra-comedy, #ver-zebra #vzebra-action
{
background: #ffffff;
border-bottom: 1px solid #d6dfff;
}
#ver-zebra1 #vzebra-adventure, #ver-zebra #vzebra-children
{
background: #ffffff;
border-bottom: 1px solid #c8d4fd;
}
#ver-zebra1 #vzebra-comedy, #ver-zebra #vzebra-action
{
background: #ffffff;
border-bottom: 1px solid #d6dfff;
}
.filename{
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
div.pagination{
margin: 10px 0px;
height: 1.5em;
text-align: left;
font-size: 13px;
}
.m5p5{
display: inline-block;
height: auto;
color: white !important;
margin: 8px;
padding: 3px 7px;
}
.m5p5:hover {
text-decoration: none;
/*padding-bottom: 3px;*/
/*border-bottom: 1px solid #666666;*/
border-radius: 4px;
border: 1px solid #15bccf;
box-shadow: 3px 3px 3px #666666;
}
.relation_file_div{
margin: 0px 25px;
}
.relation_file_div fieldset{
margin: 0px 0px;
padding: 10px;
border-radius: 5px;
transition: all 2s linear 1s;
}
.relation_file_div input#attach_search:focus{
border: 1px solid #1B95C6;
box-shadow: 0px 0px 4px #1B95C6;
width: 200px;
}
.relation_file_div input#attach_search{
width: 150px;
outline: none;
border-radius: 5px;
-webkit-transition: 1s width;
-moz-transition : 1s width;
-o-transition : 1s width;
transition : 1s width;
}
</style>
<span class="borad-title"><%= (@project.project_type == 1) ? t(:label_user_course) : t(:label_project) %>资源共享区</span> <span class="borad-title"><%= (@project.project_type == 1) ? t(:label_user_course) : t(:label_project) %>资源共享区</span>
@ -186,13 +15,13 @@
<% if attachmenttypes.any? %> <% if attachmenttypes.any? %>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<label for="attachment_browse_label"><%= l(:attachment_browse) %></label> <label for="attachment_browse_label"><%= l(:attachment_browse) %></label>
<%= select_tag "attachment_browse", content_tag('option',l(:attachment_all)) +options_from_collection_for_select(attachmenttypes, "id", "typeName"), <%= select_tag "attachment_browse", content_tag(:option, l(:attachment_all), :value => '0') +options_from_collection_for_select(attachmenttypes, "id", "typeName"),
:onchange => "attachmenttypes_searchex(this.value)" %> :onchange => "attachmenttypes_searchex(this.value)" %>
<% end %> <% end %>
<% if sufixtypes.any? %> <% if sufixtypes.any? %>
&nbsp; &nbsp;
<label for="attach_sufix_browse_label"><%= l(:attachment_sufix_browse) %></label> <label for="attach_sufix_browse_label"><%= l(:attachment_sufix_browse) %></label>
<%= select_tag "attach_sufix_browse", content_tag('option', l(:attachment_all)) +options_for_select(sufixtypes), <%= select_tag "attach_sufix_browse", content_tag(:option, l(:attachment_all), :value => '0') +options_for_select(sufixtypes),
:onchange => "attachment_contenttypes_searchex(this.value)" %> :onchange => "attachment_contenttypes_searchex(this.value)" %>
<% end %> <% end %>
@ -206,8 +35,8 @@
attachments_autocomplete_path(:format => 'js'), attachments_autocomplete_path(:format => 'js'),
:remote => true, :remote => true,
:method => :post) do %> :method => :post) do %>
<%= label_tag(:atext_field_tagttach_search, "按关键字搜索:") %> <%= label_tag(:attach_search, "按关键字搜索:") %>
<%= (:attach_search) %> <%= text_field_tag(:attach_search) %>
<%#= submit_tag("Search") %> <%#= submit_tag("Search") %>
<% end -%> <% end -%>
<%= form_tag attach_relation_path(:format => 'js'), <%= form_tag attach_relation_path(:format => 'js'),
@ -253,7 +82,7 @@
var $tags = $td_tags_area.find('#tags') var $tags = $td_tags_area.find('#tags')
var $icona = $td_tags_area.find('.tags_icona') var $icona = $td_tags_area.find('.tags_icona')
var slideHeight = 20; //px var slideHeight = 13; //px
var defHeight = $tags.height(); var defHeight = $tags.height();
var curHeight = $tags_area.height(); var curHeight = $tags_area.height();
@ -271,7 +100,8 @@
$read_more_a.html('更多'); $read_more_a.html('更多');
$icona.html('<%=image_tag "/images/sidebar/add.png"%>') $icona.html('<%=image_tag "/images/sidebar/add.png"%>')
$tags_gradint.fadeIn(); $tags_gradint.fadeIn();
}; }
;
} }
$(function () { $(function () {
@ -279,42 +109,80 @@
var defHeight = $('.tags_area').height(); var defHeight = $('.tags_area').height();
if (defHeight >= slideHeight) { if (defHeight >= slideHeight) {
$('.tags_area').css('height', slideHeight + 'px'); $('.tags_area').css('height', slideHeight + 'px');
}; }
;
}); });
</script> function eval_ajax (xhr, textStatus) {
<script type="text/javascript">
function attachmenttypes_searchex(value) {
$.ajax({
url: '<%=getattachtype_project_files_path(project_id: @project)%>' + '?type='
+ encodeURIComponent(value) + "&contentType=" + $('#attach_sufix_browse').val(),
type: "POST"
}).complete(function (xhr, textStatus) {
if (textStatus == 'success') { if (textStatus == 'success') {
eval(xhr.responseText); eval(xhr.responseText);
} else if (textStatus == 'error') { } else if (textStatus == 'error') {
alert('error'); alert('error');
} }
}); }
function attachmenttypes_searchex(value) {
$.ajax({
url: '<%=getattachtype_project_files_path(project_id: @project)%>',
type: "POST",
data: {
type: encodeURIComponent(value),
contentType:$('#attach_sufix_browse').val()
}
}).complete(eval_ajax);
} }
function attachment_contenttypes_searchex(value) { function attachment_contenttypes_searchex(value) {
$.ajax({ $.ajax({
url: '<%=getattachtype_project_files_path(project_id: @project)%>' + '?type=' url: '<%=getattachtype_project_files_path(project_id: @project)%>',
+ $('#attachment_browse').val() + "&contentType=" + encodeURIComponent(value), type: "POST",
type: "POST" data: {
type: $('#attachment_browse').val(),
contentType: encodeURIComponent(value)
}
}).complete(eval_ajax);
}
function attachtype_edit(value) {
$.ajax({
url: '<%=getattachtype_project_files_path(project_id: @project)%>',
type: "POST",
data: {
type: $('#attachment_browse').val(),
contentType: encodeURIComponent(value)
}
}).complete(eval_ajax);
}
function attachmenttypes_change(id, type) {
$.ajax({
url: '<%=updateType_attachments_path%>',
type: "POST",
data: {
attachmentid: encodeURIComponent(id),
newtype: encodeURIComponent(type)
}
}).complete(function (xhr, textStatus) { }).complete(function (xhr, textStatus) {
if (textStatus == 'success') { if (textStatus == 'success') {
eval(xhr.responseText); $.ajax({
} else if (textStatus == 'error') { url: '<%=getattachtype_project_files_path(project_id: @project)%>',
alert('error'); type: "POST",
data: {
type: $('#attachment_browse').val(),
contentType: $('#attach_sufix_browse').val()
}
}).error(function () {
alert('error');
});
} else if (textStatus == 'error') {
alert('An error has occurred');
} }
;
}); });
} }
</script> </script>

View File

@ -15,7 +15,7 @@
<tr> <tr>
<td style="padding-left: 8px"><%=link_to request.host()+"/softapplications", :controller=>'softapplications', :action=>'index' %></td> <td style="padding-left: 8px"><%=link_to request.host()+"/softapplications", :controller=>'softapplications', :action=>'index' %></td>
<td ><%=link_to l(:field_homepage), home_path %> > <td ><%=link_to l(:field_homepage), home_path %> >
<%=link_to l(:label_contest_softapplication), :controller=>'softapplications', :action=>'index' %> <%=link_to l(:label_contest_work), :controller=>'softapplications', :action=>'index' %>
</td> </td>
</tr> </tr>
</table> </table>

View File

@ -160,7 +160,7 @@
<% unless @course.teacher.user_extensions.nil?%> <% unless @course.teacher.user_extensions.nil?%>
<tr> <tr>
<td valign="top" style="padding-left: 8px;"><%= l(:label_teacher_work_unit) %> :</td><td class="font_lighter_sidebar"><%= @course.teacher.user_extensions.occupation %></td> <td valign="top" style="padding-left: 8px;"><%= l(:label_teacher_work_unit) %> :</td><td class="font_lighter_sidebar"><%= @course.teacher.user_extensions.school %></td>
</tr> </tr>
<% else %> <% else %>
<tr> <tr>

View File

@ -99,18 +99,25 @@
<!-- <td class="font_index"> <!-- <td class="font_index">
<%=link_to "#{@contest.join_in_competitions.count}",:controller => "contests",:action => "show_participator" %> <%=link_to "#{@contest.join_in_competitions.count}",:controller => "contests",:action => "show_participator" %>
</td> --> </td> -->
<!--关注人数-->
<td class="font_index"> <td class="font_index">
<%=link_to "#{@contest.projects.where('is_public=1').count}", :controller => 'contests', :action => 'show_project' %> <!-- <%=link_to "#{@contest.projects.where('is_public=1').count}", :controller => 'contests', :action => 'show_project' %> -->
<%=link_to "#{@contest.watcher_users.count}", :controller => 'contests', :action => 'show_project' %>
</td> </td>
<!--参赛作品数量-->
<td class="font_index"> <td class="font_index">
<%=link_to "#{@contest.contesting_softapplications.count}", :controller => 'contests', :action => 'show_softapplication' %> <% if @contest.id == 2 or @contest.id == 3 or @contest.id == 6 %>
<%=link_to "#{@contest.projects.where('is_public=1').count}" %>
<% else %>
<%=link_to "#{@contest.contesting_softapplications.count}", :controller => 'contests', :action => 'show_attendingcontest' %>
<% end %>
</td> </td>
</tr> </tr>
<tr class="font_aram"> <tr class="font_aram">
<!-- <td align="center" width="70px"> <%= l(:label_participate) %></td> --> <!-- <td align="center" width="70px"> <%= l(:label_participate) %></td> -->
<td align="center" width="70px"> <%= l(:label_contest_project) %></td> <td align="center" width="70px"> <%= l(:label_contest_watchers) %></td>
<td align="center" width="70px"> <%= l(:label_contest_application) %></td> <td align="center" width="70px"> <%= l(:label_contest_work) %></td>
</tr> </tr>
</table> </table>
@ -178,9 +185,9 @@
<div class="user_underline"></div> <div class="user_underline"></div>
<div class="font_title_left"> <div class="font_title_left">
<strong><%= l(:label_x_followers, :count => @contest.watcher_users.count) %></strong> <strong><%= l(:label_x_followers, :count => @contest.watcher_users.count) %></strong>
<% if show_more_fans?(@contest) %> <!-- <% if show_more_fans?(@contest) %>
<span style="display:inline-block; font-size: 12px; float:right; margin-bottom: -4px;"><%= link_to l(:label_more), :controller => 'contests', :action => 'show_contest_user'%></span> <span style="display:inline-block; font-size: 12px; float:right; margin-bottom: -4px;"><%= link_to l(:label_more), :controller => 'contests', :action => 'show_contest_user'%></span>
<% end %> <% end %> -->
</div> </div>
<div class="left_wf"> <div class="left_wf">
<table> <table>

View File

@ -65,7 +65,7 @@
<% pages_count = @reply_pages.offset %> <% pages_count = @reply_pages.offset %>
<% @replies.each do |reply| %> <% @replies.each do |reply| %>
<div class="reply" id="<%= "reply-#{reply.id}" %>"> <div class="reply" id="<%= "reply-#{reply.id}" %>">
<p class="font_lighter"><%= pages_count += 1 %>楼 :</p> <p class="font_lighter"><!--<span style="display: inline"><%= pages_count += 1 %>楼 :</span>--></p>
<div class="contextual-borad"> <div class="contextual-borad">
<!-- <%= link_to( <!-- <%= link_to(
image_tag('comment.png'), image_tag('comment.png'),
@ -103,7 +103,7 @@
) if reply.destroyable_by?(User.current) %> ) if reply.destroyable_by?(User.current) %>
</div> </div>
<br/>
<table class="borad-text-list"> <table class="borad-text-list">
<tr> <tr>
<td rowspan="3" valign="top" width="60px"> <td rowspan="3" valign="top" width="60px">

View File

@ -124,7 +124,8 @@
<table class="borad-text-list"> <table class="borad-text-list">
<tr> <tr>
<td class="font_lighter"><%= reply_count += 1 %>楼 </td> <!--<td class="font_lighter"> </td> -->
<td rowspan="3" valign="top" width="60px"><%= link_to image_tag(url_to_avatar(message.author), :class => "avatar"), user_path(message.author) %></td>
<td> <td>
<div class="contextual-borad"> <div class="contextual-borad">
<%= link_to( <%= link_to(
@ -150,7 +151,7 @@
</div></td> </div></td>
</tr> </tr>
<tr> <tr>
<td rowspan="3" valign="top" width="60px"><%= link_to image_tag(url_to_avatar(message.author), :class => "avatar"), user_path(message.author) %></td>
<td class="comments"> <td class="comments">
<div class="wiki"> <div class="wiki">
<%= textilizable message, :content, :attachments => message.attachments %> <%= textilizable message, :content, :attachments => message.attachments %>

View File

@ -1,5 +1,3 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready( $(document).ready(
function () { function () {
@ -19,17 +17,13 @@
data: 'text', data: 'text',
success: function (data) { success: function (data) {
$("#province").val(value)
$("#schoollist").html(data); $("#schoollist").html(data);
} }
});
} }
)
}
</script> </script>
@ -78,60 +72,47 @@
<!-- added by bai 增加账户里的性别--> <!-- added by bai 增加账户里的性别-->
<span id='gender' style='display:none'> <span id='gender' style='display:none'>
<% unless @user.user_extensions.nil? %> <% if @user.user_extensions.nil? %>
<% if @user.user_extensions.gender == 0 %>
<p style="width:400px;padding-left: 26px;"> <p style="width:400px;padding-left: 26px;">
<%= l(:label_gender) %>&nbsp;&nbsp;<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1'>#{l(:label_gender_female)}</option>".html_safe ,:class =>'gender' %> <%= l(:label_gender) %>&nbsp;&nbsp;
<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1'>#{l(:label_gender_female)}</option>".html_safe, :class => 'gender' %>
</p>
<% else %>
<% if @user.user_extensions.gender == 0 %><!-- label_gender_male -->
<p style="width:400px;padding-left: 26px;">
<%= l(:label_gender) %>&nbsp;&nbsp;
<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1'>#{l(:label_gender_female)}</option>".html_safe, :class => 'gender' %>
</p> </p>
<% else %> <% else %>
<p style="width:400px;padding-left: 26px;"> <p style="width:400px;padding-left: 26px;">
<%= l(:label_gender) %>&nbsp;&nbsp;<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1' selected='selected'>#{l(:label_gender_female)}</option>".html_safe ,:class =>'gender' %> <%= l(:label_gender) %>&nbsp;&nbsp;
</p> <%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1' selected='selected'>#{l(:label_gender_female)}</option>".html_safe, :class => 'gender' %>
<% end %>
<% else %>
<p style="width:400px;padding-left: 26px;"><%= l(:label_gender) %>&nbsp;&nbsp;<%= select_tag 'gender', "<option value = '0'>#{l(:label_gender_male)}</option><option value = '1'>#{l(:label_gender_female)}</option>".html_safe ,:class =>'gender' %></p>
</p> </p>
<% end %> <% end %>
<!-- added by bai 单位-->
<!--<% unless @user.user_extensions.nil?%>
<p style="width:400px;padding-left: 26px;"><%= l(:field_occupation)%>&nbsp;<span class="required">*</span><%= text_field_tag "occupation", @user.user_extensions.occupation, :class => 'occupation' %>
</p>
<%else%>
<p style="width:400px;padding-left: 26px;"><%= l(:field_occupation)%><span class="required">*</span><%= text_field_tag "occupation", nil, :class => 'occupation' %>
</p>
<% end %> <% end %>
--> </span>
<!-- added by Wen --> <!-- added by Wen -->
<p style="padding-left: 26px;"> <p style="padding-left: 26px;">
<% unless User.current.user_extensions.school.nil? %> <% if User.current.user_extensions.school.nil? %>
<%= l(:field_occupation) %>&nbsp;<span class="required">*</span>
<input id="province" name="province" type="text" value="<%=User.current.user_extensions.school.province%>" readonly />
<input id="occupation" name="occupation" type="hidden" value="<%=User.current.user_extensions.school.id%>" />
<input id="occupation_name" type="text" value="<%=User.current.user_extensions.school.name%>" readonly />
<% else %>
<%= l(:field_occupation) %>&nbsp;<span class="required">*</span> <%= l(:field_occupation) %>&nbsp;<span class="required">*</span>
<input id="province" name="province" type="text" value="请单击选择省份及学校" readonly> <input id="province" name="province" type="text" value="请单击选择省份及学校" readonly>
<input id="occupation" name="occupation" type="hidden"/> <input id="occupation" name="occupation" type="hidden"/>
<input id="occupation_name" type="text" readonly/> <input id="occupation_name" type="text" readonly/>
<% else %>
<%= l(:field_occupation) %>&nbsp;<span class="required">*</span>
<input id="province" name="province" type="text" value="<%= User.current.user_extensions.school.province %>" readonly/>
<input id="occupation" name="occupation" type="hidden" value="<%= User.current.user_extensions.school.id %>"/>
<input id="occupation_name" type="text" value="<%= User.current.user_extensions.school.name %>" readonly/>
<% end %> <% end %>
<!-- <input id="occupation" readonly />-->
</p> </p>
<div id="WOpenWindow"> <div id="WOpenWindow">
<a class="modal_close" href="#"></a> <a class="modal_close" href="#"></a>
<h2>学校列表</h2> <h2>学校列表</h2>
<div class="pcontent"> <div class="pcontent">
<ul id="provincelist" class="school_list"> <ul id="provincelist" class="school_list">
<% @ss = School.find_by_sql("select distinct province from schools") %> <% @ss = School.find_by_sql("select distinct province from schools") %>
@ -149,37 +130,165 @@
</ul> </ul>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
function test(id, name) { function test(id, name) {
//$("#occupation").html("<option value='"+id+"'>"+name+"</option>"); //$("#occupation").html("<option value='"+id+"'>"+name+"</option>");
$("#occupation").val(id); $("#occupation").val(id);
$("#occupation_name").val(name); $("#occupation_name").val(name);
$("#lean_overlay").hide(); $("#lean_overlay").hide();
$("#WOpenWindow").hide(); $("#WOpenWindow").hide();
} }
</script> </script>
<!-- added by bai 增加了地区 --> <!-- added by bai 增加了地区 -->
</span>
<!-- end --> <!-- end -->
<p style="width:357px;padding-left: 26px;"> <p style="width:357px;padding-left: 26px;">
<%= f.text_field :mail, :required => true %> <%= f.text_field :mail, :required => true %>
</p> </p>
<p style="width:426px;padding-left:26px;"> <p style="width:426px;padding-left:26px;">
<%= f.select :language, :Chinese简体中文 => :zh, :English => :en%> <%= f.select :language, :Chinese => :zh, :English => :en %>
</p> </p>
<% province = User.current.user_extensions.location %>
<% city = User.current.user_extensions.location_city %>
<% identity = User.current.user_extensions.identity %>
<% title = User.current.user_extensions.technical_title %>
<script type="text/javascript" language="javascript">
$().ready(function () {
var province = "<%= "#{province}" %>"
var city = "<%= "#{city}" %>"
init_province_and_city(document.getElementById('userProvince'), province, document.getElementById('userCity'), city);
var identity = "<%= "#{identity}" %>"
var title = "<%= "#{title}" %>"
init_identity_and_title(document.getElementById('userIdentity'), identity, document.getElementById('userTechnical_title'), title);
});
</script>
<p style="width:400px;padding-left: 26px;"><%= l(:label_location) %>
<select onchange="showcity(this.value, document.getElementById('userCity'));" name="province" id="userProvince" class="location">
<option value="">--请选择省份--</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="广东">广东</option>
<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>
<select name="city" id="userCity" class="location"></select>
</p>
<% unless @user.user_extensions.identity == 2 %>
<p style="width:400px;padding-left: 26px;">
<%= l(:label_identity) %>
<select onchange="showtechnical_title(this.value, document.getElementById('userTechnical_title'));" name="identity" id="userIdentity" class="location">
<option value=""><%= l(:label_account_identity_choose) %></option>
<option value="0"><%= l(:label_account_identity_teacher) %></option>
<option value="1"><%= l(:label_account_identity_student) %></option>
<option value="3"><%= l(:label_account_identity_developer) %></option>
</select>
<span id='technical_title' style='display:none'>
<select name="technical_title" id="userTechnical_title"></select>
</span>
<span id='no' style='display:none'>
<!-- modified by fq -->
<% unless User.current.user_extensions.student_id.nil? %>
<%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => "请输入学号" %>
<% else %>
<%= text_field_tag :no, nil, :placeholder => "请输入学号" %></span>
<% end %>
<!-- end -->
</span>
<% else %>
<span style="display:none">
<select onchange="showtechnical_title(this.value, document.getElementById('userTechnical_title'));" name="identity" id="userIdentity" class="location">
<option value=""><%= l(:label_account_identity_choose) %></option>
<option value="0"><%= l(:label_account_identity_teacher) %></option>
<option value="1"><%= l(:label_account_identity_student) %></option>
<option value="2"><%= l(:label_account_identity_enterprise) %></option>
<option value="3"><%= l(:label_account_identity_developer) %></option>
</select>
</span>
</p>
<% end %>
</div>
<% if Setting.openid? %>
<p> <%= f.text_field :identity_url %> </p>
<% end %>
<% @user.custom_field_values.select(&:editable?).each do |value| %>
<p> <%= custom_field_tag_with_label :user, value %> </p>
<% end %>
<%= call_hook(:view_my_account, :user => @user, :form => f) %>
</fieldset>
<fieldset class="collapsible collapsed" style="width:800px;margin-left: 10px;">
<legend onclick="toggleFieldset(this);">
<%= l(:field_mail_notification) %>
</legend>
<div style="padding-left: 26px;"> <!-- modified by ming -->
<p style="width:380px;">
<%= render :partial => 'users/mail_notifications' %>
</p></div>
</fieldset>
<!-- added by william -->
<fieldset class="collapsible collapsed" style="width:800px;margin-left: 10px;display: none">
<legend onclick="toggleFieldset(this);">
<%= l(:label_user_extensions) %>
</legend>
<div>
<%= render :partial => 'users/user_extensions' %></div>
</fieldset>
<!-- end -->
<%= submit_tag l(:button_save) %>
</fieldset>
<% end %>
<% html_title(l(:label_my_account)) -%>
<script type="text/javascript" language="javascript"> <script type="text/javascript" language="javascript">
function showcity(province, cityField) { function showcity(province, cityField) {
switch (province) { switch (province) {
@ -368,95 +477,30 @@ function showcity(province, cityField) {
} }
function init_province_and_city(pField, province, cField, city) { function init_province_and_city(pField, province, cField, city) {
for (var i = 0; i < pField.options.length; i++) { for (var i = 0; i < pField.options.length; i++) {
if (pField.options[i].value==province) if (pField.options[i].value == province) {
{
pField.selectedIndex = i; pField.selectedIndex = i;
} }
} }
showcity(province, cField); showcity(province, cField);
for (var i = 0; i < cField.options.length; i++) { for (var i = 0; i < cField.options.length; i++) {
if (cField.options[i].value==city) if (cField.options[i].value == city) {
{
cField.selectedIndex = i; cField.selectedIndex = i;
} }
} }
} }
function init_identity_and_title(pField, identity, cField, title) { function init_identity_and_title(pField, identity, cField, title) {
for (var i = 0; i < pField.options.length; i++) { for (var i = 0; i < pField.options.length; i++) {
if (pField.options[i].value==identity) if (pField.options[i].value == identity) {
{
pField.selectedIndex = i; pField.selectedIndex = i;
} }
} }
showtechnical_title(identity, cField); showtechnical_title(identity, cField);
for (var i = 0; i < cField.options.length; i++) { for (var i = 0; i < cField.options.length; i++) {
if (cField.options[i].value==title) if (cField.options[i].value == title) {
{
cField.selectedIndex = i; cField.selectedIndex = i;
} }
} }
} }
</script>
<% province = User.current.user_extensions.location %>
<% city = User.current.user_extensions.location_city %>
<% identity = User.current.user_extensions.identity %>
<% title = User.current.user_extensions.technical_title %>
<script type="text/javascript" language="javascript">
$().ready(function(){
var province = "<%= "#{province}" %>"
var city = "<%= "#{city}" %>"
init_province_and_city(document.getElementById('userProvince'),province, document.getElementById('userCity'),city);
var identity = "<%= "#{identity}" %>"
var title = "<%= "#{title}" %>"
init_identity_and_title(document.getElementById('userIdentity'),identity, document.getElementById('userTechnical_title'),title);
});
</script>
<p style="width:400px;padding-left: 26px;"><%= l(:label_location) %>
<select onchange="showcity(this.value, document.getElementById(&#39;userCity&#39;));" name="province" id="userProvince" class="location">
<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>
<select name="city" id="userCity" class="location"></select></p>
<!-- end -->
<!-- added by bai 增加职称-->
<script type="text/javascript" language="javascript">
function showtechnical_title(identity, technical_titleField) { function showtechnical_title(identity, technical_titleField) {
switch (identity) { switch (identity) {
@ -510,95 +554,3 @@ $().ready(function(){
} }
} }
</script> </script>
<!-- end -->
<% unless @user.user_extensions.identity == 2 %>
<p style="width:400px;padding-left: 26px;"><%= l(:label_identity) %>
<td class="info" style="width: 10px">
<select onchange="showtechnical_title(this.value, document.getElementById(&#39;userTechnical_title&#39;));" 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></td>
<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 => "请输入学号" %></span>
<!-- <input name="no" id="no" value=<%= "#{User.current.user_extensions.student_id}" %> placeholder="请输入学号"></span> -->
<% else %>
<%= text_field_tag :no, nil, :placeholder => "请输入学号" %></span>
<!-- <input name="no" id="no" placeholder="请输入学号"></span> -->
<% end %>
<!-- end -->
</td></tr></table></p>
<% else %>
<span style="display:none">
<select onchange="showtechnical_title(this.value, document.getElementById(&#39;userTechnical_title&#39;));" 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>
<% end %>
<!-- end -->
</div>
<% if Setting.openid? %>
<p>
<%= f.text_field :identity_url %>
</p></div>
<% end %>
<% @user.custom_field_values.select(&:editable?).each do |value| %>
<p>
<%= custom_field_tag_with_label :user, value %>
</p>
<% end %>
<%= call_hook(:view_my_account, :user => @user, :form => f) %>
</fieldset>
<fieldset class="collapsible collapsed" style="width:800px;margin-left: 10px;">
<legend onclick="toggleFieldset(this);">
<%= l(:field_mail_notification)%>
</legend>
<div style="padding-left: 26px;"> <!-- modified by ming -->
<p style="width:380px;>
<%= render :partial => 'users/mail_notifications' %>
</p></div>
</fieldset>
<!-- <fieldset class="collapsible collapsed" style="width:800px;margin-left: 10px;">
<legend onclick="toggleFieldset(this);">
<%= l(:label_preferences)%>
</legend>
<div style="padding-left: 26px;">
<%= render :partial => 'users/preferences' %></div>
</fieldset> -->
<!-- added by william -->
<fieldset class="collapsible collapsed" style="width:800px;margin-left: 10px;display: none">
<legend onclick="toggleFieldset(this);">
<%= l(:label_user_extensions)%>
</legend>
<div>
<%= render :partial => 'users/user_extensions' %></div>
</fieldset>
<!-- end -->
<%= submit_tag l(:button_save) %>
</fieldset>
<% end %>
<% html_title(l(:label_my_account)) -%>

View File

@ -17,9 +17,9 @@
<% @admin = @project.project_infos%> <% @admin = @project.project_infos%>
<%if @admin&&@admin.first&&@admin.first.user&&@admin.first.user.user_extensions%> <%if @admin&&@admin.first&&@admin.first.user&&@admin.first.user.user_extensions%>
<!-- <%= @admin.first.user.user_extensions.occupation %> --> <!-- <%= @admin.first.user.user_extensions.occupation %> -->
<% unless @project.course_extra.school.nil? %> <%# unless @project.course_extra.school.nil? %>
<%= @project.course_extra.school.name %> <%= @project.course_extra.teacher.user_extensions.school.try(:name) %>
<% end %> <%# end %>
<% end %> <% end %>
</p> </p>
<p > <p >

View File

@ -12,7 +12,7 @@
<% if @project.project_type == 1 %> <% if @project.project_type == 1 %>
<% unless member.user.user_extensions.identity ==0 %> <% unless member.user.user_extensions.identity ==0 %>
<!-- added by bai 加学号 --> <!-- added by bai 加学号 -->
<% if User.current.logged? && (!Member.where('user_id = ? and project_id = ?', User.current.id, @project.id).first.nil?) %> <%if @canShowCode# if User.current.logged? && (!Member.where('user_id = ? and project_id = ?', User.current.id, @project.id).first.nil?) %>
<%= content_tag "p", "#{l(:label_bidding_user_studentcode)}#{' : '}#{member.user.user_extensions.student_id}", :class => "nomargin avatar_name" %> <%= content_tag "p", "#{l(:label_bidding_user_studentcode)}#{' : '}#{member.user.user_extensions.student_id}", :class => "nomargin avatar_name" %>
<% end %> <% end %>
<% end %> <% end %>

View File

@ -13,7 +13,6 @@
<td><%=h @repository.url %></td> <td><%=h @repository.url %></td>
<% end %> <% end %>
</div> </div>
<% if @repositories.size >1 %>
<p style=" word-wrap: break-word; word-break: break-all"> <p style=" word-wrap: break-word; word-break: break-all">
(<%= l(:label_all_revisions) %><%= @repositories.sort.collect {|repo| (<%= l(:label_all_revisions) %><%= @repositories.sort.collect {|repo|
link_to h(repo.name), link_to h(repo.name),
@ -21,7 +20,6 @@
:id => @project, :repository_id => repo.identifier_param, :rev => nil, :path => nil}, :id => @project, :repository_id => repo.identifier_param, :rev => nil, :path => nil},
:class => 'repository' + (repo == @repository ? ' selected' : '') :class => 'repository' + (repo == @repository ? ' selected' : '')
}.join('&nbsp|&nbsp').html_safe %>)</p> }.join('&nbsp|&nbsp').html_safe %>)</p>
<% else %>
<h3>项目代码请设置好正确的编码方式utf-8否则中文会出现乱码</h3> <h3>项目代码请设置好正确的编码方式utf-8否则中文会出现乱码</h3>
<h3>建立版本库文件夹,打开命令行执行如下:</h3> <h3>建立版本库文件夹,打开命令行执行如下:</h3>
<div class="repos_explain"> <div class="repos_explain">
@ -29,6 +27,7 @@
<p>git add *</p> <p>git add *</p>
<p>git commit -m "first commit"</p> <p>git commit -m "first commit"</p>
<p>git remote add origin <%= @repos_url%></p> <p>git remote add origin <%= @repos_url%></p>
<p>git config http.postBuffer 524288000 #设置本地post缓存为500MB</p>
<p>git push -u origin master:master</p> <p>git push -u origin master:master</p>
</div> </div>
<h3>已经有本地库,还没有配置远程地址,打开命令行执行如下:</h3> <h3>已经有本地库,还没有配置远程地址,打开命令行执行如下:</h3>
@ -36,6 +35,7 @@
<p>git remote add origin <%= @repos_url%></p> <p>git remote add origin <%= @repos_url%></p>
<p>git add .</p> <p>git add .</p>
<p>git commit -m "first commit"</p> <p>git commit -m "first commit"</p>
<p>git config http.postBuffer 524288000 #设置本地post缓存为500MB</p>
<p>git push -u origin master:matser</p> <p>git push -u origin master:matser</p>
</div> </div>
</h3> </h3>
@ -44,10 +44,10 @@
<p>git remote add trustie <%= @repos_url%></p> <p>git remote add trustie <%= @repos_url%></p>
<p>git add .</p> <p>git add .</p>
<p>git commit -m "first commit"</p> <p>git commit -m "first commit"</p>
<p>git config http.postBuffer 524288000 #设置本地post缓存为500MB</p>
<p>git push -u trustie master:matser</p> <p>git push -u trustie master:matser</p>
<p><%= link_to "李海提供", user_path(646)%></p> <p><%= link_to "李海提供", user_path(646)%></p>
</div> </div>
<% end %>
</h3> </h3>
<% if !@entries.nil? && authorize_for('repositories', 'browse') %> <% if !@entries.nil? && authorize_for('repositories', 'browse') %>
<%= render :partial => 'dir_list' %> <%= render :partial => 'dir_list' %>

View File

@ -4,12 +4,17 @@
$(document).ready(function() { $(document).ready(function() {
$("#province").html("<option value='0' selected = true style='display: none;'></option>"); $("#province").html("<option value='0' selected = true style='display: none;'></option>");
$.ajax({ $.ajax({
type :"POST", type :"POST",
url :'/school/get_province', url :'/school/get_province',
data :'text', data: "send",
success: function(data){ success: function(data, textStatus){
$("#province").append(data);
$("#province").append(data.text);
$("#schoollist").html(data.text_s);
} }
}) })

View File

@ -0,0 +1 @@
alert('新建参赛作品成功!');

View File

@ -14,10 +14,10 @@
</div> </div>
<div class="avatar-4"; style="float: left; margin-top: 7px "><%= image_tag('/images/app1.png')%></div> <div class="avatar-4"; style="float: left; margin-top: 7px "><%= image_tag('/images/app1.png')%></div>
<div style="float: left; width: 600px; padding-top: 6px; margin-left: 8px"><%= softapplication.description.truncate(95, omission: '...') %></div> <div style="float: left; width: 600px; padding-top: 6px; margin-left: 8px"><%= softapplication.description.truncate(95, omission: '...') %></div>
<div style="float: left; width: 200px; margin-left: 70px; margin-top: -3px; "> <div style="float: left; width: 200px; margin-left: 70px; margin-top: -3px; line-height: 0.5em ">
<%contest = softapplication.contests.first%> <%contest = softapplication.contests.first%>
<p>所属竞赛:<%= contest ? link_to(contest.name.truncate(10, omission: '...'), show_softapplication_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%></p> <p>所属竞赛:<%= contest ? link_to(contest.name.truncate(14, omission: '...'), show_attendingcontest_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%></p>
<p>所属类别:<%= softapplication.app_type_name.truncate(5, omission: '...') %></p> <p>所属类别:<%= softapplication.app_type_name.truncate(10, omission: '...') %></p>
<p>系统支持:<%= softapplication.android_min_version_available %></p> <p>系统支持:<%= softapplication.android_min_version_available %></p>
</div> </div>
<div style="padding-left: 53px"> <div style="padding-left: 53px">
@ -36,4 +36,4 @@
<div class="pagination"><%= pagination_links_full @softapplication_pages, @softapplication_count, :per_page_links => false %></div> <div class="pagination"><%= pagination_links_full @softapplication_pages, @softapplication_count, :per_page_links => false %></div>
<% html_title l(:label_softapplication_list)%> <% html_title l(:label_contest_work_list)%>

View File

@ -27,7 +27,7 @@
<tr> <tr>
<td style="width: 570px; padding-left:40px; word-wrap: break-word; word-break: break-all">所属类别:<%= @softapplication.app_type_name %></td> <td style="width: 570px; padding-left:40px; word-wrap: break-word; word-break: break-all">所属类别:<%= @softapplication.app_type_name %></td>
<% contest = @softapplication.contests.first %> <% contest = @softapplication.contests.first %>
<td style="width: 240px; word-wrap: break-word; word-break: break-all">所属竞赛:<%= contest ? link_to(contest.name, show_softapplication_contest_path(contest)) : '尚未加入竞赛'%></td> <td style="width: 240px; word-wrap: break-word; word-break: break-all">所属竞赛:<%= contest ? link_to(contest.name, show_attendingcontest_contest_path(contest)) : '尚未加入竞赛'%></td>
</tr> </tr>
<tr> <tr>
<td style="padding-left: 40px">发布人员:<%= @softapplication.user.name %></td> <td style="padding-left: 40px">发布人员:<%= @softapplication.user.name %></td>
@ -35,7 +35,7 @@
</tr> </tr>
<tr> <tr>
<td style="padding-left: 40px"> <td style="padding-left: 40px">
<span>应用下载:</span> <span>作品下载:</span>
<span> <span>
<% options = {:author => true, :deletable => @softapplication.user.eql?(User.current) } %><%= render :partial => 'attachments/app_link', :locals => {:attachments => @app_items, :options => options} %> <% options = {:author => true, :deletable => @softapplication.user.eql?(User.current) } %><%= render :partial => 'attachments/app_link', :locals => {:attachments => @app_items, :options => options} %>
</span> </span>
@ -56,13 +56,13 @@
<div class="underline-contests_one"></div> <div class="underline-contests_one"></div>
<div style="height: auto; padding-bottom: 10px"> <div style="height: auto; padding-bottom: 10px">
<strong><div style="font-size: 15px;">应用简介:</div></strong> <strong><div style="font-size: 15px;">作品简介:</div></strong>
<div style="padding-top: 5px"><%= @softapplication.description %></div> <div style="padding-top: 5px"><%= @softapplication.description %></div>
</div> </div>
<div class="underline-contests_one"></div> <div class="underline-contests_one"></div>
<div style="height: auto; padding-bottom: 10px"> <div style="height: auto; padding-bottom: 10px">
<div style="font-size: 15px;"><strong>应用得分:</strong></div> <div style="font-size: 15px;"><strong>作品得分:</strong></div>
<!-- <div>打分总人数:<%= @softapplication.raters(:quality).count%></div> --> <!-- <div>打分总人数:<%= @softapplication.raters(:quality).count%></div> -->
<div style="overflow: hidden"> <div style="overflow: hidden">
<div style="margin-left: 15%; float: left"> <div style="margin-left: 15%; float: left">
@ -93,7 +93,7 @@
<div class="underline-contests_one"></div> <div class="underline-contests_one"></div>
<div style="height: auto; padding-bottom: 10px"> <div style="height: auto; padding-bottom: 10px">
<strong><div style="font-size: 15px">软件截图:</div></strong> <strong><div style="font-size: 15px">作品截图:</div></strong>
<div class="softapplication-img" style="padding-top: 5px"> <div class="softapplication-img" style="padding-top: 5px">
<% @image_results.take(4).each do |attachment| %> <% @image_results.take(4).each do |attachment| %>
<%= link_to_attachment_img attachment, :class => "soft-application", :download => "true" %> <%= link_to_attachment_img attachment, :class => "soft-application", :download => "true" %>
@ -116,7 +116,7 @@
<% end %> <% end %>
</div> --> </div> -->
<div style="height: 50px"> <div style="height: 50px">
<div style="font-size: 15px"><strong>软件评论:</strong></div> <div style="font-size: 15px"><strong>作品评论:</strong></div>
<div style="padding-left: 210px">评分: <%= rating_for @softapplication, dimension: :quality, class: 'rateable div_inline' %><span style="font-size: 11px">(您可以重新打分,打分结果以最后一次打分为主!)</span></div> <div style="padding-left: 210px">评分: <%= rating_for @softapplication, dimension: :quality, class: 'rateable div_inline' %><span style="font-size: 11px">(您可以重新打分,打分结果以最后一次打分为主!)</span></div>
</div> </div>

View File

@ -1,12 +1,12 @@
<h3>test</h3> <h3>test</h3>
<% users = User.all%> <% user = User.find(1)%>
<table> <table>
<tr> <tr>
<th>id</th><th>name</th><th>C</th><th>I</th><th>S</th><th>filecount</th><th>issuecount</th><th>level</th><th>attachconut</th> <th>id</th><th>name</th><th>C</th><th>I</th><th>S</th><th>filecount</th><th>issuecount</th><th>level</th><th>attachconut</th>
</tr> </tr>
<% users.each do |user| %>
@ -22,7 +22,7 @@
<td><%= calculate_attachments(user) %></td> <td><%= calculate_attachments(user) %></td>
</tr> </tr>
<% end %>
</table> </table>
<hr/> <hr/>

View File

@ -1,5 +1,5 @@
<p> <p>
<%= label_tag "user_mail_notification", l(:description_user_mail_notification), :class => "hidden-for-sighted" %> <%= label_tag "user_mail_notification", l(:description_user_mail_notification), :class => "hidden-for-sighted_bak" %>
<%= select_tag( <%= select_tag(
'user[mail_notification]', 'user[mail_notification]',
options_for_select( options_for_select(

View File

@ -33,15 +33,24 @@
<% when 'JournalsForMessage' %> <% when 'JournalsForMessage' %>
<% if User.current.login == @user.login %> <% if User.current.login == @user.login %>
<%# if e.user_id == act.jour.id %> <%# if e.user_id == act.jour.id %>
<tr><td colspan="2" valign="top"><strong><%= link_to("#{e.user.name}", user_path(e.user_id)) %></strong>&nbsp;<span class="font_lighter">有了<%= link_to("#{e.act.user.name}", user_path(e.user.id))%>的留言</span></td></tr> <tr><td colspan="2" valign="top"><strong><%= link_to("#{l(:label_i)}", user_path(e.user_id)) %></strong>&nbsp;<span class="font_lighter"><%= l(:label_have_feedback) %><%=
link_to("#{e.act.user.name}", user_path(e.user.id)) %><%= l(:label_of_feedback) + l(:label_layouts_feedback) %></span></td></tr>
<%# else %> <%# else %>
<!-- <tr><td colspan="2" valign="top" class="font_lighter"><strong><%#= link_to("#{e.user.name}", user_path(e.user_id)) %> 给 <%#= link_to("#{act.at_user.name if act.at_user}", user_path(act.jour.id)) %> 留言了</strong>&nbsp;</td></tr> --> <!-- <tr><td colspan="2" valign="top" class="font_lighter"><strong><%#= link_to("#{e.user.name}", user_path(e.user_id)) %> 给 <%#= link_to("#{act.at_user.name if act.at_user}", user_path(act.jour.id)) %> 留言了</strong>&nbsp;</td></tr> -->
<%# end %> <%# end %>
<% else %> <% else %>
<tr><td colspan="2" valign="top"><strong><%= link_to("#{@user.name}", user_path(e.user_id)) %></strong>&nbsp;<span class="font_lighter">有了新的动态</span></td></tr> <tr><td colspan="2" valign="top"><strong><%= link_to("#{e.user.name}", user_path(e.user_id)) %></strong>&nbsp;<span class="font_lighter"><%= l(:label_have_feedback) %><%=
link_to("#{e.act.user.name}", user_path(e.user.id)) %><%= l(:label_of_feedback) + l(:label_layouts_feedback) %></span></td></tr>
<% end %> <% end %>
<tr> <td colspan="2" width="580" > <p class="font_description"> <%=textilizable act.notes %> </p></td> </tr> <tr>
<tr> <td> <td colspan="2" width="580"><p class="font_description"> <%= textilizable act.notes %> </p>
<div style="display: inline-block; float: right; margin-top: 0px"><span><%= link_to(l(:label_goto), user_newfeedback_user_path(e.user_id)) %>
</span></div>
</td>
</tr>
<tr>
<td>
<div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a"> <div style="display: inline-block; float: left; margin-top: 0px" width="200" align="right" class="a">
<span class="font_lighter"> <%=(l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %></span> <span class="font_lighter"> <%=(l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %></span>
</div> </div>
@ -174,6 +183,23 @@
<div style="display: inline-block; float: right; margin-top: 0px"><span><%= link_to l(:label_find_all_comments), {:controller => 'issues', :action => 'show', :id => act.id} %></span><a class="font_lighter"><%= l(:label_comments_count, :count => e.act.journals.count)%></a></div> <div style="display: inline-block; float: right; margin-top: 0px"><span><%= link_to l(:label_find_all_comments), {:controller => 'issues', :action => 'show', :id => act.id} %></span><a class="font_lighter"><%= l(:label_comments_count, :count => e.act.journals.count)%></a></div>
</td> </td>
</tr> </tr>
<% when 'Contest' %>
<tr>
<% if e.user == User.current%>
<td colspan="2" valign="top"><strong><%= link_to("#{l(:label_i)}", user_path(e.user_id)) %></strong>&nbsp;<span class="font_lighter"><%= l(:label_i_new_activity) %></span>&nbsp;<%= link_to format_activity_title("#{l(:label_contest)}: #{act.name}"), {:controller => 'contests', :action => 'show_contest', :id => act.id} %></td>
<% else %>
<td colspan="2" valign="top"><strong><%= link_to(h(e.user), user_path(e.user_id)) %></strong>&nbsp;<span class="font_lighter"><%= l(:label_new_activity) %></span>&nbsp;<%= link_to format_activity_title("#{l(:label_contest)}: #{act.name}"), {:controller => 'contests', :action => 'show_contest', :id => act.id} %></td>
<% end %>
</tr>
<tr> <td colspan="2" width="580" > <p class="font_description"> <%= h act.description %> </p></td> </tr>
<tr>
<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 %></span>
</div>
</tr>
<% else %>
<% f=1 %>
<% end %><!-- < % #case end %> --> <% end %><!-- < % #case end %> -->
</table> </table>
</td> </td>
@ -244,7 +270,7 @@
</div> </div>
<div class="pagination" style="float:left;"> <div class="pagination" style="float:left;">
<ul> <%= pagination_links_full @info_pages %> <ul> <ul> <%= pagination_links_full @info_pages %> </ul>
</div> </div>
<% else %> <% else %>

View File

@ -1,6 +1,6 @@
<!--add by huang--> <!--add by huang-->
<%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'new', :course => 0, :project_type => 0}, :class => 'icon icon-add') if(User.current.allowed_to?(:add_project, nil, :global => true) && @user == User.current)%> <%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'new', :course => 0, :project_type => 0}, :class => 'icon icon-add') if(User.current.allowed_to?(:add_project, nil, :global => true) && @user == User.current)%>
<span class="font_lighter" >温馨提示:项目可以是一次作业,也可以是别人或者自己创建的一项小工程~</span> <!--span class="font_lighter" >温馨提示:项目可以是一次作业,也可以是别人或者自己创建的一项小工程~</span-->
<%= watch_projects @state %> <%= watch_projects @state %>
<% unless @memberships.empty? %> <% unless @memberships.empty? %>
<div class="content_frame"> <div class="content_frame">

View File

@ -1,5 +1,5 @@
<%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'new', :course => 0, :project_type => 0}, :class => 'icon icon-add') if(User.current.allowed_to?(:add_project, nil, :global => true) && @user == User.current)%> <%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'new', :course => 0, :project_type => 0}, :class => 'icon icon-add') if(User.current.allowed_to?(:add_project, nil, :global => true) && @user == User.current)%>
<span class="font_lighter" >温馨提示:项目可以是一次作业,也可以是别人或者自己创建的一项小工程~</span> <!--span class="font_lighter" >温馨提示:项目可以是一次作业,也可以是别人或者自己创建的一项小工程~</span-->
<%= watch_projects @state%> <%= watch_projects @state%>
<% if @watch_projects.count > 0 %> <% if @watch_projects.count > 0 %>
<% for watch_project in @watch_projects %> <% for watch_project in @watch_projects %>

View File

@ -152,7 +152,11 @@
<div style="float: left; margin-left: 12px; margin-top: 10px; margin-bottom: -4px; width: 380px;"> <div style="float: left; margin-left: 12px; margin-top: 10px; margin-bottom: -4px; width: 380px;">
<!-- <%= link_to(contest.name, contest.event_url, :class => "d-g-blue d-p-project-name", :title => "#{contest.name}", :target => "_blank") %> --> <!-- <%= link_to(contest.name, contest.event_url, :class => "d-g-blue d-p-project-name", :title => "#{contest.name}", :target => "_blank") %> -->
<%= link_to(contest.name, show_contest_contest_path(contest.id), :class => "d-g-blue d-p-project-name", :title => "#{contest.name}", :target => "_blank") %> <%= link_to(contest.name, show_contest_contest_path(contest.id), :class => "d-g-blue d-p-project-name", :title => "#{contest.name}", :target => "_blank") %>
<span class="font_lighter">(<span style="font-size: 17px"><%= link_to("含#{contest.contesting_softapplications.count}个app", show_softapplication_contest_path(contest), :target => "_blank") %></span>)</span> <% if contest.id == 2 or contest.id == 3 or contest.id == 6 %>
<span class="font_lighter">(<span style="font-size: 13px"><%= link_to("含#{contest.projects.where('is_public=1').count}个作品", show_attendingcontest_contest_path(contest), :target => "_blank") %></span>)</span>
<% else %>
<span class="font_lighter">(<span style="font-size: 13px"><%= link_to("含#{contest.contesting_softapplications.count}个app", show_attendingcontest_contest_path(contest), :target => "_blank") %></span>)</span>
<% end %>
</div> </div>
<div class='text_nowrap' style="float: left;margin:5px; margin-left: 12px; margin-bottom: 2px; width: 380px;"> <div class='text_nowrap' style="float: left;margin:5px; margin-left: 12px; margin-bottom: 2px; width: 380px;">
@ -201,7 +205,7 @@
</div> </div>
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject"> <div id="J_Slide" class="d-p-index-box d-p-index-hotproject">
<h3 style="margin-left: 5px; color: #e8770d;"><strong>最新参赛应用</strong></h3> <h3 style="margin-left: 5px; color: #e8770d;"><strong>最新参赛作品</strong></h3>
<span style="margin-top: -20px;float: right; display: block;"><%= link_to "更多>>", {:controller => 'softapplications', :action => 'index', :host => Setting.contest_domain}, :target => "_blank" %></span> <span style="margin-top: -20px;float: right; display: block;"><%= link_to "更多>>", {:controller => 'softapplications', :action => 'index', :host => Setting.contest_domain}, :target => "_blank" %></span>
<div class="d-p-projectlist-box"> <div class="d-p-projectlist-box">
<% if Softapplication.count > 0%> <% if Softapplication.count > 0%>

View File

@ -1306,6 +1306,7 @@ en:
label_have_respond: had a respond label_have_respond: had a respond
label_welcome: Welcome label_welcome: Welcome
label_goto: Go to>>
label_join: join Trustie label_join: join Trustie
label_repository_new: link to existing SVN repository label_repository_new: link to existing SVN repository
label_repository_path: path of repository label_repository_path: path of repository
@ -1411,6 +1412,8 @@ en:
label_user_activity_myself: About me label_user_activity_myself: About me
label_user_all_respond: All replies label_user_all_respond: All replies
label_layouts_feedback: Messages label_layouts_feedback: Messages
label_have_feedback: Have
label_of_feedback: Of
label_welcome_participate: participates label_welcome_participate: participates
#modify by men #modify by men
label_x_welcome_participate: label_x_welcome_participate:
@ -1607,3 +1610,5 @@ en:
label_activity_time: publish date label_activity_time: publish date
# ajax异步验证
modal_valid_passing: can be used.

View File

@ -190,6 +190,8 @@ zh:
notice_issue_done_ratios_updated: 问题完成度已更新。 notice_issue_done_ratios_updated: 问题完成度已更新。
notice_gantt_chart_truncated: "这个表是截断的因为它超过了可以显示的最大数量(%{max})" notice_gantt_chart_truncated: "这个表是截断的因为它超过了可以显示的最大数量(%{max})"
error_complete_occupation: "请您填写工作单位,否则本系统的部分功能将无法正常使用。"
error_can_t_load_default_data: "无法载入默认设置:%{value}" error_can_t_load_default_data: "无法载入默认设置:%{value}"
error_scm_not_found: "版本库中不存在该条目和(或)其修订版本。" error_scm_not_found: "版本库中不存在该条目和(或)其修订版本。"
error_scm_command_failed: "访问版本库时发生错误:%{value}" error_scm_command_failed: "访问版本库时发生错误:%{value}"
@ -1495,6 +1497,7 @@ zh:
label_issue_praise_over: 我刚才顶过了~ label_issue_praise_over: 我刚才顶过了~
label_issue_tread_over: 我刚才踩过了~ label_issue_tread_over: 我刚才踩过了~
#end #end
label_goto: 前往>>
label_issue_appraise_over: 只能评价一次哦! label_issue_appraise_over: 只能评价一次哦!
label_welcome_my_respond: 请在此留下你的意见和建议! label_welcome_my_respond: 请在此留下你的意见和建议!
label_no_current_fans: 该用户暂无粉丝 label_no_current_fans: 该用户暂无粉丝
@ -1575,6 +1578,8 @@ zh:
label_my_honework_no_homework: 暂无任何作业! label_my_honework_no_homework: 暂无任何作业!
label_user_all_respond: 所有反馈 label_user_all_respond: 所有反馈
label_layouts_feedback: 留言 label_layouts_feedback: 留言
label_have_feedback: 有了
label_of_feedback:
label_welcome_participate: 参与了 label_welcome_participate: 参与了
#modify by men #modify by men
label_x_welcome_participate: label_x_welcome_participate:
@ -1844,8 +1849,9 @@ zh:
label_contest_project: 参赛项目 label_contest_project: 参赛项目
label_contest_softapplication: 参赛应用 label_contest_softapplication: 参赛应用
label_contest_response: 用户反馈 label_contest_response: 用户反馈
label_contest_watchers: 关注人 label_contest_watchers: 关注人
label_contest_application: 参赛应用 label_contest_application: 参赛应用
label_contest_work: 参赛作品
button_contesting_as_project: 我要参赛(新建项目) button_contesting_as_project: 我要参赛(新建项目)
button_contesting_as_application: 我要参赛(发布应用) button_contesting_as_application: 我要参赛(发布应用)
label_release_softapplication: 发布应用 label_release_softapplication: 发布应用
@ -1874,6 +1880,8 @@ zh:
label_edit_softapplication: 修改应用 label_edit_softapplication: 修改应用
label_contest_delete: 删除竞赛 label_contest_delete: 删除竞赛
label_softapplication_list: 应用列表 label_softapplication_list: 应用列表
label_contest_work_list: 参赛作品列表
label_attending_contest: 我要参赛
label_coursefile_sharingarea: 课程资源共享区 label_coursefile_sharingarea: 课程资源共享区
label_sort_by_activity: 按动态数排序 label_sort_by_activity: 按动态数排序
@ -1888,3 +1896,6 @@ zh:
label_contest_settings: 配置竞赛 label_contest_settings: 配置竞赛
label_contest_delete: 删除竞赛 label_contest_delete: 删除竞赛
# ajax异步验证
modal_valid_passing: 可以使用

View File

@ -71,6 +71,7 @@ RedmineApp::Application.routes.draw do
match 'show_contest' , via: :get match 'show_contest' , via: :get
match 'show_project' , via: :get match 'show_project' , via: :get
match 'show_softapplication' , via: :get match 'show_softapplication' , via: :get
match 'show_attendingcontest' , via: :get
match 'show_participator' , via: :get match 'show_participator' , via: :get
match 'add' , via: [:get, :post] match 'add' , via: [:get, :post]
match 'add_softapplication' , via: [:get, :post] match 'add_softapplication' , via: [:get, :post]
@ -126,6 +127,7 @@ RedmineApp::Application.routes.draw do
match 'account/register', :to => 'account#register', :via => [:get, :post], :as => 'register' match 'account/register', :to => 'account#register', :via => [:get, :post], :as => 'register'
match 'account/lost_password', :to => 'account#lost_password', :via => [:get, :post], :as => 'lost_password' match 'account/lost_password', :to => 'account#lost_password', :via => [:get, :post], :as => 'lost_password'
match 'account/activate', :to => 'account#activate', :via => :get match 'account/activate', :to => 'account#activate', :via => :get
match 'account/valid_ajax', :to => 'account#valid_ajax', :via => :get
match '/news/preview', :controller => 'previews', :action => 'news', :as => 'preview_news', :via => [:get, :post, :put] match '/news/preview', :controller => 'previews', :action => 'news', :as => 'preview_news', :via => [:get, :post, :put]
match '/issues/preview/new/:project_id', :to => 'previews#issue', :as => 'preview_new_issue', :via => [:get, :post, :put] match '/issues/preview/new/:project_id', :to => 'previews#issue', :as => 'preview_new_issue', :via => [:get, :post, :put]
@ -456,7 +458,11 @@ RedmineApp::Application.routes.draw do
get 'attachments/autocomplete' get 'attachments/autocomplete'
match 'attachments/autocomplete', :to => 'attachments#autocomplete', via: [:post] match 'attachments/autocomplete', :to => 'attachments#autocomplete', via: [:post]
post 'attachments/relationfile', to: 'attachments#add_exist_file_to_project', as: 'attach_relation' post 'attachments/relationfile', to: 'attachments#add_exist_file_to_project', as: 'attach_relation'
resources :attachments, :only => [:show, :destroy] resources :attachments, :only => [:show, :destroy] do
collection do
match "updateType" , via: [:get, :post]
end
end
resources :groups do resources :groups do
member do member do
@ -546,6 +552,7 @@ RedmineApp::Application.routes.draw do
match 'calls/:id/show_project', :controller => 'bids', :action => 'show_project', :as => 'project_for_bid' match 'calls/:id/show_project', :controller => 'bids', :action => 'show_project', :as => 'project_for_bid'
match 'calls/:id/show_project_homework', :controller => 'bids', :action => 'show_project_homework', :as => 'project_for_bid_homework' # by huang match 'calls/:id/show_project_homework', :controller => 'bids', :action => 'show_project_homework', :as => 'project_for_bid_homework' # by huang
match 'calls/:id/add', :controller => 'bids', :action => 'add' match 'calls/:id/add', :controller => 'bids', :action => 'add'
match 'calls/:id/delete', :controller => 'bids', :action => 'delete'
match 'calls/:id/add_homework', :controller => 'bids', :action => 'add_homework', via: :post match 'calls/:id/add_homework', :controller => 'bids', :action => 'add_homework', via: :post
match 'calls/:id/new_submit_homework', to: 'bids#new_submit_homework', via: :get, as: 'new_submit_homework' match 'calls/:id/new_submit_homework', to: 'bids#new_submit_homework', via: :get, as: 'new_submit_homework'
match 'words/add_project_respond', :controller => 'words', :action => 'add_project_respond' match 'words/add_project_respond', :controller => 'words', :action => 'add_project_respond'

View File

@ -0,0 +1,5 @@
class DropUserScores < ActiveRecord::Migration
def change
drop_table :user_scores
end
end

View File

@ -0,0 +1,8 @@
class CreateUserLevels < ActiveRecord::Migration
def change
create_table :user_levels do |t|
t.integer :user_id
t.integer :level
end
end
end

View File

@ -0,0 +1,11 @@
class CreateUserScores < ActiveRecord::Migration
def change
create_table :user_scores do |t|
t.integer :user_id
t.integer :collaboration
t.integer :influence
t.integer :skill
t.integer :activity
end
end
end

View File

@ -863,6 +863,11 @@ ActiveRecord::Schema.define(:version => 20140509020307) do
add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id" add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id"
add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id" add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id"
create_table "user_levels", :force => true do |t|
t.integer "user_id"
t.integer "level"
end
create_table "user_preferences", :force => true do |t| create_table "user_preferences", :force => true do |t|
t.integer "user_id", :default => 0, :null => false t.integer "user_id", :default => 0, :null => false
t.text "others" t.text "others"
@ -873,16 +878,11 @@ ActiveRecord::Schema.define(:version => 20140509020307) do
add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id" add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id"
create_table "user_scores", :force => true do |t| create_table "user_scores", :force => true do |t|
t.integer "user_id", :null => false t.integer "user_id"
t.integer "collaboration" t.integer "collaboration"
t.integer "influence" t.integer "influence"
t.integer "skill" t.integer "skill"
t.integer "active" t.integer "activity"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "level"
t.integer "file"
t.integer "issue"
end end
create_table "user_statuses", :force => true do |t| create_table "user_statuses", :force => true do |t|

View File

@ -279,8 +279,10 @@ end
###new add by linchun ###new add by linchun
Redmine::MenuManager.map :contest_menu do |menu| Redmine::MenuManager.map :contest_menu do |menu|
menu.push :respond, :show_contest_contest_path, :caption => :label_user_response menu.push :respond, :show_contest_contest_path, :caption => :label_user_response
menu.push :project, :show_project_contest_path, :caption => :label_contest_project #menu.push :project, :show_project_contest_path, :caption => :label_contest_project
menu.push :application, :show_softapplication_contest_path, :caption => :label_contest_application #menu.push :application, :show_softapplication_contest_path, :caption => :label_contest_application
menu.push :attendingcontest, {:controller => 'contests', :action => 'show_attendingcontest'}, :caption => :label_attending_contest
# menu.push :attendingcontest, :show_attendingcontest_contest_path, :caption => :label_attendin,g_contest
# menu.push :result, { :controller => 'bids', :action => 'show_results' }, # menu.push :result, { :controller => 'bids', :action => 'show_results' },
# :caption => :label_bidding_results,:if => Proc.new{ |p| User.current.id == p } # :caption => :label_bidding_results,:if => Proc.new{ |p| User.current.id == p }
end end

View File

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 522 B

View File

@ -1,13 +1,24 @@
/* TODO: base/common/page 准备封装一些基本样式组合调用 参考YUI /* TODO: base/common/page 准备封装一些基本样式组合调用 参考YUI
*******************************************************************************/ *******************************************************************************/
span[id^=valid_user]{
padding-left: 10px;
}
.red{
color: red;
}
.green{
color: green;
}
.border_box { .border_box {
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
-box-sizing: border-box; -box-sizing: border-box;
} }
.div_inline { .div_inline {
display: inline-block; display: inline-block;
} }
/*文字不换行*/ /*文字不换行*/
.text_nowrap { .text_nowrap {
word-break: keep-all; word-break: keep-all;
@ -15,27 +26,35 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
/*字体 斜体*/ /*字体 斜体*/
.font_italic { .font_italic {
font-style: italic; font-style: italic;
} }
/*字体加粗*/ /*字体加粗*/
.font_bolder { .font_bolder {
font-weight: bolder; font-weight: bolder;
} }
.text_center { .text_center {
text-align: center; text-align: center;
} }
.ph10_5{ /*padding horizontal 10% 5%*/
.ph10_5 {
/*padding horizontal 10% 5%*/
padding: 0px 5% 0px 10%; padding: 0px 5% 0px 10%;
} }
.clear_both { .clear_both {
clear: both; clear: both;
} }
.memo-content pre { .memo-content pre {
white-space: normal; white-space: normal;
word-wrap: break-word; word-wrap: break-word;
} }
.highlight { .highlight {
background-color: #fff34d; background-color: #fff34d;
-moz-border-radius: 3px; -moz-border-radius: 3px;
@ -52,15 +71,18 @@
-webkit-opacity: 0.7; -webkit-opacity: 0.7;
opacity: 0.7; opacity: 0.7;
} }
.clearfix { .clearfix {
width: 100%; width: 100%;
height: 0px; height: 0px;
clear: both; clear: both;
display: block; display: block;
} }
.hidden { .hidden {
display: none; display: none;
} }
.font_color_orange { .font_color_orange {
color: #E8770D; color: #E8770D;
} }
@ -68,13 +90,13 @@
* { * {
font-family: Helvetica, Tahoma, Arial, "Microsoft YaHei", "微软雅黑", SimSun, "宋体", STXihei, "华文细黑", Heiti, "黑体", sans-serif; font-family: Helvetica, Tahoma, Arial, "Microsoft YaHei", "微软雅黑", SimSun, "宋体", STXihei, "华文细黑", Heiti, "黑体", sans-serif;
} }
/* 模态窗口 /* 模态窗口
*******************************************************************************/ *******************************************************************************/
/** jRating CSS **/ /** jRating CSS **/
/**Div containing the color of the stars */ /**Div containing the color of the stars */
.jRatingAverage { .jRatingAverage {
background-color: #f62929; background-color: #f62929;
position: relative; position: relative;
@ -83,6 +105,7 @@
z-index: 2; z-index: 2;
height: 100%; height: 100%;
} }
.jRatingColor { .jRatingColor {
background-color: #FFD400; /* bgcolor of the stars*/ background-color: #FFD400; /* bgcolor of the stars*/
position: relative; position: relative;
@ -112,10 +135,12 @@ p.jRatingInfos {
text-align: center; text-align: center;
padding-top: 5px; padding-top: 5px;
} }
p.jRatingInfos span.maxRate { p.jRatingInfos span.maxRate {
color: #c9c9c9; color: #c9c9c9;
font-size: 14px; font-size: 14px;
} }
/* 模态窗口 /* 模态窗口
*******************************************************************************/ *******************************************************************************/
@ -144,6 +169,7 @@ p.jRatingInfos span.maxRate {
position: fixed; position: fixed;
top: 200px; top: 200px;
} }
#OpenWindow-header { #OpenWindow-header {
background: url("/images/showmodal/hd-bg.png") repeat scroll 0 0 transparent; background: url("/images/showmodal/hd-bg.png") repeat scroll 0 0 transparent;
border-bottom: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
@ -151,6 +177,7 @@ p.jRatingInfos span.maxRate {
border-top-right-radius: 5px; border-top-right-radius: 5px;
padding: 18px 18px 14px; padding: 18px 18px 14px;
} }
#OpenWindow-content { #OpenWindow-content {
-webkit-transition: all 0.2s linear 1s; -webkit-transition: all 0.2s linear 1s;
-o-transition: all 0.2s linear 1s; -o-transition: all 0.2s linear 1s;
@ -171,9 +198,11 @@ p.jRatingInfos span.maxRate {
width: 14px; width: 14px;
z-index: 2; z-index: 2;
} }
body { body {
/*font-size: 13px;*/ /*font-size: 13px;*/
} }
#OpenWindow .txt-fld { #OpenWindow .txt-fld {
border-bottom: 1px solid #EEEEEE; border-bottom: 1px solid #EEEEEE;
padding: 14px 20px; padding: 14px 20px;
@ -181,6 +210,7 @@ body {
text-align: right; text-align: right;
width: 364px; width: 364px;
} }
#OpenWindow .txt-fld input { #OpenWindow .txt-fld input {
background: none repeat scroll 0 0 #F7F7F7; background: none repeat scroll 0 0 #F7F7F7;
border-color: #CCCCCC #E7E6E6 #E7E6E6 #CCCCCC; border-color: #CCCCCC #E7E6E6 #E7E6E6 #CCCCCC;
@ -194,14 +224,17 @@ body {
padding: 8px; padding: 8px;
width: 244px; width: 244px;
} }
#OpenWindow .txt-fld input.good_input { #OpenWindow .txt-fld input.good_input {
background: url("/images/showmodal/good.png") no-repeat scroll 236px center #DEF5E1; background: url("/images/showmodal/good.png") no-repeat scroll 236px center #DEF5E1;
} }
#OpenWindow .btn-fld { #OpenWindow .btn-fld {
overflow: hidden; overflow: hidden;
padding: 12px 20px 12px 130px; padding: 12px 20px 12px 130px;
width: 254px; width: 254px;
} }
#OpenWindow button { #OpenWindow button {
background: none repeat scroll 0 0 #3F9D4A; background: none repeat scroll 0 0 #3F9D4A;
border: medium none; border: medium none;
@ -216,6 +249,7 @@ body {
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4); text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
width: auto; width: auto;
} }
/********************************************************************************************************************* /*********************************************************************************************************************
* Wen的OpenWindow * Wen的OpenWindow
*********************************************************************************************************************/ *********************************************************************************************************************/
@ -234,11 +268,13 @@ body {
position: fixed; position: fixed;
top: 200px; top: 200px;
} }
#WOpenWindow .school_list { #WOpenWindow .school_list {
width: 900px; width: 900px;
line-height: 20px; line-height: 20px;
} }
#WOpenWindow-header { #WOpenWindow-header {
background: url("/images/showmodal/hd-bg.png") repeat scroll 0 0 transparent; background: url("/images/showmodal/hd-bg.png") repeat scroll 0 0 transparent;
border-bottom: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
@ -246,6 +282,7 @@ body {
border-top-right-radius: 5px; border-top-right-radius: 5px;
padding: 18px 18px 14px; padding: 18px 18px 14px;
} }
#WOpenWindow-content { #WOpenWindow-content {
-webkit-transition: all 0.2s linear 1s; -webkit-transition: all 0.2s linear 1s;
-o-transition: all 0.2s linear 1s; -o-transition: all 0.2s linear 1s;
@ -255,6 +292,7 @@ body {
border-top-right-radius: 5px; border-top-right-radius: 5px;
padding: 18px 18px 14px; padding: 18px 18px 14px;
} }
#WOpenWindow .content { #WOpenWindow .content {
width: 1000px; width: 1000px;
height: 220px; height: 220px;
@ -265,7 +303,6 @@ body {
} }
#WOpenWindow .txt-fld { #WOpenWindow .txt-fld {
border-bottom: 1px solid #EEEEEE; border-bottom: 1px solid #EEEEEE;
padding: 14px 20px; padding: 14px 20px;
@ -273,6 +310,7 @@ body {
text-align: right; text-align: right;
width: 364px; width: 364px;
} }
#WOpenWindow .txt-fld input { #WOpenWindow .txt-fld input {
background: none repeat scroll 0 0 #F7F7F7; background: none repeat scroll 0 0 #F7F7F7;
border-color: #CCCCCC #E7E6E6 #E7E6E6 #CCCCCC; border-color: #CCCCCC #E7E6E6 #E7E6E6 #CCCCCC;
@ -286,14 +324,17 @@ body {
padding: 8px; padding: 8px;
width: 244px; width: 244px;
} }
#WOpenWindow .txt-fld input.good_input { #WOpenWindow .txt-fld input.good_input {
background: url("/images/showmodal/good.png") no-repeat scroll 236px center #DEF5E1; background: url("/images/showmodal/good.png") no-repeat scroll 236px center #DEF5E1;
} }
#WOpenWindow .btn-fld { #WOpenWindow .btn-fld {
overflow: hidden; overflow: hidden;
padding: 12px 20px 12px 130px; padding: 12px 20px 12px 130px;
width: 254px; width: 254px;
} }
#WOpenWindow button { #WOpenWindow button {
background: none repeat scroll 0 0 #3F9D4A; background: none repeat scroll 0 0 #3F9D4A;
border: medium none; border: medium none;
@ -309,10 +350,8 @@ body {
width: auto; width: auto;
} }
/*********************************************************************************************************************/ /*********************************************************************************************************************/
/* 按钮 /* 按钮
*******************************************************************************/ *******************************************************************************/
.orangeButton { .orangeButton {
@ -336,6 +375,7 @@ body {
text-decoration: none; text-decoration: none;
text-shadow: 0px 1px 0px #754529; text-shadow: 0px 1px 0px #754529;
} }
.orangeButton:hover { .orangeButton:hover {
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #db6825), color-stop(1, #e87832)); background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #db6825), color-stop(1, #e87832));
background: -moz-linear-gradient(top, #db6825 5%, #e87832 100%); background: -moz-linear-gradient(top, #db6825 5%, #e87832 100%);
@ -346,10 +386,12 @@ body {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#db6825', endColorstr = '#e87832', GradientType = 0); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#db6825', endColorstr = '#e87832', GradientType = 0);
background-color: #db6825; background-color: #db6825;
} }
.orangeButton:active { .orangeButton:active {
position: relative; position: relative;
top: 1px; top: 1px;
} }
input[class~='whiteButton'], .whiteButton { input[class~='whiteButton'], .whiteButton {
-moz-box-shadow: inset 0px 1px 0px 0px #ffffff; -moz-box-shadow: inset 0px 1px 0px 0px #ffffff;
-webkit-box-shadow: inset 0px 1px 0px 0px #ffffff; -webkit-box-shadow: inset 0px 1px 0px 0px #ffffff;
@ -377,6 +419,7 @@ input[class~='whiteButton'], .whiteButton {
text-decoration: none; text-decoration: none;
text-shadow: 0px 1px 0px #ffffff; text-shadow: 0px 1px 0px #ffffff;
} }
input[class~='whiteButton']:hover, .whiteButton:hover { input[class~='whiteButton']:hover, .whiteButton:hover {
color: #c61a1a; color: #c61a1a;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #f6f6f6), color-stop(1, #ffffff)); background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #f6f6f6), color-stop(1, #ffffff));
@ -389,20 +432,24 @@ input[class~='whiteButton']:hover, .whiteButton:hover {
text-decoration: none; text-decoration: none;
background-color: #f6f6f6; background-color: #f6f6f6;
} }
input[class~='whiteButton']:active, .whiteButton:active { input[class~='whiteButton']:active, .whiteButton:active {
position: relative; position: relative;
top: 1px; top: 1px;
text-decoration: none; text-decoration: none;
} }
input[class~='m3p10'], .m3p10 { input[class~='m3p10'], .m3p10 {
margin: 0; margin: 0;
padding: 3px 10px; padding: 3px 10px;
height: 20px; height: 20px;
display: inline-block; display: inline-block;
} }
input[class~='h30'], .h30 { input[class~='h30'], .h30 {
height: 30px; height: 30px;
} }
/* minimal /* minimal
*******************************************************************************/ *******************************************************************************/
input[class='nyan-minimal'], .nyan-minimal { input[class='nyan-minimal'], .nyan-minimal {
@ -423,6 +470,7 @@ input[class='nyan-minimal'], .nyan-minimal {
padding-left: 10px; padding-left: 10px;
padding-right: 10px; padding-right: 10px;
} }
input[class='nyan-minimal'], .nyan-minimal:hover { input[class='nyan-minimal'], .nyan-minimal:hover {
background: #d9d9d9; background: #d9d9d9;
-webkit-box-shadow: inset 0 0 1px 1px #eaeaea; -webkit-box-shadow: inset 0 0 1px 1px #eaeaea;
@ -431,6 +479,7 @@ input[class='nyan-minimal'], .nyan-minimal:hover {
color: #222; color: #222;
cursor: pointer; cursor: pointer;
} }
input[class='nyan-minimal'], .nyan-minimal:active { input[class='nyan-minimal'], .nyan-minimal:active {
background: #d0d0d0; background: #d0d0d0;
-webkit-box-shadow: inset 0 0 1px 1px #e3e3e3; -webkit-box-shadow: inset 0 0 1px 1px #e3e3e3;
@ -463,6 +512,7 @@ input[class='nyan-clean-gray'], .nyan-clean-gray {
padding-left: 10px; padding-left: 10px;
padding-right: 10px; padding-right: 10px;
} }
input[class='nyan-clean-gray']:hover, .nyan-clean-gray:hover { input[class='nyan-clean-gray']:hover, .nyan-clean-gray:hover {
background-color: #dddddd; background-color: #dddddd;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #dddddd), color-stop(100%, #bbbbbb)); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #dddddd), color-stop(100%, #bbbbbb));
@ -476,6 +526,7 @@ input[class='nyan-clean-gray']:hover, .nyan-clean-gray:hover {
cursor: pointer; cursor: pointer;
text-shadow: 0 1px 0 #ddd; text-shadow: 0 1px 0 #ddd;
} }
input[class='nyan-clean-gray']:active, .nyan-clean-gray:active { input[class='nyan-clean-gray']:active, .nyan-clean-gray:active {
border: 1px solid #aaa; border: 1px solid #aaa;
border-bottom: 1px solid #888; border-bottom: 1px solid #888;
@ -484,7 +535,6 @@ input[class='nyan-clean-gray']:active, .nyan-clean-gray:active {
box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
} }
#share_label { #share_label {
line-height: 1.4em line-height: 1.4em
} }
@ -497,12 +547,14 @@ input[class='nyan-clean-gray']:active, .nyan-clean-gray:active {
width: 100px; width: 100px;
padding: 3px 5px 0px 5px; padding: 3px 5px 0px 5px;
} }
.tools a:visited { .tools a:visited {
color: #116699; color: #116699;
text-decoration: none; text-decoration: none;
padding: 3px 5px 0px 5px; padding: 3px 5px 0px 5px;
width: 100px; width: 100px;
} }
.tools a:hover { .tools a:hover {
color: white; color: white;
padding: 3px 3px 0px 20px; padding: 3px 3px 0px 20px;
@ -510,6 +562,7 @@ input[class='nyan-clean-gray']:active, .nyan-clean-gray:active {
text-decoration: none; text-decoration: none;
background-color: #539D26; background-color: #539D26;
} }
.tools a:active { .tools a:active {
color: white; color: white;
padding: 3px 3px 0px 20px; padding: 3px 3px 0px 20px;
@ -523,6 +576,7 @@ input[class='nyan-clean-gray']:active, .nyan-clean-gray:active {
margin: 0px 0px 0px 10%; margin: 0px 0px 0px 10%;
padding: 0; padding: 0;
} }
.tools li { .tools li {
background: url("/images/sidebar/tool_tag_alpha.png") 10px 30% no-repeat transparent; background: url("/images/sidebar/tool_tag_alpha.png") 10px 30% no-repeat transparent;
color: #3e3e3e; color: #3e3e3e;
@ -533,9 +587,11 @@ input[class='nyan-clean-gray']:active, .nyan-clean-gray:active {
font-size: 1.0em; font-size: 1.0em;
/*border-bottom: 1px solid #CCC;*/ /*border-bottom: 1px solid #CCC;*/
} }
.tools li:last-child { .tools li:last-child {
border: none; border: none;
} }
/* 贴吧 forum memo /* 贴吧 forum memo
*******************************************************************************/ *******************************************************************************/
@ -547,6 +603,7 @@ div.actions input[type="text"]{
-box-sizing: border-box; -box-sizing: border-box;
} }
.lz { .lz {
position: relative; position: relative;
min-height: 200px; min-height: 200px;
@ -555,17 +612,20 @@ div.actions input[type="text"]{
box-shadow: 1px 1px 6px #97EBF4; box-shadow: 1px 1px 6px #97EBF4;
border: 1px solid #F1F1F1; border: 1px solid #F1F1F1;
} }
.lz-left { .lz-left {
float: left; float: left;
margin: 2%; margin: 2%;
padding: 0; padding: 0;
} }
.memo-section { .memo-section {
width: auto; width: auto;
margin-left: 15%; margin-left: 15%;
padding-top: 1%; padding-top: 1%;
border-left: 2px dotted #EEE; border-left: 2px dotted #EEE;
} }
.memo-title { .memo-title {
margin: 1em 0; margin: 1em 0;
padding-left: 1%; padding-left: 1%;
@ -573,6 +633,7 @@ div.actions input[type="text"]{
font-weight: bold; font-weight: bold;
border-bottom: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);
} }
.memo-content { .memo-content {
padding: 1%; padding: 1%;
margin: 1%; margin: 1%;
@ -580,18 +641,21 @@ div.actions input[type="text"]{
background-color: #F8F8F8; background-color: #F8F8F8;
border-radius: 3px; border-radius: 3px;
} }
.memo-timestamp { .memo-timestamp {
position: absolute; position: absolute;
bottom: 0px; bottom: 0px;
right: 0; right: 0;
margin: 20px; margin: 20px;
} }
.replies { .replies {
overflow: hidden; overflow: hidden;
max-width: 100%; max-width: 100%;
float: right; float: right;
/*max-width: 90%;*/ /*max-width: 90%;*/
} }
.reply-box { .reply-box {
float: right; float: right;
width: 640px; width: 640px;
@ -600,6 +664,7 @@ div.actions input[type="text"]{
border-top: 2px double #C6F3F9; border-top: 2px double #C6F3F9;
/*border-radius: 10px;*/ /*border-radius: 10px;*/
} }
.memo-content img, .comments img { .memo-content img, .comments img {
overflow: hidden; overflow: hidden;
/*width: 100%;*/ /*width: 100%;*/
@ -607,33 +672,39 @@ div.actions input[type="text"]{
height: auto !important; height: auto !important;
width: expression(this.width > 500 ? "500px" : this.width+"px"); width: expression(this.width > 500 ? "500px" : this.width+"px");
} }
table.content-text-list tbody tr td.sticky, div.memo-section .sticky { table.content-text-list tbody tr td.sticky, div.memo-section .sticky {
background: url(../images/zding.gif) no-repeat 0 1px; padding-left: 35px; background: url(../images/zding.gif) no-repeat 0 1px;
padding-left: 35px;
/*background: url(../images/2uparrow.png) no-repeat 0 1px; padding-left: 20px;*/ /*background: url(../images/2uparrow.png) no-repeat 0 1px; padding-left: 20px;*/
font-weight: bold; font-weight: bold;
margin-left: 5px; margin-left: 5px;
} }
table.content-text-list tbody tr td.locked, div.memo-section .locked { table.content-text-list tbody tr td.locked, div.memo-section .locked {
background: url(../images/locked.png) no-repeat 0 1px; background: url(../images/locked.png) no-repeat 0 1px;
padding-left: 20px; padding-left: 20px;
margin-left: 5px; margin-left: 5px;
} }
/* 问题列表 /* 问题列表
*******************************************************************************/ *******************************************************************************/
.query_form { .query_form {
} }
.content-title-top { .content-title-top {
padding-bottom: 10px; padding-bottom: 10px;
} }
.custom_query { .custom_query {
max-width: 95%; max-width: 95%;
margin: 3px auto; margin: 3px auto;
border-bottom : solid 1px #;
-o-box-shadow: inset 0px 1px 1px 0px #FAFAFA; -o-box-shadow: inset 0px 1px 1px 0px #FAFAFA;
-moz-box-shadow: inset 0px 1px 1px 0px #FAFAFA; -moz-box-shadow: inset 0px 1px 1px 0px #FAFAFA;
-webkit-box-shadow: inset 0px 1px 1px 0px #FAFAFA; -webkit-box-shadow: inset 0px 1px 1px 0px #FAFAFA;
box-shadow: inset 0px 1px 1px 0px #FAFAFA; box-shadow: inset 0px 1px 1px 0px #FAFAFA;
} }
.custom_query>span { .custom_query>span {
display: block; display: block;
max-width: 100%; max-width: 100%;
@ -643,6 +714,7 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
border-radius: 3px; border-radius: 3px;
background-color: #DBEBEE; background-color: #DBEBEE;
} }
.custom_query > .hide-when-print { .custom_query > .hide-when-print {
max-width: 97%; max-width: 97%;
padding: 1px 3px 6px; padding: 1px 3px 6px;
@ -651,6 +723,7 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
border-bottom-left-radius: 10px; border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px; border-bottom-right-radius: 10px;
} }
/* 项目新闻栏 /* 项目新闻栏
*******************************************************************************/ *******************************************************************************/
.add_frame { .add_frame {
@ -661,6 +734,7 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
/*box-shadow: 1px 1px 6px rgb(241,241,241);*/ /*box-shadow: 1px 1px 6px rgb(241,241,241);*/
/*border: 1px solid #F1F1F1;*/ /*border: 1px solid #F1F1F1;*/
} }
.add_frame_header { .add_frame_header {
background: linear-gradient(#fbfbfb, #f8f8f8) repeat scroll 0% 0% transparent; background: linear-gradient(#fbfbfb, #f8f8f8) repeat scroll 0% 0% transparent;
border-bottom: 1px solid rgb(226, 226, 226); border-bottom: 1px solid rgb(226, 226, 226);
@ -673,22 +747,29 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
font-size: 1.5em; font-size: 1.5em;
padding-left: 4%; padding-left: 4%;
} }
/* xx动态框 /* xx动态框
*******************************************************************************/ *******************************************************************************/
.project_acts *{border:1px solid #000000;} .project_acts * {
border: 1px solid #000000;
}
.project_acts { .project_acts {
height: 250px; height: 250px;
} }
.project_acts .project_acts_left { .project_acts .project_acts_left {
float: left; float: left;
height: 100%; height: 100%;
width: 61%; width: 61%;
} }
.project_acts .project_acts_right { .project_acts .project_acts_right {
height: 100%; height: 100%;
margin-left: 61%; margin-left: 61%;
} }
/* stores 资源库 /* stores 资源库
*******************************************************************************/ *******************************************************************************/
.line_block { .line_block {
@ -701,9 +782,11 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
-box-sizing: border-box; -box-sizing: border-box;
} }
.resource_sum { .resource_sum {
height: auto; height: auto;
} }
.line_block p { .line_block p {
margin: 20px -2px 0px 0px; margin: 20px -2px 0px 0px;
/*background: linear-gradient(#ffffff, #e5e5e5) repeat scroll 0% 0% transparent;*/ /*background: linear-gradient(#ffffff, #e5e5e5) repeat scroll 0% 0% transparent;*/
@ -719,15 +802,18 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
padding-left: 4%; padding-left: 4%;
border-bottom: 1px solid rgb(21, 165, 200); border-bottom: 1px solid rgb(21, 165, 200);
} }
.resource_sum, .line_blo { .resource_sum, .line_blo {
border: 1px solid #eeeeee; border: 1px solid #eeeeee;
} }
.filename { .filename {
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
max-width: 247px; max-width: 230px;
} }
.line_block .table1 { .line_block .table1 {
display: table; display: table;
width: 100%; width: 100%;
@ -735,11 +821,13 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
border-right: 1px solid #eeeeee; border-right: 1px solid #eeeeee;
border-bottom: 1px solid #eeeeee; border-bottom: 1px solid #eeeeee;
} }
.line_block .table_row1 { .line_block .table_row1 {
height: 38px; height: 38px;
display: table-row; display: table-row;
width: 100%; width: 100%;
} }
.line_block .table_cell1 { .line_block .table_cell1 {
display: table-cell; display: table-cell;
padding: 2px; padding: 2px;
@ -751,10 +839,12 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
width: 62%; width: 62%;
padding-left: 8px; padding-left: 8px;
} }
.line_block .filedown1 { .line_block .filedown1 {
width: 19%; width: 19%;
text-align: center; text-align: center;
} }
.line_block .downicon1 { .line_block .downicon1 {
width: 19%; width: 19%;
text-align: center; text-align: center;
@ -763,13 +853,16 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
.blue-color, .blue-color a { .blue-color, .blue-color a {
color: rgb(109, 153, 178); color: rgb(109, 153, 178);
} }
.gray-color, .gray-color a { .gray-color, .gray-color a {
color: rgb(153, 153, 153); color: rgb(153, 153, 153);
} }
#top_field { #top_field {
max-width: 100%; max-width: 100%;
margin: 20px auto; margin: 20px auto;
} }
.blueinputbar { .blueinputbar {
-o-transform-origin: 138px 46.5px; -o-transform-origin: 138px 46.5px;
-o-transition: background 0.2s cubic-bezier(0, 0, 1, 1); -o-transition: background 0.2s cubic-bezier(0, 0, 1, 1);
@ -807,6 +900,7 @@ table.content-text-list tbody tr td.locked, div.memo-section .locked{
vertical-align: top; vertical-align: top;
word-wrap: break-word; word-wrap: break-word;
} }
input.blueinputbar:focus { input.blueinputbar:focus {
box-shadow: rgba(0, 0, 0, 0.047) 0px 1px 3px 0px inset, rgba(82, 168, 236, 0.600) 0px 0px 5px 0px; box-shadow: rgba(0, 0, 0, 0.047) 0px 1px 3px 0px inset, rgba(82, 168, 236, 0.600) 0px 0px 5px 0px;
border-bottom: 1px solid #56B4EF; border-bottom: 1px solid #56B4EF;
@ -815,6 +909,7 @@ input.blueinputbar:focus {
border-right: 1px solid #56B4EF; border-right: 1px solid #56B4EF;
border-top: 1px solid #56B4EF; border-top: 1px solid #56B4EF;
} }
.r1 { .r1 {
font-size: 13px; font-size: 13px;
line-height: 1.7em; line-height: 1.7em;
@ -823,15 +918,18 @@ input.blueinputbar:focus {
/*padding-left: 20px;*/ /*padding-left: 20px;*/
/*width: 50em;*/ /*width: 50em;*/
} }
.r1 .cb { .r1 .cb {
font-size: 16px; font-size: 16px;
color: #3333cc; color: #3333cc;
} }
/* course 用户 课程 历史 /* course 用户 课程 历史
*******************************************************************************/ *******************************************************************************/
.courses_history { .courses_history {
opacity: 0.7; opacity: 0.7;
} }
.courses_history a { .courses_history a {
color: #666; color: #666;
} }
@ -849,4 +947,196 @@ div.issue{
box-shadow: 3px 3px 10px rgba(100,150,205,0.1);*/ box-shadow: 3px 3px 10px rgba(100,150,205,0.1);*/
} }
/* project 文件列表 资源库
*******************************************************************************/
.tags_area {
height: 13px;
}
#ver-zebra, .file_table_des {
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
margin: 5px 10px;
width: 98%;
text-align: left;
border-collapse: collapse;
font-size: 14px;
}
#ver-zebra th {
font-size: 14px;
font-weight: normal;
padding: 12px 15px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
color: #039;
text-align: left;
}
#ver-zebra td {
padding: 8px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
color: #669;
}
#ver-zebra td.description {
background-color: white;
padding: 0px;
margin: 0px auto;
}
#ver-zebra1, .file_table_des {
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
margin: 5px 10px;
width: 98%;
text-align: left;
border-collapse: collapse;
line-height: 20px;
font-size: 14px;
}
#ver-zebra1 th {
font-size: 14px;
font-weight: normal;
padding: 12px 15px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
color: #039;
text-align: left;
}
#ver-zebra1 td {
padding: 8px ;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
color: #669;
}
#ver-zebra1 td.description {
background-color: white;
padding: 0px;
margin: 0px auto;
}
div.tags_area {
padding: 2px 10px 10px 10px;
margin: 0px;
margin-bottom: 10px;
/*border-bottom: 1px dashed #CCCCCC;*/
overflow: hidden;
position: relative;
}
.tags_gradint {
}
.read-more {
padding: 5px;
border-top: 4px double #ddd;
background: #fff;
color: #333;
}
.read-more a {
padding-right: 22px;
background: no-repeat 100% 50%;
font-weight: bold;
text-decoration: none;
}
.read-more a:hover {
color: #000;
}
.vzebra-odd {
background: #eff2ff;
}
.vzebra-even {
background: #e8edff;
}
#ver-zebra #vzebra-adventure, #ver-zebra #vzebra-children {
background: #ffffff;
border-bottom: 1px solid #c8d4fd;
}
#ver-zebra #vzebra-comedy, #ver-zebra #vzebra-action {
background: #ffffff;
border-bottom: 1px solid #d6dfff;
}
#ver-zebra1 #vzebra-adventure, #ver-zebra #vzebra-children {
background: #ffffff;
border-bottom: 1px solid #c8d4fd;
}
#ver-zebra1 #vzebra-comedy, #ver-zebra #vzebra-action {
background: #ffffff;
border-bottom: 1px solid #d6dfff;
}
ver-zebra .filename {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
div.pagination {
margin: 10px 0px;
height: 1.5em;
text-align: left;
font-size: 13px;
}
.m5p5 {
display: inline-block;
height: auto;
color: white !important;
margin: 8px;
padding: 3px 7px;
}
.m5p5:hover {
text-decoration: none;
/*padding-bottom: 3px;*/
/*border-bottom: 1px solid #666666;*/
border-radius: 4px;
border: 1px solid #15bccf;
box-shadow: 3px 3px 3px #666666;
}
.relation_file_div {
margin: 0px 25px;
}
.relation_file_div fieldset {
margin: 0px 0px;
padding: 10px;
border-radius: 5px;
transition: all 2s linear 1s;
}
.relation_file_div input#attach_search:focus {
border: 1px solid #1B95C6;
box-shadow: 0px 0px 4px #1B95C6;
width: 200px;
}
.relation_file_div input#attach_search {
width: 150px;
outline: none;
border-radius: 5px;
-webkit-transition: 1s width;
-moz-transition: 1s width;
-o-transition: 1s width;
transition: 1s width;
}
.all_browse_div table .description{
border-bottom: 1px solid #efffff;
}
.all_browse_div table td{
vertical-align: middle;
}