Merge branch 'szzh' into develop

Homework v20141029
sw 11 years ago
commit 27ad952c50

@ -8,6 +8,7 @@ class CoursesController < ApplicationController
menu_item :overview
menu_item :feedback, :only => :feedback
menu_item :homework, :only => :homework
menu_item :new_homework
menu_item l(:label_sort_by_time), :only => :index
menu_item l(:label_sort_by_active), :only => :index

@ -44,7 +44,7 @@ class DocumentsController < ApplicationController
@grouped = documents.group_by {|d| d.title.first.upcase}
when 'author'
# @grouped = documents.select{|d| d.attachments.any?}.group_by {|d| d.attachments.last.author}
@grouped = documents.group_by {|d| d.user.name }
@grouped = documents.group_by(&:user)
else
@grouped = documents.group_by(&:category)
end

@ -16,7 +16,11 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class FilesController < ApplicationController
layout 'base_projects'#by young
if @project
layout 'base_projects' #by young
else
layout 'base_courses'
end
menu_item :files
before_filter :find_project_by_project_id#, :except => [:getattachtype]
@ -122,6 +126,7 @@ class FilesController < ApplicationController
end
end
end
@containers = [ Course.includes(:attachments).reorder(sort).find(@course.id)]
show_attachments @containers
@ -261,20 +266,63 @@ class FilesController < ApplicationController
'filename' => "#{Attachment.table_name}.filename",
'size' => "#{Attachment.table_name}.filesize",
'downloads' => "#{Attachment.table_name}.downloads"
sort=''
if params[:sort]
params[:sort].split(",").each do |sort_type|
order_by = sort_type.split(":")
case order_by[0]
when "filename"
attribute = "filename"
when "size"
attribute = "filesize"
when "attach_type"
attribute = "attachtype"
when "content_type"
attribute = "created_on"
when "field_file_dense"
attribute = "is_public"
when "downloads"
attribute = "downloads"
when "created_on"
attribute = "created_on"
end
if order_by.count == 1
sort += "#{Attachment.table_name}.#{attribute} asc "
elsif order_by.count == 2
sort += "#{Attachment.table_name}.#{attribute} #{order_by[1]} "
end
if sort_type != params[:sort].split(",").last
sort += ","
end
end
end
if @project
@isproject = true
@containers = [ Project.includes(:attachments).reorder("#{Attachment.table_name}.created_on DESC").find(@project.id)]
@containers += @project.versions.includes(:attachments).reorder("#{Attachment.table_name}.created_on DESC").all.sort
elsif @course
@containers = [ Course.includes(:attachments).reorder("#{Attachment.table_name}.created_on DESC").find(@course.id)]
end
show_attachments @containers
@containers += @project.versions.includes(:attachments).reorder(sort).all
#render :layout => 'base_projects'
elsif @course
@isproject = false
@containers = [ Course.includes(:attachments).reorder(sort).find(@course.id)]
# show_attachments @containers
# @attachtype = params[:type].to_i
# @contenttype = params[:contentType].to_s
end
show_attachments @containers
@attachtype = params[:type].to_i
@contenttype = params[:contentType].to_s
respond_to do |format|
format.js
format.html
end
end
end

File diff suppressed because it is too large Load Diff

@ -56,12 +56,12 @@ class SoftapplicationsController < ApplicationController
stars_status = stars_reates.select("stars, count(*) as scount").
group("stars")
@stars_status_map = Hash.new(0.0)
@stars_status_map = Hash.new(0)
stars_status.each do |star_status|
percent = percent_of(star_status.scount, stars_reates_count).to_f
percent_m = format("%.2f", percent)
people = star_status.scount.to_i
@stars_status_map["star#{star_status.stars.to_i}".to_sym] =
percent_m.to_s + "%"
people.to_s
end
@jours = @softapplication.journals_for_messages.order('created_on DESC')
@image_results = []

