Commit c94159ab089fe964263643ffc7e881ba8cac3f23
1 parent
219ac189
Exists in
master
and in
4 other branches
improved dashboard
Showing
6 changed files
with
62 additions
and
49 deletions
Show diff stats
app/assets/stylesheets/common.scss
@@ -615,6 +615,7 @@ p.time { | @@ -615,6 +615,7 @@ p.time { | ||
615 | margin:auto; | 615 | margin:auto; |
616 | 616 | ||
617 | .wll { | 617 | .wll { |
618 | + padding:5px; | ||
618 | border:none; | 619 | border:none; |
619 | &:hover { | 620 | &:hover { |
620 | background:none; | 621 | background:none; |
@@ -623,12 +624,19 @@ p.time { | @@ -623,12 +624,19 @@ p.time { | ||
623 | h4 { | 624 | h4 { |
624 | color:#666; | 625 | color:#666; |
625 | } | 626 | } |
627 | + &.event_feed { | ||
628 | + min-height:40px; | ||
629 | + border-bottom:1px solid #eee; | ||
630 | + .avatar { | ||
631 | + width:32px; | ||
632 | + } | ||
633 | + ul { | ||
634 | + margin-left:50px; | ||
635 | + .avatar { | ||
636 | + width:24px; | ||
637 | + } | ||
638 | + } | ||
639 | + } | ||
626 | } | 640 | } |
627 | } | 641 | } |
628 | } | 642 | } |
629 | - | ||
630 | -.event_feed { | ||
631 | - ul { | ||
632 | - margin-left:50px; | ||
633 | - } | ||
634 | -} |
app/controllers/dashboard_controller.rb
@@ -4,12 +4,12 @@ class DashboardController < ApplicationController | @@ -4,12 +4,12 @@ class DashboardController < ApplicationController | ||
4 | def index | 4 | def index |
5 | @projects = current_user.projects.all | 5 | @projects = current_user.projects.all |
6 | 6 | ||
7 | - @active_projects = @projects.select(&:repo_exists?).select(&:last_activity_date_cached).sort_by(&:last_activity_date_cached).reverse | 7 | + @active_projects = @projects.select(&:last_activity_date).sort_by(&:last_activity_date).reverse |
8 | 8 | ||
9 | - @merge_requests = MergeRequest.where("author_id = :id or assignee_id = :id", :id => current_user.id).opened.order("created_at DESC").limit(10) | 9 | + @merge_requests = MergeRequest.where("author_id = :id or assignee_id = :id", :id => current_user.id).opened.order("created_at DESC").limit(5) |
10 | 10 | ||
11 | @user = current_user | 11 | @user = current_user |
12 | - @issues = current_user.assigned_issues.opened.order("created_at DESC").limit(10) | 12 | + @issues = current_user.assigned_issues.opened.order("created_at DESC").limit(5) |
13 | @issues = @issues.includes(:author, :project) | 13 | @issues = @issues.includes(:author, :project) |
14 | 14 | ||
15 | @events = Event.where(:project_id => @projects.map(&:id)).recent.limit(20) | 15 | @events = Event.where(:project_id => @projects.map(&:id)).recent.limit(20) |
app/models/project.rb
@@ -277,31 +277,21 @@ class Project < ActiveRecord::Base | @@ -277,31 +277,21 @@ class Project < ActiveRecord::Base | ||
277 | end | 277 | end |
278 | 278 | ||
279 | def last_activity | 279 | def last_activity |
280 | - updates(1).first | 280 | + events.last |
281 | rescue | 281 | rescue |
282 | nil | 282 | nil |
283 | end | 283 | end |
284 | 284 | ||
285 | def last_activity_date | 285 | def last_activity_date |
286 | - last_activity.try(:created_at) | ||
287 | - end | ||
288 | - | ||
289 | - def last_activity_date_cached(expire = 1.hour) | ||
290 | - activity_date_key = "project_#{id}_activity_date" | ||
291 | - | ||
292 | - cached_activities = Rails.cache.read(activity_date_key) | ||
293 | - if cached_activities | ||
294 | - activity_date = if cached_activities == "Never" | ||
295 | - nil | ||
296 | - else | ||
297 | - cached_activities | ||
298 | - end | 286 | + if events.last |
287 | + events.last.created_at | ||
299 | else | 288 | else |
300 | - activity_date = last_activity_date | ||
301 | - Rails.cache.write(activity_date_key, activity_date || "Never", :expires_in => expire) | 289 | + updated_at |
302 | end | 290 | end |
291 | + end | ||
303 | 292 | ||
304 | - activity_date | 293 | + def last_activity_date_cached(expire = 1.hour) |
294 | + last_activity_date | ||
305 | end | 295 | end |
306 | 296 | ||
307 | # Get project updates from cache | 297 | # Get project updates from cache |
app/views/dashboard/_events_feed.html.haml
1 | -- @events.each do |event| | ||
2 | - .wll.event_feed | ||
3 | - - if event.push? | ||
4 | - - if event.new_branch? | ||
5 | - User pushed new branch | ||
6 | - - else | ||
7 | - = image_tag gravatar_icon(event.pusher_email), :class => "avatar" | ||
8 | - #{event.pusher_name} pushed to | ||
9 | - = link_to project_commits_path(event.project, :ref => event.branch_name) do | ||
10 | - %strong= event.branch_name | ||
11 | - %span.cgray | ||
12 | - = time_ago_in_words(event.created_at) | ||
13 | - ago. | ||
14 | - - if event.commits.count > 1 | ||
15 | - = link_to compare_project_commits_path(event.project, :from => event.commits.first.prev_commit_id, :to => event.commits.last.id) do | ||
16 | - Compare #{event.commits.first.commit.id[0..8]}...#{event.commits.last.id[0..8]} | ||
17 | - - @project = event.project | ||
18 | - %ul.unstyled | ||
19 | - = render event.commits | 1 | += render @events |
2 | + |
app/views/dashboard/index.html.haml
@@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
8 | 8 | ||
9 | %div.dashboard_category | 9 | %div.dashboard_category |
10 | %h3 | 10 | %h3 |
11 | - Projects | 11 | + = link_to "Projects" , "#projects", :id => "projects" |
12 | %small | 12 | %small |
13 | ( most recent ) | 13 | ( most recent ) |
14 | 14 | ||
@@ -34,7 +34,8 @@ | @@ -34,7 +34,8 @@ | ||
34 | - unless @merge_requests.blank? | 34 | - unless @merge_requests.blank? |
35 | %div.dashboard_category | 35 | %div.dashboard_category |
36 | %h3 | 36 | %h3 |
37 | - Merge Requests | 37 | + = link_to "Merge Requests" , "#merge_requests", :id => "merge_requests" |
38 | + | ||
38 | %small ( authored or assigned to you ) | 39 | %small ( authored or assigned to you ) |
39 | %strong.right | 40 | %strong.right |
40 | = link_to dashboard_merge_requests_path do | 41 | = link_to dashboard_merge_requests_path do |
@@ -46,7 +47,7 @@ | @@ -46,7 +47,7 @@ | ||
46 | - unless @issues.blank? | 47 | - unless @issues.blank? |
47 | %div.dashboard_category | 48 | %div.dashboard_category |
48 | %h3 | 49 | %h3 |
49 | - Issues | 50 | + = link_to "Issues" , "#issues", :id => "issues" |
50 | %small ( assigned to you ) | 51 | %small ( assigned to you ) |
51 | %strong.right | 52 | %strong.right |
52 | = link_to dashboard_merge_requests_path do | 53 | = link_to dashboard_merge_requests_path do |
@@ -58,7 +59,7 @@ | @@ -58,7 +59,7 @@ | ||
58 | - unless @events.blank? | 59 | - unless @events.blank? |
59 | %div.dashboard_category | 60 | %div.dashboard_category |
60 | %h3 | 61 | %h3 |
61 | - Activities | 62 | + = link_to "Activities" , "#activities", :id => "activities" |
62 | 63 | ||
63 | %hr | 64 | %hr |
64 | .row | 65 | .row |
@@ -0,0 +1,31 @@ | @@ -0,0 +1,31 @@ | ||
1 | +.wll.event_feed | ||
2 | + - if event.push? | ||
3 | + - if event.new_branch? | ||
4 | + = image_tag gravatar_icon(event.pusher_email), :class => "avatar" | ||
5 | + %strong #{event.pusher_name} | ||
6 | + pushed new branch | ||
7 | + = link_to project_commits_path(event.project, :ref => event.branch_name) do | ||
8 | + %strong= event.branch_name | ||
9 | + at | ||
10 | + %strong= link_to event.project.name, event.project | ||
11 | + %span.cgray | ||
12 | + = time_ago_in_words(event.created_at) | ||
13 | + ago. | ||
14 | + - else | ||
15 | + = image_tag gravatar_icon(event.pusher_email), :class => "avatar" | ||
16 | + %strong #{event.pusher_name} | ||
17 | + pushed to | ||
18 | + = link_to project_commits_path(event.project, :ref => event.branch_name) do | ||
19 | + %strong= event.branch_name | ||
20 | + at | ||
21 | + %strong= link_to event.project.name, event.project | ||
22 | + %span.cgray | ||
23 | + = time_ago_in_words(event.created_at) | ||
24 | + ago. | ||
25 | + - if event.commits.count > 1 | ||
26 | + = link_to compare_project_commits_path(event.project, :from => event.commits.first.prev_commit_id, :to => event.commits.last.id) do | ||
27 | + Compare #{event.commits.first.commit.id[0..8]}...#{event.commits.last.id[0..8]} | ||
28 | + - @project = event.project | ||
29 | + %ul.unstyled | ||
30 | + = render event.commits | ||
31 | + |