Merge branch 'szzh' into develop

This commit is contained in:
sw 2014-10-23 10:58:41 +08:00
commit be0eddd304
85 changed files with 2060 additions and 1668 deletions

View File

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

View File

@ -88,3 +88,12 @@ bundle exec rake db:migrate:down VERSION=20140811022947
bundle exec rake db:migrate:up VERSION=20140811022947
bundle exec rake db:migrate
bundle exec rake project_score:calculate
=================================[2014-10-17]====================================
kw:数据迁移web_footer_oranizers表已存在
bundle exec rake db:migrate:down VERSION=20141013014908
bundle exec rake db:migrate:up VERSION=20141013014908
bundle exec rake db:migrate
kw:数据迁移web_footer_companies表已存在
bundle exec rake db:migrate:down VERSION=20141013023400
bundle exec rake db:migrate:up VERSION=20141013023400
bundle exec rake db:migrate

View File

@ -159,7 +159,7 @@ class AdminController < ApplicationController
respond_to do |format|
flash[:notice] = l(:notice_successful_update)
format.html {
redirect_to admin_first_page_made_url
redirect_to first_page_made_url
}
format.api { render_api_ok }
#format.json { render json: @first_page, status: :created, location: @first_page }
@ -194,7 +194,7 @@ class AdminController < ApplicationController
respond_to do |format|
format.html {
flash[:notice] = l(:notice_successful_update)
redirect_to admin_course_page_made_url
redirect_to course_page_made_url
}
format.api { render_api_ok }
end
@ -217,25 +217,21 @@ class AdminController < ApplicationController
if request.get?
@contest_page = FirstPage.find_by_page_type('contest')
@first_page = FirstPage.find_by_page_type('project')
@notification = ContestNotification.first;
elsif request.post?
@first_page = FirstPage.find_by_page_type('project')
@contest_page = FirstPage.find_by_page_type('contest')
@notification = ContestNotification.first;
@first_page.web_title = params[:web_title]
@contest_page.web_title = params[:web_title]
@contest_page.title = params[:contest_title]
@contest_page.image_width = params[:image_width]
@contest_page.image_height = params[:image_height]
@contest_page.description = params[:contest_description]
@notification.title = params[:contest_notification_title]
@notification.content = params[:contest_notification][:content]
if @first_page.save && @contest_page.save && @notification.save
if @first_page.save && @contest_page.save
respond_to do |format|
format.html {
flash[:notice] = l(:notice_successful_update)
redirect_to admin_contest_page_made_url
redirect_to contest_page_made_url
}
format.api { render_api_ok }
end
@ -270,7 +266,7 @@ class AdminController < ApplicationController
respond_to do |format|
format.html {
flash[:notice] = l(:notice_successful_update)
redirect_to admin_web_footer_made_url
redirect_to web_footer_made_url
}
format.api { render_api_ok }
end

View File

@ -499,19 +499,19 @@ class ApplicationController < ActionController::Base
def render_403(options={})
@project = nil
#render_error({:message => :notice_not_authorized, :status => 403}.merge(options))
render :template => 'common/403'
render_error({:message => :notice_not_authorized, :status => 403}.merge(options),'common/403')
#render :template => 'common/403'
return false
end
def render_404(options={})
#render_error({:message => :notice_file_not_found, :status => 404}.merge(options))
render :template => 'common/404'
render_error({:message => :notice_file_not_found, :status => 404}.merge(options),'common/404')
#render :template => 'common/404'
return false
end
# Renders an error response
def render_error(arg)
def render_error(arg,template = 'common/error')
arg = {:message => arg} unless arg.is_a?(Hash)
@message = arg[:message]
@lay = arg[:layout]
@ -521,9 +521,9 @@ class ApplicationController < ActionController::Base
respond_to do |format|
format.html {
if @lay
render :template => 'common/error', :layout => @lay,:status => @status
render :template => template, :layout => @lay,:status => @status
else
render :template => 'common/error', :layout => use_layout, :status => @status
render :template => template, :layout => use_layout, :status => @status
end
}
@ -766,7 +766,7 @@ class ApplicationController < ActionController::Base
end
def find_web_footer
@organize = WebFooterOranizer.first
@organizer = WebFooterOranizer.first
@companies = WebFooterCompany.all
end
end

View File

@ -84,7 +84,10 @@ class AttachmentsController < ApplicationController
candown= User.current.member_of_course?(course) || (course.is_public==1 && @attachment.is_public == 1)
elsif @attachment.container.class.to_s=="HomeworkAttach" && @attachment.container.bid.reward_type == 3
candown = true
elsif @attachment.container_type == "Bid" && @attachment.container && @attachment.container.courses
candown = User.current.member_of_course?(@attachment.container.courses.first) || (course.is_public == 1 && @attachment.is_public == 1)
else
candown = @attachment.is_public == 1
end
if candown || User.current.admin? || User.current.id == @attachment.author_id

View File

@ -21,30 +21,37 @@ class CoursesController < ApplicationController
before_filter :toggleCourse, only: [:finishcourse, :restartcourse]
before_filter :require_login, :only => [:join, :unjoin]
before_filter :allow_join, :only => [:join]
#before_filter :allow_join, :only => [:join]
def join
if User.current.logged?
course = Course.find(params[:object_id])
unless User.current.member_of_course? course
if params[:course_password] == course.password
members = []
members << Member.new(:role_ids => [10], :user_id => User.current.id)
course.members << members
StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id])
@state = 0
course = Course.find_by_id params[:object_id]
if course
if course_endTime_timeout? course
@state = 2
else
@state = 1
if User.current.member_of_course?(course)
@state = 3
else
if params[:course_password] == course.password
members = []
members << Member.new(:role_ids => [10], :user_id => User.current.id)
course.members << members
StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id])
@state = 0
else
@state = 1
end
end
end
else
@state = 3
@state = 4
end
else
@state = 4
@state = 5
end
respond_to do |format|
# format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => Course.find(params[:object_id]), :object_id => params[:object_id]} }
format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => course, :object_id => params[:object_id]} }
end
rescue Exception => e
@state = 4
@ -424,9 +431,7 @@ class CoursesController < ApplicationController
@course_type = params[:course_type]
@school_id = params[:school_id]
per_page_option = 10
if @school_id == "0" or @school_id.nil?
if @school_id == "0" || @school_id.nil?
@courses_all = Course.active.visible.
joins("LEFT JOIN #{CourseStatus.table_name} ON #{Course.table_name}.id = #{CourseStatus.table_name}.course_id")
else
@ -434,49 +439,37 @@ class CoursesController < ApplicationController
joins("LEFT JOIN #{CourseStatus.table_name} ON #{Course.table_name}.id = #{CourseStatus.table_name}.course_id").
where("#{Course.table_name}.school_id = ?", @school_id)
end
@course_count = @courses_all.count
@course_pages = Paginator.new @course_count, per_page_option, params['page']
@course_activity_count=Hash.new
@courses_all.each do |course|
@course_activity_count[course.id]=0
end
case params[:course_sort_type]
when '0'
@courses = @courses_all.order("created_at desc")
@s_type = 0
@courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page)
@course_activity_count=get_course_activity @courses, @course_activity_count
@course_activity_count=get_course_activity @courses, @course_activity_count
when '1'
@courses = @courses_all.order("course_ac_para desc")
@s_type = 1
@courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page)
@course_activity_count=get_course_activity @courses, @course_activity_count
when '2'
@courses = @courses_all.order("watchers_count desc")
@s_type = 2
@courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page)
@course_activity_count=get_course_activity @courses, @course_activity_count
when '3'
@course_activity_count=get_course_activity @courses_all, @course_activity_count
@courses=handle_course @courses_all, @course_activity_count
@s_type = 3
@courses = @courses[@course_pages.offset, @course_pages.per_page]
else
@s_type = 0
@courses = @courses_all.order("created_at desc")
@courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page)
@course_activity_count=get_course_activity @courses, @course_activity_count
end
@ -518,18 +511,14 @@ class CoursesController < ApplicationController
# 新建作业
def new_homework
@homework = Bid.new
@homework.proportion
@homework.safe_attributes = params[:bid]
if (User.current.logged? && User.current.member_of_course?(Course.find params[:id] ))
render :layout => 'base_courses'
else
render_403
end
end
def toggleCourse
@course_prefs = Course.find_by_extra(@course.extra)
unless (@course_prefs.teacher == User.current || User.current.admin?)
@ -697,8 +686,8 @@ class CoursesController < ApplicationController
private
def allow_join
if course_endTime_timeout? Course.find(params[:object_id])
def allow_join course
if course_endTime_timeout? course
respond_to do |format|
format.js {
@state = 2
@ -719,7 +708,4 @@ class CoursesController < ApplicationController
render_404
end
end
end

View File

@ -113,7 +113,7 @@ class FilesController < ApplicationController
end
if order_by.count == 1
sort += "#{Attachment.table_name}.#{attribute} desc "
sort += "#{Attachment.table_name}.#{attribute} asc "
elsif order_by.count == 2
sort += "#{Attachment.table_name}.#{attribute} #{order_by[1]} "
end

View File

@ -130,7 +130,7 @@ class MyController < ApplicationController
@user.pref.save
@user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
set_language_if_valid @user.language
flash.now[:notice] = l(:notice_account_updated)
flash[:notice] = l(:notice_account_updated)
redirect_to user_url(@user)
return
else

View File

@ -113,7 +113,7 @@ class RepositoriesController < ApplicationController
@root_path=RepositoriesHelper::ROOT_PATH
@repository_name=User.current.login.to_s+"/"+params[:repository][:identifier]+".git"
@project_path=@root_path+"htdocs/"+@repository_name
@repository_tag=params[:repository][:upassword]
@repository_tag=params[:repository][:upassword] || params[:repository][:password]
@repo_name=User.current.login.to_s+"_"+params[:repository][:identifier]
logger.info "htpasswd -mb "+@root_path+"user.passwd "+@repo_name+": "+@repository_tag
logger.info "the value of create repository"+@root_path+": "+@repository_name+": "+@project_path+": "+@repo_name

View File

@ -33,15 +33,16 @@ class UsersController < ApplicationController
before_filter :require_admin, :except => [:show, :index, :search, :tag_save, :tag_saveEx,:user_projects, :user_newfeedback, :user_comments, :watch_bids, :watch_contests, :info,
:user_watchlist, :user_fanslist,:update, :user_courses, :user_homeworks, :watch_projects, :show_score, :topic_score_index, :project_score_index,
:activity_score_index, :influence_score_index, :score_index,:show_new_score, :topic_new_score_index, :project_new_score_index,
:activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score,:user_activities]
:activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score,:user_activities,:user_projects_index]
#edit has been deleted by huang, 2013-9-23
before_filter :find_user, :only => [:user_fanslist, :user_watchlist, :show, :edit, :update, :destroy, :edit_membership, :user_courses,
: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,
:activity_score_index, :influence_score_index, :score_index,:show_new_score, :topic_new_score_index, :project_new_score_index,
:activity_new_score_index, :influence_new_score_index, :score_new_index]
:activity_new_score_index, :influence_new_score_index, :score_new_index,:user_projects_index]
before_filter :auth_user_extension, only: :show
before_filter :rest_user_score, only: :show
#before_filter :select_entry, only: :user_projects
accept_api_auth :index, :show, :create, :update, :destroy,:tag_save , :tag_saveEx
#william
@ -80,6 +81,21 @@ class UsersController < ApplicationController
end
end
def user_projects_index
if User.current.admin?
memberships = @user.memberships.all(conditions: "projects.project_type = #{Project::ProjectType_project}").first
else
cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1"
memberships = @user.memberships.all(:conditions => cond).first
end
watch_projects = Project.joins(:watchers).where("project_type <>? and watchable_type = ? and `watchers`.user_id = ?", '1','Project', @user.id).first
if memberships.nil? && watch_projects
redirect_to(:watch_projects_user) and return
else
redirect_to(:user_projects_user) and return
end
end
#added by young
def user_projects
@ -92,8 +108,6 @@ class UsersController < ApplicationController
#events = Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 20)
#@events_by_day = events.group_by(&:event_date)
@state = 0
#add by huang
unless User.current.admin?
if !@user.active? #|| (@user != User.current && @memberships.empty? && events.empty?)

View File

@ -10,7 +10,7 @@ class WebFooterCompaniesController < ApplicationController
end
def new
@company = WebFooterCompany.new
@company ||= WebFooterCompany.new
end
def create
@ -20,8 +20,11 @@ class WebFooterCompaniesController < ApplicationController
redirect_to web_footer_companies_url
else
flash[:error] = "#{l :web_footer_company_create_fail}: #{@company.errors.full_messages[0]}"
new
render :action => 'new'
respond_to do |format|
format.html { render :action => 'new'}
format.api { render_validation_errors(@company) }
end
end
end
@ -42,7 +45,6 @@ class WebFooterCompaniesController < ApplicationController
redirect_to web_footer_companies_url
else
flash[:error] = "#{l :web_footer_company_update_fail}: #{@company.errors.full_messages[0]}"
edit
render :action => 'edit'
end
end

View File

@ -143,16 +143,19 @@ module AttachmentsHelper
params[:q] ||= ""
filename_condition = params[:q].strip
attachAll = Attachment.scoped
# 除去当前课程的所有资源
nobelong_attach = Attachment.where("!(container_type = '#{course.class}' and container_id = #{course.id})") unless course.blank?
#attachAll = Attachment.where("author_id = #{User.current.id}")
#
## 除去当前课程的所有资源
#nobelong_attach =
# 搜索域确定
domain = course.nil? ? attachAll : nobelong_attach
course.nil? ?
domain=Attachment.where("author_id = #{User.current.id}")
:
domain=Attachment.where("author_id = #{User.current.id} and container_type = 'Course' and container_id <> #{course.id}") unless course.blank?
# 搜索到的资源
searched_attach = domain.where("is_public=1 and filename LIKE :like ", like:"%#{filename_condition}%").limit(limit).order('created_on desc')
searched_attach = domain.where("filename LIKE :like ", like:"%#{filename_condition}%").limit(limit).order('created_on desc')
#searched_attach = private_filter searched_attach
searched_attach = paginateHelper(searched_attach, 10)

View File

@ -479,7 +479,6 @@ module CoursesHelper
type << option2
type
end
#获取课程动态
def get_course_activity courses, activities
@course_ids=activities.keys()
@ -504,20 +503,8 @@ module CoursesHelper
activities[news.course_id]+=1
end
#feedbackc_count
JournalsForMessage.where(jour_id: @course_ids, jour_type: Course).each do |jourformess|
activities[jourformess.jour_id]+=1
end
#activities!=0
i=0;
courses.each do |course|
id=course.id
if activities[id]==0
activities[id]=1
end
end
# 动态数 + 1 ( 某某创建了该课程 )
activities.each_pair { |key, value| activities[key] = value + 1 }
return activities
end

View File

@ -7,9 +7,10 @@ class ContestingProject < ActiveRecord::Base
DESCRIPTION_LENGTH_LIMIT = 500
validates :description, length: {maximum:DESCRIPTION_LENGTH_LIMIT }
validates :user_id, presence: true
validates :contest_id, presence: true, uniqueness: {:scope => :project_id}
validates :project_id, presence: true
validates :user_id, presence: true
validates :contest_id, presence: true, uniqueness: {scope: :project_id}
validates :project_id, presence: true
validate :validate_user
validate :validate_contest
validate :validate_project

View File

@ -0,0 +1,8 @@
<div class="tabs">
<ul>
<li><%= link_to l(:label_project_first_page), {:action => 'first_page_made'}, class: "#{current_page?(first_page_made_path)? 'selected' : nil }" %></li>
<li><%= link_to l(:label_course_first_page), {:action => 'course_page_made'}, class: "#{current_page?(course_page_made_path)? 'selected' : nil }" %></li>
<li><%= link_to l(:label_contest_first_page), {:action => 'contest_page_made'}, class: "#{current_page?(contest_page_made_path)? 'selected' : nil }" %></li>
<li><%= link_to l(:label_web_footer_page), {:action => 'web_footer_made'}, class: "#{current_page?(web_footer_made_path)? 'selected' : nil }" %></li>
</ul>
</div>

View File

@ -5,14 +5,7 @@
<label for='web_title'><%= l(:label_web_title) %>:</label>
<%= text_field_tag 'web_title', params[:wbe_title],:value => @first_page.web_title, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
</p>
<div class="tabs">
<ul>
<li><%= link_to l(:label_project_first_page), {:action => 'first_page_made'} %></li>
<li><%= link_to l(:label_course_first_page), {:action => 'course_page_made'} %></li>
<li><%= link_to l(:label_contest_first_page), {:action => 'contest_page_made'} , :class => 'selected'%></li>
<li><%= link_to l(:label_web_footer_page),{:action => 'web_footer_made'} %></li>
</ul>
</div>
<%= render 'tab_partial' %>
<h4><%=l(:label_contest_first_page)%></h4>
<p style="margin-left:60px;padding-right: 20px;">
@ -38,26 +31,7 @@
<label for='contest_description' style="vertical-align: top">&nbsp;&nbsp;&nbsp;<%= l(:label_site_description)%>:</label>
<%= text_area_tag 'contest_description',@contest_page.description,:rows => 8, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
</p>
<p style="margin-left:60px;padding-right: 20px;">
<label>&nbsp;&nbsp;&nbsp;<%= link_to l(:label_notification), '#',
:onclick => '$("#notification").slideToggle(400); ' %></label>
</p>
<div style="margin-left:60px;padding-right: 20px;" id="notification">
<label for='contest_notification_title'>&nbsp;&nbsp;&nbsp;<%= l(:label_contest_notification_title) %>:</label>
<p style="margin-left:70px;padding-right: 20px;">
<%= text_field_tag 'contest_notification_title', params[:label_contest_notification_title], :value => @notification.title,:size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
</p>
<label for='contest_notification' style="vertical-align: top">&nbsp;&nbsp;&nbsp;<%= l(:label_contest_notification_content)%>:</label>
<%= text_area 'contest_notification', 'content', :value => @notification.content,:cols => 80, :rows => 15, :class => 'wiki-edit' %>
<%= wikitoolbar_for 'contest_notification_content' %>
<!-- <script src="/javascripts/ckeditor/ckeditor.js?1404953555" type="text/javascript"></script>
<p><#%= text_area 'contest_notification', 'content', :value => @notification.content,:required => true, :size => 80,:class => 'wiki-edit', id: 'editor01' %></p>
<script type="text/javascript">var ckeditor=CKEDITOR.replace('editor01');</script> -->
</div>
<%= submit_tag l(:button_save), :class => "small", :name => nil %>
<% end %>
<div>

View File

@ -5,14 +5,7 @@
<label for='web_title'><%= l(:label_web_title) %>:</label>
<%= text_field_tag 'web_title', params[:wbe_title],:value => @first_page.web_title, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
</p>
<div class="tabs">
<ul>
<li><%= link_to l(:label_project_first_page), {:action => 'first_page_made'} %></li>
<li><%= link_to l(:label_course_first_page), {:action => 'course_page_made'}, :class => 'selected' %></li>
<li><%= link_to l(:label_contest_first_page), {:action => 'contest_page_made'} %></li>
<li><%= link_to l(:label_web_footer_page),{:action => 'web_footer_made'} %></li>
</ul>
</div>
<%= render 'tab_partial' %>
<h4><%=l(:label_course_first_page)%></h4>
<p style="margin-left:60px;padding-right: 20px;">
<label for='attachments_fields'>&nbsp;&nbsp;&nbsp;<%= l(:label_site_image) %>:</label>

View File

@ -5,14 +5,7 @@
<label for='web_title'><%= l(:label_web_title) %>:</label>
<%= text_field_tag 'web_title', params[:wbe_title],:value => @first_page.web_title, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
</p>
<div class="tabs">
<ul>
<li><%= link_to l(:label_project_first_page), {:action => 'first_page_made'}, :class => 'selected' %></li>
<li><%= link_to l(:label_course_first_page), {:action => 'course_page_made'} %></li>
<li><%= link_to l(:label_contest_first_page), {:action => 'contest_page_made'} %></li>
<li><%= link_to l(:label_web_footer_page),{:action => 'web_footer_made'} %></li>
</ul>
</div>
<%= render 'tab_partial' %>
<h4><%=l(:label_project_first_page)%></h4>
<p style="margin-left:60px;padding-right: 20px;">
<label for='attachments_fields'>&nbsp;&nbsp;&nbsp;<%= l(:label_site_image) %>:</label>

View File