@ -38,24 +38,41 @@ class TagsController < ApplicationController
@obj_id = params[:obj_id]
@obj_flag = params[:object_flag]
@selected_tags = Array.new
@selected_tags = Array.new
@selected_tag_ids = Array.new
@selected_tag_objs = Array.new
@related_tags = nil
if params[:q]
@selected_tags << params[:q]
@related_tag_ids = Array.new
@related_tag_objs = Array.new
if params[:q]
@tag = ActsAsTaggableOn::Tag.find(params[:q])
@selected_tags << @tag.name
@selected_tag_ids << @tag.id.to_s
@selected_tag_objs << @tag
else
@do_what = params[:do_what]
@tag = params[:tag]
@selected_tags = params[:current_selected_tags]
@selected_tags = @selected_tags.nil? ? Array.new : @selected_tags
@tag = ActsAsTaggableOn::Tag.find(params[:tag])
#@selected_tags = params[:current_selected_tags]
@selected_tag_ids = params[:current_selected_tags]
@selected_tag_ids = @selected_tag_ids.nil? ? Array.new : @selected_tag_ids
@selected_tag_ids.each do |t|
ta = ActsAsTaggableOn::Tag.find(t)
@selected_tags << ta.name
@selected_tag_objs << ta
end
#@selected_tags = @selected_tags.nil? ? Array.new : @selected_tags
case @do_what
when '0' then
@selected_tags.delete @tag #数组中删除有多方式 可以改用shift,pop
@selected_tags.delete @tag.name #数组中删除有多方式 可以改用shift,pop
@selected_tag_ids.delete @tag.id.to_s
@selected_tag_objs.delete @tag
when '1' then
# 判断是否已存在该tag 主要用来处理分页的情况
unless @selected_tags.include? @tag
@selected_tags << @tag
unless @selected_tags.include? @tag.name
@selected_tags << @tag.name
@selected_tag_ids << @tag.id.to_s
@selected_tag_objs << @tag
end
end
end
@ -75,7 +92,7 @@ class TagsController < ApplicationController
@attachments_results,
@contests_results,
@courses_results,
@open_source_projects_results= refresh_results(@obj_id,@obj_flag,@selected_tags)
@open_source_projects_results= refresh_results(@obj_id,@obj_flag,@selected_tags,@selected_tag_ids)
# 这里是做tag推荐用的 用来生产推荐的tags
unless @obj.nil?
@ -85,6 +102,13 @@ class TagsController < ApplicationController
# @tags.delete(i)
# end
@related_tags = @tags
@tag_objs = @obj.tags
@tag_objs.each do |t|
unless @selected_tags.include?(t.name)
@related_tag_ids << t.id.to_s
@related_tag_objs << t
end
end
else
return
end
@ -162,8 +186,8 @@ class TagsController < ApplicationController
if request.get?
# 获取传过来的tag_id taggable_id 和 taggable_type,通过2者确定要删除tag的对象
@tag_name = params[:tag_name]
@tag_id = (ActsAsTaggableOn::Tag.find_by_name(@tag_name)).id
@tag_id = params[:tag_name]
@tag_name = (ActsAsTaggableOn::Tag.find(@tag_id)).name
@taggable_id = params[:taggable_id] # 当做参数传时对象会变成字符串
@taggable_type = numbers_to_object_type(params[:taggable_type])
@ -192,7 +216,7 @@ class TagsController < ApplicationController
private
# 这里用来刷新搜索结果的区域
# 函数的返回值 前2字段用来处理获取其他tag和分页 另外4个返回值为过滤结果
def refresh_results(obj_id,obj_flag,selected_tags)
def refresh_results(obj_id,obj_flag,selected_tags,selected_tag_ids = nil)
@users_results = nil
@projects_results = nil
@issues_results = nil
@ -210,36 +234,36 @@ class TagsController < ApplicationController
case obj_flag
when '1' then
@obj = User.find_by_id(obj_id)
@obj_pages,@users_results,@results_count = for_pagination(get_users_by_tag(selected_tags))
@obj_pages,@users_results,@results_count = for_pagination(get_users_by_tag(selected_tags,selected_tag_ids))
when '2' then
@obj = Project.find_by_id(obj_id)
@obj_pages,@projects_results,@results_count = for_pagination(get_projects_by_tag(selected_tags))
@obj_pages,@projects_results,@results_count = for_pagination(get_projects_by_tag(selected_tags,selected_tag_ids))
when '3' then
@obj = Issue.find_by_id(obj_id)
@obj_pages,@issues_results,@results_count = for_pagination(get_issues_by_tag(selected_tags))
@obj_pages,@issues_results,@results_count = for_pagination(get_issues_by_tag(selected_tags,selected_tag_ids))
when '4' then
@obj_pages,@bids_results,@results_count = for_pagination(get_bids_by_tag(selected_tags))
@obj_pages,@bids_results,@results_count = for_pagination(get_bids_by_tag(selected_tags,selected_tag_ids))
@obj = Bid.find_by_id(obj_id)
when '5'
@obj = Forum.find_by_id(obj_id)
@obj_pages,@forums_results,@results_count = for_pagination(get_forums_by_tag(selected_tags))
@obj_pages,@forums_results,@results_count = for_pagination(get_forums_by_tag(selected_tags,selected_tag_ids))
when '6'
@obj = Attachment.find_by_id(obj_id)
# modifed by Long Jun
# this is used to find the attachments that came from the same project and tagged with the same tag.
#@result = get_attachments_by_project_tag(selected_tags, @obj)
@result = get_attachments_by_tag(selected_tags)
@result = get_attachments_by_tag(selected_tags,selected_tag_ids)
@obj_pages, @attachments_results, @results_count = for_pagination(@result)
when '7'
@obj = Contest.find_by_id(obj_id)
@obj_pages,@contests_results,@results_count = for_pagination(get_contests_by_tag(selected_tags))
@obj_pages,@contests_results,@results_count = for_pagination(get_contests_by_tag(selected_tags,selected_tag_ids))
when '8'
@obj = OpenSourceProject.find_by_id(obj_id)
@obj_pages, @open_source_projects_results, @results_count = for_pagination(get_open_source_projects_by_tag(selected_tags))
@obj_pages, @open_source_projects_results, @results_count = for_pagination(get_open_source_projects_by_tag(selected_tags,selected_tag_ids))
when '9' then
@obj = Course.find_by_id(obj_id)
@obj_pages, @courses_results, @results_count = for_pagination(get_courses_by_tag(selected_tags))
@obj_pages, @courses_results, @results_count = for_pagination(get_courses_by_tag(selected_tags,selected_tag_ids))
else
@obj = nil
end

