##// END OF EJS Templates
Resourcified issue statuses....
Jean-Philippe Lang -
r7770:68f3e91bd703
parent child
Show More
@@ -22,9 +22,6 class IssueStatusesController < ApplicationController
22 before_filter :require_admin_or_api_request, :only => :index
22 before_filter :require_admin_or_api_request, :only => :index
23 accept_api_auth :index
23 accept_api_auth :index
24
24
25 verify :method => :post, :only => [ :destroy, :create, :update, :move, :update_issue_done_ratio ],
26 :redirect_to => { :action => :index }
27
28 def index
25 def index
29 respond_to do |format|
26 respond_to do |format|
30 format.html {
27 format.html {
@@ -43,7 +40,7 class IssueStatusesController < ApplicationController
43
40
44 def create
41 def create
45 @issue_status = IssueStatus.new(params[:issue_status])
42 @issue_status = IssueStatus.new(params[:issue_status])
46 if @issue_status.save
43 if request.post? && @issue_status.save
47 flash[:notice] = l(:notice_successful_create)
44 flash[:notice] = l(:notice_successful_create)
48 redirect_to :action => 'index'
45 redirect_to :action => 'index'
49 else
46 else
@@ -57,7 +54,7 class IssueStatusesController < ApplicationController
57
54
58 def update
55 def update
59 @issue_status = IssueStatus.find(params[:id])
56 @issue_status = IssueStatus.find(params[:id])
60 if @issue_status.update_attributes(params[:issue_status])
57 if request.put? && @issue_status.update_attributes(params[:issue_status])
61 flash[:notice] = l(:notice_successful_update)
58 flash[:notice] = l(:notice_successful_update)
62 redirect_to :action => 'index'
59 redirect_to :action => 'index'
63 else
60 else
@@ -65,6 +62,7 class IssueStatusesController < ApplicationController
65 end
62 end
66 end
63 end
67
64
65 verify :method => :delete, :only => :destroy, :redirect_to => { :action => :index }
68 def destroy
66 def destroy
69 IssueStatus.find(params[:id]).destroy
67 IssueStatus.find(params[:id]).destroy
70 redirect_to :action => 'index'
68 redirect_to :action => 'index'
@@ -74,7 +72,7 class IssueStatusesController < ApplicationController
74 end
72 end
75
73
76 def update_issue_done_ratio
74 def update_issue_done_ratio
77 if IssueStatus.update_issue_done_ratios
75 if request.post? && IssueStatus.update_issue_done_ratios
78 flash[:notice] = l(:notice_issue_done_ratios_updated)
76 flash[:notice] = l(:notice_issue_done_ratios_updated)
79 else
77 else
80 flash[:error] = l(:error_issue_done_ratios_not_updated)
78 flash[:error] = l(:error_issue_done_ratios_not_updated)
@@ -1,22 +1,12
1 <%= error_messages_for 'issue_status' %>
1 <%= error_messages_for 'issue_status' %>
2
2
3 <div class="box">
3 <div class="box tabular">
4 <!--[form:issue_status]-->
4 <p><%= f.text_field :name, :required => true %></p>
5 <p><label for="issue_status_name"><%=l(:field_name)%><span class="required"> *</span></label>
6 <%= text_field 'issue_status', 'name' %></p>
7
8 <% if Issue.use_status_for_done_ratio? %>
5 <% if Issue.use_status_for_done_ratio? %>
9 <p><label for="issue_done_ratio"><%=l(:field_done_ratio)%></label>
6 <p><%= f.select :default_done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }), :include_blank => true, :label => :field_done_ratio %></p>
10 <%= select 'issue_status', :default_done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }), :include_blank => true %></p>
11 <% end %>
7 <% end %>
12
8 <p><%= f.check_box :is_closed %></p>
13 <p><label for="issue_status_is_closed"><%=l(:field_is_closed)%></label>
9 <p><%= f.check_box :is_default %></p>
14 <%= check_box 'issue_status', 'is_closed' %></p>
15
16 <p><label for="issue_status_is_default"><%=l(:field_is_default)%></label>
17 <%= check_box 'issue_status', 'is_default' %></p>
18
10
19 <%= call_hook(:view_issue_statuses_form, :issue_status => @issue_status) %>
11 <%= call_hook(:view_issue_statuses_form, :issue_status => @issue_status) %>
20
21 <!--[eoform:issue_status]-->
22 </div>
12 </div>
@@ -1,6 +1,6
1 <h2><%= link_to l(:label_issue_status_plural), :controller => 'issue_statuses', :action => 'index' %> &#187; <%=h @issue_status %></h2>
1 <h2><%= link_to l(:label_issue_status_plural), issue_statuses_path %> &#187; <%=h @issue_status %></h2>
2
2
3 <% form_tag({:action => 'update', :id => @issue_status}, :class => "tabular") do %>
3 <% form_for @issue_status, :builder => TabularFormBuilder do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => {:f => f} %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <% end %>
6 <% end %>
@@ -1,6 +1,6
1 <div class="contextual">
1 <div class="contextual">
2 <%= link_to l(:label_issue_status_new), {:action => 'new'}, :class => 'icon icon-add' %>
2 <%= link_to l(:label_issue_status_new), new_issue_status_path, :class => 'icon icon-add' %>
3 <%= link_to(l(:label_update_issue_done_ratios), {:action => 'update_issue_done_ratio'}, :class => 'icon icon-multiple', :method => 'post', :confirm => l(:text_are_you_sure)) if Issue.use_status_for_done_ratio? %>
3 <%= link_to(l(:label_update_issue_done_ratios), update_issue_done_ratio_issue_statuses_path, :class => 'icon icon-multiple', :method => 'post', :confirm => l(:text_are_you_sure)) if Issue.use_status_for_done_ratio? %>
4 </div>
4 </div>
5
5
6 <h2><%=l(:label_issue_status_plural)%></h2>
6 <h2><%=l(:label_issue_status_plural)%></h2>
@@ -19,16 +19,16
19 <tbody>
19 <tbody>
20 <% for status in @issue_statuses %>
20 <% for status in @issue_statuses %>
21 <tr class="<%= cycle("odd", "even") %>">
21 <tr class="<%= cycle("odd", "even") %>">
22 <td><%= link_to h(status.name), :action => 'edit', :id => status %></td>
22 <td><%= link_to h(status.name), edit_issue_status_path(status) %></td>
23 <% if Issue.use_status_for_done_ratio? %>
23 <% if Issue.use_status_for_done_ratio? %>
24 <td align="center"><%= h status.default_done_ratio %></td>
24 <td align="center"><%= h status.default_done_ratio %></td>
25 <% end %>
25 <% end %>
26 <td align="center"><%= checked_image status.is_default? %></td>
26 <td align="center"><%= checked_image status.is_default? %></td>
27 <td align="center"><%= checked_image status.is_closed? %></td>
27 <td align="center"><%= checked_image status.is_closed? %></td>
28 <td align="center" style="width:15%;"><%= reorder_links('issue_status', {:action => 'update', :id => status}) %></td>
28 <td align="center" style="width:15%;"><%= reorder_links('issue_status', {:action => 'update', :id => status}, :put) %></td>
29 <td class="buttons">
29 <td class="buttons">
30 <%= link_to(l(:button_delete), { :action => 'destroy', :id => status },
30 <%= link_to(l(:button_delete), issue_status_path(status),
31 :method => :post,
31 :method => :delete,
32 :confirm => l(:text_are_you_sure),
32 :confirm => l(:text_are_you_sure),
33 :class => 'icon icon-del') %>
33 :class => 'icon icon-del') %>
34 </td>
34 </td>
@@ -1,6 +1,6
1 <h2><%= link_to l(:label_issue_status_plural), :controller => 'issue_statuses', :action => 'index' %> &#187; <%=l(:label_issue_status_new)%></h2>
1 <h2><%= link_to l(:label_issue_status_plural), issue_statuses_path %> &#187; <%=l(:label_issue_status_new)%></h2>
2
2
3 <% form_tag({:action => 'create'}, :class => "tabular") do %>
3 <% form_for @issue_status, :builder => TabularFormBuilder do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => {:f => f} %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_create) %>
6 <% end %>
6 <% end %>
@@ -223,9 +223,9 ActionController::Routing::Routes.draw do |map|
223
223
224 map.resources :groups
224 map.resources :groups
225 map.resources :trackers, :except => :show
225 map.resources :trackers, :except => :show
226 map.resources :issue_statuses, :except => :show, :collection => {:update_issue_done_ratio => :post}
226
227
227 #left old routes at the bottom for backwards compat
228 #left old routes at the bottom for backwards compat
228 map.connect 'issue_statuses.:format', :controller => 'issue_statuses', :action => 'index'
229 map.connect 'projects/:project_id/issues/:action', :controller => 'issues'
229 map.connect 'projects/:project_id/issues/:action', :controller => 'issues'
230 map.connect 'projects/:project_id/documents/:action', :controller => 'documents'
230 map.connect 'projects/:project_id/documents/:action', :controller => 'documents'
231 map.connect 'projects/:project_id/boards/:action/:id', :controller => 'boards'
231 map.connect 'projects/:project_id/boards/:action/:id', :controller => 'boards'
@@ -56,7 +56,7 class IssueStatusesControllerTest < ActionController::TestCase
56 end
56 end
57
57
58 def test_update
58 def test_update
59 post :update, :id => '3', :issue_status => {:name => 'Renamed status'}
59 put :update, :id => '3', :issue_status => {:name => 'Renamed status'}
60 assert_redirected_to :action => 'index'
60 assert_redirected_to :action => 'index'
61 status = IssueStatus.find(3)
61 status = IssueStatus.find(3)
62 assert_equal 'Renamed status', status.name
62 assert_equal 'Renamed status', status.name
@@ -66,7 +66,7 class IssueStatusesControllerTest < ActionController::TestCase
66 Issue.delete_all("status_id = 1")
66 Issue.delete_all("status_id = 1")
67
67
68 assert_difference 'IssueStatus.count', -1 do
68 assert_difference 'IssueStatus.count', -1 do
69 post :destroy, :id => '1'
69 delete :destroy, :id => '1'
70 end
70 end
71 assert_redirected_to :action => 'index'
71 assert_redirected_to :action => 'index'
72 assert_nil IssueStatus.find_by_id(1)
72 assert_nil IssueStatus.find_by_id(1)
@@ -76,7 +76,7 class IssueStatusesControllerTest < ActionController::TestCase
76 assert_not_nil Issue.find_by_status_id(1)
76 assert_not_nil Issue.find_by_status_id(1)
77
77
78 assert_no_difference 'IssueStatus.count' do
78 assert_no_difference 'IssueStatus.count' do
79 post :destroy, :id => '1'
79 delete :destroy, :id => '1'
80 end
80 end
81 assert_redirected_to :action => 'index'
81 assert_redirected_to :action => 'index'
82 assert_not_nil IssueStatus.find_by_id(1)
82 assert_not_nil IssueStatus.find_by_id(1)
General Comments 0
You need to be logged in to leave comments. Login now