summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorrandx <dmitriy.zaporozhets@gmail.com>2012-10-29 23:45:11 +0200
committerrandx <dmitriy.zaporozhets@gmail.com>2012-10-29 23:45:11 +0200
commitf417a265d7783cb10e4b55556f5de9fd0a7c9696 (patch)
treecaab665209f2606e4b11785d6d37b93980573ddf /app
parentd4e070cfadcccfe503402dd5d0524ca102d372d4 (diff)
downloadgitlab-ce-f417a265d7783cb10e4b55556f5de9fd0a7c9696.tar.gz
Finalize milestones for Merge Requests
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/milestones.js.coffee7
-rw-r--r--app/assets/stylesheets/common.scss8
-rw-r--r--app/controllers/milestones_controller.rb2
-rw-r--r--app/decorators/user_decorator.rb11
-rw-r--r--app/helpers/projects_helper.rb4
-rw-r--r--app/models/merge_request.rb1
-rw-r--r--app/models/milestone.rb14
-rw-r--r--app/views/milestones/_milestone.html.haml6
-rw-r--r--app/views/milestones/show.html.haml29
9 files changed, 57 insertions, 25 deletions
diff --git a/app/assets/javascripts/milestones.js.coffee b/app/assets/javascripts/milestones.js.coffee
index 13aba860932..e40a69ebaa5 100644
--- a/app/assets/javascripts/milestones.js.coffee
+++ b/app/assets/javascripts/milestones.js.coffee
@@ -5,3 +5,10 @@ $ ->
$('.milestone-issue-filter li').toggleClass('active')
$('.milestone-issue-filter tr[data-closed]').toggleClass('hide')
false
+
+ $('.milestone-merge-requests-filter tr[data-closed]').addClass('hide')
+
+ $('.milestone-merge-requests-filter ul.nav li a').click ->
+ $('.milestone-merge-requests-filter li').toggleClass('active')
+ $('.milestone-merge-requests-filter tr[data-closed]').toggleClass('hide')
+ false
diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss
index dfb436977c2..843b683f4eb 100644
--- a/app/assets/stylesheets/common.scss
+++ b/app/assets/stylesheets/common.scss
@@ -675,3 +675,11 @@ pre {
margin-bottom: 0;
margin-top:4px;
}
+
+.float-link {
+ float:left;
+ margin-right:15px;
+ .s16 {
+ margin-right:5px;
+ }
+}
diff --git a/app/controllers/milestones_controller.rb b/app/controllers/milestones_controller.rb
index ac28f000152..fadfee2dc06 100644
--- a/app/controllers/milestones_controller.rb
+++ b/app/controllers/milestones_controller.rb
@@ -31,7 +31,7 @@ class MilestonesController < ProjectResourceController
def show
@issues = @milestone.issues
- @users = @milestone.participants
+ @users = UserDecorator.decorate(@milestone.participants)
@merge_requests = @milestone.merge_requests
respond_to do |format|
diff --git a/app/decorators/user_decorator.rb b/app/decorators/user_decorator.rb
new file mode 100644
index 00000000000..af9c6a63e75
--- /dev/null
+++ b/app/decorators/user_decorator.rb
@@ -0,0 +1,11 @@
+class UserDecorator < ApplicationDecorator
+ decorates :user
+
+ def avatar_image size = 16
+ h.image_tag h.gravatar_icon(self.email, size), class: "avatar #{"s#{size}"}", width: size
+ end
+
+ def tm_of(project)
+ project.team_member_by_id(self.id)
+ end
+end
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index 468ace15640..7c302ef4176 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -10,5 +10,9 @@ module ProjectsHelper
def link_to_project project
link_to project.name, project
end
+
+ def tm_path team_member
+ project_team_member_path(@project, team_member)
+ end
end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 7dc00958642..c737258d7be 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -1,4 +1,5 @@
require Rails.root.join("app/models/commit")
+require Rails.root.join("app/roles/static_model")
class MergeRequest < ActiveRecord::Base
include IssueCommonality
diff --git a/app/models/milestone.rb b/app/models/milestone.rb
index 233270ed748..41412a13bf5 100644
--- a/app/models/milestone.rb
+++ b/app/models/milestone.rb
@@ -16,16 +16,20 @@ class Milestone < ActiveRecord::Base
User.where(id: issues.pluck(:assignee_id))
end
- def issues_percent_complete
- ((self.issues.closed.count * 100) / self.issues.count).abs
+ def open_items_count
+ self.issues.opened.count + self.merge_requests.opened.count
end
- def merge_requests_percent_complete
- ((self.merge_requests.closed.count * 100) / self.merge_requests.count).abs
+ def closed_items_count
+ self.issues.closed.count + self.merge_requests.closed.count
+ end
+
+ def total_items_count
+ self.issues.count + self.merge_requests.count
end
def percent_complete
- (issues_percent_complete + merge_requests_percent_complete) / 2
+ ((closed_items_count * 100) / total_items_count).abs
rescue ZeroDivisionError
100
end
diff --git a/app/views/milestones/_milestone.html.haml b/app/views/milestones/_milestone.html.haml
index 2bb78975baa..05532c3879d 100644
--- a/app/views/milestones/_milestone.html.haml
+++ b/app/views/milestones/_milestone.html.haml
@@ -9,13 +9,13 @@
%small
= milestone.expires_at
.row
- .progress.progress-success.span4
+ .progress.progress-info.span4
.bar{style: "width: #{milestone.percent_complete}%;"}
.span6
- if milestone.issues.any?
- = link_to project_issues_path(milestone.project, milestone_id: milestone.id), class: "padded" do
+ = link_to project_issues_path(milestone.project, milestone_id: milestone.id), class: "btn very_small" do
%strong= pluralize milestone.issues.count, 'Issue'
- if milestone.merge_requests.any?
- = link_to project_merge_requests_path(milestone.project, milestone_id: milestone.id), class: "padded" do
+ = link_to project_merge_requests_path(milestone.project, milestone_id: milestone.id), class: "btn very_small" do
%strong= pluralize milestone.issues.count, 'Merge Request'
diff --git a/app/views/milestones/show.html.haml b/app/views/milestones/show.html.haml
index ad4580d462e..b8bc788c953 100644
--- a/app/views/milestones/show.html.haml
+++ b/app/views/milestones/show.html.haml
@@ -31,10 +31,10 @@
%h5
Progress:
%small
- #{@milestone.issues.closed.count} closed
+ #{@milestone.closed_items_count} closed
&ndash;
- #{@milestone.issues.opened.count} open
- .progress.progress-success
+ #{@milestone.open_items_count} open
+ .progress.progress-info
.bar{style: "width: #{@milestone.percent_complete}%;"}
@@ -58,10 +58,9 @@
%span.badge.badge-info ##{issue.id}
&ndash;
= link_to_gfm truncate(issue.title, length: 60), [@project, issue]
- %br
.span6
- %table.milestone-merge_requests-filter
+ %table.milestone-merge-requests-filter
%thead
%th
%ul.nav.nav-pills
@@ -74,15 +73,13 @@
%span.badge.badge-info ##{merge_request.id}
&ndash;
= link_to_gfm truncate(merge_request.title, length: 60), [@project, merge_request]
- %br
- .span6
- %table
- %thead
- %th Participants
- - @users.each do |user|
- %tr
- %td
- = image_tag gravatar_icon(user.email, 24), width: "24"
- &nbsp;
- = user.name
+%hr
+%h6 Participants:
+%div
+ - @users.each do |user|
+ = link_to tm_path(user.tm_of(@project)), class: 'float-link' do
+ = user.avatar_image
+ = user.name
+
+.clearfix