summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-11-15 14:31:19 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-11-15 14:31:19 +0000
commit7d57833740bb546753d6d908ee082e8268044fa3 (patch)
tree95aeec83f8844a52ad1f60aefd902ac8177ffab6
parent63c86758876dbfeef745935b68f8bb529e6df1ed (diff)
downloadredmine-7d57833740bb546753d6d908ee082e8268044fa3.tar.gz
redmine-7d57833740bb546753d6d908ee082e8268044fa3.zip
Adds a 'Move and follow' button on Move/Copy view to be redirected to the created issue(s) rather than the source project issue list (#1847).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3063 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/issues_controller.rb17
-rw-r--r--app/views/issues/move.rhtml3
-rw-r--r--config/locales/bg.yml1
-rw-r--r--config/locales/bs.yml1
-rw-r--r--config/locales/ca.yml1
-rw-r--r--config/locales/cs.yml1
-rw-r--r--config/locales/da.yml1
-rw-r--r--config/locales/de.yml1
-rw-r--r--config/locales/el.yml1
-rw-r--r--config/locales/en.yml1
-rw-r--r--config/locales/es.yml1
-rw-r--r--config/locales/fi.yml1
-rw-r--r--config/locales/fr.yml1
-rw-r--r--config/locales/gl.yml1
-rw-r--r--config/locales/he.yml1
-rw-r--r--config/locales/hu.yml1
-rw-r--r--config/locales/it.yml1
-rw-r--r--config/locales/ja.yml1
-rw-r--r--config/locales/ko.yml1
-rw-r--r--config/locales/lt.yml1
-rw-r--r--config/locales/nl.yml1
-rw-r--r--config/locales/no.yml1
-rw-r--r--config/locales/pl.yml1
-rw-r--r--config/locales/pt-BR.yml1
-rw-r--r--config/locales/pt.yml1
-rw-r--r--config/locales/ro.yml1
-rw-r--r--config/locales/ru.yml1
-rw-r--r--config/locales/sk.yml1
-rw-r--r--config/locales/sl.yml1
-rw-r--r--config/locales/sr.yml1
-rw-r--r--config/locales/sv.yml1
-rw-r--r--config/locales/th.yml1
-rw-r--r--config/locales/tr.yml1
-rw-r--r--config/locales/uk.yml1
-rw-r--r--config/locales/vi.yml1
-rw-r--r--config/locales/zh-TW.yml1
-rw-r--r--config/locales/zh.yml1
-rw-r--r--test/functional/issues_controller_test.rb13
38 files changed, 65 insertions, 3 deletions
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index a4f3de3d1..2fa465f4e 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -299,9 +299,14 @@ class IssuesController < ApplicationController
if request.post?
new_tracker = params[:new_tracker_id].blank? ? nil : @target_project.trackers.find_by_id(params[:new_tracker_id])
unsaved_issue_ids = []
+ moved_issues = []
@issues.each do |issue|
issue.init_journal(User.current)
- unsaved_issue_ids << issue.id unless issue.move_to(@target_project, new_tracker, params[:copy_options])
+ if r = issue.move_to(@target_project, new_tracker, params[:copy_options])
+ moved_issues << r
+ else
+ unsaved_issue_ids << issue.id
+ end
end
if unsaved_issue_ids.empty?
flash[:notice] = l(:notice_successful_update) unless @issues.empty?
@@ -310,7 +315,15 @@ class IssuesController < ApplicationController
:total => @issues.size,
:ids => '#' + unsaved_issue_ids.join(', #'))
end
- redirect_to :controller => 'issues', :action => 'index', :project_id => @project
+ if params[:follow]
+ if @issues.size == 1 && moved_issues.size == 1
+ redirect_to :controller => 'issues', :action => 'show', :id => moved_issues.first
+ else
+ redirect_to :controller => 'issues', :action => 'index', :project_id => (@target_project || @project)
+ end
+ else
+ redirect_to :controller => 'issues', :action => 'index', :project_id => @project
+ end
return
end
render :layout => false if request.xhr?
diff --git a/app/views/issues/move.rhtml b/app/views/issues/move.rhtml
index b0602f681..0d4717f53 100644
--- a/app/views/issues/move.rhtml
+++ b/app/views/issues/move.rhtml
@@ -25,5 +25,6 @@
<%= check_box_tag "copy_options[copy]", "1" %></p>
</div>
-<%= submit_tag l(:button_move) %>
+<%= submit_tag l(:button_move) %>
+<%= submit_tag l(:button_move_and_follow), :name => 'follow' %>
<% end %>
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 56a14ad5b..69662dbab 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -832,3 +832,4 @@ bg:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/bs.yml b/config/locales/bs.yml
index b23b2bbe2..716df4385 100644
--- a/config/locales/bs.yml
+++ b/config/locales/bs.yml
@@ -856,3 +856,4 @@ bs:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index a7903ade8..966df9a8f 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -835,3 +835,4 @@ ca:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index d65895ee3..c1533f62b 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -838,3 +838,4 @@ cs:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/da.yml b/config/locales/da.yml
index bb3a14ced..4d433f44c 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -858,3 +858,4 @@ da:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 520284e9f..425bcb575 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -858,3 +858,4 @@ de:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/el.yml b/config/locales/el.yml
index a54952dfa..032fa1cac 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -838,3 +838,4 @@ el:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 574ee9db0..5bd70a420 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -728,6 +728,7 @@ en:
button_list: List
button_view: View
button_move: Move
+ button_move_and_follow: Move and follow
button_back: Back
button_cancel: Cancel
button_activate: Activate
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 8776faa3b..d03088d5c 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -879,3 +879,4 @@ es:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index ab677f81b..acdee65a0 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -868,3 +868,4 @@ fi:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 4d3972403..aaa858af5 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -745,6 +745,7 @@ fr:
button_list: Lister
button_view: Voir
button_move: Déplacer
+ button_move_and_follow: Déplacer et suivre
button_back: Retour
button_cancel: Annuler
button_activate: Activer
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 85b59e8d2..e6f260ae6 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -858,3 +858,4 @@ gl:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/he.yml b/config/locales/he.yml
index f344e81cc..16d6800df 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -842,3 +842,4 @@ he:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index f8e0f130e..1c9f7f0cf 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -863,3 +863,4 @@
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 06fd50c99..74132a60a 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -845,3 +845,4 @@ it:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 99f8a4ab6..1cdb14f8e 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -867,3 +867,4 @@ ja:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index be3b8719e..a5b08607d 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -898,3 +898,4 @@ ko:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 021391620..67e65a570 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -868,3 +868,4 @@ lt:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index ae5107d55..191738fd0 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -820,3 +820,4 @@ nl:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 39a9ac7f0..6fa2be0fe 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -833,3 +833,4 @@
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index e5690967c..104a568a8 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -861,3 +861,4 @@ pl:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 1a90ded4d..10d43a66c 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -864,3 +864,4 @@ pt-BR:
version_status_open: aberto
error_can_not_reopen_issue_on_closed_version: Uma tarefa atribuída a uma versão fechada não pode ser reaberta
label_user_anonymous: Anônimo
+ button_move_and_follow: Move and follow
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
index 3f4462794..c0133116c 100644
--- a/config/locales/pt.yml
+++ b/config/locales/pt.yml
@@ -850,3 +850,4 @@ pt:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index 9f0cc8763..9a97febd5 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -835,3 +835,4 @@ ro:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index a331afc0d..84f06e8fb 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -946,3 +946,4 @@ ru:
version_status_open: открыт
error_can_not_reopen_issue_on_closed_version: Задача, назначенная к закрытой версии, не сможет быть открыта снова
label_user_anonymous: Аноним
+ button_move_and_follow: Move and follow
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index b715533fb..8f79cb367 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -837,3 +837,4 @@ sk:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index a1d142cd2..9ebcb6c40 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -834,3 +834,4 @@ sl:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index ff7bb9178..dbd0c316e 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -853,3 +853,4 @@
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 3a2f82e8e..807db8db4 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -886,3 +886,4 @@ sv:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 890b10e01..3ca9c46f9 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -835,3 +835,4 @@ th:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index a0f1977d9..01e284391 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -865,3 +865,4 @@ tr:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 4307c91a0..f7f2a66fc 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -834,3 +834,4 @@ uk:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index cdd04a4f5..b12cba75b 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -897,3 +897,4 @@ vi:
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
+ button_move_and_follow: Move and follow
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 88f4f5cd2..494e5c808 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -929,3 +929,4 @@
enumeration_doc_categories: 文件分類
enumeration_activities: 活動 (時間追蹤)
enumeration_system_activity: 系統活動
+ button_move_and_follow: Move and follow
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 29b7cbce3..f1c772fc1 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -862,3 +862,4 @@ zh:
enumeration_doc_categories: 文档类别
enumeration_activities: 活动(时间跟踪)
enumeration_system_activity: 系统活动
+ button_move_and_follow: Move and follow
diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb
index 1cff860b4..75da3c0c3 100644
--- a/test/functional/issues_controller_test.rb
+++ b/test/functional/issues_controller_test.rb
@@ -968,6 +968,12 @@ class IssuesControllerTest < ActionController::TestCase
assert_equal 2, Issue.find(1).project_id
end
+ def test_move_one_issue_to_another_project_should_follow_when_needed
+ @request.session[:user_id] = 2
+ post :move, :id => 1, :new_project_id => 2, :follow => '1'
+ assert_redirected_to '/issues/1'
+ end
+
def test_bulk_move_to_another_project
@request.session[:user_id] = 2
post :move, :ids => [1, 2], :new_project_id => 2
@@ -997,6 +1003,13 @@ class IssuesControllerTest < ActionController::TestCase
end
assert_redirected_to 'projects/ecookbook/issues'
end
+
+ def test_copy_to_another_project_should_follow_when_needed
+ @request.session[:user_id] = 2
+ post :move, :ids => [1], :new_project_id => 2, :copy_options => {:copy => '1'}, :follow => '1'
+ issue = Issue.first(:order => 'id DESC')
+ assert_redirected_to :controller => 'issues', :action => 'show', :id => issue
+ end
def test_context_menu_one_issue
@request.session[:user_id] = 2