summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/merge_requests_controller.rb3
-rw-r--r--app/helpers/merge_requests_helper.rb10
-rw-r--r--app/models/merge_request.rb15
-rw-r--r--app/views/merge_requests/_merge_request.html.erb2
-rw-r--r--app/views/merge_requests/index.html.erb7
5 files changed, 34 insertions, 3 deletions
diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb
index dcaf0eb..e28aa66 100644
--- a/app/controllers/merge_requests_controller.rb
+++ b/app/controllers/merge_requests_controller.rb
@@ -33,7 +33,8 @@ class MergeRequestsController < ApplicationController
renders_in_site_specific_context
def index
- @open_merge_requests = @repository.merge_requests.open
+ #@open_merge_requests = @repository.merge_requests.open
+ @open_merge_requests = @repository.merge_requests.from_filter(params[:status])
@recently_closed_merge_requests = @repository.merge_requests.closed.find(:all, {
:limit => 10, :order => "updated_at desc"
})
diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb
index 0c132e4..19aefd3 100644
--- a/app/helpers/merge_requests_helper.rb
+++ b/app/helpers/merge_requests_helper.rb
@@ -19,5 +19,13 @@
#++
module MergeRequestsHelper
-
+ def link_to_status(status)
+ if params[:status].blank? && status == "open"
+ link_to(status.titlecase, {:status => status}, {:class => "selected"})
+ elsif params[:status] == status
+ link_to(status.titlecase, {:status => status}, {:class => "selected"})
+ else
+ link_to(status.titlecase, {:status => status})
+ end
+ end
end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 288756d..dab8dad 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -72,6 +72,8 @@ class MergeRequest < ActiveRecord::Base
named_scope :open, :conditions => ['status in (?)', [STATUS_OPEN, STATUS_VERIFYING]]
named_scope :closed, :conditions => ["status in (?)", [STATUS_MERGED, STATUS_REJECTED]]
+ named_scope :merged, :conditions => ["status = ?", [STATUS_MERGED]]
+ named_scope :rejected, :conditions => ["status = ?", [STATUS_REJECTED]]
def self.human_name
I18n.t("activerecord.models.merge_request")
@@ -88,6 +90,19 @@ class MergeRequest < ActiveRecord::Base
}
end
+ def self.from_filter(filter_name = nil)
+ case filter_name
+ when "open"
+ open
+ when "merged"
+ merged
+ when "rejected"
+ rejected
+ else
+ open
+ end
+ end
+
def status_string
self.class.status_string(status)
end
diff --git a/app/views/merge_requests/_merge_request.html.erb b/app/views/merge_requests/_merge_request.html.erb
index 31dd314..19d35f9 100644
--- a/app/views/merge_requests/_merge_request.html.erb
+++ b/app/views/merge_requests/_merge_request.html.erb
@@ -38,7 +38,7 @@
<%= merge_request.created_at.to_s(:short) -%>
- <% if !no_link && merge_request.open_or_in_verification? -%>
+ <% if !no_link -%>
| <strong>
<%= link_to t("views.merges.review"),
repo_owner_path(merge_request.target_repository,
diff --git a/app/views/merge_requests/index.html.erb b/app/views/merge_requests/index.html.erb
index 965d880..cedaf56 100644
--- a/app/views/merge_requests/index.html.erb
+++ b/app/views/merge_requests/index.html.erb
@@ -36,6 +36,13 @@
<% end -%>
<% content_for :sidebar do -%>
+ <h4>Filter</h4>
+ <ul class="links">
+ <% ["open", "merged", "rejected"].each do |status| -%>
+ <li class="merge_requests"><%= link_to_status(status) -%></li>
+ <% end -%>
+ </ul>
+
<h4>Recently handled merge requests</h4>
<ul class="recently-closed-merge-requests">
<% @recently_closed_merge_requests.each do |merge_request| -%>