# HG changeset patch # User Toshi MARUYAMA # Date 1575907010 -32400 # Tue Dec 10 00:56:50 2019 +0900 # Branch issue-28492-01 # Node ID 4079f1eae9f2cf89f6b7209435daccc5433e96d7 # Parent cb70ece3d9471cb1ca2a7b4d3f76cdae26303747 use ajax-modal form (#31322) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -199,6 +199,11 @@ class IssuesController < ApplicationCont return end + render( + :partial => 'close_confirm', + :layout => false, + :locals => {} + ) return end diff --git a/app/views/issues/_close_confirm.js.erb b/app/views/issues/_close_confirm.js.erb new file mode 100644 --- /dev/null +++ b/app/views/issues/_close_confirm.js.erb @@ -0,0 +1,10 @@ +$('#ajax-modal').html( + '<%= escape_javascript( + render( + :partial => 'close_confirm_dialog', + :locals => {} + ) + ) + %>' +); +showModal('ajax-modal', '400px'); diff --git a/app/views/issues/_close_confirm_dialog.html.erb b/app/views/issues/_close_confirm_dialog.html.erb new file mode 100644 --- /dev/null +++ b/app/views/issues/_close_confirm_dialog.html.erb @@ -0,0 +1,15 @@ +

 

+

+ <%= l(:text_close_parent_issue_whose_subtasks_are_open_confirmation) %> +

+

+ <%= button_tag l(:button_apply), :type => "button", :onclick => "run_submit();" %> + <%= link_to_function l(:button_cancel), "hideModal(this);" %> +

+ +<%= javascript_tag do %> + function run_submit() { + $("#issue-form").off('submit'); + $("#issue-form").submit(); + } +<% end %> diff --git a/app/views/issues/_edit.html.erb b/app/views/issues/_edit.html.erb --- a/app/views/issues/_edit.html.erb +++ b/app/views/issues/_edit.html.erb @@ -85,14 +85,12 @@ <%= javascript_tag do %> $('#issue-form').submit(function(){ var status_id = 0; - var result = false; if ($("#issue_status_id").length > 0) { status_id = $("#issue_status_id").val(); } $.ajax({ url: $("#issue-form").attr('action'), type: 'patch', - async: false, data: { "check_go_to_close_confirm": "", "status_id": status_id @@ -100,17 +98,18 @@ }) .then( function(data){ - result = data["result"]; + if (data["result"]) { + $.ajax({ + url: $("#issue-form").attr('action'), + type: 'patch', + data: {} + }); + } else { + $("#issue-form").off('submit'); + $("#issue-form").submit(); + } } ); - if (result) { - if (!confirm( - "<%= l(:text_close_parent_issue_whose_subtasks_are_open_confirmation) %>" - )){ - return false; - } - } - $("#issue-form").off('submit'); - $("#issue-form").submit(); + return false; }); <% end %> diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb --- a/test/system/issues_test.rb +++ b/test/system/issues_test.rb @@ -247,14 +247,18 @@ class IssuesSystemTest < ApplicationSyst page.find("#issue_status_id").select("Closed") assert_no_difference ['Issue.count', 'child.journals.count'] do assert_no_difference 'parent.journals.count' do - page.dismiss_confirm /Are you sure/ do - page.first(:button, 'Submit').click + page.first(:button, 'Submit').click + within('#ajax-modal') do + assert page.has_text?(/Are you sure/) + page.first(:link, 'Cancel').click end assert_equal 1, parent.reload.status.id end assert_difference 'parent.journals.count' do - page.accept_confirm /Are you sure/ do - page.first(:button, 'Submit').click + page.first(:button, 'Submit').click + within('#ajax-modal') do + assert page.has_text?(/Are you sure/) + page.first(:button, 'Apply').click end assert page.has_css?('#flash_notice') assert_equal 5, parent.reload.status.id @@ -266,14 +270,18 @@ class IssuesSystemTest < ApplicationSyst fill_in 'Subject', :with => 'test of confirm dialog' assert_no_difference ['Issue.count', 'child.journals.count'] do assert_no_difference 'parent.journals.count' do - page.dismiss_confirm /Are you sure/ do - page.first(:button, 'Submit').click + page.first(:button, 'Submit').click + within('#ajax-modal') do + assert page.has_text?(/Are you sure/) + page.first(:link, 'Cancel').click end assert_equal 5, parent.reload.status.id end assert_difference 'parent.journals.count' do - page.accept_confirm /Are you sure/ do - page.first(:button, 'Submit').click + page.first(:button, 'Submit').click + within('#ajax-modal') do + assert page.has_text?(/Are you sure/) + page.first(:button, 'Apply').click end assert page.has_css?('#flash_notice') assert_equal 5, parent.reload.status.id