@ -5,14 +5,7 @@
<label for='web_title'><%= l(:label_web_title) %>:</label>
<%= text_field_tag 'web_title', params[:wbe_title],:value => @first_page.web_title, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
</p>
<div class="tabs">
<ul>
<li><%= link_to l(:label_project_first_page), {:action => 'first_page_made'} %></li>
<li><%= link_to l(:label_course_first_page), {:action => 'course_page_made'} %></li>
<li><%= link_to l(:label_contest_first_page), {:action => 'contest_page_made'}%></li>
<li><%= link_to l(:label_web_footer_page),{:action => 'web_footer_made'} , :class => 'selected' %></li>
</ul>
</div>
<%= render 'tab_partial' %>
<div style="float:right"><%= link_to l(:label_cooperation_compnay), web_footer_companies_path %></div>
<h4><%=l(:label_web_footer_page)%></h4>

View File

@ -33,7 +33,6 @@
<% end %>
<% end %>
<% if options[:author] %>
<!-- modified by zjc author添加超链接 -->
<span class="author" title="attachment.author">
<%= link_to h(truncate(attachment.author.name, length: 10, omission: '...')),user_path(attachment.author) %>,
<%= format_time(attachment.created_on) %>

View File

@ -21,15 +21,18 @@
</script>
<%= error_messages_for 'bid' %>
<p><%= l(:label_homeworks_form_new_description) %></p>
<p>
<%= f.text_field :name, :required => true, :size => 60, :style => "width:490px;", :maxlength => Bid::NAME_LENGTH_LIMIT, :onblur => "regexName();" %>
</p>
<p><span id="bid_name_span"></span></p>
<p>
<span id="bid_name_span"></span>
</p>
<p><%= f.text_area :description, :rows => 8, :class => 'wiki-edit', :style => "font-size:small;width:490px;", :maxlength => Bid::DESCRIPTION_LENGTH_LIMIT %></p>
<p><%= f.text_field(:deadline, :required => true, :size => 60, :style => "width:150px;", :readonly => true, :onchange => "regexDeadLine();") %>
<p>
<%= f.text_area :description, :rows => 8, :class => 'wiki-edit', :style => "font-size:small;width:490px;", :maxlength => Bid::DESCRIPTION_LENGTH_LIMIT %>
</p>
<p>
<%= f.text_field(:deadline, :required => true, :size => 60, :style => "width:150px;", :readonly => true, :onchange => "regexDeadLine();") %>
<%= calendar_for('bid_deadline')%>
<span id="bid_deadline_span">
</span>
@ -44,6 +47,10 @@
<%= hidden_field_tag 'course_id', @course.id %>
</p>
<fieldset>
<legend><%= l(:label_attachment_plural) %></legend>
<p><%= render :partial => 'attachments/form', :locals => {:container => @bid} %></p>
<legend>
<%= l(:label_attachment_plural) %>
</legend>
<p>
<%= render :partial => 'attachments/form', :locals => {:container => @bid} %>
</p>
</fieldset>

View File

@ -31,8 +31,8 @@ a:hover{ }
没有访问权限!建议您</p>
<div class="error_link">
<!---<a href="http://forge.trustie.net/" target="_blank">返回首页</a>---->
<a href="javascript:history.back()" target="_blank">后退一步</a>
<a href="http://user.trustie.net/users/5/user_newfeedback" target="_blank">给我留言</a>
<a href="javascript:history.back()">后退一步</a>
<a href="http://user.trustie.net/users/5/user_newfeedback">给我留言</a>
</div>
</div>

View File

@ -31,8 +31,8 @@ a:hover{ }
页面不见了!建议您</p>
<div class="error_link">
<!---<a href="http://forge.trustie.net/" target="_blank">返回首页</a>---->
<a href="javascript:history.back()" target="_blank">后退一步</a>
<a href="http://user.trustie.net/users/5/user_newfeedback" target="_blank">给我留言</a>
<a href="javascript:history.back()">后退一步</a>
<a href="http://user.trustie.net/users/5/user_newfeedback">给我留言</a>
</div>
</div>

View File

@ -1,28 +0,0 @@
<div class="top-content">
<table width="940px">
<tr>
<td class="info_font" style="width: 220px; color: #15bccf" ><%= l(:label_contest_innovate ) %></td>
<td class="location-list"><strong><%= l(:label_user_location) %> :</strong></td>
<td rowspan="2">
</td>
<td rowspan="2" >
</td>
</tr>
<tr>
<td style="padding-left: 8px">
<a href="http://contest.trustie.net/">contest.trustie.net</a>
</td>
<td >
<%=link_to l(:field_homepage), home_path %> >
<%=link_to l(:label_contest_innovate), welcome_contest_path %> > l(:label_details)</td>
</tr>
</table>
</div>
<!-- end -->
<div class="notification-content">
<p class="title"><%= @notification.title %></p>
<hr />
<p class="content"><%= @notification.content.html_safe %></p>
<hr />
</div>

View File

@ -1,26 +1,80 @@
<%= error_messages_for @contestnotifications %>
<script type="text/javascript">
function regexTitle()
{
var title = $.trim($("#contestnotification_title").val());
if(title.length ==0)
{
$("#title_span").text("<%= l(:label_no_contest_news_title) %>");
$("#title_span").css('color','#ff0000');
$("#title_span").focus();
return false;
}
else if(title.length <= 254)
{
$("#title_span").text("<%= l(:label_field_correct) %>");
$("#title_span").css('color','#008000');
return true;
}
else
{
$("#title_span").text("<%= l(:label_contest_news_title_condition) %>");
$("#title_span").css('color','#ff0000');
$("#title_span").focus();
return false;
}
}
//验证描述不能为空不能多余5000个字符
function regexDescription()
{
var description = $.trim($("#contestnotification_description").val());
if(description.length ==0)
{
$("#description_span").text("<%= l(:label_no_contest_news_description) %>");
$("#description_span").css('color','#ff0000');
$("#description_span").focus();
return false;
}
else if(description.length <= 5000)
{
$("#description_span").text("<%= l(:label_field_correct) %>");
$("#description_span").css('color','#008000');
return true;
}
else
{
$("#description_span").text("<%= l(:label_contest_news_condition) %>");
$("#description_span").css('color','#ff0000');
$("#description_span").focus();
return false;
}
}
</script>
<div class="add_frame_header" >
<%= l(:bale_news_notice) %>
</div>
<div class="box tabular">
<p>
<%= f.text_field :title,
:required => true,
:size => 60,
:maxlength => 60,
:style => "width:488px;"
%>
</p>
<p>
<%= f.text_area :description,
:required => true,
:cols => 60,
:rows => 11,
:class => 'wiki-edit',
:style => "width:490px;"
%>
</p>
<p>
<%= f.text_field :title,
:required => true,
:size => 60,
:maxlength => 60,
:style => "width:488px;",
:onblur => "regexTitle();"
%>
</p>
<span id="title_span" style="padding-left: 100px;"></span>
<p>
<%= f.text_area :description,
:required => true,
:cols => 60,
:rows => 11,
:class => 'wiki-edit',
:style => "width:490px;",
:onblur => "regexDescription();"
%>
</p>
<span id="description_span" style="padding-left: 100px;"></span>
</div>
<%= wikitoolbar_for 'news_description' %>

View File

@ -1,3 +1,13 @@
<script type="text/javascript">
function submitContestNews()
{
if(regexTitle() && regexDescription())
{
$("#contestnotifications-form").submit();
}
}
</script>
<span style="font-size: 16px; border-bottom:1px solid #f0f0f0; margin-right: 15px;">
<%= l(:label_notification) %>
</span>
@ -12,20 +22,50 @@
<%= labelled_form_for @contestnotification, :url => contest_contestnotifications_path(@contest),
:html => {:id => 'contestnotifications-form', :multipart => true} do |f| %>
<%= render :partial => 'contestnotifications/form', :locals => {:f => f} %>
<%= submit_tag l(:button_create), :class => 'whiteButton m3p10 h30', :name => nil %>
<%#= preview_link preview_contestnotifications_path(:contest_id => @contest), 'contestnotifications-form', target='preview', {:class => 'whiteButton m3p10'} %>
<input type="button" onclick="submitContestNews();" class="enterprise" value="<%= l(:button_create)%>"/>
|
<%= link_to l(:button_cancel), "#", :onclick => '$("#add-contestnotifications").hide(); return false;', :class => 'whiteButton m3p10' %>
<input type="button" onclick="$('#add-contestnotifications').hide(); return false;" class="enterprise" value="<%= l(:button_cancel)%>"/>
<% end if @contest %>
<div id="preview" class="wiki"></div>
</div>
<% end %>
<div>
<% if @contestnotificationss.empty? %>
<p class="nodata">
<%= l(:label_no_data) %>
</p>
<% else %>
<div style="margin-left: 20px;">
<span class="portrait">
<%= image_tag(url_to_avatar(@contest.author), :class => "avatar")%>
</span>
<span class="body">
<h3>
<%= link_to(@contest.author.lastname+@contest.author.firstname,
user_path(@contest.author))
%>
<%= @contest.name %></h3>
<p>
<strong>
<%= l(:label_bids_reward_method) %>
<span class="bonus">
<%= @contest.budget%>
</span>
</strong>
</p>
<div class="bid_description" style="width: 100%;word-break:break-all;word-wrap: break-word;">
<%= @contest.description %>
</div>
<span id="praise_tread" style="float: right">
<%= render :partial => "/praise_tread/praise_tread",
:locals => {:obj => @contest,
:show_flag => true,
:user_id =>User.current.id,
:horizontal => false}
%>
</span>
</span>
</div>
<div style="clear: both;"></div>
<br><br>
<% @contestnotificationss.each do |contestnotifications| %>
<table class="content-text-list">
<tr>
@ -57,7 +97,7 @@
</tr>
</table>
<% end %>
<% end %>
</div>
<!--end-->
<div style="padding-right: 10px">

View File

@ -1,11 +1,17 @@
<script type="text/javascript">
function submitContestNews()
{
if(regexTitle() && regexDescription())
{
$("#contestnotifications-form").submit();
}
}
</script>
<%= labelled_form_for @contestnotification,
:url => contest_contestnotifications_path(@contest),
:html => { :id => 'contestnotifications-form', :multipart => true } do |f| %>
<%= render :partial => 'contestnotifications/form', :locals => { :f => f } %>
<%= submit_tag l(:button_create), :class => "whiteButton m3p10 h30" %>
<%= submit_tag l(:button_cancel), :class => "whiteButton m3p10 h30",:onclick => "cancel();" %>
<input type="button" onclick="submitContestNews();" class="enterprise" value="<%= l(:button_create)%>"/>
<%= link_to l(:button_cancel), contest_contestnotifications_path(@contest.id) %>
<% end %>
<div id="preview" class="wiki"></div>

View File

@ -1,37 +1,5 @@
<% reply_allow = JournalsForMessage.create_by_user? User.current %>
<div style="margin-left: 20px;">
<span class="portrait">
<%= image_tag(url_to_avatar(@contest.author), :class => "avatar")%>
</span>
<span class="body">
<h3>
<%= link_to(@contest.author.lastname+@contest.author.firstname,
user_path(@contest.author))
%>
<%= @contest.name %></h3>
<p>
<strong>
<%= l(:label_bids_reward_method) %>
<span class="bonus">
<%= @contest.budget%>
</span>
</strong>
</p>
<div class="bid_description" style="width: 100%;word-break:break-all;word-wrap: break-word;">
<%= @contest.description %>
</div>
<span id="praise_tread" style="float: right">
<%= render :partial => "/praise_tread/praise_tread",
:locals => {:obj => @contest,
:show_flag => true,
:user_id =>User.current.id,
:horizontal => false}
%>
</span>
</span>
</div>
<div style="clear: both;"></div>
<div id="history">
<%= render :partial => 'history',

View File

@ -11,7 +11,9 @@
<p >
<%= content_tag('span',"#{l(:label_bid_show_course_name)}:", :class => "course-font")%>
<% unless @course.is_public == 1 %>
<span class='private_project'><%= l(:label_private) %></span>
<span class='private_project'>
<%= l(:label_private) %>
</span>
<% end %>
<%= content_tag('span', link_to("#{@course.name}", course_path(@course), :class => "info"))%>
</p>
@ -19,9 +21,8 @@
<%= content_tag('span', "#{l(:label_institution_name)}:", :class => "course-font")%>
<% @admin = @course.course_infos%>
<%if @admin&&@admin.first&&@admin.first.user&&@admin.first.user.user_extensions%>
<!-- <%#= @admin.first.user.user_extensions.occupation %> -->
<% unless @course.teacher.user_extensions.school.nil? %>
<%= link_to @course.teacher.user_extensions.school.try(:name), school_course_list_path(@course.teacher.user_extensions.school) %>
<%= link_to(@course.school.try(:name), school_course_list_path(@course.school)) if @course.school %>
<% end %>
<% end %>
</p>
@ -46,13 +47,11 @@
</p>
<p class="stats">
<%= content_tag('span', "#{garble @course.members.count}", :class => "info") %>
<%#= content_tag('span', l(:label_x_member, :count => @course.members.count)) %>
<%= content_tag('span', l(:label_x_member, :count => memberCount(@course))) %>
</p>
<!--gcm-->
<p class="stats">
<%= content_tag('span', link_to("#{@course_activity_count[@course.id]}", course_path(@course)), :class => "info") %>
<%= content_tag('span', l(:label_x_activity, :count => @course_activity_count[@course.id])) %>
</p>
@ -62,7 +61,7 @@
<span class="info"></span>
<% if(course_endTime_timeout? @course) %>
<span class="font_lighter">
课程学期已结束
<%= l(:lable_course_end) %>
</span>
<% else %>
<%= join_in_course_for_list(@course, User.current,['regular'])%>
@ -80,10 +79,6 @@
<div class="add-info" style="margin-left: 30px; margin-top: -20px">
<%= content_tag "span", "#{l(:label_course_brief_introduction)}:", :class => "course-font" %>
<%# desc = course.short_description.nil? ? "" : course.short_description%>
<!--<#div class="brief_introduction" title="<%#= desc.html_safe%>">
<%#= desc.html_safe%>
</div>-->
<%= content_tag "div", course.short_description, :class => "brief_introduction", :title => course.short_description %>
</div>

View File

