Commit 5f356d69284850603893b8a82141e44d27eec89e

Authored by randx
1 parent 50fdb2e7

Issues tags: refactoring

app/assets/javascripts/issues.js
... ... @@ -61,3 +61,18 @@ function initIssuesSearch() {
61 61 $(this).closest('tr').fadeOut(); updatePage();
62 62 });
63 63 }
  64 +
  65 +/**
  66 + * Init issues page
  67 + *
  68 + */
  69 +function issuesPage(){
  70 + initIssuesSearch();
  71 + setSortable();
  72 + $("#label_name").chosen();
  73 + $("#assignee_id").chosen();
  74 + $("#milestone_id").chosen();
  75 + $("#milestone_id, #assignee_id, #label_name").on("change", function(){
  76 + $(this).closest("form").submit();
  77 + });
  78 +}
... ...
app/controllers/issues_controller.rb
... ... @@ -3,6 +3,8 @@ class IssuesController < ApplicationController
3 3 before_filter :project
4 4 before_filter :module_enabled
5 5 before_filter :issue, :only => [:edit, :update, :destroy, :show]
  6 + helper_method :issues_filter
  7 +
6 8 layout "project"
7 9  
8 10 # Authorize
... ... @@ -130,10 +132,10 @@ class IssuesController < ApplicationController
130 132 end
131 133  
132 134 def issues_filtered
133   - @issues = case params[:f].to_i
134   - when 1 then @project.issues
135   - when 2 then @project.issues.closed
136   - when 3 then @project.issues.opened.assigned(current_user)
  135 + @issues = case params[:f]
  136 + when issues_filter[:all] then @project.issues
  137 + when issues_filter[:closed] then @project.issues.closed
  138 + when issues_filter[:to_me] then @project.issues.opened.assigned(current_user)
137 139 else @project.issues.opened
138 140 end
139 141  
... ... @@ -143,4 +145,13 @@ class IssuesController < ApplicationController
143 145 @issues = @issues.includes(:author, :project).order("updated_at")
144 146 @issues
145 147 end
  148 +
  149 + def issues_filter
  150 + {
  151 + all: "1",
  152 + closed: "2",
  153 + to_me: "3",
  154 + open: "0"
  155 + }
  156 + end
146 157 end
... ...
app/views/issues/index.html.haml
... ... @@ -18,17 +18,17 @@
18 18 .title
19 19 .left
20 20 %ul.nav.nav-pills.left
21   - %li{:class => ("active" if (params[:f] == "0" || !params[:f]))}
22   - = link_to project_issues_path(@project, :f => 0, :milestone_id => params[:milestone_id]) do
  21 + %li{:class => ("active" if (params[:f] == issues_filter[:open] || !params[:f]))}
  22 + = link_to project_issues_path(@project, :f => issues_filter[:open], :milestone_id => params[:milestone_id]) do
23 23 Open
24   - %li{:class => ("active" if params[:f] == "2")}
25   - = link_to project_issues_path(@project, :f => 2, :milestone_id => params[:milestone_id]) do
  24 + %li{:class => ("active" if params[:f] == issues_filter[:closed])}
  25 + = link_to project_issues_path(@project, :f => issues_filter[:closed], :milestone_id => params[:milestone_id]) do
26 26 Closed
27   - %li{:class => ("active" if params[:f] == "3")}
28   - = link_to project_issues_path(@project, :f => 3, :milestone_id => params[:milestone_id]) do
  27 + %li{:class => ("active" if params[:f] == issues_filter[:to_me])}
  28 + = link_to project_issues_path(@project, :f => issues_filter[:to_me], :milestone_id => params[:milestone_id]) do
29 29 To Me
30   - %li{:class => ("active" if params[:f] == "1")}
31   - = link_to project_issues_path(@project, :f => 1, :milestone_id => params[:milestone_id]) do
  30 + %li{:class => ("active" if params[:f] == issues_filter[:all])}
  31 + = link_to project_issues_path(@project, :f => issues_filter[:all], :milestone_id => params[:milestone_id]) do
32 32 All
33 33  
34 34 .right
... ... @@ -44,14 +44,7 @@
44 44  
45 45 :javascript
46 46 $(function(){
47   - initIssuesSearch();
48   - setSortable();
49   - $("#label_name").chosen();
50   - $("#assignee_id").chosen();
51   - $("#milestone_id").chosen();
52   - $("#milestone_id, #assignee_id, #label_name").live("change", function(){
53   - $(this).closest("form").submit();
54   - });
  47 + issuesPage();
55 48 })
56 49  
57 50 function setSortable(){
... ...