Adds a 'Create and continue' button on the new issue form, that will create the issue and display the form again (#2523).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2265 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
d28d2d5ab8
commit
ffa6c5fe3e
|
@ -148,7 +148,8 @@ class IssuesController < ApplicationController
|
||||||
flash[:notice] = l(:notice_successful_create)
|
flash[:notice] = l(:notice_successful_create)
|
||||||
Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
|
Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
|
||||||
call_hook(:controller_issues_new_after_save, { :params => params, :issue => @issue})
|
call_hook(:controller_issues_new_after_save, { :params => params, :issue => @issue})
|
||||||
redirect_to :controller => 'issues', :action => 'show', :id => @issue
|
redirect_to(params[:continue] ? { :action => 'new', :tracker_id => @issue.tracker } :
|
||||||
|
{ :action => 'show', :id => @issue })
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
<%= render :partial => 'issues/form', :locals => {:f => f} %>
|
<%= render :partial => 'issues/form', :locals => {:f => f} %>
|
||||||
</div>
|
</div>
|
||||||
<%= submit_tag l(:button_create) %>
|
<%= submit_tag l(:button_create) %>
|
||||||
|
<%= submit_tag l(:button_create_and_continue), :name => 'continue' %>
|
||||||
<%= link_to_remote l(:label_preview),
|
<%= link_to_remote l(:label_preview),
|
||||||
{ :url => { :controller => 'issues', :action => 'preview', :project_id => @project },
|
{ :url => { :controller => 'issues', :action => 'preview', :project_id => @project },
|
||||||
:method => 'post',
|
:method => 'post',
|
||||||
|
|
|
@ -698,3 +698,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -699,3 +699,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -703,3 +703,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -699,3 +699,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -700,3 +700,4 @@ enumeration_doc_categories: Dokumentenkategorien
|
||||||
enumeration_activities: Aktivitäten (Zeiterfassung)
|
enumeration_activities: Aktivitäten (Zeiterfassung)
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -592,6 +592,7 @@ button_check_all: Check all
|
||||||
button_uncheck_all: Uncheck all
|
button_uncheck_all: Uncheck all
|
||||||
button_delete: Delete
|
button_delete: Delete
|
||||||
button_create: Create
|
button_create: Create
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
button_test: Test
|
button_test: Test
|
||||||
button_edit: Edit
|
button_edit: Edit
|
||||||
button_add: Add
|
button_add: Add
|
||||||
|
|
|
@ -683,3 +683,4 @@ text_wiki_destroy_confirmation: ¿Seguro que quiere borrar el wiki y todo su con
|
||||||
text_workflow_edit: Seleccionar un flujo de trabajo para actualizar
|
text_workflow_edit: Seleccionar un flujo de trabajo para actualizar
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -698,3 +698,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -592,6 +592,7 @@ button_check_all: Tout cocher
|
||||||
button_uncheck_all: Tout décocher
|
button_uncheck_all: Tout décocher
|
||||||
button_delete: Supprimer
|
button_delete: Supprimer
|
||||||
button_create: Créer
|
button_create: Créer
|
||||||
|
button_create_and_continue: Créer et continuer
|
||||||
button_test: Tester
|
button_test: Tester
|
||||||
button_edit: Modifier
|
button_edit: Modifier
|
||||||
button_add: Ajouter
|
button_add: Ajouter
|
||||||
|
|
|
@ -698,3 +698,4 @@ setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
|
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -699,3 +699,4 @@ text_diff_truncated: '... A diff fájl vége nem jelenik meg, mert hosszab, mint
|
||||||
setting_diff_max_lines_displayed: A megjelenítendő sorok száma (maximum) a diff fájloknál
|
setting_diff_max_lines_displayed: A megjelenítendő sorok száma (maximum) a diff fájloknál
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -698,3 +698,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -699,3 +699,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -698,3 +698,4 @@ text_diff_truncated: '... 이 차이점은 표시할 수 있는 최대 줄수를
|
||||||
setting_diff_max_lines_displayed: 차이점보기에 표시할 최대 줄수
|
setting_diff_max_lines_displayed: 차이점보기에 표시할 최대 줄수
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -700,3 +700,4 @@ enumeration_doc_categories: Dokumento kategorijos
|
||||||
enumeration_activities: Veiklos (laiko sekimas)
|
enumeration_activities: Veiklos (laiko sekimas)
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -700,3 +700,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -699,3 +699,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -717,3 +717,4 @@ text_diff_truncated: '... Ten plik różnic został przycięty ponieważ jest zb
|
||||||
setting_diff_max_lines_displayed: Maksymalna liczba linii różnicy do pokazania
|
setting_diff_max_lines_displayed: Maksymalna liczba linii różnicy do pokazania
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -699,3 +699,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -700,3 +700,4 @@ text_diff_truncated: '... Este diff foi truncado porque excede o tamanho máximo
|
||||||
setting_diff_max_lines_displayed: Número máximo de linhas de diff mostradas
|
setting_diff_max_lines_displayed: Número máximo de linhas de diff mostradas
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -698,3 +698,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -732,3 +732,4 @@ text_workflow_edit: Выберите роль и трекер для редак
|
||||||
|
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -704,3 +704,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -699,3 +699,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -699,3 +699,4 @@ enumeration_doc_categories: Dokumentkategorier
|
||||||
enumeration_activities: Aktiviteter (tidsuppföljning)
|
enumeration_activities: Aktiviteter (tidsuppföljning)
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -701,3 +701,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -699,3 +699,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -700,3 +700,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -701,3 +701,4 @@ text_diff_truncated: '... This diff was truncated because it exceeds the maximum
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -700,3 +700,4 @@ enumeration_doc_categories: 文件分類
|
||||||
enumeration_activities: 活動 (時間追蹤)
|
enumeration_activities: 活動 (時間追蹤)
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -700,3 +700,4 @@ enumeration_doc_categories: 文档类别
|
||||||
enumeration_activities: 活动(时间跟踪)
|
enumeration_activities: 活动(时间跟踪)
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Plugin assets directory writable
|
||||||
warning_attachments_not_saved: "%d file(s) could not be saved."
|
warning_attachments_not_saved: "%d file(s) could not be saved."
|
||||||
|
button_create_and_continue: Create and continue
|
||||||
|
|
|
@ -313,6 +313,16 @@ class IssuesControllerTest < Test::Unit::TestCase
|
||||||
assert_equal 'Value for field 2', v.value
|
assert_equal 'Value for field 2', v.value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_post_new_and_continue
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
post :new, :project_id => 1,
|
||||||
|
:issue => {:tracker_id => 3,
|
||||||
|
:subject => 'This is first issue',
|
||||||
|
:priority_id => 5},
|
||||||
|
:continue => ''
|
||||||
|
assert_redirected_to :controller => 'issues', :action => 'new', :tracker_id => 3
|
||||||
|
end
|
||||||
|
|
||||||
def test_post_new_without_custom_fields_param
|
def test_post_new_without_custom_fields_param
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
post :new, :project_id => 1,
|
post :new, :project_id => 1,
|
||||||
|
|
Loading…
Reference in New Issue