comparison .svn/pristine/cf/cf99c613decbc54df4a99c63e23764d371ea8fbc.svn-base @ 1298:4f746d8966dd redmine_2.3_integration

Merge from redmine-2.3 branch to create new branch redmine-2.3-integration
author Chris Cannam
date Fri, 14 Jun 2013 09:28:30 +0100
parents 622f24f53b42
children
comparison
equal deleted inserted replaced
1297:0a574315af3e 1298:4f746d8966dd
1 # Redmine - project management software
2 # Copyright (C) 2006-2013 Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 class IssueCategoriesController < ApplicationController
19 menu_item :settings
20 model_object IssueCategory
21 before_filter :find_model_object, :except => [:index, :new, :create]
22 before_filter :find_project_from_association, :except => [:index, :new, :create]
23 before_filter :find_project_by_project_id, :only => [:index, :new, :create]
24 before_filter :authorize
25 accept_api_auth :index, :show, :create, :update, :destroy
26
27 def index
28 respond_to do |format|
29 format.html { redirect_to_settings_in_projects }
30 format.api { @categories = @project.issue_categories.all }
31 end
32 end
33
34 def show
35 respond_to do |format|
36 format.html { redirect_to_settings_in_projects }
37 format.api
38 end
39 end
40
41 def new
42 @category = @project.issue_categories.build
43 @category.safe_attributes = params[:issue_category]
44
45 respond_to do |format|
46 format.html
47 format.js
48 end
49 end
50
51 def create
52 @category = @project.issue_categories.build
53 @category.safe_attributes = params[:issue_category]
54 if @category.save
55 respond_to do |format|
56 format.html do
57 flash[:notice] = l(:notice_successful_create)
58 redirect_to_settings_in_projects
59 end
60 format.js
61 format.api { render :action => 'show', :status => :created, :location => issue_category_path(@category) }
62 end
63 else
64 respond_to do |format|
65 format.html { render :action => 'new'}
66 format.js { render :action => 'new'}
67 format.api { render_validation_errors(@category) }
68 end
69 end
70 end
71
72 def edit
73 end
74
75 def update
76 @category.safe_attributes = params[:issue_category]
77 if @category.save
78 respond_to do |format|
79 format.html {
80 flash[:notice] = l(:notice_successful_update)
81 redirect_to_settings_in_projects
82 }
83 format.api { render_api_ok }
84 end
85 else
86 respond_to do |format|
87 format.html { render :action => 'edit' }
88 format.api { render_validation_errors(@category) }
89 end
90 end
91 end
92
93 def destroy
94 @issue_count = @category.issues.size
95 if @issue_count == 0 || params[:todo] || api_request?
96 reassign_to = nil
97 if params[:reassign_to_id] && (params[:todo] == 'reassign' || params[:todo].blank?)
98 reassign_to = @project.issue_categories.find_by_id(params[:reassign_to_id])
99 end
100 @category.destroy(reassign_to)
101 respond_to do |format|
102 format.html { redirect_to_settings_in_projects }
103 format.api { render_api_ok }
104 end
105 return
106 end
107 @categories = @project.issue_categories - [@category]
108 end
109
110 private
111
112 def redirect_to_settings_in_projects
113 redirect_to settings_project_path(@project, :tab => 'categories')
114 end
115
116 # Wrap ApplicationController's find_model_object method to set
117 # @category instead of just @issue_category
118 def find_model_object
119 super
120 @category = @object
121 end
122 end