From 23f48b718910a2e8ed3dbea4825d88aa65ae6e5f Mon Sep 17 00:00:00 2001
From: yuanke <249218296@qq.com>
Date: Wed, 27 Apr 2016 09:54:49 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8=E3=80=81?=
=?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AE=A8=E8=AE=BA=E5=8C=BA=E5=88=97=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/boards_controller.rb | 1 -
app/controllers/users_controller.rb | 44 ++++++++++++++++-
app/views/layouts/_user_courses.html.erb | 13 ++++-
app/views/layouts/new_base_user.html.erb | 3 +-
app/views/users/_course_boardlist.html.erb | 2 +-
app/views/users/_project_boardlist.html.erb | 4 +-
app/views/users/_user_project_list.html.erb | 53 +++++++++++++++++++++
app/views/users/user_projectlist.html.erb | 3 ++
app/views/users/user_projectlist.js.erb | 1 +
config/routes.rb | 1 +
public/stylesheets/project.css | 28 +++++++++++
11 files changed, 145 insertions(+), 8 deletions(-)
create mode 100644 app/views/users/_user_project_list.html.erb
create mode 100644 app/views/users/user_projectlist.html.erb
create mode 100644 app/views/users/user_projectlist.js.erb
diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb
index 124342041..aab9bf963 100644
--- a/app/controllers/boards_controller.rb
+++ b/app/controllers/boards_controller.rb
@@ -153,7 +153,6 @@ class BoardsController < ApplicationController
elsif @course
render_feed(@messages, :title => "#{@course}: #{@board}")
end
-
}
end
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 54b19a3e6..da143fa8d 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -41,7 +41,7 @@ class UsersController < ApplicationController
: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,: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_import_homeworks,:user_search_homeworks,:user_import_resource, :user_system_messages,:choose_user_course,:user_courselist,:user_projectlist]
before_filter :auth_user_extension, only: :show
#before_filter :rest_user_score, only: :show
#before_filter :select_entry, only: :user_projects
@@ -2890,6 +2890,48 @@ class UsersController < ApplicationController
end
end
+ def user_projectlist
+ @order, @c_sort,@type = params[:order] || 1, params[:sort] || 1, params[:type] || 1
+
+ #确定 sort_type
+ if @order.to_i == @type.to_i
+ @c_sort = @c_sort.to_i == 1 ? 2 : 1 #1升序 2降序
+ else
+ @c_sort = 2
+ end
+
+ sort_name = "updated_on"
+ sort_type = @c_sort == 1 ? "asc" : "desc"
+
+ if @user.projects.visible.count > 0
+ project_order_ids = "(" +ForgeActivity.find_by_sql("SELECT p.project_id, p.created_at FROM (SELECT fa.project_id, MAX(fa.created_at) AS created_at FROM forge_activities fa WHERE fa.project_id IN (" + @user.projects.visible.select('projects.id').map{|p| p.id}.join(',') + ") GROUP BY fa.project_id) AS p ").map {|p| p.project_id}.join(",") + ")"
+ @projects = Project.where("projects.id in #{project_order_ids}").order("#{sort_name} #{sort_type}")
+ else
+ @projects = []
+ end
+
+ #根据 问题+资源数排序 @project.project_score.issue_num @project.project_score.attach_num
+ if @order.to_i == 2
+ @type = 2
+ @c_sort == 1 ? (@projects = @projects.sort{|x,y| x.project_score.issue_num+x.project_score.attach_num <=> y.project_score.issue_num+y.project_score.attach_num }) : (@projects = @projects.sort{|x,y| y.project_score.issue_num+y.project_score.attach_num <=> x.project_score.issue_num+x.project_score.attach_num })
+ else
+ @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
+
+ respond_to do |format|
+ format.js
+ format.html {render :layout => 'new_base_user'}
+ end
+ end
+
private
def find_user
diff --git a/app/views/layouts/_user_courses.html.erb b/app/views/layouts/_user_courses.html.erb
index 20bccfef3..d470e5fbc 100644
--- a/app/views/layouts/_user_courses.html.erb
+++ b/app/views/layouts/_user_courses.html.erb
@@ -72,4 +72,15 @@
-<% end%>
\ No newline at end of file
+<% end%>
+
+
+
+
+
+
diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb
index 6fb880ed8..0487cd75c 100644
--- a/app/views/layouts/new_base_user.html.erb
+++ b/app/views/layouts/new_base_user.html.erb
@@ -233,8 +233,7 @@
-
+
发帖时间:<%= format_time(activity.created_on) %>
更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
<% count=0 %>
diff --git a/app/views/users/_project_boardlist.html.erb b/app/views/users/_project_boardlist.html.erb
index a48001fdc..db054313c 100644
--- a/app/views/users/_project_boardlist.html.erb
+++ b/app/views/users/_project_boardlist.html.erb
@@ -42,9 +42,9 @@
<% end %>
<%=render :partial =>"users/intro_content", :locals=>{:user_activity_id =>activity.id, :content=>content} %>
-
+
发帖时间:<%= format_time(activity.created_on) %>
-
更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
更新时间:<%= format_time(ForgeActivity.where("forge_act_type='#{activity.class}' and forge_act_id =#{activity.id}").first.updated_at) %>
<% count=0 %>
<% if activity.parent %>
<% count=activity.parent.children.count%>
diff --git a/app/views/users/_user_project_list.html.erb b/app/views/users/_user_project_list.html.erb
new file mode 100644
index 000000000..417cfa7b3
--- /dev/null
+++ b/app/views/users/_user_project_list.html.erb
@@ -0,0 +1,53 @@
+
+
项目列表
+
+
排序:
+ <%= link_to "时间", {:controller => 'users', :action => 'user_projectlist', :id =>@user, :type => @type, :sort => @c_sort, :order => 1 }, :class => "sortTxt", :remote => true %>
+ <% if @type.to_i == 1 %>
+ <%= link_to "", {:controller => 'users', :action => 'user_projectlist', :id =>@user, :type => @type, :sort => @c_sort, :order => 1 }, :class => "#{@c_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %>
+ <% end %>
+ <%= link_to "人气", {:controller => 'users', :action => 'user_projectlist', :id =>@user, :type => @type, :sort => @c_sort, :order => 2 }, :class => "sortTxt", :remote => true %>
+ <% if @type.to_i == 2 %>
+ <%= link_to "", {:controller => 'users', :action => 'user_projectlist', :id =>@user, :type => @type, :sort => @c_sort, :order => 2 }, :class => "#{@c_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %>
+ <% end %>
+
+
+
+
+ <% @projects.each do |project|%>
+
+ <% end %>
+
+
+ <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote, :flag => true %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/users/user_projectlist.html.erb b/app/views/users/user_projectlist.html.erb
new file mode 100644
index 000000000..0f314c5aa
--- /dev/null
+++ b/app/views/users/user_projectlist.html.erb
@@ -0,0 +1,3 @@
+
+ <%= render :partial => 'users/user_project_list'%>
+
\ No newline at end of file
diff --git a/app/views/users/user_projectlist.js.erb b/app/views/users/user_projectlist.js.erb
new file mode 100644
index 000000000..6d3f1834b
--- /dev/null
+++ b/app/views/users/user_projectlist.js.erb
@@ -0,0 +1 @@
+$("#project-list").html('<%= escape_javascript( render :partial => 'users/user_project_list') %>');
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 17857d3b0..40fe687fa 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -552,6 +552,7 @@ RedmineApp::Application.routes.draw do
#addby yk
match 'user_courselist', :to => 'users#user_courselist', :via => :get, :as => "user_courselist"
+ match 'user_projectlist', :to => 'users#user_projectlist', :via => :get, :as => "user_projectlist"
get 'edit_brief_introduction'
get "user_resource"
diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css
index f711c25e2..a5b87049d 100644
--- a/public/stylesheets/project.css
+++ b/public/stylesheets/project.css
@@ -1200,3 +1200,31 @@ a.chooseActive {background-color:#269ac9; color:#ffffff;}
.popupClose {background:url(../images/resource_icon_list.png) 0px -40px no-repeat; width:20px; height:20px; display:inline-block; position: absolute; z-index: 1000; right:10px; top:5px;}
.subjectType {width:70px; text-align:center;}
.subjectCount {width:65px; text-align:center;}
+
+/*博客列表界面样式*/
+a{text-decoration:none}
+.listbox{ width:730px; background-color:#fff; border:1px solid #ddd; padding:10px; }
+/*.bloglistbox{ min-height:690px;}*/
+.list-h2{ font-size:16px; font-weight:bold; color:#000; border-bottom:2px solid #269ac9; padding-bottom:5px;}
+.category{ padding:10px 0; border-bottom:1px solid #ddd;}
+.category a,.category span{ float:left; margin-right:5px;}
+.grayTxt{ color:#9093a6;}
+.category a.sortTxt{ color:#9093a6;}
+.category .sortTxt:hover{ color:#28be6c;}
+a.sortupbtn{ background: url(../images/liststyle.png) 0 3px no-repeat; width:12px; height:17px; display:block; margin-right:10px; cursor:pointer;}
+a.sortdownbtn{ background: url(../images/liststyle.png) 0 -12px no-repeat; width:12px; height:17px; display:block;margin-right:10px;cursor:pointer; }
+.item_list{ display:block; width:5px; height:5px;-webkit-border-radius: 25px;border-radius:25px; background-color:#adadad; margin:10px 10px 0 0;}
+.list-file a.list-title{ font-size:14px; font-weight: bold; color:#000;white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; max-width:635px;}
+a:hover.list-title{ color:#269ac9;}
+.c_red{ font-weight:normal; font-size:12px;}
+.list-file{ padding:10px 0; border-bottom:1px dashed #ddd;}
+.list-file li{ line-height:1.9;}
+.list-info span{ margin-left:5px;}
+.pages a{ display:block; border:1px solid #d1d1d1; color:#000; float:left; width:30px; text-align:center; padding:3px 0; line-height:1.9; margin-right:5px; }
+.pages a:hover{ background-color:#269ac9; color:#fff;}
+a.pages-big{ width:50px;}
+.pages .active{ background-color:#269ac9; color:#fff;}
+.pages{width:330px; margin:20px auto 10px;}
+
+.red-cir-btn{ background:#e74c3c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
+.green-cir-btn{ background:#28be6c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}