@ -236,11 +236,10 @@ class WordsController < ApplicationController
#modify by nwb
#添加对课程留言的支持
referer = request.headers["Referer"]
#referer = "http://forge.trustie.net/words/create_reply"
obj_id = referer.match(%r(/([0-9]{1,})(/|\?|$)))[1]
if referer.match(/project/)
obj = Project.find_by_id(obj_id)
elsif referer.match(/course/)
obj = Course.find_by_id(obj_id)
elsif referer.match(/user/)
obj = User.find_by_id(obj_id)
elsif ( referer.match(/bids/) || referer.match(/calls/) )
@ -251,6 +250,8 @@ class WordsController < ApplicationController
obj = Softapplication.find_by_id(obj_id)
elsif ( referer.match(/homework_attach/) || referer.match(/homework_attach/) ) #new added
obj = HomeworkAttach.find_by_id(obj_id)
elsif referer.match(/course/)
obj = Course.find_by_id(obj_id)
else
raise "create reply obj unknow type.#{referer}"
end

@ -110,7 +110,7 @@ class ZipdownController < ApplicationController
#length = attach.storage_path.length
homeworks_attach_path << attach.diskfile#.to_s.slice((length+1)..-1)
end
zipping("#{homeattach.user.name.to_s}_#{Time.now.to_i}.zip", homeworks_attach_path, OUTPUT_FOLDER, true)
zipping("#{user.user_extensions.student_id}_#{homeattach.user.name.to_s}.zip", homeworks_attach_path, OUTPUT_FOLDER, true)
#user_attaches_paths
#end
end

@ -460,6 +460,7 @@ module ApplicationHelper
project_tree(projects) do |project, level|
name_prefix = (level > 0 ? '&nbsp;' * 2 * level + '&#187; ' : '').html_safe
tag_options = {:value => project.id}
tag_options[:title] = project.name
if project == options[:selected] || (options[:selected].respond_to?(:include?) && options[:selected].include?(project))
tag_options[:selected] = 'selected'
else

@ -75,8 +75,8 @@ module AttachmentsHelper
# this method is used to get all projects that tagged one tag
# added by william
def get_attachments_by_tag(tag_name)
Attachment.tagged_with(tag_name).order('created_on desc')
def get_attachments_by_tag(tag_name,selected_tag_ids = nil)
Attachment.tagged_with(tag_name,{},selected_tag_ids).order('created_on desc')
end
# this method is used to get all attachments that from one project and tagged one tag

@ -35,8 +35,8 @@ module BidsHelper
# this method is used to get all projects that tagged one tag
# added by william
def get_bids_by_tag(tag_name)
Bid.tagged_with(tag_name).order('updated_on desc')
def get_bids_by_tag(tag_name,selected_tag_ids = nil)
Bid.tagged_with(tag_name,{},selected_tag_ids).order('updated_on desc')
end
#added by huang

@ -35,8 +35,8 @@ module ContestsHelper
# this method is used to get all projects that tagged one tag
# added by william
def get_contests_by_tag(tag_name)
Contest.tagged_with(tag_name).order('updated_on desc')
def get_contests_by_tag(tag_name,selected_tag_ids = nil)
Contest.tagged_with(tag_name,{},selected_tag_ids).order('updated_on desc')
end
#added by huang

