diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 73dfabb08..857091ae7 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -42,7 +42,7 @@ class UsersController < ApplicationController
:activity_new_score_index, :influence_new_score_index, :score_new_index,:user_projects_index,:user_resource,
:user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show,:user_visitorlist,:user_messages,:edit_brief_introduction,
:user_import_homeworks,:user_search_homeworks,:user_import_resource, :user_system_messages,:choose_user_course,:user_courselist,:user_projectlist,:sort_syllabus_list,
- :my_homeworks,:manage_or_receive_homeworks,:search_m_r_homeworks]
+ :sort_project_list,:my_homeworks,:manage_or_receive_homeworks,:search_m_r_homeworks]
before_filter :auth_user_extension, only: :show
#before_filter :rest_user_score, only: :show
#before_filter :select_entry, only: :user_projects
@@ -3418,7 +3418,22 @@ class UsersController < ApplicationController
end
def user_projectlist
- @order, @c_sort,@type = params[:order] || 1, params[:sort] || 1, params[:type] || 1
+ @order, @c_sort, @type, @list_type = 1, 2, 1, 1
+ #limit = 5
+
+ @my_projects = @user.projects.visible.where("projects.user_id = #{@user.id}").select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS updatetime").order("updatetime DESC")
+ @my_projects_count = @my_projects.count
+
+ @my_joined_projects = @user.projects.visible.where("projects.user_id != #{@user.id}").select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS updatetime").order("updatetime DESC")
+ @my_joined_projects_count = @my_joined_projects.count
+ respond_to do |format|
+ format.html {render :layout => 'new_base_user'}
+ end
+ end
+
+ def sort_project_list
+ @order, @c_sort, @type, @list_type = params[:order] || 1, params[:sort] || 1, params[:type] || 1, params[:list_type] || 1
+ #limit = 5
#确定 sort_type
if @order.to_i == @type.to_i
@@ -3427,13 +3442,16 @@ class UsersController < ApplicationController
@c_sort = 2
end
- sort_name = "updated_at"
+ sort_name = "updatetime"
sort_type = @c_sort == 1 ? "asc" : "desc"
#@projects = @user.projects.visible.order("#{sort_name} #{sort_type}")
- @projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS #{sort_name} ").order("#{sort_name} #{sort_type}")
- @my_joined_projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS #{sort_name} where user_id != #{@user.id}").order("#{sort_name} #{sort_type}")
- @my_projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS #{sort_name} where user_id = #{@user.id}").order("#{sort_name} #{sort_type}")
+ if @list_type.to_i == 1
+ @projects = @user.projects.visible.where("projects.user_id = #{@user.id}").select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS #{sort_name}").order("#{sort_name} #{sort_type}")
+ else
+ @projects = @user.projects.visible.where("projects.user_id != #{@user.id}").select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS #{sort_name}").order("#{sort_name} #{sort_type}")
+ end
+ @projects_count = @projects.count
#根据 问题+资源数排序 @project.project_score.issue_num @project.project_score.attach_num
if @order.to_i == 2
@@ -3450,18 +3468,8 @@ class UsersController < ApplicationController
@type = 1
end
- #分页
- @limit = 10
- @is_remote = true
- @atta_count = @projects.count
- @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1
- @offset ||= @atta_pages.offset
- @projects = paginateHelper @projects,@limit
- @is_project = 1
-
respond_to do |format|
format.js
- format.html {render :layout => 'new_base_user'}
end
end
diff --git a/app/views/users/_my_joined_projects.html.erb b/app/views/users/_my_joined_projects.html.erb
index 8a940d9a7..4de7c2ceb 100644
--- a/app/views/users/_my_joined_projects.html.erb
+++ b/app/views/users/_my_joined_projects.html.erb
@@ -1,38 +1,3 @@
-
-
-
- <% @projects.each do |project| %>
-
-
-
-
<%= link_to project.name, project_path(project.id,:host=>Setting.host_name), :target => '_blank', :class => "new_project_title fl",:id => "show_project_#{project.id}", :title => (project.is_public? ? "公开项目:":"私有项目:") + project.name%>
- <% unless project.is_public? %>
-
- <% end %>
- <% projectUser = User.where("id=?",project.user_id).first %>
- <%=link_to "
创建者:#{projectUser.try(:realname) != " " ? projectUser.lastname + projectUser.firstname : projectUser.try(:login)}".html_safe, user_path(projectUser) %>
-
-
-
-
更新时间:<%= format_date(project.updated_on) %>
-
-
- <%= link_to project.members.count, member_project_path(project), :class => "c_blue" %>成员 |
- <%= link_to project.project_score.issue_num, project_issues_path(project), :class => "c_blue" %>问题 |
- <%= link_to project.project_score.attach_num, file_project_path(project), :class => "c_blue" %>资源
-
-
-
-
-
- <% end %>
-
-
-
\ No newline at end of file
+
+ <%= render :partial => 'users/project_list', :locals => {:projects => @my_joined_projects, :list_type => 2, :count => @my_joined_projects_count}%>
+
\ No newline at end of file
diff --git a/app/views/users/_my_projects.html.erb b/app/views/users/_my_projects.html.erb
index 365830611..87b3ad762 100644
--- a/app/views/users/_my_projects.html.erb
+++ b/app/views/users/_my_projects.html.erb
@@ -1,37 +1,3 @@
-
-
- <% @projects.each do |project|%>
-
-
-
-
<%= link_to "#{project.name}", project_path(project.id,:host=>Setting.host_name), :target => '_blank', :class => "new_project_title fl",:id => "show_project_#{project.id}", :title => (project.is_public? ? "公开项目:":"私有项目:") + project.name%>
- <% unless project.is_public? %>
-
- <% end %>
- <% projectUser = User.where("id=?",project.user_id).first %>
- <%=link_to "
创建者:#{projectUser.try(:realname) != " " ? projectUser.lastname + projectUser.firstname : projectUser.try(:login)}".html_safe, user_path(projectUser) %>
-
-
-
-
更新时间:<%= format_date(project.updated_on) %>
-
-
- <%= link_to project.members.count, member_project_path(project), :class => "c_blue" %>成员 |
- <%= link_to project.project_score.issue_num, project_issues_path(project), :class => "c_blue" %>问题 |
- <%= link_to project.project_score.attach_num, file_project_path(project), :class => "c_blue" %>资源
-
-
-
-
-
- <% end %>
-
-
-
\ No newline at end of file
+
+ <%= render :partial => 'users/project_list', :locals => {:projects => @my_projects, :list_type => 1, :count => @my_projects_count}%>
+
\ No newline at end of file
diff --git a/app/views/users/_project_list.html.erb b/app/views/users/_project_list.html.erb
new file mode 100644
index 000000000..e453a1d9b
--- /dev/null
+++ b/app/views/users/_project_list.html.erb
@@ -0,0 +1,63 @@
+
+ <% unless projects.empty? %>
+ <% if @type.to_i == 2 %>
+ <%= link_to "", {:controller => 'users', :action => 'sort_project_list', :id =>@user,:list_type => list_type, :type => @type, :sort => @c_sort, :order => 2 }, :class => "#{@c_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} fr", :style => "margin-right: 5px;", :remote => true %>
+ <% else %>
+ <%= link_to "", {:controller => 'users', :action => 'sort_project_list', :id =>@user,:list_type => list_type, :type => @type, :sort => @c_sort, :order => 2 }, :class => "sortdownbtn sort_no fr", :style => "margin-right: 5px;", :remote => true %>
+ <% end %>
+ <%= link_to "人气", {:controller => 'users', :action => 'sort_project_list', :id =>@user,:list_type => list_type, :type => @type, :sort => @c_sort, :order => 2 }, :class => "sortTxt fr", :remote => true %>
+ <% if @type.to_i == 1 %>
+ <%= link_to "", {:controller => 'users', :action => 'sort_project_list', :id =>@user,:list_type => list_type, :type => @type, :sort => @c_sort, :order => 1 }, :class => "#{@c_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} fr", :remote => true %>
+ <% else %>
+ <%= link_to "", {:controller => 'users', :action => 'sort_project_list', :id =>@user,:list_type => list_type, :type => @type, :sort => @c_sort, :order => 1 }, :class => "sortdownbtn sort_no fr", :remote => true %>
+ <% end %>
+ <%= link_to "时间", {:controller => 'users', :action => 'sort_project_list', :id =>@user,:list_type => list_type, :type => @type, :sort => @c_sort, :order => 1 }, :class => "sortTxt fr", :remote => true %>
+ <% end %>
+
<%=@user == User.current ? "我" : "他" %><%= list_type == 1 ? "创建" : "参与"%>的项目
+
+
+
+<% if projects.empty? %>
+
+ <% if list_type == 1 %>
+
<%=@user == User.current ? "您" : "他" %>还没有创建项目~~
+ <%= link_to "创建项目", new_project_path(:host=> Setting.host_name), :target => "_blank", :class => "sy_btn_green ml5 mt5" if @user == User.current %>
+
+ <% else %>
+
<%=@user == User.current ? "您" : "他" %>还没有加入项目~~
+ <%= link_to "加入项目", applied_join_project_path, :remote => true, :method => "post", :class => "sy_btn_green ml5 mt5" if @user == User.current %>
+
+ <% end %>
+<% else %>
+ <% projects.each_with_index do |project, i| %>
+
+
+
+
<%= link_to project.name, project_path(project.id,:host=>Setting.host_name), :target => '_blank', :class => "new_project_title fl",:id => "show_project_#{project.id}", :title => (project.is_public? ? "公开项目:":"私有项目:") + project.name%>
+ <% unless project.is_public? %>
+
+ <% end %>
+ <% projectUser = User.where("id=?",project.user_id).first %>
+ <%=link_to "
创建者:#{projectUser.try(:realname) != " " ? projectUser.lastname + projectUser.firstname : projectUser.try(:login)}".html_safe, user_path(projectUser) %>
+
+
+
+
更新时间:<%= format_date(project.updatetime) %>
+
+
+ <%= link_to project.members.count, member_project_path(project), :class => "c_blue" %>成员 |
+ <%= link_to project.project_score.issue_num, project_issues_path(project), :class => "c_blue" %>问题 |
+ <%= link_to project.project_score.attach_num, file_project_path(project), :class => "c_blue" %>资源
+
+
+
+
+
+ <% end %>
+ <% if count > 5 %>
+
+ <% end %>
+<% end %>
+
\ No newline at end of file
diff --git a/app/views/users/sort_project_list.js.erb b/app/views/users/sort_project_list.js.erb
new file mode 100644
index 000000000..bacb3849e
--- /dev/null
+++ b/app/views/users/sort_project_list.js.erb
@@ -0,0 +1,5 @@
+<% if @list_type.to_i == 1 %>
+$("#user_projects_list").html('<%= escape_javascript(render :partial => 'users/project_list', :locals => {:projects => @projects, :list_type => 1, :count => @projects_count}) %>');
+<% else %>
+$("#user_join_projects_list").html('<%= escape_javascript(render :partial => 'users/project_list', :locals => {:projects => @projects, :list_type => 2, :count => @projects_count}) %>');
+<% end %>
\ No newline at end of file
diff --git a/app/views/users/user_projectlist.html.erb b/app/views/users/user_projectlist.html.erb
index 92f9a9d66..0605cb2f3 100644
--- a/app/views/users/user_projectlist.html.erb
+++ b/app/views/users/user_projectlist.html.erb
@@ -1,12 +1,39 @@
项目列表
-
- <%= render :partial => 'users/my_projects'%>
-
-
+ <%= render :partial => 'users/my_projects'%>
-
- <%= render :partial => 'users/my_joined_projects'%>
-
+ <%= render :partial => 'users/my_joined_projects'%>
+
+
diff --git a/config/routes.rb b/config/routes.rb
index 58a48ebad..861aba437 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -626,6 +626,7 @@ RedmineApp::Application.routes.draw do
match 'user_projectlist', :to => 'users#user_projectlist', :via => :get, :as => "user_projectlist"
match 'sort_syllabus_list', :to => 'users#sort_syllabus_list', :via => :get, :as => "sort_syllabus_list"
+ match 'sort_project_list', :to => 'users#sort_project_list', :via => :get, :as => "sort_project_list"
get 'edit_brief_introduction'
get "user_resource"