@ -2,7 +2,7 @@
function get_options(value) {
$.ajax({
type: "POST",
url: '/school/get_options/' + encodeURIComponent(value),
url: 'http://<%= Setting.host_name%>/school/get_options/' + encodeURIComponent(value),
data: 'text',
success: function (data) {
$("#occupation").html(data);

View File

@ -21,30 +21,40 @@
</script>
<%= error_messages_for 'bid' %>
<p><%= l(:label_homeworks_form_new_description) %></p>
<p>
<%= f.text_field :name, :required => true, :size => 60, :style => "width:490px;", :maxlength => Bid::NAME_LENGTH_LIMIT, :onblur => "regexName();" %>
<%= f.text_field :name, :required => true, :size => 60, :style => "width:490px;",
:maxlength => Bid::NAME_LENGTH_LIMIT,
:onblur => "regexName();" %>
</p>
<p><span id="bid_name_span"></span></p>
<p>
<span id="bid_name_span"></span>
</p>
<p><%= f.text_area :description, :rows => 8, :class => 'wiki-edit', :style => "font-size:small;width:490px;", :maxlength => Bid::DESCRIPTION_LENGTH_LIMIT %></p>
<!-- <p><%#= select_tag 'bid_reward_type', "<option value = '0'>#{l(:label_choose_reward)}</option><option value = '1'>#{l(:label_money)}</option><option value = '3'>#{l(:label_bids_credit)}</option><option value = '2'>#{l(:label_reward_1)}</option>".html_safe,
:onChange => "show('bid_reward_type', 'bid_budget', '"+l(:label_bids_reward_what)+"','"+l(:label_bids_new_money)+"','"+l(:label_bids_new_credit)+"','"+l(:label_bids_new_content)+"')" %>
<%#= f.text_field :budget, :required => true, :size => 60, :style => "width:350px;", :placeholder => l(:label_bids_reward_what) %>
</p> -->
<p>
<%= f.text_area :description, :rows => 8, :class => 'wiki-edit', :style => "font-size:small;width:490px;",
:maxlength => Bid::DESCRIPTION_LENGTH_LIMIT %>
</p>
<% time = (Time.now + 3600 * 24).strftime('%Y-%m-%d') %>
<p><%= f.text_field(:deadline, :required => true, :size => 60, :style => "width:150px;",:value => "#{time}", :onchange => "regexDeadLine();", :readonly => true) %>
<%= calendar_for('bid_deadline')%>
<span id="bid_deadline_span">
</span>
</p>
<p><%= f.select :is_evaluation, is_evaluation_option %>
<p>
<%= f.select :is_evaluation, is_evaluation_option %>
</p>
<p><%= f.select :proportion, proportion_option %>
<p>
<%= f.select :proportion, proportion_option %>
</p>
<p><%= hidden_field_tag 'course_id', @course.id %>
<p>
<%= hidden_field_tag 'course_id', @course.id %>
</p>
<fieldset><legend><%= l(:label_attachment_plural) %></legend>
<p><%= render :partial => 'attachments/form', :locals => {:container => @homework} %></p>
<fieldset>
<legend>
<%= l(:label_attachment_plural) %>
</legend>
<p>
<%= render :partial => 'attachments/form', :locals => {:container => @homework} %>
</p>
</fieldset>

View File

@ -1,60 +1,75 @@
<!-- added by fq -->
<style>
input[type="submit"].bid_btn {
vertical-align: middle;
width: 60px;/*modified by ming*/
height: 25px;
line-height: 19px;
font-size: 14px;
color: rgb(0, 0, 0);
background: buttonface;/*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"].bid_btn {
width: 60px;/*modified by ming*/
height: 25px;
line-height: 19px;
font-size: 14px;
color: rgb(0, 0, 0);
background: buttonface;/*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>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>快速进入课程通道</title>
<style>
body{ font-size:12px; font-family:"微软雅黑","宋体"; line-height:1.9; background:#fff; font-style:normal;}
div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span{ margin:0; padding:0;}
div,img,tr,td{ border:0;}
table,tr,td{border:0; cellspacing:0; cellpadding:0;}
ul,li{ list-style-type:none}
.cl{ clear:both; overflow:hidden; }
a{ text-decoration:none; }
a:hover{ }
<h3 class="title">加入公开课程或私有课程</h3>
<%= form_tag({:controller => 'courses',
:action => 'join'},
:remote => true,
:method => :post,
:id => 'new-watcher-form') do %>
<div>
<span>课程ID</span>
<%= text_field_tag 'object_id', nil, :style=>'width:80%'%>
<span style="padding-left: 55px;color: red;">(课程ID是课程的网址中出现的序号)</span>
#popbox{width:488px;height:308px;}
.alert .C{width:476px;height:296px;position:absolute;left:5px;top:5px; }
.C_top{ margin-top:20px; width:368px; height:100px; background:#e9e9e9; padding:0px 60px; }
.C_top h2{ color:#1c1d1d; font-size:24px; font-style:normal; font-weight:normal;}
.C_top p{ color:#a9aaaa; line-height:22px;}
.C_form{ margin:20px 0 0 60px;}
.C_form ul li{ font-size:14px; color:#3f3a39; line-height:30px; }
.C_form ul li input{ margin-left:30px; border:0px; border:1px solid #e1e1e1; color:#898989; padding-left:5px; -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; }
.C_form ul li.mB5{ color:#898989; font-size:12px; padding-left:90px;}
.width190{ width:190px; height:26px; border-color:#e1e1e1;}
.C_form a{ font-size:12px; color:#15bccf; float:left; display:block; height:40px; width:200px; margin-top:25px;}
.C_form a:hover{ text-decoration:underline;}
.C_form a.btn{ display:block; width:100px; height:36px; padding-top:4px; text-align: center; background:#15bccf; color:#fff; font-size:14px; margin:20px 20px 0 95px;}
.C_form a.btn:hover{ background:#ff821d;}
</style>
<script type="text/javascript">
function submit_form(obj)
{
hideModal(obj);
$("#new-watcher-form").submit();
}
</script>
</head>
<body>
<div id="popbox">
<div class="C" >
<div class="C_top">
<h2>快速进入课程通道</h2>
<p>只要持有课程ID和密码就可快速加入所在课程。课程页面搜索不到的私有课程只能从此通道进入哦</p>
</div>
<div>
<span>密码&nbsp;&nbsp;&nbsp;</span>
<%= text_field_tag 'course_password', nil, :style=>'width:80%'%>
<div class="C_form">
<%= form_tag({:controller => 'courses',
:action => 'join'},
:remote => true,
:method => :post,
:id => 'new-watcher-form') do %>
<ul>
<li>
<span class="tips">课&nbsp;程&nbsp;ID</span>
<input class=" width190" name="object_id" id="object_id" type="text" value="" >
</li>
<li class="mB5">课程ID是所在课程网址中显示的序号</li>
<li>
<span class="tips">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码:</span>
<input class=" width190" type="password" name="course_password" id="course_password" value="" >
</li>
<li>
<a href="#" class="btn" onclick="submit_form(this);"><%= l(:label_new_join) %></a>
<a href="#" onclick="hideModal(this);"><%= l(:button_cancel)%></a>
</li>
</ul>
<% end%>
</div>
</div><!---- C end---->
</div>
</body>
</html>
<p class="buttons" style="padding-top: 10px; padding-bottom: 1px; margin-bottom: 1px">
<%= submit_tag l(:label_new_join), :name => nil, :class => "bid_btn", :onclick => "hideModal(this);" %>
<%= submit_tag l(:button_cancel), :name => nil, :class => "bid_btn", :onclick => "hideModal(this);", :type => 'button' %>
</p>
<% end %>

View File

@ -11,8 +11,8 @@
<% elsif @state == 3 %>
alert("您已经加入了课程");
<% elsif @state == 4 %>
alert("您已经的课程不存在");
<% elsif @state == 4 %>
alert("您加入的课程不存在");
<% elsif @state == 5 %>
alert("您还未登录");
<% else %>
alert("未知错误,请稍后再试");

View File

@ -39,8 +39,6 @@
<div id="courses-index">
<%if @courses%>
<%= render_course_hierarchy(@courses)%>
<%#= render :partial => 'course', :locals => {:course => @courses.first}%>
<%#= "<a herf = 'aaa'>hello</a>".html_safe %>
<%end%>
</div>
@ -56,10 +54,6 @@
</p>
<% end %>
<%# other_formats_links do |f| %>
<%#= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
<%# end %>
<% content_for :sidebar do %>
<%= form_tag({}, :method => :get) do %>
<h3><%= l(:label_project_plural) %></h3>

View File

@ -1,3 +1,4 @@
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'join_private_course') %>');
showModal('ajax-modal', '400px');
$('#ajax-modal').addClass('new-watcher');
showModal('ajax-modal', '510px');
$('#ajax-modal').addClass('new-watcher');
$('#ajax-modal').css('height','330px');

View File

@ -51,7 +51,7 @@
:class => 'icon icon-edit' %>
<%= delete_link membership_path(member),
:remote => true,
:data => (!User.current.admin? && member.include?(User.current) ? {:confirm => l(:text_own_membership_delete_confirmation)} : {}) if member.deletable? %>
:data => (!User.current.admin? && member.include?(User.current) ? {:confirm => l(:text_own_membership_delete_confirmation)} : {confirm: l(:label_delete_confirm)}) if member.deletable? %>
</td>
<% end %>
<!--end-->
@ -82,7 +82,11 @@
<p style="padding-top: 5px"><%= l(:label_role_plural) %>:
<% roles.each do |role| %>
<label><%= radio_button_tag 'membership[role_ids][]', role.id %> <%= h role %></label>
<% if role.id == 10 %> <!-- 默认学生角色 -->
<label><%= radio_button_tag 'membership[role_ids][]', role.id, true %> <%= h role %></label>
<% else %>
<label><%= radio_button_tag 'membership[role_ids][]', role.id %> <%= h role %></label>
<% end %>
<% end %></p>
<p><%= submit_tag l(:button_add), :id => 'member-add-submit' %></p>

View File

@ -9,17 +9,20 @@
<div>
<table class="underline-evreycontent" style="font-size: 14px;">
<tr>
<td valign="top" width="50"><%= image_tag(url_to_avatar(e.event_author), :class => "avatar") %></td>
<td valign="top" width="50">
<%= image_tag(url_to_avatar(e.event_author), :class => "avatar") %>
</td>
<td>
<table width="580px" border="0" style="width: 100%;table-layout: fixed">
<tr>
<td colspan="2" valign="top" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
<strong> <%= h(e.event_title) if @course.nil? || (e.course != nil && @course.id != e.course.id) %></strong>
<strong>
<%= h(e.event_title) if @course.nil? || (e.course != nil && @course.id != e.course.id) %>
</strong>
<span class="font_lighter">
<% if @canShowRealName %>
<%= link_to_user(e.event_author) if e.respond_to?(:event_author) %>
(<%= link_to_user(e.event_author, @canShowRealName) if e.respond_to?(:event_author) %>
)
(<%= link_to_user(e.event_author, @canShowRealName) if e.respond_to?(:event_author) %>)
<% else %>
<%= link_to_user(e.event_author) if e.respond_to?(:event_author) %>
<% end %>
@ -32,15 +35,26 @@
<td colspan="2" width="580px">
<p class="info-break">
<%= h(truncate(strip_tags(e.event_description).gsub(/&nbsp;/, ' '), length: 30, omission: '...')) %>
</p></td>
</p>
</td>
</tr>
<tr>
<td align="left"><span class="font_lighter"> <%= l :label_activity_time %>
&nbsp; <%= format_activity_day(day) %> <%= format_time(e.event_datetime, false) %></span>
<td align="left">
<span class="font_lighter">
<%= l :label_activity_time %>
&nbsp;
<%= format_activity_day(day) %>
<%= format_time(e.event_datetime, false) %>
</span>
</td>
<% if e.event_type == "issue" %>
<td align="right">
<span> <%= link_to l(:label_find_all_comments), issue_path(e.id) %> </span><span class="font_lighter"><%= l(:label_comments_count, :count => e.journals.count) %></span>
<span>
<%= link_to l(:label_find_all_comments), issue_path(e.id) %>
</span>
<span class="font_lighter">
<%= l(:label_comments_count, :count => e.journals.count) %>
</span>
</td>
<% end %>
</tr>
@ -51,30 +65,33 @@
</div>
<% end %>
</div>
<% end -%>
<% if (@events_pages.page == @events_pages.last_page) %>
<div class="font_description">
<table width="660">
<tr>
<td><%= image_tag(url_to_avatar(@user), :class => "avatar") %></td>
<td>
<%= image_tag(url_to_avatar(@user), :class => "avatar") %>
</td>
<td colspan="2">
<table width="580">
<tr>
<td>
<% if @canShowRealName %>
(<%= link_to_user(@user, @canShowRealName) %>
)
(<%= link_to_user(@user, @canShowRealName) %>)
<% else %>
<%= link_to_user(@user)%>
<% end %>
<%= l(:label_user_create_project) %> <%= link_to @course.name %>
<strong> !</strong></td>
<%= l(:label_user_create_project) %>
<%= link_to @course.name %>
<strong> !</strong>
</td>
</tr>
<tr>
<td class="font_lighter" style="float: right"><%= l :label_create_time %>
: <%= format_time(@course.created_at) %>
<td class="font_lighter" style="float: right">
<%= l :label_create_time %>:
<%= format_time(@course.created_at) %>
</table>
</td>
</tr>
@ -88,24 +105,27 @@
<div class="font_description">
<table width="660">
<tr>
<td><%= image_tag(url_to_avatar(@user), :class => "avatar") %></td>
<td>
<%= image_tag(url_to_avatar(@user), :class => "avatar") %>
</td>
<td colspan="2">
<table width="580">
<tr>
<td>
<% if @canShowRealName %>
(<%= link_to_user(@user, @canShowRealName) %>
)
(<%= link_to_user(@user, @canShowRealName) %>)
<% else %>
<%= link_to_user(@user)%>
<% end %>
<%= l(:label_user_create_project) %> <%= link_to @course.name %>
<strong> !</strong></td>
<%= l(:label_user_create_project) %>
<%= link_to @course.name %>
<strong> !</strong>
</td>
</tr>
<tr>
<td class="font_lighter" style="float: right"><%= l :label_create_time %>
: <%= format_time(@course.created_at) %>
<td class="font_lighter" style="float: right">
<%= l :label_create_time %>:
<%= format_time(@course.created_at) %>
</table>
</td>
</tr>

View File

@ -2,11 +2,11 @@
<% attachmenttypes = @course.attachmenttypes %>
<% sufixtypes = @course.contenttypes %>
<span class="borad-title"><%= t(:label_user_course) %>资源共享区</span>
<span class="borad-title">
<%= l(:label_coursefile_sharingarea) %>
</span>
<div class="content-title-top">
<%#= link_to(l(:label_attachment_new), 'javascript:void(0);', :onclick=>"$('#file_buttons').slideToggle();", :class => 'icon icon-add') if User.current.allowed_to?(:manage_files, @course) %>
<div class="clearfix"></div>
<div id="file_buttons" class="nhidden">
<%= link_to(l(:label_upload_files), 'javascript:void(0);', :class => 'icon m5p5 button_submit', :onclick => "$('#relation_file_div').slideUp();$('#upload_file_div').slideToggle('slow');") if User.current.allowed_to?(:manage_files, @course) %>
@ -55,7 +55,7 @@
<% if sufixtypes.any? %>
&nbsp;
<label for="attach_sufix_browse_label"><%= l(:attachment_sufix_browse) %></label>
<%= select_tag "attach_sufix_browse", content_tag(:option, l(:attachment_all), :value => '0') +options_for_select(sufixtypes),
<%= select_tag "attach_sufix_browse", content_tag(:option, l(:attachment_all), :value => '0') + options_for_select(sufixtypes),
:onchange => "course_attachment_contenttypes_searchex(this.value)" %>
<% end %>
</div>

View File

@ -1,14 +1,16 @@
<h3><%=l(:label_attachment_new)%></h3>
<h3>
<%=l(:label_attachment_new)%>
</h3>
<% attachmenttypes = course.attachmenttypes %>
<%= error_messages_for 'attachment' %>
<div id="network_issue" style="color: red; display: none;">上传出现错误,请您检查您的网络环境,并刷新页面重新上传。</div>
<%= form_tag(course_files_path(course), :multipart => true,:remote => true,:method => :post,:name=>"upload_form", :class => "tabular") do %>
<div class="box">
<p>
<% if attachmenttypes.any? %>
<%= l(:attachment_type) %></label>
<%= select_tag "attachment_type",
options_from_collection_for_select(attachmenttypes, "id",
"typeName", 2), {style: 'width:100px'} %>
options_from_collection_for_select(attachmenttypes, "id","typeName", 2), {style: 'width:100px'} %>
<% end %>
</p>

View File

@ -9,57 +9,55 @@
<col class="vzebra-even"/>
<col class="vzebra-odd"/>
<col class="vzebra-even"/>
<!-- <col class="vzebra-odd"/> -->
</colgroup>
<thead>
<tr>
<%= sort_header_tag('filename', :caption => l(:field_filename), :scope => "col", :id => "vzebra-adventure" ,:class => "tableth") %>
<%#= 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",:class => "tableth") %>
<%= sort_header_tag('attach_type', :caption => l(:attachment_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-attachmenttype",:class => "tableth") %>
<%= sort_header_tag('content_type', :caption => l(:attachment_sufix_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-contenttype",:class => "tableth") %>
<%= content_tag('th', l(:attachment_sufix_browse), id: 'vzebra-contenttype', class: 'tableth', style: 'color: black')%>
<%= sort_header_tag('field_file_dense', :caption => l(:field_file_dense), :default_order => 'desc', :scope => "col", :id => "vzebra-field_file_dense",:class => "tableth") %>
<%= sort_header_tag('downloads', :caption => l(:field_downloads), :default_order => 'desc', :scope => "col", :id => "vzebra-action",:class => "tableth") %>
<%= sort_header_tag('operation', :caption => "", :scope => "col", :id => "vzebra-children",:class => "tableth") %>
<!-- <%#= sort_header_tag('description', :caption => l(:field_description)) %> -->
</tr>
</thead>
<tbody>
<%# @containers.each do |container| %>
<%# next if container.attachments.empty? -%>
<%# if container.is_a?(Version) -%>
<!--<tr>
<th colspan="5" align="left" style="line-height: 30px; font-size: 14px; ">
<%#= link_to(h(container), {:controller => 'versions', :action => 'show', :id => container}, :class => "icon icon-package", :style => "color: #666666;") %>
</th>
</tr>-->
<%# end -%>
<% if @curse_attachments != nil %>
<% @curse_attachments.each do |file| %>
<%if file.is_public == 0 && !User.current.member_of_course?(@course)%>
<%next%>
<%end%>
<tr class="file <%= cycle("odd", "odd") %>">
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" 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 style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="filesize"><%= number_to_human_size(file.filesize) %></td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" 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 style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="filesize">
<%= number_to_human_size(file.filesize) %>
</td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="attach_type">
<span id="attach_type_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.attachmentstype.typeName unless file.attachmentstype.nil? %></span>
<span id="attach_type_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'attachments/course_type_edit', :locals => {:attachmenttypes => attachmenttypes, :attachment => file, :contentype => selContentType} %>
</span>
<span id="attach_type_id_label<%= file.id %>" style="white-space:nowrap;">
<%= file.attachmentstype.typeName unless file.attachmentstype.nil? %>
</span>
<span id="attach_type_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'attachments/course_type_edit', :locals => {:attachmenttypes => attachmenttypes, :attachment => file, :contentype => selContentType} %>
</span>
</td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="content_type">
<%= file.show_suffix_type %>
</td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="content_type"><%= file.show_suffix_type %></td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="field_file_dense">
<span id="field_file_dense_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.file_dense_str %></span>
<span id="field_file_dense_id_label<%= file.id %>" style="white-space:nowrap;">
<%= file.file_dense_str %>
</span>
&nbsp;
<span id="field_file_dense_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'course_file_dense_edit', :locals => {:file_dense_list => file.file_dense_list,
:attachment => file} %>
</span>
<span id="field_file_dense_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'course_file_dense_edit', :locals => {:file_dense_list => file.file_dense_list,
:attachment => file} %>
</span>
</td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="downloads">
<%= file.downloads %>
</td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="downloads"><%= file.downloads %></td>
<!-- <td class="digest" width="300px"><%= file.description %></td> -->
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" align="center">
<%= link_to(image_tag('delete.png'), attachment_path(file),
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete) if delete_allowed %>
@ -77,13 +75,6 @@
</tr>
<% end -%>
<% end %>
<%# reset_cycle %>
<%# end -%>
<!-- %= h downloadAll(@containers) % -->
<!-- %= link_to "download all file", (downloadAll(@containers)) % -->
</tbody>
</table>
<!--分页-->

View File

@ -3,25 +3,22 @@
<% attachmenttypes = @course.attachmenttypes %>
<% delete_allowed = User.current.allowed_to?(:manage_files, @course) %>
<% edit_allowed = User.current.allowed_to?(:manage_files, @course) %>
<table class="list files" id="ver-zebra">
<table class="list files" id="ver-zebra" style="table-layout: fixed;">
<colgroup>
<col class="vzebra-odd"/>
<col class="vzebra-even"/>
<col class="vzebra-odd"/>
<col class="vzebra-even"/>
<!-- <col class="vzebra-odd"/> -->
</colgroup>
<thead>
<tr>
<%= 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('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('content_type', :caption => l(:attachment_sufix_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-contenttype") %>
<%= sort_header_tag('field_file_dense', :caption => l(:field_file_dense), :default_order => 'desc', :scope => "col", :id => "vzebra-field_file_dense") %>
<%= 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('description', :caption => l(:field_description)) %> -->
<%= sort_header_tag('filename', :caption => l(:field_filename), :scope => "col", :id => "vzebra-adventure" ,:class => "tableth") %>
<%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc', :scope => "col", :id => "vzebra-children",:class => "tableth") %>
<%= sort_header_tag('attach_type', :caption => l(:attachment_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-attachmenttype",:class => "tableth") %>
<%= content_tag('th', l(:attachment_sufix_browse), id: 'vzebra-contenttype', class: 'tableth', style: 'color: black')%>
<%= sort_header_tag('field_file_dense', :caption => l(:field_file_dense), :default_order => 'desc', :scope => "col", :id => "vzebra-field_file_dense",:class => "tableth") %>
<%= sort_header_tag('downloads', :caption => l(:field_downloads), :default_order => 'desc', :scope => "col", :id => "vzebra-action",:class => "tableth") %>
<%= sort_header_tag('operation', :caption => "", :scope => "col", :id => "vzebra-children",:class => "tableth") %>
</tr>
</thead>
<tbody>
@ -33,28 +30,36 @@
<% end %>
<% if isTypeOk(file, selAttachType, selContentType) %>
<tr class="file <%= cycle("odd", "odd") %>">
<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="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="filesize"><%= number_to_human_size(file.filesize) %></td>
<td class="attach_type">
<span id="attach_type_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.attachmentstype.nil? ? l(:label_unknow_type):file.attachmentstype.typeName %></span>
<span id="attach_type_id_label<%= file.id %>" style="white-space:nowrap;">
<%= file.attachmentstype.nil? ? l(:label_unknow_type):file.attachmentstype.typeName %>
</span>
&nbsp;
<span id="attach_type_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'attachments/course_type_edit', :locals => {:attachmenttypes => attachmenttypes,
:attachment => file, :contentype => selContentType} %>
</span>
<span id="attach_type_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'attachments/course_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="field_file_dense">
<span id="field_file_dense_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.file_dense_str %></span>
<span id="field_file_dense_id_label<%= file.id %>" style="white-space:nowrap;">
<%= file.file_dense_str %>
</span>
&nbsp;
<span id="field_file_dense_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'course_file_dense_edit', :locals => {:file_dense_list => file.file_dense_list,
:attachment => file} %>
</span>
<span id="field_file_dense_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'course_file_dense_edit', :locals => {:file_dense_list => file.file_dense_list,
:attachment => file} %>
</span>
</td>
<td class="downloads">
<%= file.downloads %>
</td>
<td class="downloads"><%= file.downloads %></td>
<!-- <td class="digest" width="300px"><%= file.description %></td> -->
<td align="center">
<%= link_to(image_tag('delete.png'), attachment_path(file),
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete) if delete_allowed %>
@ -75,9 +80,6 @@
<% end -%>
<% reset_cycle %>
<% end -%>
<!-- %= h downloadAll(@containers) % -->
<!-- %= link_to "download all file", (downloadAll(@containers)) % -->
</tbody>
</table>

View File

@ -15,52 +15,51 @@
<thead>
<tr>
<%= sort_header_tag('filename', :caption => l(:field_filename), :scope => "col", :id => "vzebra-adventure",:class => "tableth") %>
<%#= 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",:class => "tableth") %>
<%= sort_header_tag('attach_type', :caption => l(:attachment_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-attachmenttype",:class => "tableth") %>
<%= sort_header_tag('content_type', :caption => l(:attachment_sufix_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-contenttype",:class => "tableth") %>
<%= sort_header_tag('field_file_dense', :caption => l(:field_file_dense), :default_order => 'desc', :scope => "col", :id => "vzebra-field_file_dense",:class => "tableth") %>
<%= sort_header_tag('downloads', :caption => l(:field_downloads), :default_order => 'desc', :scope => "col", :id => "vzebra-action",:class => "tableth") %>
<%= sort_header_tag('operation', :caption => "", :scope => "col", :id => "vzebra-children",:class => "tableth") %>
<!-- <%#= sort_header_tag('description', :caption => l(:field_description)) %> -->
</tr>
</thead>
<tbody>
<%# @containers.each do |container| %>
<%# next if container.attachments.empty? -%>
<%# if container.is_a?(Version) -%>
<!--tr>
<th colspan="5" align="left" style="line-height: 30px; font-size: 14px; ">
<%#= link_to(h(container), {:controller => 'versions', :action => 'show', :id => container}, :class => "icon icon-package", :style => "color: #666666;") %>
</th>
</tr-->
<%# end -%>
<% if @curse_attachments != nil %>
<% @curse_attachments.each do |file| %>
<%if file.is_public == 0 && !User.current.member_of?(@project)%>
<%next%>
<%end%>
<tr class="file <%= cycle("odd", "odd") %>">
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" 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 style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="filesize"><%= number_to_human_size(file.filesize) %></td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" 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 style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="filesize">
<%= number_to_human_size(file.filesize) %>
</td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="attach_type">
<span id="attach_type_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.attachmentstype.typeName %></span>
<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 style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="content_type"><%= file.show_suffix_type %></td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="field_file_dense">
<span id="field_file_dense_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.file_dense_str %></span>
&nbsp;
<span id="field_file_dense_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'project_file_dense_edit', :locals => {:file_dense_list => file.file_dense_list,
:attachment => file} %>
</span>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="content_type">
<%= file.show_suffix_type %>
</td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="field_file_dense">
<span id="field_file_dense_id_label<%= file.id %>" style="white-space:nowrap;">
<%= file.file_dense_str %>
</span>
&nbsp;
<span id="field_file_dense_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'project_file_dense_edit', :locals => {:file_dense_list => file.file_dense_list,
:attachment => file} %>
</span>
</td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="downloads">
<%= file.downloads %>
</td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="downloads"><%= file.downloads %></td>
<!-- <td class="digest" width="300px"><%= file.description %></td> -->
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" align="center">
<%= link_to(image_tag('delete.png'), attachment_path(file),
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete) if delete_allowed %>
@ -73,15 +72,13 @@
<%= render :partial => 'tags/tag', :locals => {:obj => file, :object_flag => "6"} %>
<div class="tags_gradint"></div>
</div>
<div class="read-more hidden"><a href="javascript:void(0);" onclick="readmore(this);"> 更多 </a></div>
<div class="read-more hidden">
<a href="javascript:void(0);" onclick="readmore(this);"> 更多 </a>
</div>
</td>
</tr>
<% end -%>
<%# reset_cycle %>
<% end -%>
<!-- %= h downloadAll(@containers) % -->
<!-- %= link_to "download all file", (downloadAll(@containers)) % -->
</tbody>
</table>
</div>

View File

@ -3,7 +3,7 @@
<% attachmenttypes = @project.attachmenttypes %>
<% delete_allowed = User.current.allowed_to?(:manage_files, @project) %>
<% edit_allowed = User.current.allowed_to?(:manage_files, @project) %>
<table class="list files" id="ver-zebra">
<table class="list files" id="ver-zebra" style="table-layout: fixed;">
<colgroup>
<col class="vzebra-odd"/>
<col class="vzebra-even"/>
@ -13,15 +13,13 @@
</colgroup>
<thead>
<tr>
<%= 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('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('content_type', :caption => l(:attachment_sufix_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-contenttype") %>
<%= sort_header_tag('field_file_dense', :caption => l(:field_file_dense), :default_order => 'desc', :scope => "col", :id => "vzebra-field_file_dense") %>
<%= 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('description', :caption => l(:field_description)) %> -->
<%= sort_header_tag('filename', :caption => l(:field_filename), :scope => "col", :id => "vzebra-adventure" ,:class => "tableth") %>
<%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc', :scope => "col", :id => "vzebra-children",:class => "tableth") %>
<%= sort_header_tag('attach_type', :caption => l(:attachment_browse), :default_order => 'desc', :scope => "col", :id => "vzebra-attachmenttype",:class => "tableth") %>
<%= content_tag('th', l(:attachment_sufix_browse), id: 'vzebra-contenttype', class: 'tableth', style: 'color: black')%>
<%= sort_header_tag('field_file_dense', :caption => l(:field_file_dense), :default_order => 'desc', :scope => "col", :id => "vzebra-field_file_dense",:class => "tableth") %>
<%= sort_header_tag('downloads', :caption => l(:field_downloads), :default_order => 'desc', :scope => "col", :id => "vzebra-action",:class => "tableth") %>
<%= sort_header_tag('operation', :caption => "", :scope => "col", :id => "vzebra-children",:class => "tableth") %>
</tr>
</thead>
<tbody>
@ -33,28 +31,38 @@
<% end %>
<% if isTypeOk(file, selAttachType, selContentType) %>
<tr class="file <%= cycle("odd", "odd") %>">
<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="filesize"><%= number_to_human_size(file.filesize) %></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="filesize">
<%= number_to_human_size(file.filesize) %>
</td>
<td class="attach_type">
<span id="attach_type_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.attachmentstype.nil? ? l(:label_unknow_type):file.attachmentstype.typeName %></span>
<span id="attach_type_id_label<%= file.id %>" style="white-space:nowrap;">
<%= file.attachmentstype.nil? ? l(:label_unknow_type):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>
<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="field_file_dense">
<span id="field_file_dense_id_label<%= file.id %>" style="white-space:nowrap;"><%= file.file_dense_str %></span>
<span id="field_file_dense_id_label<%= file.id %>" style="white-space:nowrap;">
<%= file.file_dense_str %>
</span>
&nbsp;
<span id="field_file_dense_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'project_file_dense_edit', :locals => {:file_dense_list => file.file_dense_list,
:attachment => file} %>
</span>
<span id="field_file_dense_id_edit<%= file.id %>" style="white-space:nowrap;">
<%= render :partial => 'project_file_dense_edit', :locals => {:file_dense_list => file.file_dense_list,
:attachment => file} %>
</span>
</td>
<td class="downloads">
<%= file.downloads %>
</td>
<td class="downloads"><%= file.downloads %></td>
<!-- <td class="digest" width="300px"><%= file.description %></td> -->
<td align="center">
<%= link_to(image_tag('delete.png'), attachment_path(file),
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete) if delete_allowed %>
@ -67,7 +75,8 @@
<%= render :partial => 'tags/tag', :locals => {:obj => file, :object_flag => "6"} %>
<div class="tags_gradint"></div>
</div>
<div class="read-more hidden"><a href="javascript:void(0);" onclick="readmore(this);"> 更多 </a>
<div class="read-more hidden">
<a href="javascript:void(0);" onclick="readmore(this);"> 更多 </a>
</div>
</td>
</tr>
@ -75,9 +84,6 @@
<% end -%>
<% reset_cycle %>
<% end -%>
<!-- %= h downloadAll(@containers) % -->
<!-- %= link_to "download all file", (downloadAll(@containers)) % -->
</tbody>
</table>

View File

@ -1,13 +1,13 @@
<% if @attachtype==0 && @contenttype=='0' %>
<% if @project%>
$("#all_browse_div").html('<%= j(render partial: "show_all_attachment")%>');
<% elsif @course%>
$("#all_browse_div").html('<%= j(render partial: "course_show_all_attachment")%>');
<%end%>
<% if @project%>
$("#all_browse_div").html('<%= j(render partial: "show_all_attachment")%>');
<% elsif @course%>
$("#all_browse_div").html('<%= j(render partial: "course_show_all_attachment")%>');
<%end%>
<%else%>
<% if @project%>
$("#all_browse_div").html('<%= j(render partial: "sort_by_attachtypel")%>')
<% elsif @course%>
$("#all_browse_div").html('<%= j(render partial: "course_sort_by_attachtypel")%>')
<%end%>;
<% if @project%>
$("#all_browse_div").html('<%= j(render partial: "sort_by_attachtypel")%>')
<% elsif @course%>
$("#all_browse_div").html('<%= j(render partial: "course_sort_by_attachtypel")%>')
<%end%>;
<%end%>

View File

@ -120,16 +120,15 @@
function course_attachment_contenttypes_searchex(value) {
<% if @course%>
$.ajax({
$.ajax({
url: '<%=getattachtype_course_files_path(course_id: @course)%>',
type: "POST",
data: {
type: $('#attachment_browse').val(),
contentType: encodeURIComponent(value)
}
url: '<%=getattachtype_course_files_path(course_id: @course)%>',
type: "POST",
data: {
type: $('#attachment_browse').val(),
contentType: encodeURIComponent(value)
}
}).complete(eval_ajax);
}).complete(eval_ajax);
<%end%>
}
function course_attachtype_edit(value) {

View File

@ -18,9 +18,12 @@
<%= f.text_field :name, :required => true, :style => 'width: 100%;', :class => 'create-share' %>
</div>
<div>
<script src="/javascripts/ckeditor/ckeditor.js?1404953555" type="text/javascript"></script>
<%= f.text_area :description, :required => true, :id => 'editor01' %>
<script type="text/javascript">var ckeditor=CKEDITOR.replace('editor01',{height:300});</script>
<script src="http://<%= Setting.host_name%>/javascripts/ckeditor/ckeditor.js?1404953555" type="text/javascript"></script>
<p style="max-width:680px">
<%= f.text_area :description, :required => true, :id => 'editor01' %>
</p>
<script type="text/javascript">var ckeditor=CKEDITOR.replace('editor01');</script>
<p style="color: #ff0000">(<%= l(:label_forums_max_length) %>)</p>
</div>
<div class="actions" style=" padding-top: 10px; float:right">

View File

@ -7,14 +7,12 @@
<!--gcm-->
<p>
<%= @organize.description.html_safe unless @organize.nil?%>
<%= @organizer.description.html_safe unless @organizer.nil?%>
</p>
<div id="logo_link">
<% unless @companies.nil?%>
<% @companies.each do |company| %>
<% @companies && @companies.each do |company| %>
<span class="footer_logo_link"><%= link_to image_tag(url_to_avatar(company),:size=>"100x30",:alt=>company.name),company.url, :target => "_blank" %></span>
<% end %>
<% end %>
</div>
<!--gcm-->

View File

@ -36,7 +36,6 @@
<%= yield %>
<%= call_hook :view_layouts_base_content %>
<div style="clear:both;"></div>
<%= render_flash_messages %>
</div>
<%= render :partial => 'layouts/base_footer'%>
</div>

View File

@ -112,7 +112,7 @@
<tr>
<td><%= l(:lable_contest_user) %><%= link_to(@user.name, user_path(@user))%></td>
</tr>
<!-- end -->
<tr>
<td><%= l(:label_bids_reward_method) %><%= @bid.budget%></td>
</tr>

View File

@ -6,7 +6,9 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title><%= h html_title %></title>
<title>
<%= h html_title %>
</title>
<meta name="description" content="<%= Redmine::Info.app_name %>"/>
<meta name="keywords" content="issue,bug,tracker"/>
<%= csrf_meta_tag %>
@ -32,7 +34,11 @@
<table>
<tr>
<td class="info_font" style="width: 240px; color: #15bccf">高校课程实践社区</td>
<td style="color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
<td style="color: #15bccf">
<strong>
<%= l(:label_user_location) %> :
</strong>
</td>
<td rowspan="2" width="250px">
<div class="top-content-search">
<%= form_tag(:controller => 'courses', :action => 'search', :method => :get) do %>
@ -43,10 +49,16 @@
</td>
</tr>
<tr>
<td style="padding-left: 8px"><%= link_to request.host()+"/course", :controller => 'courses', :action => 'index' %></td>
<td><p class="top-content-list"><%= link_to "主页", home_path %>
> <%= link_to l(:label_course_all), :controller => 'courses', :action => 'index' %>
> <%= link_to @course.name, nil %></p></td>
<td style="padding-left: 8px">
<%= link_to request.host()+"/course", :controller => 'courses', :action => 'index' %>
</td>
<td>
<p class="top-content-list">
<%= link_to "主页", home_path %>
> <%= link_to l(:label_course_all), :controller => 'courses', :action => 'index' %>
> <%= link_to @course.name, nil %>
</p>
</td>
</tr>
</table>
</div>
@ -67,8 +79,9 @@
<td>
<table>
<tr>
<!-- modified by zjc 课程名称添加超链接 -->
<td class="info-course"><%= link_to @course.name,course_path(@course) %></td>
<td class="info-course">
<%= link_to @course.name,course_path(@course) %>
</td>
</tr>
<tr>
<td align="center">
@ -80,9 +93,6 @@
<% else %>
<%= join_in_course(@course, User.current) %>
<% end %>
<%# unless User.current.member_of_course?(@course) %>
<!-- <%#= image_tag "/images/fav.png" %> -->
<%# end %>
<% end %>
</div>
</td>
@ -105,30 +115,33 @@
<% if User.current.member_of_course?(@course) %>
<%= link_to "#{teacherCount(@course)}", course_member_path(@course, :role => 1), :course => '1' %>
<% else %>
<span><%= teacherCount(@course)%></span> <!--<%= link_to "#{teacherCount(@course)}", "javascript:void(0)", :course => '1' %>-->
<span>
<%= teacherCount(@course)%>
</span>
<% end%>
</td>
<td class="font_index">
<% if User.current.member_of_course?(@course) %>
<%= link_to "#{studentCount(@course)}", course_member_path(@course, :role => 2), :course => '1' %>
<% else %>
<span><%= studentCount(@course)%></span>
<span>
<%= studentCount(@course)%>
</span>
<% end %>
</td>
<td class="font_index"><%= link_to files_count, course_files_path(@course) %></td>
<td class="font_index">
<%= link_to files_count, course_files_path(@course) %>
</td>
<tr class="font_aram">
<td align="center" width="80px" id="teacherCount">
<!-- %= l(:label_x_base_courses_member, :count => @course.members.count) % -->
<%= l(:label_x_base_courses_teacher, :count => teacherCount(@course)) %>
</td>
<td align="center" width="80px" id="studentCount">
<%= l(:label_x_base_courses_student, :count => studentCount(@course)) %>
<!-- %= l(:label_x_course_data, :count => files_count) % -->
</td>
<td align="center" width="80px">
<%= l(:label_x_course_data, :count => files_count) %>
</td>
</tr>
</table>
<div class="user_underline"></div>
@ -140,46 +153,74 @@
<!-- addedby bai 教师姓名加超链接、加入开课时间、结课时间与课时 -->
<tr>
<td valign="top" style="padding-left: 8px; width:60px"><%= l(:label_main_teacher) %> :</td>
<td class="font_lighter_sidebar"><%= link_to(@course.teacher.lastname+@course.teacher.firstname, user_path(@course.teacher)) %></td>
<td valign="top" style="padding-left: 8px; width:60px">
<%= l(:label_main_teacher) %> :
</td>
<td class="font_lighter_sidebar">
<%= link_to(@course.teacher.lastname+@course.teacher.firstname, user_path(@course.teacher)) %>
</td>
</tr>
<tr class="hidden">
<td valign="top" style="padding-left: 8px;">
<%= l(:label_setup_time) %> :
</td>
<td class="font_lighter_sidebar">
<%= @course.setup_time %>
</td>
</tr>
<tr class="hidden">
<td valign="top" style="padding-left: 8px;"><%= l(:label_setup_time) %> :</td>
<td class="font_lighter_sidebar"><%= @course.setup_time %></td>
</tr>
<tr class="hidden">
<td valign="top" style="padding-left: 8px;"><%= l(:label_endup_time) %> :</td>
<td class="font_lighter_sidebar"><%= @course.endup_time %></td>
<td valign="top" style="padding-left: 8px;">
<%= l(:label_endup_time) %> :
</td>
<td class="font_lighter_sidebar">
<%= @course.endup_time %>
</td>
</tr>
<tr>
<td valign="top" style="padding-left: 8px;"><%= l(:label_class_period) %> :</td>
<td class="font_lighter_sidebar"><%= @course.class_period %>&nbsp;<%= l(:label_class_hour) %></td>
<td valign="top" style="padding-left: 8px;">
<%= l(:label_class_period) %> :
</td>
<td class="font_lighter_sidebar">
<%= @course.class_period %>&nbsp;
<%= l(:label_class_hour) %>
</td>
</tr>
<tr>
<td valign="top" style="padding-left: 8px;"><%= l(:label_main_term) %> :</td>
<td class="font_lighter_sidebar"><%= @course.time %> <%= @course.term %></td>
<td valign="top" style="padding-left: 8px;">
<%= l(:label_main_term) %> :
</td>
<td class="font_lighter_sidebar">
<%= @course.time %>
<%= @course.term %>
</td>
</tr>
<!-- end -->
<% unless @course.teacher.user_extensions.nil? || @course.teacher.user_extensions.school.nil? %>
<tr>
<td valign="top" style="padding-left: 8px;"><%= l(:label_teacher_work_unit) %> :</td>
<!-- modified by zjc 教师单位添加超链接 -->
<td class="font_lighter_sidebar"><a href="http://course.trustie.net/?school_id=<%= @course.teacher.user_extensions.school.id%>"><%= @course.teacher.user_extensions.school %></a></td>
<td valign="top" style="padding-left: 8px;">
<%= l(:label_teacher_work_unit) %> :
</td>
<td class="font_lighter_sidebar">
<a href="http://<%= Setting.host_course%>/?school_id=<%= @course.teacher.user_extensions.school.id%>">
<%= @course.teacher.user_extensions.school %>
</a>
</td>
</tr>
<% else %>
<tr>
<td valign="top" style="padding-left: 8px;"><%= l(:label_teacher_work_unit) %> :</td>
<td class="font_lighter_sidebar"><%= l(:field_course_un) %></td>
<td valign="top" style="padding-left: 8px;">
<%= l(:label_teacher_work_unit) %> :
</td>
<td class="font_lighter_sidebar">
<%= l(:field_course_un) %>
</td>
</tr>
<% end %>
</table>
</div>
<div class="user_underline"></div>
<!--description-->
@ -187,11 +228,9 @@
<div class="font_title_left">
<%= l(:label_new_course_description) %>
</div>
<div style="padding-bottom: 8px">
<% if @course.description && !@course.description.blank? %>
<div class="font_lighter_sidebar" style="word-break:break-all; word-wrap:break-word;">
<%= textilizable @course.description %>
</div>
<% else %>
@ -200,7 +239,10 @@
</div>
<% end %>
<div class="created_on_course">
<strong style="color: #068d9c"><%= l(:label_create_time) %></strong><%= format_time(@course.created_at) %>
<strong style="color: #068d9c">
<%= l(:label_create_time) %>
</strong>
<%= format_time(@course.created_at) %>
</div>
</div>
<div class="user_underline"></div>
@ -240,10 +282,6 @@
<li>
<%= link_to l(:label_course_feedback), course_feedback_path(@course), :class => link_class(:feedback) %>
</li>
<!-- <li><%= link_to(l(:label_course_repository), {:controller => 'repositories', :action => 'show', :id => @course, :repository_id => nil, :path => nil, :rev => nil, :course => 1}) %></li> -->
<% if User.current.logged? && (User.current.admin? || (!Member.where('user_id = ? and course_id = ?', User.current.id, @course.id).first.nil? && (Member.where('user_id = ? and course_id = ?', User.current.id, @course.id).first.roles&Role.where('id = ? or id = ?', 7, 9)).size >0)) %>
<% end %>
</ul>
</div>
<%= render_flash_messages %>
@ -257,7 +295,9 @@
<%= render :partial => 'layouts/base_footer' %>
</div>
<div id="ajax-indicator" style="display:none;">
<span><%= l(:label_loading) %></span>
<span>
<%= l(:label_loading) %>
</span>
</div>
<div id="ajax-modal" style="display:none;"></div>
</div>

View File

@ -8,7 +8,9 @@
<meta charset="utf-8" />
<meta name="description" content="<%= Redmine::Info.app_name %>" />
<meta name="keywords" content="issue,bug,tracker" />
<title><%=h html_title %></title>
<title>
<%=h html_title %>
</title>
<%= csrf_meta_tag %>
<%= favicon %>
@ -33,17 +35,26 @@
<table>
<tr>
<td class="info_font" style="width: 240px; color: #15bccf">高校课程实践社区</td>
<td style="width: auto; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
<td style="width: auto; color: #15bccf">
<strong><%= l(:label_user_location) %> : </strong>
</td>
</tr>
<tr>
<td style="padding-left: 8px">
<a><%= link_to request.host()+"/courses", :controller => 'courses', :action => 'index' %></a></td>
<td><p class="top-content-list-homework"><%= link_to "主页", home_path %>
> <%= link_to l(:label_course_practice), :controller => 'courses', :action => 'index' %> >
<span><%= link_to(course.name.to_s, homework_course_path(course)) if course %></span>
>
<%= link_to(@bid.name, respond_path(@bid)) %></p></td>
<a><%= link_to request.host()+"/courses", :controller => 'courses', :action => 'index' %></a>
</td>
<td>
<p class="top-content-list-homework"><%= link_to "主页", home_path %>
>
<%= link_to l(:label_course_practice), :controller => 'courses', :action => 'index' %>
>
<span>
<%= link_to(course.name.to_s, homework_course_path(course)) if course %>
</span>
>
<%= link_to(@bid.name, respond_path(@bid)) %>
</p>
</td>
</tr>
</table>
</div>
@ -93,53 +104,84 @@
<table>
<tr>
<td valign="top" colspan="2" style="font-size: 16px;padding-left: 8px;">
<strong><%= l(:label_new_course_description) %> :</strong></td>
<strong>
<%= l(:label_new_course_description) %> :
</strong>
</td>
</tr>
<tr>
<td class="font_lighter_sidebar" colspan="2" style="padding-left: 8px;"><%= textilizable course.description %></td>
<td class="font_lighter_sidebar" colspan="2" style="padding-left: 8px;">
<%= textilizable course.description %>
</td>
</tr>
<tr>
<td valign="top" style="padding-left: 8px;"><%= l(:label_create_time) %> :</td>
<td class="font_lighter_sidebar"><%= format_time course.created_at %></td>
<td valign="top" style="padding-left: 8px;">
<%= l(:label_create_time) %> :
</td>
<td class="font_lighter_sidebar">
<%= format_time course.created_at %>
</td>
</tr>
<tr>
<td valign="top" style="padding-left: 8px; width:60px">主讲老师 :</td>
<td class="font_lighter_sidebar"><%= link_to(course.teacher.lastname+course.teacher.firstname, user_path(course.teacher)) %></td>
<td valign="top" style="padding-left: 8px; width:60px">
<%= l(:lable_course_teacher) %> :
</td>
<td class="font_lighter_sidebar">
<%= link_to(course.teacher.lastname+course.teacher.firstname, user_path(course.teacher)) %>
</td>
</tr>
<tr>
<td valign="top" style="padding-left: 8px;"><%= l(:label_class_period) %> :</td>
<td class="font_lighter_sidebar"><%= course.class_period.to_s %>&nbsp;<%= l(:label_class_hour) %></td>
<td valign="top" style="padding-left: 8px;">
<%= l(:label_class_period) %> :
</td>
<td class="font_lighter_sidebar">
<%= course.class_period.to_s %>&nbsp;
<%= l(:label_class_hour) %>
</td>
</tr>
<tr>
<td valign="top" style="padding-left: 8px;"><%= l(:label_main_term) %> :</td>
<td class="font_lighter_sidebar"><%= course.time.to_s %> <%= course.term %></td>
<td valign="top" style="padding-left: 8px;">
<%= l(:label_main_term) %> :
</td>
<td class="font_lighter_sidebar">
<%= course.time.to_s %>
<%= course.term %>
</td>
</tr>
<tr>
<td valign="top" style="padding-left: 8px;"><%= l(:label_teacher_work_unit) %> :</td>
<!-- modified by zjc 有@user.user_extensions.occupation改为 @user.user_extensions.school 并添加超链接 -->
<% unless @user.user_extensions.nil? || @user.user_extensions.school.nil? %>
<td class="font_lighter_sidebar"><%= link_to @user.user_extensions.school,"http://course.trustie.net/?school_id=#{@user.user_extensions.school.id}" %></td>
<% end %>
</tr>
</table>
</div>
<div class="user_underline"></div>
<tr>
<td valign="top" style="padding-left: 8px;">
<%= l(:label_teacher_work_unit) %> :
</td>
<!-- modified by zjc 有@user.user_extensions.occupation改为 @user.user_extensions.school 并添加超链接 -->
<% unless @user.user_extensions.nil? || @user.user_extensions.school.nil? %>
<td class="font_lighter_sidebar">
<%= link_to @user.user_extensions.school,"http://#{Setting.host_course}/?school_id=#{@user.user_extensions.school.id}" %>
</td>
<% end %>
</tr>
</table>
</div>
<div class="user_underline"></div>
<!-- info -->
<div class="inf_user_image">
<table>
<tr>
<td><%= l(:label_limit_time) %>: <%= @bid.deadline %></td>
<td>
<%= l(:label_limit_time) %>:
<%= @bid.deadline %>
</td>
</tr>
<tr>
<td>作业类型: <%= @bid.homework_type==Bid::HomeworkFile ? "提交文件" : "提交项目" %></td>
<!--td>作业类型:
<%#= @bid.homework_type==Bid::HomeworkFile ? "提交文件" : "提交项目" %>
</td-->
</tr>
<% unless @bid.parent_id.nil? %>
<tr>
@ -160,7 +202,9 @@
<div class="user_underline"></div>
<table style="font-family:'微软雅黑'; padding-left: 8px">
<tr>
<td><!-- added by william -for tag --> <%= render :partial => 'tags/tag', :locals => {:obj => @bid, :object_flag => "4"} %> </td>
<td><!-- added by william -for tag -->
<%= render :partial => 'tags/tag', :locals => {:obj => @bid, :object_flag => "4"} %>
</td>
</tr>
</table>
@ -238,7 +282,9 @@
</div>
<div id="ajax-indicator" style="display:none;">
<span><%= l(:label_loading) %></span>
<span>
<%= l(:label_loading) %>
</span>
</div>
<div id="ajax-modal" style="display:none;"></div>

View File

@ -136,28 +136,6 @@
<div class="user_underline"></div>
</div>
<div class="inf_user_image">
<table>
<tr>
<td>
<%= l(:lable_contest_user) %>:&nbsp;
<%= link_to(@user.name, user_path(@user))%>
</td>
</tr>
<tr>
<td>
<%= l(:label_bids_reward_method) %>
<%= @contest.budget%>
</td>
</tr>
<tr>
<td>
<%= l(:label_limit_time) %> :
<%= @contest.deadline%>
</td>
</tr>
</table>
</div>
<div class="user_underline"></div>
<div class="inf_user_context">

View File

@ -274,14 +274,14 @@
<% if @user.user_extensions.identity == 2 %>
<%= render_menu :user_enterprise_menu %>
<% else %>
<%= render_menu :user_menu %>
<%= render_menu :user_menu,@user %>
<% end %>
</div>
<%= yield %>
<%= call_hook :view_layouts_base_content %>
<div style="clear:both;"></div>
<%= render_flash_messages %>
<%#= render_flash_messages %>
</div>

View File

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

View File

@ -1,13 +1,3 @@
<%= error_messages_for 'bid' %>
<!--[form:project]-->
<p><%= l(:label_homeworks_form_new_description) %></p>
<!-- % unless @memo.parent_id %>
<%# if @memo.safe_attribute? 'sticky' %>
<%#= f.check_box :sticky %> <lable><%= l(:label_board_sticky) %></lable>
<%# end %>
<%# if @memo.safe_attribute? 'locked' %>
<%#= f.check_box :locked %> <%#= label_tag 'memo_locked', l(:label_board_locked) %>
<%# end %>
<%# end %> -->
<p><%= f.text_field :content, :required => true, :size => 60, :style => "width:150px;" %></p>
<p><%= hidden_field_tag 'subject', ||=@memo.subject %>

View File

@ -61,7 +61,6 @@
</p>
<div class="clearfix"></div>
</div>
<!-- modified by zjc 修正名字无链接问题 -->
<div class="memo-timestamp"> <%= authoring @memo.created_at, @memo.author %></div>
</div>
@ -128,7 +127,6 @@
</td>
</tr>
<tr>
<!-- modified by zjc 修正名字无链接问题 -->
<td class="font_lighter" style="float:right"><%= authoring reply.created_at, reply.author %></td>
</tr>
</table>

View File

@ -178,7 +178,7 @@
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
<%= render :partial => 'form', :locals => {:f => f, :replying => true} %>
<%#= submit_tag l(:button_submit) %>
<input type="button" class="enterprise" value="<%=l(:button_submit) %>" onclick="submit_message_replay();" >
<input type="button" class="enterprise" value="<%=l(:button_submit) %>" onmousemove="regexContent()" onclick="submit_message_replay();" >
<%#= preview_link({:controller => 'messages', :action => 'preview', :board_id => @board}, 'message-form') %>
<% end %>
<div id="preview" class="wiki"></div>
@ -188,12 +188,13 @@
<% html_title @topic.subject %>
<script type="text/javascript">
var flag = false
jQuery(document).ready(function($) {
transpotUrl('#content');
});
function submit_message_replay()
{
if(regexContent())
if(flag)
{
$("#message-form").submit();
}
@ -205,13 +206,13 @@
{
$("#message_content_span").text("<%= l(:label_reply_empty) %>");
$("#message_content_span").css('color','#ff0000');
return false;
flag = false;
}
else
{
$("#message_content_span").text("<%= l(:label_field_correct) %>");
$("#message_content_span").css('color','#008000');
return true;
flag = true;
}
}
</script>

View File

@ -4,25 +4,15 @@
<div class="box ph10_5">
<!--[form:message]-->
<% unless replying %>
<p>
<label for="message_subject">
<%= l(:field_subject) %>
<span class="required"> *&nbsp;&nbsp;</span>
</label>
<br/>
<%= f.text_field :subject, :size => 60, :style => "width: 99%;", :id => "message_subject", :maxlength => 254 %><!--by young-->
</p>
<% else %>
<p>
<label for="message_subject">
<%= l(:field_subject) %>
<span class="required"> *&nbsp;&nbsp;</span>
</label>
<br/>
<%= f.text_field :subject, :size => 60, :style => "width: 99%;", :id => "message_subject", :readonly => true %>
</p>
<% end %>
<% extra_option = replying ? { readonly: true} : { maxlength: 254 } %>
<p>
<label for="message_subject">
<%= l(:field_subject) %>
<span class="required"> *&nbsp;&nbsp;</span>
</label>
<br/>
<%= f.text_field :subject, { size: 60, style: "width: 99%;", id: "message_subject" }.merge(extra_option) %>
</p>
<p>
<% unless replying %>
<% if @message.safe_attribute? 'sticky' %>

View File

@ -16,10 +16,10 @@
function get_options(value) {
$.ajax({
type: "POST",
url: '<%= Setting.host_name == "micros.nudt.edu.cn" ? '/ros/school/get_options/' : '/school/get_options/'%>' + encodeURIComponent(value),
url: 'http://<%= Setting.host_name%>/school/get_options/' + encodeURIComponent(value),
data: 'text',
success: function (data) {
$("#province").val(value)
$("#province").val(value);
$("#schoollist").html(data);
}
});
@ -110,7 +110,7 @@
<%= 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/>
<input id="occupation_name" type="text" value="<%= User.current.user_extensions.school.name %>" readonly="true" style="background-color: #E2E2E2;"/>
<% end %>
</p>

View File

@ -141,7 +141,7 @@
<span class="font_lighter"> <%= format_time(comment.created_on) %></span>
</td>
<td width="200" align="right" class="a">
<%= link_to_if_authorized image_tag('delete.png'), {:controller => 'comments', :action => 'destroy', :id => @news, :comment_id => comment},
<%= link_to_if_authorized image_tag('delete.png'), delete_news_comments_path(id: @news, comment: comment),
:data => {:confirm => l(:text_are_you_sure)},
:method => :delete,
:title => l(:button_delete) %>

View File

@ -4,10 +4,10 @@
<table class="list" style="table-layout: fixed;">
<thead>
<tr>
<th><%= l(:field_identifier) %></th>
<th><%= l(:field_repository_is_default) %></th>
<th><%= l(:label_scm) %></th>
<th><%= l(:label_repository_path) %></th>
<th style="width: 20%"><%= l(:field_identifier) %></th>
<th style="width: 10%"><%= l(:field_repository_is_default) %></th>
<th style="width: 15%"><%= l(:label_scm) %></th>
<th style="width: 20%"><%= l(:label_repository_path) %></th>
<th></th>
</tr>
</thead>
@ -37,7 +37,7 @@
<% end %>
<% elsif repository.scm_name=="Git"%>
<%if User.current.allowed_to?(:manage_repository, @project) %>
<!-- <%= link_to(l(:button_edit), edit_repository_path(repository),
<!-- <%#= link_to(l(:button_edit), edit_repository_path(repository),
:class => 'icon icon-edit') %> -->
<%= link_to(l(:label_user_plural), committers_repository_path(repository),
:class => 'icon icon-user') %>

View File

@ -1,35 +1,65 @@
<% if @project.shared_versions.any? %>
<table class="list versions">
<thead><tr>
<th><%= l(:label_version) %></th>
<th><%= l(:field_effective_date) %></th>
<th><%= l(:field_description) %></th>
<th><%= l(:field_status) %></th>
<th><%= l(:field_sharing) %></th>
<th><%= l(:label_wiki_page) %></th>
<table class="list versions" style="table-layout: fixed;">
<thead>
<tr>
<th>
<%= l(:label_version) %>
</th>
<th>
<%= l(:field_effective_date) %>
</th>
<th>
<%= l(:field_description) %>
</th>
<th>
<%= l(:field_status) %>
</th>
<th>
<%= l(:field_sharing) %>
</th>
<th>
<%= l(:label_wiki_page) %>
</th>
<th style="width:15%"></th>
</tr></thead>
<tbody>
<% for version in @project.shared_versions.sort %>
<tr class="version <%= cycle 'odd', 'even' %> <%=h version.status %> <%= 'shared' if version.project != @project %>">
<td class="name"><%= link_to_version version %></td>
<td class="date"><%= format_date(version.effective_date) %></td>
<td class="description"><%=h version.description %></td>
<td class="status"><%= l("version_status_#{version.status}") %></td>
<td class="sharing"><%=h format_version_sharing(version.sharing) %></td>
<td><%= link_to_if_authorized(h(version.wiki_page_title), {:controller => 'wiki', :action => 'show', :project_id => version.project, :id => Wiki.titleize(version.wiki_page_title)}) || h(version.wiki_page_title) unless version.wiki_page_title.blank? || version.project.wiki.nil? %></td>
<td class="buttons">
<% if version.project == @project && User.current.allowed_to?(:manage_versions, @project) %>
<%= link_to l(:button_edit), edit_version_path(version), :class => 'icon icon-edit' %>
<%= delete_link version_path(version) %>
<% end %>
</td>
</tr>
<% end; reset_cycle %>
</tbody>
<% for version in @project.shared_versions.sort %>
<tr class="version <%= cycle 'odd', 'even' %> <%=h version.status %> <%= 'shared' if version.project != @project %>">
<td class="name">
<%= link_to_version version %>
</td>
<td class="date">
<%= format_date(version.effective_date) %>
</td>
<td class="description">
<%=h version.description %>
</td>
<td class="status">
<%= l("version_status_#{version.status}") %>
</td>
<td class="sharing">
<%=h format_version_sharing(version.sharing) %>
</td>
<td style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" title="<%= h(version.wiki_page_title)%>">
<%= link_to_if_authorized(h(version.wiki_page_title), {:controller => 'wiki',
:action => 'show',
:project_id => version.project,
:id => Wiki.titleize(version.wiki_page_title)}) || h(version.wiki_page_title) unless version.wiki_page_title.blank? || version.project.wiki.nil? %>
</td>
<td class="buttons">
<% if version.project == @project && User.current.allowed_to?(:manage_versions, @project) %>
<%= link_to l(:button_edit), edit_version_path(version), :class => 'icon icon-edit' %>
<%= delete_link version_path(version) %>
<% end %>
</td>
</tr>
<% end; reset_cycle %>
</tbody>
</table>
<% else %>
<p class="nodata"><%= l(:label_no_data) %></p>
<p class="nodata">
<%= l(:label_no_data) %>
</p>
<% end %>
<div class="contextual">

View File

@ -11,20 +11,31 @@
</p>
<p><%= f.check_box :is_default, :label => :field_repository_is_default %></p>
<p style="display: none"><%= f.text_field :identifier, :required => true, :disabled => @repository.identifier_frozen?,
value:"#{User.current.id.to_s + '_' +Time.now.to_s.gsub(' ','_').gsub(':','').gsub('+','')}"%>
<p style="display: none">
<%= f.text_field :identifier, :required => true, :disabled => @repository.identifier_frozen?,
value:"#{User.current.id.to_s + '_' +Time.now.to_s.gsub(' ','_').gsub(':','').gsub('+','')}"%>
<% unless @repository.identifier_frozen? %>
<em class="info" ><%= l(:text_length_between, :min => 1, :max => Repository::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_repository_identifier_info).html_safe %></em>
<em class="info" >
<%= l(:text_length_between, :min => 1, :max => Repository::IDENTIFIER_MAX_LENGTH) %>
<%= l(:text_repository_identifier_info).html_safe %></em>
<% end %></p>
<!--Modified by tanxianbo-->
<p><%= f.text_field :url, :size => 60, :required => true, :disabled => !@repository.safe_attribute?('url'), :id => "url_text_field" %>
<em class='info'><%= "#{l(:label_exist_repository_path)}" %></em>
<p>
<%= f.text_field :url, :size => 60, :required => true, :disabled => !@repository.safe_attribute?('url'), :id => "url_text_field" %>
<em class='info'>
<%= "#{l(:label_exist_repository_path)}" %>
</em>
</p>
<p>
<%= f.text_field :login, :size => 30 %>
</p>
<p>
<%= f.password_field :password, :size => 30, :name => 'ignore',
:value => ((@repository.new_record? || @repository.password.blank?) ? '' : ('x'*15)),
:onfocus => "this.value=''; this.name='repository[password]';",
:onchange => "this.name='repository[password]';" %>
</p>
<p><%= f.text_field :login, :size => 30 %></p>
<p><%= f.password_field :password, :size => 30, :name => 'ignore', :value => ((@repository.new_record? || @repository.password.blank?) ? '' : ('x'*15)),
:onfocus => "this.value=''; this.name='repository[password]';",
:onchange => "this.name='repository[password]';" %></p>
</div>
<!--Ended by tanxianbo-->
<p>

View File

@ -1,7 +1,7 @@
<%= error_messages_for 'role' %>
<% unless @role.anonymous? %>
<div class="box tabular">
<div class="box role">
<% unless @role.builtin? %>
<p><%= f.text_field :name, :required => true %></p>
<p><%= f.check_box :assignable %></p>

View File

@ -1,28 +1,35 @@
<% @softapplications.each do |softapplication| %>
<div>
<div style="float: left; width:928px">
<span style="font-size: 15px; margin-right: 10px;"><strong><%= link_to softapplication.name, softapplication, :target => "_blank" %></strong></span>
<span><%= rating_for softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></span>
</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: 200px; margin-left: 70px; margin-top: -3px; line-height: 0.5em ">
<div style="float: left; width: 600px; margin-left: 8px">
<br/>
<%contest = softapplication.contests.first%>
<%=l(:label_attendingcontestwork_belongs_contest)%><%= contest ? link_to(contest.name.truncate(14, omission: '...'), show_attendingcontest_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%>
</br></br>
<%= l(:label_profile) %><%= softapplication.description.truncate(95, omission: '...') %>
</div>
<div style="float: left; width: 200px; margin-left: 70px; margin-top: -3px; line-height: 0.5em ">
<% strTitle = softapplication.android_min_version_available %>
<p><%=l(:label_attendingcontestwork_adaptive_system)%><lable title="<%= strTitle %>"><%= strTitle ? strTitle.truncate(10,omisiion:'...') : "" %></lable></p>
<p><%=l(:label_attendingcontestwork_belongs_contest)%><%= contest ? link_to(contest.name.truncate(14, omission: '...'), show_attendingcontest_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%></p>
<!--modified by longjun 因为新建竞赛作品时没有填写运行平台和类别所有如果为空不能使用truncate函数-->
<p><%=l(:label_attendingcontestwork_belongs_type)%><%= softapplication.app_type_name ? softapplication.app_type_name.truncate(14, omission: '...') : "" %></p>
<% strTitle = softapplication.android_min_version_available %>
<p><%=l(:label_attendingcontestwork_adaptive_system)%><lable title="<%= strTitle %>"><%= strTitle ? strTitle.truncate(10,omisiion:'...') : "" %></lable></p>
</div>
<div style="padding-left: 53px">
</div>
<div style="padding-left: 53px; float: left; width: 928px;">
<span><%=l(:label_attendingcontestwork_developers)%><%= softapplication.application_developers %></span>
<span style="padding-left: 50px"><%=l(:label_attendingcontestwork_release_time)%><%=format_time softapplication.created_at %></span>
<span style="float: right;margin-right: 93px;"><%=l(:label_attendingcontestwork_release_time)%><%=format_time softapplication.created_at %></span>
</div>
<div style="border-left: 1px solid #d9d8d8; border-bottom: 1px solid #d9d8d8; margin-left: 50px; padding-bottom: 10px; margin-bottom: 20px; width: 66%"></div>
<div class="underline-contests_one" style="margin-top: -7px"></div>
<div style="border-left: 1px solid #d9d8d8; border-bottom: 1px solid #d9d8d8; margin-left: 50px; padding-bottom: 10px; margin-bottom: 20px; width: 66%; float: left"></div>
<div class="underline-contests_one" style="margin-top: -7px;float: left"></div>
<% end %>
<div class="pagination"><%= pagination_links_full @softapplication_pages, @softapplication_count, :per_page_links => false %></div>

View File

@ -12,10 +12,16 @@
#end%>
<!-- 3 代表的是issue 当是issue是 处理方式与前2个对象不同 -->
<% if object_flag == '3' %>
<span><%= image_tag("/images/sidebar/tags.png") %></span>
<span class="font_title_tag"><%= l(:label_tag) %>:</span>
<span>
<%= image_tag("/images/sidebar/tags.png") %>
</span>
<span class="font_title_tag">
<%= l(:label_tag) %>:
</span>
<% if User.current.logged? %>
<span> <%= toggle_link (image_tag "/images/sidebar/add.png"), 'put-tag-form-issue', {:focus => 'name-issue'} %></span>
<span>
<%= toggle_link (image_tag "/images/sidebar/add.png"), 'put-tag-form-issue', {:focus => 'name-issue'} %>
</span>
<% end %>
<div id="tags_show_issue">
@ -36,7 +42,9 @@
<% elsif object_flag == '6' %>
<span><%#= image_tag("/images/sidebar/tags.png") %></span>
<span>
<%= link_to (image_tag "/images/sidebar/add.png"), 'javascript:void(0);', :class => "tags_icona", :onclick=>"$('#put-tag-form-#{obj.class}-#{obj.id}').toggle(); readmore(this);" if User.current.logged? %>
<%= link_to (image_tag "/images/sidebar/add.png"), 'javascript:void(0);',
:class => "tags_icona",
:onclick=>"$('#put-tag-form-#{obj.class}-#{obj.id}').toggle(); readmore(this);" if User.current.logged? %>
<%#= toggle_link (image_tag "/images/sidebar/add.png"), "put-tag-form-#{obj.class}-#{obj.id}", {:focus => "put-tag-form-#{obj.class}-#{obj.id} #name"} if User.current.logged? %>
</span>
&nbsp;&nbsp;
@ -47,21 +55,24 @@
<%= render :partial => "courses/course_resources_html", :locals => {:obj => obj ,:object_flag => object_flag } %>
</div>
<% else %>
<span><%= image_tag("/images/sidebar/tags.png") %></span>
<span class="font_title_tag"><%= l(:label_tag) %>:</span>
<span>
<%= image_tag("/images/sidebar/tags.png") %>
</span>
<span class="font_title_tag">
<%= l(:label_tag) %>:
</span>
<% if User.current.logged? %>
<span><%= toggle_link (image_tag "/images/sidebar/add.png"), 'put-tag-form', {:focus => 'tags_name'} %></span>
<span>
<%= toggle_link (image_tag "/images/sidebar/add.png"), 'put-tag-form', {:focus => 'tags_name'} %>
</span>
<% end %>
<div id="tags_show">
<%= render :partial => "tags/tag_name",:locals => {:obj => obj,:non_list_all => false ,:object_flag => object_flag} %>
</div>
<div id="put-tag-form" style="display: none">
<%= form_for "tag_for_save",:remote=>true,:url=>tag_path,
:update => "tags_show",
:complete => '$("#put-tag-form").hide();' do |f| %>
:update => "tags_show",
:complete => '$("#put-tag-form").hide();' do |f| %>
<%= f.text_field :name ,:id => "tags_name",:size=>"28",:require=>true,:maxlength => Setting.tags_max_length,:minlength=>Setting.tags_min_length %>
<%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%>
<%= f.text_field :object_flag,:value=> object_flag,:style=>"display:none"%>

View File

@ -1,11 +1,19 @@
<% if User.current.id == @user.id %>
<div class="menu-div">
<div class="menu">
<span style="color: #000; font-weight: bold;"><%= "#{@user.name}的动态" %></span>
<span style="color: #000; font-weight: bold;">
<%= "#{@user.name}的动态" %>
</span>
<ul><%#链接绑定在页面最下方的jQuery%>
<li mode='all' class="<%= "on" if @state.eql?(0) %>"><%= l :label_user_all_activity %></li>
<li mode='myself' class="<%= "on" if @state.eql?(1) %>"><%= l :label_user_activity_myself %></li>
<li mode='respond' class="<%= "on" if @state.eql?(2) %>"><%= l :label_user_all_respond %></li>
<li mode='all' class="<%= "on" if @state.eql?(0) %>">
<%= l :label_user_all_activity %>
</li>
<li mode='myself' class="<%= "on" if @state.eql?(1) %>">
<%= l :label_user_activity_myself %>
</li>
<li mode='respond' class="<%= "on" if @state.eql?(2) %>">
<%= l :label_user_all_respond %>
</li>
</ul>
</div>
<script type="text/javascript">
@ -28,6 +36,7 @@
<% end %>
<% end %>
<%= render_flash_messages %>
<% unless @state == 2 %>
<% unless @activity.empty? %>
<div id="activity">
@ -39,353 +48,485 @@
<% if e.act_type == 'JournalsForMessage' || e.act_type == 'Bid' || e.act_type == 'Journal'|| e.act_type == 'Changeset' || e.act_type == 'Message' || e.act_type == 'Principal' || e.act_type == 'News' || e.act_type == 'Issue' || e.act_type == 'Contest'%>
<table width="660" border="0" align="left" style="border-bottom: 1px dashed rgb(204, 204, 204); margin-bottom: 10px;font-size:14px;">
<tr>
<td colspan="2" valign="top" width="50"><%= image_tag(url_to_avatar(e.user), :class => "avatar") %></td>
<td colspan="2" valign="top" width="50">
<%= image_tag(url_to_avatar(e.user), :class => "avatar") %>
</td>
<td>
<table width="580" border="0" class="info-break">
<% case e.act_type %>
<% when 'JournalsForMessage' %>
<tr>
<td colspan="2" valign="top">
<% if User.current.login == e.user.try(:login) %>
<strong>
<%= link_to("#{l(:label_i)}", user_path(e.user_id)) %>
</strong>
&nbsp;
<% else %>
<strong><%= link_to("#{e.user.name}", user_path(e.user_id)) %></strong>
<% end %>
<span class="font_lighter">
<%= l(:label_have_feedback) %>
<%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %><%= l(:label_of_feedback) + l(:label_layouts_feedback) %>
</span>
</td>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description"> <%= textAreailizable 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">
<span class="font_lighter"> <%= (l(:label_update_time).to_s << ':' << format_time(e.act.created_on)).to_s %></span>
</div>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
</td>
</tr>
<% when 'Bid' %>
<tr>
<% if act.reward_type == 3 && @show_course == 1%>
<% if e.user == User.current %>
<% when 'JournalsForMessage' %>
<tr>
<td colspan="2" valign="top">
<strong>
<%= link_to("#{l(:label_i)}", user_path(e.user_id)) %>
</strong>
<% if User.current.login == e.user.try(:login) %>
<strong>
<%= link_to("#{l(:label_i)}", user_path(e.user_id)) %>
</strong>
&nbsp;
<% else %>
<strong>
<%= link_to("#{e.user.name}", user_path(e.user_id)) %>
</strong>
<% end %>
<span class="font_lighter">
<%= l(:label_i_new_activity) %>
<%= l(:label_have_feedback) %>
<%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %>
<%= l(:label_of_feedback) + l(:label_layouts_feedback) %>
</span>
<%= link_to format_activity_title("#{l(:label_active_homework)}##{act.id}:#{act.name}"), respond_path(e.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_active_homework)}##{act.id}:#{act.name}"), respond_path(e.act_id) %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description">
<%= textAreailizable 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>
<% end %>
<% else %>
<% if e.user == User.current %>
<td colspan="2" valign="top">
<strong> <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %></strong>
<span class="font_lighter"><%= l(:label_i_new_activity) %></span>
<%= link_to format_activity_title("#{l(:label_active_call)}##{act.id}:#{act.name}"), respond_path(e.act_id) %>
</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>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
</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_active_call)}##{act.id}:#{act.name}"), respond_path(e.act_id) %>
</tr>
<% when 'Bid' %>
<tr>
<% if act.reward_type == 3 && @show_course == 1%>
<% if e.user == User.current %>
<td colspan="2" valign="top">
<strong>
<%= link_to("#{l(:label_i)}", user_path(e.user_id)) %>
</strong>
<span class="font_lighter">
<%= l(:label_i_new_activity) %>
</span>
<%= link_to format_activity_title("#{l(:label_active_homework)}##{act.id}:#{act.name}"), respond_path(e.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_active_homework)}##{act.id}:#{act.name}"), respond_path(e.act_id) %>
</td>
<% end %>
<% else %>
<% if e.user == User.current %>
<td colspan="2" valign="top">
<strong>
<%= link_to("#{l(:label_i)}", user_path(e.user_id)) %>
</strong>
<span class="font_lighter">
<%= l(:label_i_new_activity) %>
</span>
<%= link_to format_activity_title("#{l(:label_active_call)}##{act.id}:#{act.name}"), respond_path(e.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_active_call)}##{act.id}:#{act.name}"), respond_path(e.act_id) %>
</td>
<% end %>
<% end %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description">
<%=textAreailizable 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>
<div style="display: inline-block; float: right; margin-top: 0px">
<span>
<%= link_to l(:label_find_all_comments), respond_path(e.act_id) %>
</span>
<a class="font_lighter">
<%= l(:label_comments_count, :count => e.act.commit) %>
</a>
</div>
</td>
<% end %>
<% end %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description"> <%=textAreailizable 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>
<div style="display: inline-block; float: right; margin-top: 0px">
<span><%= link_to l(:label_find_all_comments), respond_path(e.act_id) %></span>
<a class="font_lighter"><%= l(:label_comments_count, :count => e.act.commit) %></a>
</div>
</td>
</tr>
<% when 'Journal' %>
<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(l(:label_activity_project)+act.issue.project.name, project_path(act.issue.project.id)) %>
<%= link_to format_activity_title("#{act.issue.tracker} ##{act.issue.id}: #{act.issue.subject}"),
{:controller => 'issues', :action => 'show', :id => act.issue.id, :anchor => "change-#{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(l(:label_activity_project)+act.issue.project.name, project_path(act.issue.project.identifier)) %>
<%= link_to format_activity_title("#{act.issue.tracker} ##{act.issue.id}: #{act.issue.subject}"),
{:controller => 'issues', :action => 'show', :id => act.issue.id, :anchor => "change-#{act.id}"} %>
</td>
<% end %>
</tr>
<tr>
<% if act.notes.nil? %>
<% desStr = '' %>
<% else %>
<% desStr= textAreailizable(act, :notes) %>
<% end %>
<td colspan="2" width="580"><p class="font_description"> <%= desStr %> </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>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
</td>
</tr>
<% when 'Changeset' %>
<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(act.title),
{:controller => 'repositories',
:action => 'revision',
:id => act.repository.project,
:repository_id => act.repository.identifier_param,
:rev => act.identifier} %>
</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(act.title),
{:controller => 'repositories',
:action => 'revision',
:id => act.repository.project,
:repository_id => act.repository.identifier_param,
:rev => act.identifier} %>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description"> <%= textAreailizable act,:long_comments %> </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"> <%= format_time(e.act.committed_on) %></span>
</div>
<div style="display: inline-block; float: right; margin-top: 0px">
<span><%= link_to l(:label_find_all_comments),
{:controller => 'repositories',
:action => 'revision',
:id => act.repository.project,
:repository_id => act.repository.identifier_param,
:rev => act.identifier} %>
</span>
<a class="font_lighter"><%= l(:label_comments_count, :count => e.act.count) %></a>
</div>
</td>
</tr>
<% when 'Message' %>
<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("#{act.board.name}: #{act.subject}"),
{:controller => 'messages',
:action => 'show',
:board_id => act.board_id}.merge(act.parent_id.nil? ? {:id => act.id} : {:id => act.parent_id, :r => act.id, :anchor => "message-#{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("#{act.board.name}: #{act.subject}"),
{:controller => 'messages',
:action => 'show',
:board_id => act.board_id}.merge(act.parent_id.nil? ? {:id => act.id} : {:id => act.parent_id, :r => act.id, :anchor => "message-#{act.id}"}) %>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description"> <%= textAreailizable(act,:content) %> </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>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
</td>
</tr>
<% when 'Principal' %>
<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_new_user) %></span>
</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_user) %></span>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580"><p class="font_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>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
</td>
</tr>
<% when 'News' %>
<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_news)}: #{act.title}"), {:controller => 'news', :action => 'show', :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_news)}: #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id} %>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description"> <%= textAreailizable 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>
<div style="display: inline-block; float: right; margin-top: 0px">
<span>
<%= link_to l(:label_find_all_comments), {:controller => 'news', :action => 'show', :id => act.id} %>
</span>
<a class="font_lighter">
<%= l(:label_comments_count, :count => e.act.comments_count) %>
</a>
</div>
</td>
</tr>
<% when 'Issue' %>
<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("#{act.source_from} (#{act.status}): #{act.tracker.name} #{act.subject}"),
{:controller => 'issues',
:action => 'show',
: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("#{act.source_from} (#{act.status}): #{act.tracker.name} #{act.subject}"),
{:controller => 'issues',
:action => 'show',
:id => act.id} %>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580" style="WORD-BREAK: break-all; WORD-WRAP: break-word">
<%= textAreailizable act, :description %>
</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>
<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>
</tr>
<% when 'Contest' %>
<tr>
<% if e.user == User.current && @show_contest == 1%>
<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"> <%= textAreailizable 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 %>
<% end %><!-- < % #case end %> -->
</tr>
<% when 'Journal' %>
<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(l(:label_activity_project)+act.issue.project.name, project_path(act.issue.project.id)) %>
<%= link_to format_activity_title("#{act.issue.tracker} ##{act.issue.id}: #{act.issue.subject}"),
{:controller => 'issues', :action => 'show', :id => act.issue.id, :anchor => "change-#{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(l(:label_activity_project)+act.issue.project.name, project_path(act.issue.project.id)) %>
<%= link_to format_activity_title("#{act.issue.tracker} ##{act.issue.id}: #{act.issue.subject}"),
{:controller => 'issues', :action => 'show', :id => act.issue.id, :anchor => "change-#{act.id}"} %>
</td>
<% end %>
</tr>
<tr>
<% if act.notes.nil? %>
<% desStr = '' %>
<% else %>
<% desStr= textAreailizable(act, :notes) %>
<% end %>
<td colspan="2" width="580">
<p class="font_description">
<%= desStr %>
</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>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
</td>
</tr>
<% when 'Changeset' %>
<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(act.title),
{:controller => 'repositories',
:action => 'revision',
:id => act.repository.project,
:repository_id => act.repository.identifier_param,
:rev => act.identifier} %>
</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(act.title),
{:controller => 'repositories',
:action => 'revision',
:id => act.repository.project,
:repository_id => act.repository.identifier_param,
:rev => act.identifier} %>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description">
<%= textAreailizable act,:long_comments %>
</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">
<%= format_time(e.act.committed_on) %>
</span>
</div>
<div style="display: inline-block; float: right; margin-top: 0px">
<span><%= link_to l(:label_find_all_comments),
{:controller => 'repositories',
:action => 'revision',
:id => act.repository.project,
:repository_id => act.repository.identifier_param,
:rev => act.identifier} %>
</span>
<a class="font_lighter">
<%= l(:label_comments_count, :count => e.act.count) %>
</a>
</div>
</td>
</tr>
<% when 'Message' %>
<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("#{act.board.name}: #{act.subject}"),
{:controller => 'messages',
:action => 'show',
:board_id => act.board_id}.merge(act.parent_id.nil? ? {:id => act.id} : {:id => act.parent_id, :r => act.id, :anchor => "message-#{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("#{act.board.name}: #{act.subject}"),
{:controller => 'messages',
:action => 'show',
:board_id => act.board_id}.merge(act.parent_id.nil? ? {:id => act.id} : {:id => act.parent_id, :r => act.id, :anchor => "message-#{act.id}"}) %>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description">
<%= textAreailizable(act,:content) %>
</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>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
</td>
</tr>
<% when 'Principal' %>
<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_new_user) %>
</span>
</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_user) %>
</span>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_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>
<div style="display: inline-block; float: right; margin-top: 0px"></div>
</td>
</tr>
<% when 'News' %>
<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_news)}: #{act.title}"), {:controller => 'news', :action => 'show', :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_news)}: #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id} %>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580">
<p class="font_description">
<%= textAreailizable 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>
<div style="display: inline-block; float: right; margin-top: 0px">
<span>
<%= link_to l(:label_find_all_comments), {:controller => 'news', :action => 'show', :id => act.id} %>
</span>
<a class="font_lighter">
<%= l(:label_comments_count, :count => e.act.comments_count) %>
</a>
</div>
</td>
</tr>
<% when 'Issue' %>
<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("#{act.source_from} (#{act.status}): #{act.tracker.name} #{act.subject}"),
{:controller => 'issues',
:action => 'show',
: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("#{act.source_from} (#{act.status}): #{act.tracker.name} #{act.subject}"),
{:controller => 'issues',
:action => 'show',
:id => act.id} %>
</td>
<% end %>
</tr>
<tr>
<td colspan="2" width="580" style="WORD-BREAK: break-all; WORD-WRAP: break-word">
<%= textAreailizable act, :description %>
</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>
<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>
</tr>
<% when 'Contest' %>
<tr>
<% if e.user == User.current && @show_contest == 1%>
<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">
<%= textAreailizable 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 %>
<% end %><!-- < % #case end %> -->
</table>
</td>
</tr>
@ -442,12 +583,19 @@
</td>
</tr>
<tr>
<td colspan="2" width="580"><p class="font_description"> <%= textAreailizable e.notes %> </p></td>
<td colspan="2" width="580">
<p class="font_description">
<%= textAreailizable e.notes %>
</p>
</td>
</tr>
<tr>
<td align="left"><a class="font_lighter"></a></td>
<td width="200" align="right" class="a">
<span class="font_lighter"><%= format_time e.created_on %></span></td>
<span class="font_lighter">
<%= format_time e.created_on %>
</span>
</td>
</tr>
</table>
</td>
@ -457,11 +605,15 @@
</div>
<div class="pagination" style="float:left;">
<ul> <%= pagination_links_full @info_pages %> </ul>
<ul>
<%= pagination_links_full @info_pages %>
</ul>
</div>
<% else %>
<p class="font_description"><%= l(:label_no_user_respond_you) %></p>
<p class="font_description">
<%= l(:label_no_user_respond_you) %>
</p>
<% end %>

View File

@ -1,20 +1,18 @@
<% if @obj_flag == '3'%>
$('#tags_show_issue').html('<%= escape_javascript(render :partial => 'tags/tag_name',
:locals => {:obj => @obj,:non_list_all => false,:object_flag => @obj_flag}) %>');
$('#tags_show_issue').html('<%= escape_javascript(render :partial => 'tags/tag_name',
:locals => {:obj => @obj,:non_list_all => false,:object_flag => @obj_flag}) %>');
//$('#put-tag-form-issue').hide();
$('#name-issue').val("");
$('#name-issue').val("");
<% elsif @obj_flag == '6'%>
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").empty();
$("#tags_show-<%=@obj.class%>-<%=@obj.id%>").html('<%= escape_javascript(render :partial => 'tags/tag_name',
:locals => {:obj => @obj,:non_list_all => false,:object_flag => @obj_flag}) %>');
//$("#put-tag-form-<%=@obj.class%>-<%=@obj.id%>").hide();
//$("#put-tag-form-<%#=@obj.class%>-<%#=@obj.id%>").hide();
$("#put-tag-form-<%=@obj.class%>-<%=@obj.id%> #name").val("");
<% else %>
$('#tags_show').html('<%= escape_javascript(render :partial => 'tags/tag_name',
:locals => {:obj => @obj,:non_list_all => false,:object_flag => @obj_flag}) %>');
$('#put-tag-form #name').val("");
$('#tags_show').html('<%= escape_javascript(render :partial => 'tags/tag_name',
:locals => {:obj => @obj,:non_list_all => false,:object_flag => @obj_flag}) %>');
$('#tags_name').val("");
//$('#put-tag-form').hide();
<% end %>

View File

@ -1,48 +1,72 @@
<!--modified by young-->
<div class="contextual">
<div class="contextual" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
<%= link_to(l(:button_edit), edit_version_path(@version), :class => 'icon icon-edit') if User.current.allowed_to?(:manage_versions, @version.project) %>
<%= link_to_if_authorized(l(:button_edit_associated_wikipage, :page_title => @version.wiki_page_title), {:controller => 'wiki', :action => 'edit', :project_id => @version.project, :id => Wiki.titleize(@version.wiki_page_title)}, :class => 'icon icon-edit') unless @version.wiki_page_title.blank? || @version.project.wiki.nil? %>
<%= delete_link version_path(@version, :back_url => url_for(:controller => 'versions', :action => 'index', :project_id => @version.project)) if User.current.allowed_to?(:manage_versions, @version.project) %>
<%= link_to_if_authorized(l(:button_edit_associated_wikipage,
:page_title => @version.wiki_page_title.truncate(30, omission: '...')),
{:controller => 'wiki',
:action => 'edit',
:project_id => @version.project,
:id => Wiki.titleize(@version.wiki_page_title)},
:class => 'icon icon-edit') unless @version.wiki_page_title.blank? || @version.project.wiki.nil? %>
<%= delete_link version_path(@version, :back_url => url_for(:controller => 'versions',
:action => 'index',
:project_id => @version.project)) if User.current.allowed_to?(:manage_versions, @version.project) %>
<%= call_hook(:view_versions_show_contextual, { :version => @version, :project => @project }) %>
</div>
<h3><%= h(@version.name) %></h3>
<h3 style="word-break: break-all;word-wrap: break-word;">
<%= h(@version.name) %>
</h3>
<div id="roadmap">
<%= render :partial => 'versions/overview', :locals => {:version => @version} %>
<%= render(:partial => "wiki/content", :locals => {:content => @version.wiki_page.content}) if @version.wiki_page %>
<%= render :partial => 'versions/overview', :locals => {:version => @version} %>
<%= render(:partial => "wiki/content", :locals => {:content => @version.wiki_page.content}) if @version.wiki_page %>
<div class="splitcontent">
<% if @version.estimated_hours > 0 || User.current.allowed_to?(:view_time_entries, @project) %>
<fieldset class="time-tracking"><legend><%= l(:label_time_tracking) %></legend>
<table>
<tr>
<th><%= l(:field_estimated_hours) %></th>
<td class="total-hours"><%= html_hours(l_hours(@version.estimated_hours)) %></td>
</tr>
<% if User.current.allowed_to?(:view_time_entries, @project) %>
<tr>
<th><%= l(:label_spent_time) %></th>
<td class="total-hours"><%= html_hours(l_hours(@version.spent_hours)) %></td>
</tr>
<% end %>
</table>
</fieldset>
<% end %>
<div class="splitcontent">
<% if @version.estimated_hours > 0 || User.current.allowed_to?(:view_time_entries, @project) %>
<fieldset class="time-tracking"><legend><%= l(:label_time_tracking) %></legend>
<table>
<tr>
<th>
<%= l(:field_estimated_hours) %>
</th>
<td class="total-hours">
<%= html_hours(l_hours(@version.estimated_hours)) %>
</td>
</tr>
<% if User.current.allowed_to?(:view_time_entries, @project) %>
<tr>
<th>
<%= l(:label_spent_time) %>
</th>
<td class="total-hours">
<%= html_hours(l_hours(@version.spent_hours)) %>
</td>
</tr>
<% end %>
</table>
</fieldset>
<% end %>
<div id="status_by" style="margin-top:10px;"><!--by young-->
<%= render_issue_status_by(@version, params[:status_by]) if @version.fixed_issues.count > 0 %>
</div>
<div id="status_by" style="margin-top:10px;"><!--by young-->
<%= render_issue_status_by(@version, params[:status_by]) if @version.fixed_issues.count > 0 %>
</div>
</div>
<% if @issues.present? %>
<%= form_tag({}) do -%>
<table class="list related-issues">
<caption><%= l(:label_related_issues) %></caption>
<caption>
<%= l(:label_related_issues) %>
</caption>
<%- @issues.each do |issue| -%>
<tr class="hascontextmenu">
<td class="checkbox"><%= check_box_tag 'ids[]', issue.id, false, :id => nil %></td>
<td><%= link_to_issue(issue, :project => (@project != issue.project)) %></td>
<td class="checkbox">
<%= check_box_tag 'ids[]', issue.id, false, :id => nil %>
</td>
<td>
<%= link_to_issue(issue, :project => (@project != issue.project)) %>
</td>
</tr>
<% end %>
</table>

View File

@ -1,57 +1,62 @@
<%= wiki_page_breadcrumb(@page) %>
<script src="/javascripts/ckeditor/ckeditor.js?1404953555" type="text/javascript"></script>
<h3><%= h @page.pretty_title %></h3>
<script src="http://<%= Setting.host_name%>/javascripts/ckeditor/ckeditor.js?1404953555" type="text/javascript"></script>
<h3 style="word-break: break-all;word-wrap: break-word;">
<%= h @page.pretty_title %>
</h3>
<%= form_for @content, :as => :content,
:url => {:action => 'update', :id => @page.title},
:html => {:method => :put, :multipart => true, :id => 'wiki_form'} do |f| %>
<%= f.hidden_field :version %>
<% if @section %>
<%= hidden_field_tag 'section', @section %>
<%= hidden_field_tag 'section_hash', @section_hash %>
<% end %>
<%= error_messages_for 'content' %>
<%= f.hidden_field :version %>
<% if @section %>
<%= hidden_field_tag 'section', @section %>
<%= hidden_field_tag 'section_hash', @section_hash %>
<% end %>
<%= error_messages_for 'content' %>
<div class="actions" style="max-width:680px">
<p style="max-width:680px;"><%=text_area_tag 'content[text]', @text, :required => true, :id => 'editor02', :cols => 100, :rows => 25 %></p>
<p style="max-width:680px;">
<%=text_area_tag 'content[text]', @text, :required => true, :id => 'editor02', :cols => 100, :rows => 25 %>
</p>
<script type="text/javascript">
var ckeditor=CKEDITOR.replace('editor02',{height: '300'});
</script>
</div>
<div class="box tabular">
<%#= text_area_tag 'content[text]', @text, :cols => 100, :rows => 25,
:class => 'wiki-edit', :accesskey => accesskey(:edit) %>
<div class="box tabular">
<% if @page.safe_attribute_names.include?('parent_id') && @wiki.pages.any? %>
<%= fields_for @page do |fp| %>
<p>
<label>
<%= l(:field_parent_title) %>
</label>
<%= fp.select :parent_id,content_tag('option', '', :value => '') + wiki_page_options_for_select(@wiki.pages.all(:include => :parent) - @page.self_and_descendants, @page.parent) %>
</p>
<% end %>
<% end %>
<!--p style="max-width:680px"><input id="editor02" required="true" /><%#= f.text_area :comments, :required => true, :id => 'editor02' %></p>
<script type="text/javascript">var ckeditor=CKEDITOR.replace('editor02');</script-->
<p style="width: 100%;">
<label>
<%= l(:field_comments) %>
</label>
<%= f.text_field :comments, :style => "width:75%;" %>
</p>
<p>
<label>
<%=l(:label_attachment_plural)%>
</label>
<%= render :partial => 'attachments/form' %>
</p>
</div>
<% if @page.safe_attribute_names.include?('parent_id') && @wiki.pages.any? %>
<%= fields_for @page do |fp| %>
<p>
<label><%= l(:field_parent_title) %></label>
<%= fp.select :parent_id,
content_tag('option', '', :value => '') +
wiki_page_options_for_select(@wiki.pages.all(:include => :parent) -
@page.self_and_descendants, @page.parent) %>
<%= submit_tag l(:button_save) %>
</p>
<% end %>
<%= wikitoolbar_for 'content_text' %>
<% end %>
<p style="width: 100%;"><label><%= l(:field_comments) %></label><%= f.text_field :comments, :style => "width:75%;" %></p>
<p><label><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p>
</div>
<p><%= submit_tag l(:button_save) %>
<%#= preview_link({:controller => 'wiki', :action => 'preview', :project_id => @project, :id => @page.title }, 'wiki_form') %></p>
<%= wikitoolbar_for 'content_text' %>
<% end %>
<div id="preview" class="wiki"></div>
<% content_for :header_tags do %>
<%= robot_exclusion_tag %>
<% end %>
<% html_title @page.pretty_title %>

View File

@ -8,35 +8,51 @@
:project_id => @page.project, :id => @page.title},
:method => :get) do %>
<table class="list wiki-page-versions">
<thead><tr>
<th>#</th>
<th></th>
<th></th>
<th><%= l(:field_updated_on) %></th>
<th><%= l(:field_author) %></th>
<th><%= l(:field_comments) %></th>
<th></th>
</tr></thead>
<tbody>
<% show_diff = @versions.size > 1 %>
<% line_num = 1 %>
<% @versions.each do |ver| %>
<tr class="wiki-page-version <%= cycle("odd", "even") %>">
<td class="id"><%= link_to h(ver.version), :action => 'show', :id => @page.title, :project_id => @page.project, :version => ver.version %></td>
<td class="checkbox"><%= radio_button_tag('version', ver.version, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('#cbto-#{line_num+1}').attr('checked', true);") if show_diff && (line_num < @versions.size) %></td>
<td class="checkbox"><%= radio_button_tag('version_from', ver.version, (line_num==2), :id => "cbto-#{line_num}") if show_diff && (line_num > 1) %></td>
<td class="updated_on"><%= format_time(ver.updated_on) %></td>
<td class="author"><%= link_to_user ver.author %></td>
<td class="comments"><%=h ver.comments %></td>
<td class="buttons">
<%= link_to l(:button_annotate), :action => 'annotate', :id => @page.title, :version => ver.version %>
<%= delete_link wiki_page_path(@page, :version => ver.version) if User.current.allowed_to?(:delete_wiki_pages, @page.project) && @version_count > 1 %>
</td>
</tr>
<% line_num += 1 %>
<% end %>
</tbody>
<thead>
<tr>
<th>#</th>
<th></th>
<th></th>
<th><%= l(:field_updated_on) %></th>
<th><%= l(:field_author) %></th>
<th><%= l(:field_comments) %></th>
<th></th>
</tr>
</thead>
<tbody>
<% show_diff = @versions.size > 1 %>
<% line_num = 1 %>
<% @versions.each do |ver| %>
<tr class="wiki-page-version <%= cycle("odd", "even") %>">
<td class="id">
<%= link_to h(ver.version), :action => 'show', :id => @page.title, :project_id => @page.project, :version => ver.version %>
</td>
<td class="checkbox">
<%= radio_button_tag('version', ver.version, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('#cbto-#{line_num+1}').attr('checked', true);") if show_diff && (line_num < @versions.size) %>
</td>
<td class="checkbox">
<%= radio_button_tag('version_from', ver.version, (line_num==2), :id => "cbto-#{line_num}") if show_diff && (line_num > 1) %>
</td>
<td class="updated_on">
<%= format_time(ver.updated_on) %>
</td>
<td class="author">
<%= link_to_user ver.author %>
</td>
<td class="comments" style="word-break: break-all;word-wrap: break-word;" title="<%= h ver.comments%>">
<%=h ver.comments.truncate(25,ommision:'...') %>
</td>
<td class="buttons">
<%= link_to l(:button_annotate), :action => 'annotate', :id => @page.title, :version => ver.version %>
<%= delete_link wiki_page_path(@page, :version => ver.version) if User.current.allowed_to?(:delete_wiki_pages, @page.project) && @version_count > 1 %>
</td>
</tr>
<% line_num += 1 %>
<% end %>
</tbody>
</table>
<%= submit_tag l(:label_view_diff), :class => 'small' if show_diff %>
<span class="pagination"><%= pagination_links_full @version_pages, @version_count %></span>
<span class="pagination">
<%= pagination_links_full @version_pages, @version_count %>
</span>
<% end %>

View File

@ -1,61 +1,62 @@
<div class="contextual">
<% if @editable %>
<% if @content.current_version? %>
<%= link_to_if_authorized(l(:button_edit), {:action => 'edit', :id => @page.title}, :class => 'icon icon-edit', :accesskey => accesskey(:edit)) %>
<%= watcher_link(@page, User.current) %>
<%= link_to_if_authorized(l(:button_lock), {:action => 'protect', :id => @page.title, :protected => 1}, :method => :post, :class => 'icon icon-lock') if !@page.protected? %>
<%= link_to_if_authorized(l(:button_unlock), {:action => 'protect', :id => @page.title, :protected => 0}, :method => :post, :class => 'icon icon-unlock') if @page.protected? %>
<%= link_to_if_authorized(l(:button_rename), {:action => 'rename', :id => @page.title}, :class => 'icon icon-move') %>
<%= link_to_if_authorized(l(:button_delete), {:action => 'destroy', :id => @page.title}, :method => :delete, :data => {:confirm => l(:text_are_you_sure)}, :class => 'icon icon-del') %>
<% else %>
<%= link_to_if_authorized(l(:button_rollback), {:action => 'edit', :id => @page.title, :version => @content.version }, :class => 'icon icon-cancel') %>
<% end %>
<% end %>
<%= link_to_if_authorized(l(:label_history), {:action => 'history', :id => @page.title}, :class => 'icon icon-history') %>
<% if @editable %>
<% if @content.current_version? %>
<%= link_to_if_authorized(l(:button_edit), {:action => 'edit', :id => @page.title}, :class => 'icon icon-edit', :accesskey => accesskey(:edit)) %>
<%= watcher_link(@page, User.current) %>
<%= link_to_if_authorized(l(:button_lock), {:action => 'protect', :id => @page.title, :protected => 1}, :method => :post, :class => 'icon icon-lock') if !@page.protected? %>
<%= link_to_if_authorized(l(:button_unlock), {:action => 'protect', :id => @page.title, :protected => 0}, :method => :post, :class => 'icon icon-unlock') if @page.protected? %>
<%= link_to_if_authorized(l(:button_rename), {:action => 'rename', :id => @page.title}, :class => 'icon icon-move') %>
<%= link_to_if_authorized(l(:button_delete), {:action => 'destroy', :id => @page.title}, :method => :delete, :data => {:confirm => l(:text_are_you_sure)}, :class => 'icon icon-del') %>
<% else %>
<%= link_to_if_authorized(l(:button_rollback), {:action => 'edit', :id => @page.title, :version => @content.version }, :class => 'icon icon-cancel') %>
<% end %>
<% end %>
<%= link_to_if_authorized(l(:label_history), {:action => 'history', :id => @page.title}, :class => 'icon icon-history') %>
</div>
<%= wiki_page_breadcrumb(@page) %>
<% unless @content.current_version? %>
<p>
<%= link_to(("\xc2\xab " + l(:label_previous)),
:action => 'show', :id => @page.title, :project_id => @page.project,
:version => @content.previous.version) + " - " if @content.previous %>
<%= "#{l(:label_version)} #{@content.version}/#{@page.content.version}" %>
<%= '('.html_safe + link_to(l(:label_diff), :controller => 'wiki', :action => 'diff',
:id => @page.title, :project_id => @page.project,
:version => @content.version) + ')'.html_safe if @content.previous %> -
<%= link_to((l(:label_next) + " \xc2\xbb"), :action => 'show',
:id => @page.title, :project_id => @page.project,
:version => @content.next.version) + " - " if @content.next %>
<%= link_to(l(:label_current_version), :action => 'show', :id => @page.title, :project_id => @page.project, :version => nil) %>
<br />
<em><%= @content.author ? link_to_user(@content.author) : l(:label_user_anonymous)
%>, <%= format_time(@content.updated_on) %> </em><br />
<%=h @content.comments %>
<%= link_to(("\xc2\xab " + l(:label_previous)),
:action => 'show', :id => @page.title, :project_id => @page.project,
:version => @content.previous.version) + " - " if @content.previous %>
<%= "#{l(:label_version)} #{@content.version}/#{@page.content.version}" %>
<%= '('.html_safe + link_to(l(:label_diff), :controller => 'wiki', :action => 'diff',
:id => @page.title, :project_id => @page.project,
:version => @content.version) + ')'.html_safe if @content.previous %> -
<%= link_to((l(:label_next) + " \xc2\xbb"), :action => 'show',
:id => @page.title, :project_id => @page.project,
:version => @content.next.version) + " - " if @content.next %>
<%= link_to(l(:label_current_version), :action => 'show', :id => @page.title, :project_id => @page.project, :version => nil) %>
<br />
<em>
<%= @content.author ? link_to_user(@content.author) : l(:label_user_anonymous)%>,
<%= format_time(@content.updated_on) %>
</em>
<br />
<%=h @content.comments %>
</p>
<hr />
<% end %>
<%= render(:partial => "wiki/content", :locals => {:content => @content}) %>
<%= link_to_attachments @page %>
<% if @editable && authorize_for('wiki', 'add_attachment') %>
<div id="wiki_add_attachment">
<p><%= link_to l(:label_attachment_new), {}, :onclick => "$('#add_attachment_form').show(); return false;",
:id => 'attach_files_link' %></p>
<%= form_tag({:controller => 'wiki', :action => 'add_attachment',
:project_id => @project, :id => @page.title},
:multipart => true, :id => "add_attachment_form",
:style => "display:none;") do %>
<div class="box">
<p><%= render :partial => 'attachments/form' %></p>
</div>
<%= submit_tag l(:button_add) %>
<%= link_to l(:button_cancel), {}, :onclick => "$('#add_attachment_form').hide(); return false;" %>
<% end %>
</div>
<div id="wiki_add_attachment">
<p>
<%= link_to l(:label_attachment_new), {}, :onclick => "$('#add_attachment_form').show(); return false;",
:id => 'attach_files_link' %></p>
<%= form_tag({:controller => 'wiki', :action => 'add_attachment',
:project_id => @project, :id => @page.title},
:multipart => true, :id => "add_attachment_form",
:style => "display:none;") do %>
<div class="box">
<p>
<%= render :partial => 'attachments/form' %>
</p>
</div>
<%= submit_tag l(:button_add) %>
<%= link_to l(:button_cancel), {}, :onclick => "$('#add_attachment_form').hide(); return false;" %>
<% end %>
</div>
<% end %>
<% other_formats_links do |f| %>
@ -63,9 +64,7 @@
<%= f.link_to 'HTML', :url => {:id => @page.title, :version => params[:version]} %>
<%= f.link_to 'TXT', :url => {:id => @page.title, :version => params[:version]} %>
<% end if User.current.allowed_to?(:export_wiki_pages, @project) %>
<% content_for :sidebar do %>
<%= render :partial => 'sidebar' %>
<% end %>
<% html_title @page.pretty_title %>

View File

@ -499,7 +499,7 @@ en:
permission_view_students: View students
permission_export_homeworks: Export homeworks
permission_notificationcomment_contestnotifications: Add the notice of contest comments
permission_upload_attachments: Uploading resource
project_module_issue_tracking: Issue tracking
project_module_time_tracking: Time tracking

View File

@ -497,6 +497,7 @@ zh:
permission_projects_attachments_download: 项目附件下载
permission_course_attachments_download: 课程附件下载
permission_contest_attachments_download: 竞赛附件下载
permission_upload_attachments: 资源上传
project_module_issue_tracking: 问题跟踪
project_module_time_tracking: 时间跟踪
@ -2161,3 +2162,10 @@ zh:
lable_school_list: 学校列表
lable_teacher_evaluation_no: 老师还未进行评价
lable_teacher_evaluation: 作业综评
lable_course_teacher: 主讲老师
lable_course_end: 课程学期已结束
lable_file_sharingarea: 资源共享区
label_no_contest_news_description: 竞赛描述不能为空
label_contest_news_condition: 竞赛描述超过5000个汉字
label_no_contest_news_title: 竞赛标题不能为空
label_contest_news_title_condition: 竞赛标题超过255个汉字

View File

@ -241,6 +241,7 @@ RedmineApp::Application.routes.draw do
match "tag_saveEx" , :via => [:get, :post]
end
member do
match 'user_projects_index', :to => 'users#user_projects_index', :via => :get
match 'user_projects', :to => 'users#user_projects', :via => :get
match 'user_activities', :to => 'users#user_activities', :via => :get, :as => "user_activities"
match 'user_newfeedback', :to => 'users#user_newfeedback', :via => :get, :as => "user_newfeedback"
@ -459,7 +460,8 @@ RedmineApp::Application.routes.draw do
resources :news, :only => [:index, :show, :edit, :update, :destroy]
match '/news/:id/comments', :to => 'comments#create', :via => :post
match '/news/:id/comments/:comment_id', :to => 'comments#destroy', :via => :delete
#match '/news/:id/comments/:comment_id', :to => 'comments#destroy', :via => :delete
delete '/news/:id/comments/:comment_id', :to => 'comments#destroy', as: :delete_news_comments
resources :versions, :only => [:show, :edit, :update, :destroy] do
post 'status_by', :on => :member
@ -592,10 +594,10 @@ RedmineApp::Application.routes.draw do
match 'admin', :to => 'admin#index', :via => :get
match 'admin/projects', :via => :get
match 'admin/users', :via => :get
match 'admin/first_page_made', :via => [:get,:post]
match 'admin/course_page_made', :via => [:get,:post]
match 'admin/contest_page_made', :via => [:get,:post]
match 'admin/web_footer_made', :via => [:get,:post]
match 'admin/first_page_made', as: :first_page_made
match 'admin/course_page_made', as: :course_page_made
match 'admin/contest_page_made', as: :contest_page_made
match 'admin/web_footer_made', as: :web_footer_made
match 'admin/search', :via => [:get, :post]
match 'admin/plugins', :via => :get
match 'admin/info', :via => :get

View File

@ -242,7 +242,7 @@ tags_min_length:
default: 1
tags_max_length:
format: int
default: 30
default: 14
tags_show_search_results:
format: int
default: 5

View File

@ -142,7 +142,7 @@ module Redmine
elsif a && attachment['is_public_checkbox']
a.is_public = true
end
set_attachment_public(a)
set_attachment_public(a) if a
next unless a
a.description = attachment['description'].to_s.strip
a.attachtype = @curattachment_type;

View File

@ -99,6 +99,7 @@ Redmine::AccessControl.map do |map|
map.permission :add_subprojects, {:projects => [:new, :create]}, :require => :member ,:belong_to_project => true
#错的权限,先注释掉
#map.permission :view_journals_for_messages, {:gantts => [:show, :update]}, :read => true
map.permission :upload_attachments,{:attachments => :upload},:require => :loggedin
map.permission :quote_project, {},:require => :member,:belong_to_contest => true
map.permission :is_manager,{},:require => :member ,:belong_to_project => true
@ -159,13 +160,13 @@ Redmine::AccessControl.map do |map|
:queries => :index,
:reports => [:issue_report, :issue_report_details]},
:read => true
map.permission :add_issues, {:issues => [:new, :create, :update_form], :attachments => :upload}
map.permission :edit_issues, {:issues => [:edit, :update, :bulk_edit, :bulk_update, :update_form], :journals => [:new], :attachments => :upload}
map.permission :add_issues, {:issues => [:new, :create, :update_form]}
map.permission :edit_issues, {:issues => [:edit, :update, :bulk_edit, :bulk_update, :update_form], :journals => [:new]}
map.permission :manage_issue_relations, {:issue_relations => [:index, :show, :create, :destroy]}
map.permission :manage_subtasks, {}
map.permission :set_issues_private, {}
map.permission :set_own_issues_private, {}, :require => :loggedin
map.permission :add_issue_notes, {:issues => [:edit, :update, :update_form], :journals => [:new], :attachments => :upload}
map.permission :add_issue_notes, {:issues => [:edit, :update, :update_form], :journals => [:new]}
map.permission :edit_issue_notes, {:journals => :edit}, :require => :loggedin
map.permission :edit_own_issue_notes, {:journals => :edit}, :require => :loggedin
map.permission :view_private_notes, {}, :read => true, :require => :member
@ -415,9 +416,25 @@ Redmine::MenuManager.map :course_menu do |menu|
end
Redmine::MenuManager.map :user_menu do |menu|
menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.user_domain }
menu.push :user_course, {:controller => 'users', :action => 'user_courses'},:if => Proc.new {|c| FirstPage.find_by_page_type('project').show_course != 2}
menu.push :user_course, {:controller => 'users', :action => 'user_courses'},
:if => Proc.new {|u| if User.current == u || User.current.admin?
membership = u.coursememberships.all
else
membership = u.coursememberships.all(:conditions => Course.visible_condition(User.current))
end
FirstPage.find_by_page_type('project').show_course != 2 && membership && membership.count > 0
}
#menu.push :user_homework, {:controller => 'users', :action => 'user_homeworks'} by huang
menu.push :user_project, {:controller => 'users', :action => 'user_projects', :host => Setting.project_domain}
menu.push :user_project, {:controller => 'users', :action => 'user_projects_index', :host => Setting.project_domain},
:if => Proc.new {|u| if User.current.admin?
memberships = u.memberships.all(conditions: "projects.project_type = #{Project::ProjectType_project}").first
else
cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1"
memberships = u.memberships.all(:conditions => cond).first
end
watch_projects = Project.joins(:watchers).where("project_type <>? and watchable_type = ? and `watchers`.user_id = ?", '1','Project', u.id).first
memberships || watch_projects
}
# menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids'} by huang
menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.user_domain}

View File

@ -216,7 +216,7 @@ module Redmine
# * Checking the url target (project only)
# * Checking the conditions of the item
def allowed_node?(node, user, project)
if project && user && !user.allowed_to?(node.url, project)
if project && project.is_a?(Project) && user && !user.allowed_to?(node.url, project)
return false
end
if node.condition && !node.condition.call(project)

View File

@ -69,6 +69,10 @@ function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
})
.fail(function(result) {
progressSpan.text(result.statusText);
if($("#network_issue"))
{
$("#network_issue").show();
}
}).always(function() {
ajaxUpload.uploading--;
fileSpan.removeClass('ajax-loading');

View File

@ -1,160 +1,160 @@
.overlay_mac_os_x_dialog {
background-color: #FF7224;
filter:alpha(opacity=60);
-moz-opacity: 0.6;
opacity: 0.6;
}
.mac_os_x_dialog_nw {
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
width:16px;
height:16px;
}
.mac_os_x_dialog_n {
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
height:18px;
}
.mac_os_x_dialog_ne {
background: transparent url(mac_os_x_dialog/R.png) repeat-y top left;
width:16px;
height:16px;
}
.mac_os_x_dialog_w {
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
width:16px;
}
.mac_os_x_dialog_e {
background: transparent url(mac_os_x_dialog/R.png) repeat-y top right;
width:16px;
}
.mac_os_x_dialog_sw {
background: transparent url(mac_os_x_dialog/BL.png) no-repeat 0 0;
width:31px;
height:40px;
}
.mac_os_x_dialog_s {
background: transparent url(mac_os_x_dialog/B.png) repeat-x 0 0;
height:40px;
}
.mac_os_x_dialog_se, .mac_os_x_dialog_sizer {
background: transparent url(mac_os_x_dialog/BR.png) no-repeat 0 0;
width:31px;
height:40px;
}
.mac_os_x_dialog_sizer {
cursor:se-resize;
}
.mac_os_x_dialog_close {
width: 19px;
height: 19px;
background: transparent url(mac_os_x_dialog/close.gif) no-repeat 0 0;
position:absolute;
top:12px;
left:25px;
cursor:pointer;
z-index:1000;
}
.mac_os_x_dialog_minimize {
width: 19px;
height: 19px;
background: transparent url(mac_os_x_dialog/minimize.gif) no-repeat 0 0;
position:absolute;
top:12px;
left:45px;
cursor:pointer;
z-index:1000;
}
.mac_os_x_dialog_maximize {
width: 19px;
height: 19px;
background: transparent url(mac_os_x_dialog/maximize.gif) no-repeat 0 0;
position:absolute;
top:12px;
left:65px;
cursor:pointer;
z-index:1000;
}
.mac_os_x_dialog_title {
float:left;
height:14px;
font-family: Tahoma, Arial, sans-serif;
font-size:12px;
text-align:center;
margin-top:6px;
width:100%;
color:#000;
}
.mac_os_x_dialog_content {
overflow:auto;
color: #222;
font-family: Tahoma, Arial, sans-serif;
font-size: 10px;
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
}
.mac_os_x_dialog_buttons {
text-align: center;
}
/* FOR IE */
* html .mac_os_x_dialog_nw {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_ne {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_w {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_e {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_sw {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BL.png", sizingMethod="crop");
}
* html .mac_os_x_dialog_s {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/B.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_se {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop");
}
* html .mac_os_x_dialog_sizer {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop");
}
.overlay_mac_os_x_dialog {
background-color: #FF7224;
filter:alpha(opacity=60);
-moz-opacity: 0.6;
opacity: 0.6;
}
.mac_os_x_dialog_nw {
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
width:16px;
height:16px;
}
.mac_os_x_dialog_n {
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
height:18px;
}
.mac_os_x_dialog_ne {
background: transparent url(mac_os_x_dialog/R.png) repeat-y top left;
width:16px;
height:16px;
}
.mac_os_x_dialog_w {
background: transparent url(mac_os_x_dialog/L.png) repeat-y top left;
width:16px;
}
.mac_os_x_dialog_e {
background: transparent url(mac_os_x_dialog/R.png) repeat-y top right;
width:16px;
}
.mac_os_x_dialog_sw {
background: transparent url(mac_os_x_dialog/BL.png) no-repeat 0 0;
width:31px;
height:40px;
}
.mac_os_x_dialog_s {
background: transparent url(mac_os_x_dialog/B.png) repeat-x 0 0;
height:40px;
}
.mac_os_x_dialog_se, .mac_os_x_dialog_sizer {
background: transparent url(mac_os_x_dialog/BR.png) no-repeat 0 0;
width:31px;
height:40px;
}
.mac_os_x_dialog_sizer {
cursor:se-resize;
}
.mac_os_x_dialog_close {
width: 19px;
height: 19px;
background: transparent url(mac_os_x_dialog/close.gif) no-repeat 0 0;
position:absolute;
top:12px;
left:25px;
cursor:pointer;
z-index:1000;
}
.mac_os_x_dialog_minimize {
width: 19px;
height: 19px;
background: transparent url(mac_os_x_dialog/minimize.gif) no-repeat 0 0;
position:absolute;
top:12px;
left:45px;
cursor:pointer;
z-index:1000;
}
.mac_os_x_dialog_maximize {
width: 19px;
height: 19px;
background: transparent url(mac_os_x_dialog/maximize.gif) no-repeat 0 0;
position:absolute;
top:12px;
left:65px;
cursor:pointer;
z-index:1000;
}
.mac_os_x_dialog_title {
float:left;
height:14px;
font-family: Tahoma, Arial, sans-serif;
font-size:12px;
text-align:center;
margin-top:6px;
width:100%;
color:#000;
}
.mac_os_x_dialog_content {
overflow:auto;
color: #222;
font-family: Tahoma, Arial, sans-serif;
font-size: 10px;
background: transparent url(mac_os_x_dialog/bg.gif) repeat 0 0;
}
.mac_os_x_dialog_buttons {
text-align: center;
}
/* FOR IE */
* html .mac_os_x_dialog_nw {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_ne {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_w {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/L.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_e {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/R.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_sw {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BL.png", sizingMethod="crop");
}
* html .mac_os_x_dialog_s {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/B.png", sizingMethod="scale");
}
* html .mac_os_x_dialog_se {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop");
}
* html .mac_os_x_dialog_sizer {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x_dialog/BR.png", sizingMethod="crop");
}

View File

@ -1,164 +1,164 @@
.overlay_nuncio img { border: none; }
.overlay_nuncio {
background-color: #666666;
}
.nuncio_nw {
width: 12px;
height: 28px;
background: url(nuncio/top_left.png) no-repeat;
}
.nuncio_n {
background: url(nuncio/top_mid.png) repeat-x;
height: 28px;
}
.nuncio_ne {
width: 21px;
height: 28px;
background: url(nuncio/top_right.png) no-repeat;
}
.nuncio_e {
width: 21px;
background: url(nuncio/center_right.png) repeat-y top right;
}
.nuncio_w {
width: 12px;
background: url(nuncio/center_left.png) repeat-y top left;
}
.nuncio_sw {
width: 12px;
height: 18px;
background: url(nuncio/bottom_left.png) no-repeat;
}
.nuncio_s {
background: url(nuncio/bottom_mid.png) repeat-x 0 0;
height: 18px;
}
.nuncio_se, .nuncio_sizer {
width: 21px;
height: 18px;
background: url(nuncio/bottom_right.png) no-repeat;
}
.nuncio_close {
width: 14px;
height: 14px;
background: url(nuncio/close.png) no-repeat;
position:absolute;
top:10px;
right:22px;
cursor:pointer;
z-index:2000;
}
.nuncio_minimize {
width: 14px;
height: 15px;
background: url(nuncio/minimize.png) no-repeat;
position:absolute;
top:10px;
right:40px;
cursor:pointer;
z-index:2000;
}
.nuncio_title {
float:left;
font-size:11px;
font-weight: bold;
font-style: italic;
color: #fff;
width: 100%
}
.nuncio_content {
background: url(nuncio/overlay.png) repeat;
overflow:auto;
color: #ddd;
font-family: Tahoma, Arial, "sans-serif";
font-size: 10px;
}
.nuncio_sizer {
cursor:se-resize;
}
.top_draggable, .bottom_draggable {
cursor:move
}
/* FOR IE */
* html .nuncio_nw {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_left.png", sizingMethod="crop");
}
* html .nuncio_n {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_mid.png", sizingMethod="scale");
}
* html .nuncio_ne {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_right.png", sizingMethod="crop");
}
* html .nuncio_w {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_left.png", sizingMethod="scale");
}
* html .nuncio_e {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_right.png", sizingMethod="scale");
}
* html .nuncio_sw {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_left.png", sizingMethod="crop");
}
* html .nuncio_s {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_mid.png", sizingMethod="scale");
}
* html .nuncio_se {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
}
* html .nuncio_sizer {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
}
* html .nuncio_close {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/close.png", sizingMethod="crop");
}
* html .nuncio_minimize {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/minimize.png", sizingMethod="crop");
}
.overlay_nuncio img { border: none; }
.overlay_nuncio {
background-color: #666666;
}
.nuncio_nw {
width: 12px;
height: 28px;
background: url(nuncio/top_left.png) no-repeat;
}
.nuncio_n {
background: url(nuncio/top_mid.png) repeat-x;
height: 28px;
}
.nuncio_ne {
width: 21px;
height: 28px;
background: url(nuncio/top_right.png) no-repeat;
}
.nuncio_e {
width: 21px;
background: url(nuncio/center_right.png) repeat-y top right;
}
.nuncio_w {
width: 12px;
background: url(nuncio/center_left.png) repeat-y top left;
}
.nuncio_sw {
width: 12px;
height: 18px;
background: url(nuncio/bottom_left.png) no-repeat;
}
.nuncio_s {
background: url(nuncio/bottom_mid.png) repeat-x 0 0;
height: 18px;
}
.nuncio_se, .nuncio_sizer {
width: 21px;
height: 18px;
background: url(nuncio/bottom_right.png) no-repeat;
}
.nuncio_close {
width: 14px;
height: 14px;
background: url(nuncio/close.png) no-repeat;
position:absolute;
top:10px;
right:22px;
cursor:pointer;
z-index:2000;
}
.nuncio_minimize {
width: 14px;
height: 15px;
background: url(nuncio/minimize.png) no-repeat;
position:absolute;
top:10px;
right:40px;
cursor:pointer;
z-index:2000;
}
.nuncio_title {
float:left;
font-size:11px;
font-weight: bold;
font-style: italic;
color: #fff;
width: 100%
}
.nuncio_content {
background: url(nuncio/overlay.png) repeat;
overflow:auto;
color: #ddd;
font-family: Tahoma, Arial, "sans-serif";
font-size: 10px;
}
.nuncio_sizer {
cursor:se-resize;
}
.top_draggable, .bottom_draggable {
cursor:move
}
/* FOR IE */
* html .nuncio_nw {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_left.png", sizingMethod="crop");
}
* html .nuncio_n {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_mid.png", sizingMethod="scale");
}
* html .nuncio_ne {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_right.png", sizingMethod="crop");
}
* html .nuncio_w {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_left.png", sizingMethod="scale");
}
* html .nuncio_e {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_right.png", sizingMethod="scale");
}
* html .nuncio_sw {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_left.png", sizingMethod="crop");
}
* html .nuncio_s {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_mid.png", sizingMethod="scale");
}
* html .nuncio_se {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
}
* html .nuncio_sizer {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
}
* html .nuncio_close {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/close.png", sizingMethod="crop");
}
* html .nuncio_minimize {
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/minimize.png", sizingMethod="crop");
}

View File

@ -1,108 +1,108 @@
.overlay_spread {
background-color: #85BBEF;
filter:alpha(opacity=60);
-moz-opacity: 0.6;
opacity: 0.6;
}
.spread_nw {
background: transparent url(spread/left-top.gif) no-repeat 0 0;
width:10px;
height:25px;
}
.spread_n {
background: transparent url(spread/top-middle.gif) repeat-x 0 0;
height:25px;
}
.spread_ne {
background: transparent url(spread/right-top.gif) no-repeat 0 0;
width:10px;
height:25px;
}
.spread_w {
background: transparent url(spread/frame-left.gif) repeat-y top left;
width:7px;
}
.spread_e {
background: transparent url(spread/frame-right.gif) repeat-y top right;
width:7px;
}
.spread_sw {
background: transparent url(spread/bottom-left-c.gif) no-repeat 0 0;
width:7px;
height:7px;
}
.spread_s {
background: transparent url(spread/bottom-middle.gif) repeat-x 0 0;
height:7px;
}
.spread_se, .spread_sizer {
background: transparent url(spread/bottom-right-c.gif) no-repeat 0 0;
width:7px;
height:7px;
}
.spread_sizer {
cursor:se-resize;
}
.spread_close {
width: 23px;
height: 23px;
background: transparent url(spread/button-close-focus.gif) no-repeat 0 0;
position:absolute;
top:0px;
right:11px;
cursor:pointer;
z-index:1000;
}
.spread_minimize {
width: 23px;
height: 23px;
background: transparent url(spread/button-min-focus.gif) no-repeat 0 0;
position:absolute;
top:0px;
right:55px;
cursor:pointer;
z-index:1000;
}
.spread_maximize {
width: 23px;
height: 23px;
background: transparent url(spread/button-max-focus.gif) no-repeat 0 0;
position:absolute;
top:0px;
right:33px;
cursor:pointer;
z-index:1000;
}
.spread_title {
float:left;
height:14px;
font-family: Tahoma, Arial, sans-serif;
font-size:14px;
font-weight:bold;
text-align:left;
margin-top:2px;
width:100%;
color:#E47211;
}
.spread_content {
overflow:auto;
color: #222;
font-family: Tahoma, Arial, sans-serif;
font-size: 10px;
background:#A9EA00;
}
.overlay_spread {
background-color: #85BBEF;
filter:alpha(opacity=60);
-moz-opacity: 0.6;
opacity: 0.6;
}
.spread_nw {
background: transparent url(spread/left-top.gif) no-repeat 0 0;
width:10px;
height:25px;
}
.spread_n {
background: transparent url(spread/top-middle.gif) repeat-x 0 0;
height:25px;
}
.spread_ne {
background: transparent url(spread/right-top.gif) no-repeat 0 0;
width:10px;
height:25px;
}
.spread_w {
background: transparent url(spread/frame-left.gif) repeat-y top left;
width:7px;
}
.spread_e {
background: transparent url(spread/frame-right.gif) repeat-y top right;
width:7px;
}
.spread_sw {
background: transparent url(spread/bottom-left-c.gif) no-repeat 0 0;
width:7px;
height:7px;
}
.spread_s {
background: transparent url(spread/bottom-middle.gif) repeat-x 0 0;
height:7px;
}
.spread_se, .spread_sizer {
background: transparent url(spread/bottom-right-c.gif) no-repeat 0 0;
width:7px;
height:7px;
}
.spread_sizer {
cursor:se-resize;
}
.spread_close {
width: 23px;
height: 23px;
background: transparent url(spread/button-close-focus.gif) no-repeat 0 0;
position:absolute;
top:0px;
right:11px;
cursor:pointer;
z-index:1000;
}
.spread_minimize {
width: 23px;
height: 23px;
background: transparent url(spread/button-min-focus.gif) no-repeat 0 0;
position:absolute;
top:0px;
right:55px;
cursor:pointer;
z-index:1000;
}
.spread_maximize {
width: 23px;
height: 23px;
background: transparent url(spread/button-max-focus.gif) no-repeat 0 0;
position:absolute;
top:0px;
right:33px;
cursor:pointer;
z-index:1000;
}
.spread_title {
float:left;
height:14px;
font-family: Tahoma, Arial, sans-serif;
font-size:14px;
font-weight:bold;
text-align:left;
margin-top:2px;
width:100%;
color:#E47211;
}
.spread_content {
overflow:auto;
color: #222;
font-family: Tahoma, Arial, sans-serif;
font-size: 10px;
background:#A9EA00;
}

View File

@ -1820,6 +1820,17 @@ html>body .tabular p {overflow:hidden;}
font-size: 12px;
}
.role label{
font-weight: bold;
float: left;
text-align: right;
/* width of left column */
margin-left: -60px;
/* width of labels. Should be smaller than left column to create some right margin */
width: 175px;
font-size: 12px;
}
.tabular label.floating{
font-weight: normal;
margin-left: 0px;

View File

@ -467,6 +467,12 @@ a.attachments_list_color {
font-size: 10pt;
}
.new-watcher{
-webkit-border-radius: 5px;
border-radius: 5px;
box-shadow: 0px 0px 8px #194a81;
}
/************************** 贴吧动态 结束 ****************************/
/************************** 学校课程 开始 ****************************/
.course{