@ -219,7 +219,7 @@ module CoursesHelper
def render_course_hierarchy(courses)
render_course_nested_lists(courses) do |course|
s = link_to_course(course, {}, :class => "#{course.css_classes} #{User.current.member_of?(course) ? 'my-course' : nil}").html_safe
s = link_to_course(course, {}, :class => "#{course.css_classes} #{User.current.member_of_course?(course) ? 'my-course' : nil}").html_safe
s
end
end
@ -449,8 +449,8 @@ module CoursesHelper
return homework_users
end
def get_courses_by_tag(tag_name)
Course.tagged_with(tag_name).order('updated_at desc')
def get_courses_by_tag(tag_name,selected_tag_ids = nil)
Course.tagged_with(tag_name,{},selected_tag_ids).order('updated_at desc')
end
#课程实践年份下拉框

@ -22,7 +22,7 @@ module ForumsHelper
# this method is used to get all projects that tagged one tag
# added by william
def get_forums_by_tag(tag_name)
Forum.tagged_with(tag_name).order('updated_at desc')
def get_forums_by_tag(tag_name,selected_tag_ids = nil)
Forum.tagged_with(tag_name,{},selected_tag_ids).order('updated_at desc')
end
end

@ -382,8 +382,8 @@ module IssuesHelper
# this method is used to get all projects that tagged one tag
# added by william
def get_issues_by_tag(tag_name)
Issue.tagged_with(tag_name).order('updated_on desc')
def get_issues_by_tag(tag_name,selected_tag_ids = nil)
Issue.tagged_with(tag_name,{},selected_tag_ids).order('updated_on desc')
end
end

@ -31,8 +31,8 @@ module OpenSourceProjectsHelper
s = content_tag('div', s, :class => 'user_tags')
end
def get_open_source_projects_by_tag(tag_name)
OpenSourceProject.tagged_with(tag_name).order('created_at desc')
def get_open_source_projects_by_tag(tag_name,selected_tag_ids = nil)
OpenSourceProject.tagged_with(tag_name,{},selected_tag_ids).order('created_at desc')
end
def show_origin(url)

@ -232,8 +232,8 @@ module ProjectsHelper
# this method is used to get all projects that tagged one tag
# added by william
def get_projects_by_tag(tag_name)
Project.tagged_with(tag_name).order('updated_on desc')
def get_projects_by_tag(tag_name,selected_tag_ids = nil)
Project.tagged_with(tag_name,{},selected_tag_ids).order('updated_on desc')
end
# added by fq

@ -57,8 +57,8 @@ module UsersHelper
# this method is used to get all projects that tagged one tag
# added by william
def get_users_by_tag(tag_name)
User.tagged_with(tag_name).order('updated_on desc')
def get_users_by_tag(tag_name,selected_tag_ids = nil)
User.tagged_with(tag_name,{},selected_tag_ids).order('updated_on desc')
end
# added by fq

@ -137,6 +137,11 @@ class IssueQuery < Query
:type => :list_optional, :values => role_values
) unless role_values.empty?
#done_values = [10,20,30,40,50,60,70,80,90,100]
#add_available_filter("done_ratio_111",
# :type => :list_optional, :values => done_values
#)
if versions.any?
add_available_filter "fixed_version_id",
:type => :list_optional,

@ -26,7 +26,11 @@
<%= back_url_hidden_field_tag %>
<table>
<tr>
<td align="right"><label for="username"><%=l(:lable_user_name)%>:</label></td>
<td align="right">
<label for="username">
<%=l(:lable_user_name)%>:
</label>
</td>
<td align="left">
<%= text_field_tag 'username', params[:username], :tabindex => '1' , :value => "#{l(:label_login_prompt)}",
:onfocus => "clearInfo('username','#{l(:label_login_prompt)}')",
@ -35,33 +39,48 @@
</td>
</tr>
<tr>
<td align="right"><label for="password"><%=l(:field_password)%>:</label></td>
<td align="left"><%= password_field_tag 'password', nil, :tabindex => '2' %></td>
<td align="right">
<label for="password">
<%=l(:field_password)%>:
</label>
</td>
<td align="left">
<%= password_field_tag 'password', nil, :tabindex => '2' %>
</td>
</tr>
<% if Setting.openid? %>
<tr>
<td align="right"><label for="openid_url"><%=l(:field_identity_url)%></label></td>
<td align="left"><%= text_field_tag "openid_url", nil, :tabindex => '3' %></td>
<td align="right">
<label for="openid_url">
<%=l(:field_identity_url)%>
</label>
</td>
<td align="left">
<%= text_field_tag "openid_url", nil, :tabindex => '3' %>
</td>
</tr>
<% end %>
<tr>
<td></td>
<td align="left">
<% if Setting.autologin? %>
<label for="autologin"><%= check_box_tag 'autologin', 1, false, :tabindex => 4 %> <%= l(:label_stay_logged_in) %></label>
<label for="autologin">
<%= check_box_tag 'autologin', 1, false, :tabindex => 4 %>
<%= l(:label_stay_logged_in) %>
</label>
<% end %>
</td>
</tr>
<tr>
<td colspan="2" >
<span style="float: left"><% if Setting.lost_password? %>
<span style="float: left">
<% if Setting.lost_password? %>
<%= link_to l(:label_password_lost), lost_password_path %>
<% end %></span>
<span style="float: right">
<input type="submit" class="small" name="login" value="<%=l(:button_login)%> &#187;" tabindex="5"/></span>
</td>
</tr>
</table>

