Commit 5b1634cd4b1bdd29b6bdd2141cd24b6dffc2fb3e

Authored by Aleksei Kvitinskii
2 parents 49bced3a 3fe9f3eb

implemented cookie remember option for issue page filter

app/helpers/issues_helper.rb
1 module IssuesHelper 1 module IssuesHelper
2 - def sort_class  
3 - if can?(current_user, :admin_issue, @project) && (!params[:f] || params[:f] == "0")  
4 - "handle"  
5 - end  
6 - end 2 + def sort_class
  3 + if can?(current_user, :admin_issue, @project) && (!params[:f] || params[:f] == "0")
  4 + "handle"
  5 + end
  6 + end
  7 +
  8 + def project_issues_filter_path project, params = {}
  9 + params[:f] ||= cookies['issue_filter']
  10 + project_issues_path project, params
  11 + end
7 end 12 end
app/views/issues/index.html.haml
@@ -13,16 +13,16 @@ @@ -13,16 +13,16 @@
13 .right.issues_filter 13 .right.issues_filter
14 = form_tag project_issues_path(@project), :method => :get do 14 = form_tag project_issues_path(@project), :method => :get do
15 .left 15 .left
16 - = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "this.form.submit()", :id => "open_issues", :class => "status" 16 + = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "setIssueFilter(this.form, 0)", :id => "open_issues", :class => "status"
17 = label_tag "open_issues","Open" 17 = label_tag "open_issues","Open"
18 .left 18 .left
19 - = radio_button_tag :f, 2, params[:f] == "2", :onclick => "this.form.submit()", :id => "closed_issues", :class => "status" 19 + = radio_button_tag :f, 2, params[:f] == "2", :onclick => "setIssueFilter(this.form, 2)", :id => "closed_issues", :class => "status"
20 = label_tag "closed_issues","Closed" 20 = label_tag "closed_issues","Closed"
21 .left 21 .left
22 - = radio_button_tag :f, 3, params[:f] == "3", :onclick => "this.form.submit()", :id => "my_issues", :class => "status" 22 + = radio_button_tag :f, 3, params[:f] == "3", :onclick => "setIssueFilter(this.form, 3)", :id => "my_issues", :class => "status"
23 = label_tag "my_issues","To Me" 23 = label_tag "my_issues","To Me"
24 .left 24 .left
25 - = radio_button_tag :f, 1, params[:f] == "1", :onclick => "this.form.submit()", :id => "all_issues", :class => "status" 25 + = radio_button_tag :f, 1, params[:f] == "1", :onclick => "setIssueFilter(this.form, 1)", :id => "all_issues", :class => "status"
26 = label_tag "all_issues","All" 26 = label_tag "all_issues","All"
27 27
28 = render "issues" 28 = render "issues"
@@ -31,6 +31,12 @@ @@ -31,6 +31,12 @@
31 var href = $('.issue_search').parent().attr('action'); 31 var href = $('.issue_search').parent().attr('action');
32 var last_terms = ''; 32 var last_terms = '';
33 33
  34 +
  35 + var setIssueFilter = function(form, value){
  36 + $.cookie('issue_filter', value, { expires: 140 });
  37 + form.submit();
  38 + }
  39 +
34 $('.issue_search').keyup(function() { 40 $('.issue_search').keyup(function() {
35 var terms = $(this).val(); 41 var terms = $(this).val();
36 var project_id = $('#project_id').val(); 42 var project_id = $('#project_id').val();
app/views/layouts/project.html.haml
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 Team 25 Team
26 - if @project.users_projects.count > 0 26 - if @project.users_projects.count > 0
27 %span{ :class => "number" }= @project.users_projects.count 27 %span{ :class => "number" }= @project.users_projects.count
28 - = link_to project_issues_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do 28 + = link_to project_issues_filter_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do
29 Issues 29 Issues
30 - if @project.issues.opened.count > 0 30 - if @project.issues.opened.count > 0
31 %span{ :class => "number" }= @project.issues.opened.count 31 %span{ :class => "number" }= @project.issues.opened.count