From 5de8e1c2f239dab6522a5b0fdadbcd8127318b68 Mon Sep 17 00:00:00 2001 From: yanxd Date: Fri, 22 Nov 2013 08:19:40 +0800 Subject: [PATCH] new welcome index. --- app/helpers/projects_helper.rb | 22 ++++++++++++++++++ app/helpers/welcome_helper.rb | 39 ++++++++++++++++++++++++++++++++ app/views/welcome/index.html.erb | 32 ++++++++++++++------------ config/locales/en.yml | 2 ++ config/locales/zh.yml | 3 +++ public/stylesheets/welcome.css | 11 +++++++-- 6 files changed, 93 insertions(+), 16 deletions(-) diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 0b3f337bc..4580798ee 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -243,4 +243,26 @@ module ProjectsHelper end end + def sort_project_by_hot + return sort_project_by_hot_rails + @projects_status = ProjectStatus.visible.where("project_statuses.project_type <> ? or project_statuses.project_type is null", 1) + @projects_status = @projects_status.reorder('grade').all.reverse + @projects = [] + @projects_status.each do |obj| + break if(@projects_status[10] == obj) + @projects << Project.visible.find_by_id("#{obj.project_id}")#where('id=:id', id: obj.project_id) + end + @projects + rescue NoMethodError + [] + end + + def sort_project_by_hot_rails + # @projects_status = ProjectStatus.visible.where("project_statuses.project_type <> ? or project_statuses.project_type is null", 1) + # @projects_status = @projects_status.reorder('grade').all.reverse + # Project.joins(@projects_status).limit(10) + limit = 10 + Project.find_by_sql("SELECT * FROM projects RIGHT OUTER JOIN (SELECT * FROM project_statuses ORDER BY grade DESC LIMIT #{limit} ) AS t ON projects.id = t.project_id ") + end + end diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb index 002bc470f..5a7866dc7 100644 --- a/app/helpers/welcome_helper.rb +++ b/app/helpers/welcome_helper.rb @@ -18,4 +18,43 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. module WelcomeHelper + include ProjectsHelper + + def newbieTopiclist + find_all_topic_by_board_id + end + + def newbieTopicStickyList + find_all_topic_by_board_id 1 + end + + def find_project_by_topic topic + board = find_board_by_topic(topic) + find_project_by_board board + end + + def find_all_hot_project + sort_project_by_hot + end + + private + + def search_project + Project.find_by_identifier "newbie_faq" + end + + def find_all_topic_by_board_id sticky = 0, limit = 30 + project = search_project + return [] if(project.nil? or project.boards.nil?) + board_id = project.boards.first.id + logger.debug "[WelcomeHelper] ===> find_all_topic_by_board_id=> project.id:#{project.id}, board_id:#{board_id}, sticky:#{sticky}" + Message.where("board_id = :board_id and sticky=:sticky", :board_id => board_id, :sticky => sticky ).limit(limit) + end + + def find_board_by_topic topic + Board.find_by_id(topic.board_id) + end + def find_project_by_board board + Project.find_by_id(board.project_id) + end end diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 715a67779..da406ad66 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -103,26 +103,30 @@ <%= stylesheet_link_tag 'welcome' %>
+
<%= l :label_hot_project%>
+ <% find_all_hot_project.map do |project| break if(project == find_all_hot_project[5]) %> +
+ <%=link_to( project.name, project_path(project), :class => "nowrap" )%> +

<%= project.description %>

+ +
+ <% end %> + +
-
新手指引 & 问答
- - - +
<%= l :label_newbie_faq %>
+ <% newbieTopicStickyList.each do |topic| break if(topic == newbieTopicStickyList[6])%> +
+ <%=link_to( topic.subject, board_message_path(find_board_by_topic(topic),topic), :class => "nowrap" )%> + [ <%=find_project_by_topic(topic) %> ] +
+ <% end %> +
diff --git a/config/locales/en.yml b/config/locales/en.yml index 99ecee55c..8a7bcc31b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1563,6 +1563,8 @@ en: label_user_home: User Space field_hidden_repo: code protected + label_newbie_faq: newbie FAQ + label_hot_project: 'HOT Projects' diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 1e7c8a5ad..c7b016f6f 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1723,3 +1723,6 @@ zh: field_teacher_name: 教 师 field_hidden_repo: 隐藏代码库 + + label_newbie_faq: '新手指引 & 问答' + label_hot_project: '热门项目' diff --git a/public/stylesheets/welcome.css b/public/stylesheets/welcome.css index dfe99573c..a52c34d09 100644 --- a/public/stylesheets/welcome.css +++ b/public/stylesheets/welcome.css @@ -37,12 +37,19 @@ div.project { div.project a{ color: #5B5B5B; } -/*div.project{ + +div.project { + overflow: hidden; + /*white-space: nowrap;*/ + text-overflow: ellipsis; + -o-text-overflow: ellipsis; +} +div.project>.nowrap { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis; -}*/ +} span.grey { float: right;