@ -1,101 +1,101 @@
<h3><%= @author.nil? ? l(:label_activity) : l(:label_user_activity, link_to_user(@author)).html_safe %></h3>
<p class="subtitle">
<%= l(:label_date_from_to, :start => format_date(@date_to - @days), :end => format_date(@date_to-1)) %>
</p>
<div id="activity">
<% @events_by_day.keys.sort.reverse.each do |day| %>
<h3></h3>
<div>
<% sort_activity_events(@events_by_day[day]).each do |e, in_group| -%>
<div class="issue-note">
<table width="660px" border="0" align="center">
<tr>
<td colspan="2" valign="top" width="50" >
<!--img src="/images/new/user.jpg" width="40" height="40"/-->
<%= image_tag(url_to_avatar(e.event_author), :class => "avatar") %>
</td>
<td>
<table width="580px" border="0">
<tr>
<td colspan="2" valign="top">
<strong>
<%= h(e.project) if @project.nil? || @project != e.project %>
</strong>
<span class="font_lighter">
<%= l(:label_new_activity) %>
</span>
<%= link_to format_activity_title(e.event_title), e.event_url %>
</td>
</tr>
<tr>
<td colspan="2" width="580px" >
<p class="font_description">
<%= format_activity_description(e.event_description) %>
</p>
</td>
</tr>
<tr>
<td align="left">
<a class="font_lighter">
<%= format_activity_day(day) %>
<%= format_time(e.event_datetime, false) %>
</a>
</td>
<td width="200" align="center" class="a">
<%= link_to_user(e.event_author) if e.respond_to?(:event_author) %>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<% end -%>
</div>
<% end -%>
</div>
<!--end-->
<div class="pagination">
<ul>
<%= pagination_links_full @activity_pages%>
</ul>
</div>
<%= content_tag('p', l(:label_no_data), :class => 'nodata') if @events_by_day.empty? %>
<% other_formats_links do |f| %>
<%= f.link_to 'Atom', :url => params.merge(:from => nil, :key => User.current.rss_key) %>
<% end %>
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, params.merge(:format => 'atom', :from => nil, :key => User.current.rss_key)) %>
<% end %>
<% content_for :sidebar do %>
<%= form_tag({}, :method => :get) do %>
<h3><%= l(:label_activity) %></h3>
<p>
<% @activity.event_types.each do |t| %>
<%= check_box_tag "show_#{t}", 1, @activity.scope.include?(t) %>
<label for="show_<%= t%>">
<%= link_to(l("label_#{t.singularize}_plural"), {"show_#{t}" => 1, :user_id => params[:user_id], :from => params[:from]})%>
</label>
<br />
<% end %>
</p>
<% if @project && @project.descendants.active.any? %>
<%= hidden_field_tag 'with_subprojects', 0 %>
<p>
<label>
<%= check_box_tag 'with_subprojects', 1, @with_subprojects %>
<%= l(:label_subproject_plural)%>
</label>
</p>
<% end %>
<%= hidden_field_tag('user_id', params[:user_id]) unless params[:user_id].blank? %>
<p>
<%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>
</p>
<% end %>
<% end %>
<% html_title(l(:label_activity), @author) -%>
<h3><%= @author.nil? ? l(:label_activity) : l(:label_user_activity, link_to_user(@author)).html_safe %></h3>
<p class="subtitle">
<%= l(:label_date_from_to, :start => format_date(@date_to - @days), :end => format_date(@date_to-1)) %>
</p>
<div id="activity">
<% @events_by_day.keys.sort.reverse.each do |day| %>
<h3></h3>
<div>
<% sort_activity_events(@events_by_day[day]).each do |e, in_group| -%>
<div class="issue-note">
<table width="660px" border="0" align="center">
<tr>
<td colspan="2" valign="top" width="50" >
<!--img src="/images/new/user.jpg" width="40" height="40"/-->
<%= image_tag(url_to_avatar(e.event_author), :class => "avatar") %>
</td>
<td>
<table width="580px" border="0">
<tr>
<td colspan="2" valign="top">
<strong>
<%= h(e.project) if @project.nil? || @project != e.project %>
</strong>
<span class="font_lighter">
<%= l(:label_new_activity) %>
</span>
<%= link_to format_activity_title(e.event_title), e.event_url %>
</td>
</tr>
<tr>
<td colspan="2" width="580px" >
<p class="font_description">
<%= format_activity_description(e.event_description) %>
</p>
</td>
</tr>
<tr>
<td align="left">
<a class="font_lighter">
<%= format_activity_day(day) %>
<%= format_time(e.event_datetime, false) %>
</a>
</td>
<td width="200" align="center" class="a">
<%= link_to_user(e.event_author) if e.respond_to?(:event_author) %>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<% end -%>
</div>
<% end -%>
</div>
<!--end-->
<div class="pagination">
<ul>
<%= pagination_links_full @activity_pages%>
</ul>
</div>
<%= content_tag('p', l(:label_no_data), :class => 'nodata') if @events_by_day.empty? %>
<% other_formats_links do |f| %>
<%= f.link_to 'Atom', :url => params.merge(:from => nil, :key => User.current.rss_key) %>
<% end %>
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, params.merge(:format => 'atom', :from => nil, :key => User.current.rss_key)) %>
<% end %>
<% content_for :sidebar do %>
<%= form_tag({}, :method => :get) do %>
<h3><%= l(:label_activity) %></h3>
<p>
<% @activity.event_types.each do |t| %>
<%= check_box_tag "show_#{t}", 1, @activity.scope.include?(t) %>
<label for="show_<%= t%>">
<%= link_to(l("label_#{t.singularize}_plural"), {"show_#{t}" => 1, :user_id => params[:user_id], :from => params[:from]})%>
</label>
<br />
<% end %>
</p>
<% if @project && @project.descendants.active.any? %>
<%= hidden_field_tag 'with_subprojects', 0 %>
<p>
<label>
<%= check_box_tag 'with_subprojects', 1, @with_subprojects %>
<%= l(:label_subproject_plural)%>
</label>
</p>
<% end %>
<%= hidden_field_tag('user_id', params[:user_id]) unless params[:user_id].blank? %>
<p>
<%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>
</p>
<% end %>
<% end %>
<% html_title(l(:label_activity), @author) -%>

