OSDN Git Service

Improved Issues and MR filters
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Tue, 27 Nov 2012 04:29:11 +0000 (07:29 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Tue, 27 Nov 2012 04:29:11 +0000 (07:29 +0300)
app/helpers/dashboard_helper.rb
app/views/dashboard/_filter.html.haml

index 540a73e..0baa5b4 100644 (file)
@@ -1,5 +1,12 @@
 module DashboardHelper
   def dashboard_filter_path(entity, options={})
+    exist_opts = {
+      status: params[:status],
+      project_id: params[:project_id],
+    }
+
+    options = exist_opts.merge(options)
+
     case entity
     when 'issue' then
       dashboard_issues_path(options)
@@ -9,6 +16,17 @@ module DashboardHelper
   end
 
   def entities_per_project project, entity
-    project.items_for(entity).where(assignee_id: current_user.id).count
+    items = project.items_for(entity)
+
+    items = case params[:status]
+            when 'closed'
+              items.closed
+            when 'all'
+              items
+            else
+              items.opened
+            end
+
+    items.where(assignee_id: current_user.id).count
   end
 end
index fc00ca7..4624af7 100644 (file)
@@ -1,6 +1,6 @@
 = form_tag dashboard_filter_path(entity), method: 'get' do
   %fieldset.dashboard-search-filter
-    = search_field_tag "search", nil, { placeholder: 'Search', class: 'search-text-input' }
+    = search_field_tag "search", params[:search], { placeholder: 'Search', class: 'search-text-input' }
     = button_tag type: 'submit', class: 'btn' do
       %i.icon-search
 
@@ -8,7 +8,7 @@
     %legend Status:
     %ul.nav.nav-pills.nav-stacked
       %li{class: ("active" if !params[:status])}
-        = link_to dashboard_filter_path(entity) do
+        = link_to dashboard_filter_path(entity, status: nil) do
           Open
       %li{class: ("active" if params[:status] == 'closed')}
         = link_to dashboard_filter_path(entity, status: 'closed') do