diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/merge_requests_controller.rb | 3 | ||||
-rw-r--r-- | app/helpers/merge_requests_helper.rb | 10 | ||||
-rw-r--r-- | app/models/merge_request.rb | 15 | ||||
-rw-r--r-- | app/views/merge_requests/_merge_request.html.erb | 2 | ||||
-rw-r--r-- | app/views/merge_requests/index.html.erb | 7 |
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| -%> |