diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-09-28 12:03:17 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-09-28 12:03:17 +0000 |
commit | a37af7a2260d7da269a08e2d94d88f67aaad5c9b (patch) | |
tree | c1b0c8f0afd1e98f55b0b79d1c4af07eedba593d /app/controllers | |
parent | 85711f1d5484ae9708dc4e92fdaf4eb499da8ede (diff) | |
download | redmine-a37af7a2260d7da269a08e2d94d88f67aaad5c9b.tar.gz redmine-a37af7a2260d7da269a08e2d94d88f67aaad5c9b.zip |
Adds a workflow overview screen.
Workflow setup moved to a dedicated controller.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1914 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/roles_controller.rb | 21 | ||||
-rw-r--r-- | app/controllers/workflows_controller.rb | 45 |
2 files changed, 45 insertions, 21 deletions
diff --git a/app/controllers/roles_controller.rb b/app/controllers/roles_controller.rb index 72555e5b0..ab70ebf41 100644 --- a/app/controllers/roles_controller.rb +++ b/app/controllers/roles_controller.rb @@ -79,27 +79,6 @@ class RolesController < ApplicationController redirect_to :action => 'list' end - def workflow - @role = Role.find_by_id(params[:role_id]) - @tracker = Tracker.find_by_id(params[:tracker_id]) - - if request.post? - Workflow.destroy_all( ["role_id=? and tracker_id=?", @role.id, @tracker.id]) - (params[:issue_status] || []).each { |old, news| - news.each { |new| - @role.workflows.build(:tracker_id => @tracker.id, :old_status_id => old, :new_status_id => new) - } - } - if @role.save - flash[:notice] = l(:notice_successful_update) - redirect_to :action => 'workflow', :role_id => @role, :tracker_id => @tracker - end - end - @roles = Role.find(:all, :order => 'builtin, position') - @trackers = Tracker.find(:all, :order => 'position') - @statuses = IssueStatus.find(:all, :order => 'position') - end - def report @roles = Role.find(:all, :order => 'builtin, position') @permissions = Redmine::AccessControl.permissions.select { |p| !p.public? } diff --git a/app/controllers/workflows_controller.rb b/app/controllers/workflows_controller.rb new file mode 100644 index 000000000..380d4e752 --- /dev/null +++ b/app/controllers/workflows_controller.rb @@ -0,0 +1,45 @@ +# Redmine - project management software +# Copyright (C) 2006-2008 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +class WorkflowsController < ApplicationController + before_filter :require_admin + + def index + @workflow_counts = Workflow.count_by_tracker_and_role + end + + def edit + @role = Role.find_by_id(params[:role_id]) + @tracker = Tracker.find_by_id(params[:tracker_id]) + + if request.post? + Workflow.destroy_all( ["role_id=? and tracker_id=?", @role.id, @tracker.id]) + (params[:issue_status] || []).each { |old, news| + news.each { |new| + @role.workflows.build(:tracker_id => @tracker.id, :old_status_id => old, :new_status_id => new) + } + } + if @role.save + flash[:notice] = l(:notice_successful_update) + redirect_to :action => 'edit', :role_id => @role, :tracker_id => @tracker + end + end + @roles = Role.find(:all, :order => 'builtin, position') + @trackers = Tracker.find(:all, :order => 'position') + @statuses = IssueStatus.find(:all, :order => 'position') + end +end |