From 3fe9f3ebe6b89489fb5a022cb8afe6f63d33b529 Mon Sep 17 00:00:00 2001 From: Aleksei Kvitinskii Date: Mon, 7 Nov 2011 14:12:46 +0200 Subject: [PATCH] implemented cookie remember option for issue page filter --- app/helpers/issues_helper.rb | 4 ++++ app/views/issues/index.html.haml | 14 ++++++++++---- app/views/layouts/project.html.haml | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index bfb9d25e..08bfa569 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -1,2 +1,6 @@ module IssuesHelper + def project_issues_filter_path project, params = {} + params[:f] ||= cookies['issue_filter'] + project_issues_path project, params + end end diff --git a/app/views/issues/index.html.haml b/app/views/issues/index.html.haml index 21e455b9..79f15c86 100644 --- a/app/views/issues/index.html.haml +++ b/app/views/issues/index.html.haml @@ -10,16 +10,16 @@ .right.issues_filter = form_tag project_issues_path(@project), :method => :get do .left - = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "this.form.submit()", :id => "open_issues", :class => "status" + = radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "setIssueFilter(this.form, 0);", :id => "open_issues", :class => "status" = label_tag "open_issues","Open" .left - = radio_button_tag :f, 2, params[:f] == "2", :onclick => "this.form.submit()", :id => "closed_issues", :class => "status" + = radio_button_tag :f, 2, params[:f] == "2", :onclick => "setIssueFilter(this.form, 2);", :id => "closed_issues", :class => "status" = label_tag "closed_issues","Closed" .left - = radio_button_tag :f, 3, params[:f] == "3", :onclick => "this.form.submit()", :id => "my_issues", :class => "status" + = radio_button_tag :f, 3, params[:f] == "3", :onclick => "setIssueFilter(this.form, 3);", :id => "my_issues", :class => "status" = label_tag "my_issues","To Me" .left - = radio_button_tag :f, 1, params[:f] == "1", :onclick => "this.form.submit()", :id => "all_issues", :class => "status" + = radio_button_tag :f, 1, params[:f] == "1", :onclick => "setIssueFilter(this.form, 1);", :id => "all_issues", :class => "status" = label_tag "all_issues","All" #issues-table-holder= render "issues" @@ -28,6 +28,12 @@ var href = $('.issue_search').parent().attr('action'); var last_terms = ''; + + var setIssueFilter = function(form, value){ + $.cookie('issue_filter', value, { expires: 140 }); + form.submit(); + } + $('.issue_search').keyup(function() { var terms = $(this).val(); var project_id = $('#project_id').val(); diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml index ee6581ec..4b4eaf7d 100644 --- a/app/views/layouts/project.html.haml +++ b/app/views/layouts/project.html.haml @@ -25,7 +25,7 @@ Team - if @project.users_projects.count > 0 %span{ :class => "number" }= @project.users_projects.count - = link_to project_issues_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do + = link_to project_issues_filter_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do Issues - if @project.issues.opened.count > 0 %span{ :class => "number" }= @project.issues.opened.count