@ -33,7 +33,7 @@
<% end %>
<% end %>
<% if options[:author] %>
<span class="author" title="attachment.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) %>
</span>

@ -1,6 +1,8 @@
<% reply_allow = JournalsForMessage.create_by_user? User.current %>
<% tip1 = (@bid.reward_type == 3) ? l(:label_student_response) : l(:label_user_response) %>
<p class="font_lighter" style="font-size: 15px; padding-left: 12px; "><%=tip1%></p>
<p class="font_lighter" style="font-size: 15px; padding-left: 12px; ">
<%=tip1%>
</p>
<div id='leave-message'>
<%= render :partial => 'new', :locals => {:bid => @bid, :sta => @state} %>
@ -22,24 +24,31 @@
<ul class="message-for-user">
<% for journal in journals%>
<li id='word_li_<%= journal.id.to_s %>' class="outer-message-for-user">
<span class="portrait"><%= image_tag(url_to_avatar(journal.user), :class => "avatar") %></span>
<span class="body">
<span class="user"><%= link_to journal.user, user_path(journal.user)%></span>
<span class="font_lighter"><%= label %></span>
<div> <%= textilizable journal.notes%> </div>
<span class="font_lighter">
<%= l(:label_bids_published) %>&nbsp;
<%= time_tag(journal.created_on).html_safe %>&nbsp;
<%= l(:label_bids_published_ago) %>
</span>
<% ids = 'project_respond_form_'+ journal.id.to_s%>
<span>
<span class="portrait">
<%= image_tag(url_to_avatar(journal.user), :class => "avatar") %>
</span>
<span class="body">
<span class="user">
<%= link_to journal.user, user_path(journal.user)%>
</span>
<span class="font_lighter">
<%= label %>
</span>
<div>
<%= textilizable journal.notes%>
</div>
<span class="font_lighter">
<%= l(:label_bids_published) %>&nbsp;
<%= time_tag(journal.created_on).html_safe %>&nbsp;
<%= l(:label_bids_published_ago) %>
</span>
<% ids = 'project_respond_form_'+ journal.id.to_s%>
<span>
<% if reply_allow %>
<%= link_to(l(:button_quote), {:controller => 'bids', :action => 'new', :id => bid, :journal_id => journal},
:remote => true,:method => 'post', :title => l(:button_quote))%>
<%= link_to l(:label_bid_respond_quote),'',
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"}
%>
{:focus => 'project_respond', :onclick => "toggleAndSettingWordsVal($('##{ids}'), $('##{ids} textarea'), '#{l(:label_reply_plural)} #{journal.user.name}: '); $('##{ids} textarea') ;return false;"} %>
<% end %>
<% if @user==User.current|| User.current.admin? %>
<%= link_to(l(:label_bid_respond_delete),
@ -47,14 +56,14 @@
:remote => true, :confirm => l(:text_are_you_sure), :method => 'delete',
:class => "delete", :title => l(:button_delete)) %>
<% end %>
</span>
</span>
<div style="clear: both;"></div>
</span>
<div style="clear: both;"></div>
<% ids = 'project_respond_form_'+ journal.id.to_s%>
<% if reply_allow %>
<div id='<%= ids %>' class="respond-form">
<%= render :partial => 'words/new_respond', :locals => {:journal => journal, :m_reply_id => journal} %>
</div>
<div id='<%= ids %>' class="respond-form">
<%= render :partial => 'words/new_respond', :locals => {:journal => journal, :m_reply_id => journal} %>
</div>
<% end %>
<div style="clear: both;"></div>
<div>

