summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorAriejan de Vroom <ariejan@ariejan.net>2011-12-08 01:07:02 +0100
committerAriejan de Vroom <ariejan@ariejan.net>2011-12-08 01:07:02 +0100
commite4b1f38c272ae8a052d64024867d9bcaa8398ce1 (patch)
tree111bfdaaeb5ddfcba565a591f63e1afdcc65696d /app
parent1a3af33fce8ce505dca2bf7af071091b2ff058a2 (diff)
downloadgitlab-ce-e4b1f38c272ae8a052d64024867d9bcaa8398ce1.tar.gz
Added merge request dashboard, showing all merge requests assigned to
you across projects.
Diffstat (limited to 'app')
-rw-r--r--app/controllers/user_merge_requests_controller.rb9
-rw-r--r--app/helpers/user_merge_requests_helper.rb3
-rw-r--r--app/models/user.rb9
-rw-r--r--app/views/layouts/user.html.haml4
-rw-r--r--app/views/merge_requests/_merge_request.html.haml5
-rw-r--r--app/views/user_merge_requests/index.html.haml10
6 files changed, 39 insertions, 1 deletions
diff --git a/app/controllers/user_merge_requests_controller.rb b/app/controllers/user_merge_requests_controller.rb
new file mode 100644
index 00000000000..7b6710d55ea
--- /dev/null
+++ b/app/controllers/user_merge_requests_controller.rb
@@ -0,0 +1,9 @@
+class UserMergeRequestsController < ApplicationController
+ before_filter :authenticate_user!
+
+ layout "user"
+
+ def index
+ @merge_requests = current_user.assigned_merge_requests
+ end
+end
diff --git a/app/helpers/user_merge_requests_helper.rb b/app/helpers/user_merge_requests_helper.rb
new file mode 100644
index 00000000000..6e5db315031
--- /dev/null
+++ b/app/helpers/user_merge_requests_helper.rb
@@ -0,0 +1,3 @@
+module UserMergeRequestsHelper
+end
+
diff --git a/app/models/user.rb b/app/models/user.rb
index 8967859d089..de0bb637c15 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -25,6 +25,15 @@ class User < ActiveRecord::Base
:foreign_key => :assignee_id,
:dependent => :destroy
+ has_many :merge_requests,
+ :foreign_key => :author_id,
+ :dependent => :destroy
+
+ has_many :assigned_merge_requests,
+ :class_name => "MergeRequest",
+ :foreign_key => :assignee_id,
+ :dependent => :destroy
+
before_create :ensure_authentication_token
alias_attribute :private_token, :authentication_token
scope :not_in_project, lambda { |project| where("id not in (:ids)", :ids => project.users.map(&:id) ) }
diff --git a/app/views/layouts/user.html.haml b/app/views/layouts/user.html.haml
index 20a2f2e467a..e9dd18bc632 100644
--- a/app/views/layouts/user.html.haml
+++ b/app/views/layouts/user.html.haml
@@ -21,6 +21,10 @@
Issues
- unless current_user.assigned_issues.empty?
%span{ :class => "number" }= current_user.assigned_issues.count
+ = link_to merge_requests_path, :class => current_page?(:controller => "user_merge_requests", :action => "index") ? "current" : nil do
+ Merge Requests
+ - unless current_user.assigned_merge_requests.empty?
+ %span{ :class => "number" }= current_user.assigned_merge_requests.count
.project-content
= yield
diff --git a/app/views/merge_requests/_merge_request.html.haml b/app/views/merge_requests/_merge_request.html.haml
index c5bcf7798ad..ef290833a27 100644
--- a/app/views/merge_requests/_merge_request.html.haml
+++ b/app/views/merge_requests/_merge_request.html.haml
@@ -1,8 +1,11 @@
-%a.update-item{:href => project_merge_request_path(@project, merge_request)}
+%a.update-item{:href => project_merge_request_path(merge_request.project, merge_request)}
= image_tag gravatar_icon(merge_request.author_email), :class => "left", :width => 40
%span.update-title
= merge_request.title
%span.update-author
+ - if not @project.present?
+ %strong= merge_request.project.name
+ = '-'
%strong= merge_request.author_name
authored
= time_ago_in_words(merge_request.created_at)
diff --git a/app/views/user_merge_requests/index.html.haml b/app/views/user_merge_requests/index.html.haml
new file mode 100644
index 00000000000..cf1c4143083
--- /dev/null
+++ b/app/views/user_merge_requests/index.html.haml
@@ -0,0 +1,10 @@
+- if @merge_requests.opened.count > 0
+ %div{ :class => "update-data ui-box ui-box-small ui-box-big" }
+ %h3
+ %span.tag.open Open
+ .data
+ = render @merge_requests.opened
+
+ .clear
+ %br
+