@ -1,16 +1,34 @@
<% reply_allow = JournalsForMessage.create_by_user? User.current %>
<div style="margin-left: 20px;">
<span class="portrait"><%= image_tag(url_to_avatar(@bid.author), :class => "avatar")%></span>
<span class="portrait">
<%= image_tag(url_to_avatar(@bid.author), :class => "avatar")%>
</span>
<span class="body" style="word-break: break-all;word-wrap: break-word;">
<h3><%= link_to(@bid.author.lastname+@bid.author.firstname, user_path(@bid.author))%><%= link_to(@bid.name,respond_path(@bid)) %></h3>
<h3>
<%= link_to(@bid.author.lastname+@bid.author.firstname, user_path(@bid.author))%>
<%= link_to(@bid.name,respond_path(@bid)) %>
</h3>
<% if @bid.reward_type.nil? or @bid.reward_type == 1%>
<p>
<strong><%= l(:label_bids_reward_method) %><span class="bonus"><%= l(:label_call_bonus) %>&nbsp; <%= l(:label_RMB_sign) %><%= @bid.budget %></span></strong>
<strong>
<%= l(:label_bids_reward_method) %>
<span class="bonus">
<%= l(:label_call_bonus) %>
&nbsp;
<%= l(:label_RMB_sign) %>
<%= @bid.budget %>
</span>
</strong>
</p>
<% elsif @bid.reward_type == 2%>
<p>
<strong><%= l(:label_bids_reward_method) %><span class="bonus"><%= @bid.budget%></span></strong>
</p>
<p>
<strong>
<%= l(:label_bids_reward_method) %>
<span class="bonus">
<%= @bid.budget%>
</span>
</strong>
</p>
<% else %>
<% end %>
<div class="bid_description">

@ -1,31 +1,36 @@
<!-- <%#= course_board_breadcrumb(@board) %> -->
<!--new and follow-->
<!-- <div class="content-title-top">
<%#= link_to l(:label_message_new),
new_board_message_path(@board),
:class => 'icon icon-add',
:onclick => 'showAndScrollTo("add-message", "message_subject"); return false;' if User.current.logged? %> -->
<!-- <%#= watcher_link(@board, User.current) %> -->
<!-- </div> -->
<script type="text/javascript">
function submitCoursesBoard()
{
if(regexSubject()&&regexContent())
{
$("#message-form").submit();
}
}
</script>
<div id="add-message" class="add_frame" style="display:none;">
<% if User.current.logged? %>
<h3><%= link_to h(@board.name), course_board_path(@course, @board) %> &#187; <%= l(:label_message_new) %></h3>
<h3>
<%= link_to h(@board.name), course_board_path(@course, @board) %> &#187;
<%= l(:label_message_new) %>
</h3>
<div class="add_frame_header" >
<%= l(:label_message_new) %>
</div>
<%= form_for @message, :url => new_board_message_path(@board), :html => {:multipart => true, :id => 'message-form'} do |f| %>
<%= render :partial => 'messages/form', :locals => {:f => f} %>
<p><%= submit_tag l(:button_create), :class => "whiteButton m3p10 h30" %>
<%#= preview_link(preview_board_message_path(@board), 'message-form' ,target='preview',{:class => 'whiteButton m3p10'} )%>
<%= link_to l(:button_cancel), "#", :onclick => '$("#add-message").hide(); return false;' ,:class => 'whiteButton m3p10' %></p>
<p>
<input type="button" onclick="submitCoursesBoard();" class = "whiteButton m3p10 h30" value="<%= l(:button_submit)%>">
<%= link_to l(:button_cancel), "#", :onclick => '$("#add-message").hide(); return false;' ,:class => 'whiteButton m3p10' %>
</p>
<% end %>
<div id="preview" class="wiki"></div>
<% end %>
</div>
<!--display the board-->
<div class="borad-title"><%=h @board.name %></div>
<div class="borad-title">
<%=h @board.name %>
</div>
<% if !User.current.logged?%>
<div style="font-size: 14px;margin:20px;">
@ -35,9 +40,12 @@
</div>
<% end %>
<!-- <div class="borad-description"><%=h @board.description %></div> -->
<div class="borad-setitle">
<span class="borad-topic-count">共有 <%=link_to @topic_count,:controller => 'boards',:action => 'index' %> 个贴子</span>
<span class="borad-topic-count">
共有
<%=link_to @topic_count,:controller => 'boards',:action => 'index' %>
个贴子
</span>
<span>
<%= link_to l(:label_message_new),
new_board_message_path(@board),
@ -47,15 +55,6 @@
</div>
<div style="padding-top: 10px">
<% if @topics.any? %>
<!-- <table class="list messages">
<thead><tr>
<th><%= l(:field_subject) %></th>
<th><%= l(:field_author) %></th>
<%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
<%= sort_header_tag('replies', :caption => l(:label_reply_plural)) %>
<%= sort_header_tag('updated_on', :caption => l(:label_message_last)) %>
</tr></thead>
<tbody> -->
<% @topics.each do |topic| %>
<table class="content-text-list">
<tr>
@ -64,36 +63,44 @@
<table width="640px" border="0">
<tr>
<td valign="top" width="500px" class=" <%= topic.sticky? ? 'sticky' : '' %>
<%= topic.locked? ? 'locked' : '' %>"><%= link_to h(topic.subject.truncate(40,ommision:'...')), board_message_path(@board, topic),title: topic.subject.to_s %>
<%= topic.locked? ? 'locked' : '' %>">
<%= link_to h(topic.subject.truncate(40,ommision:'...')), board_message_path(@board, topic),title: topic.subject.to_s %>
</td>
<td align="right" rowspan="3">
<table class="borad-count">
<tr>
<td align="center" class="borad-count-digit">
<%=link_to (topic.replies_count), board_message_path(@board, topic) %>
</td>
</tr>
<tr>
<td align="center">
回答
</td>
</tr>
</table>
</td>
<td align="right" rowspan="3"><table class="borad-count"><tr><td align="center" class="borad-count-digit"><%=link_to (topic.replies_count), board_message_path(@board, topic) %></td></tr>
<tr><td align="center">回答</td></tr>
</table></td>
</tr>
<!-- <tr><td colspan="2" ><span class="font_description">标签</span></td></tr> -->
<tr><td align="left" colspan="2" ><span class="font_lighter"><%= authoring topic.created_on, topic.author %><br /></span></td></tr>
</table></td>
<tr>
<td align="left" colspan="2" >
<span class="font_lighter">
<%= authoring topic.created_on, topic.author %>
<br />
</span>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- <tr class="message <%= cycle 'odd', 'even' %> <%= topic.sticky? ? 'sticky' : '' %> <%= topic.locked? ? 'locked' : '' %>">
<td class="subject"><%= link_to h(topic.subject), board_message_path(@board, topic) %></td>
<td class="author"><%= link_to_user(topic.author) %></td>
<td class="created_on"><%= format_time(topic.created_on) %></td>
<td class="reply-count"><%= topic.replies_count %></td>
<td class="last_message">
<% if topic.last_reply %>
<%= authoring topic.last_reply.created_on, topic.last_reply.author %><br />
<%= link_to_message topic.last_reply %>
<% end %>
</td>
</tr> -->
<% end %>
<!-- </tbody>
</table> -->
<div class="pagination"><%= pagination_links_full @topic_pages, @topic_count %></div>
<div class="pagination">
<%= pagination_links_full @topic_pages, @topic_count %>
</div>
<% else %>
<p class="nodata"><%= l(:label_no_data) %></p>
<p class="nodata">
<%= l(:label_no_data) %>
</p>
<% end %>
</div>

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

Loading…
Cancel
Save