Merge branch 'registry-791' into registry-790

# Conflicts:
#	app/views/admin/domains/edit.html.erb
#	config/locales/admin/domains.en.yml
This commit is contained in:
Artur Beljajev 2018-08-09 16:42:43 +03:00
commit 732997bf9e
6 changed files with 27 additions and 20 deletions

View file

@ -16,7 +16,9 @@ module Concerns::Domain::ForceDelete
end end
def cancel_force_delete def cancel_force_delete
raise 'Domain must be discarded before cancelling force delete procedure' unless discarded? if discarded?
raise StandardError, 'Force delete procedure cannot be cancelled while a domain is discarded'
end
restore_statuses_before_force_delete restore_statuses_before_force_delete
remove_force_delete_statuses remove_force_delete_statuses

View file

@ -58,12 +58,17 @@ class DomainPresenter
target: '.domain-edit-force-delete-dialog', target: '.domain-edit-force-delete-dialog',
} }
) )
else elsif !domain.discarded?
view.link_to(view.t('admin.domains.force_delete_toggle_btn.cancel'), view.link_to(view.t('admin.domains.force_delete_toggle_btn.cancel'),
view.admin_domain_force_delete_path(domain), view.admin_domain_force_delete_path(domain),
method: :delete, method: :delete,
data: { confirm: view.t('admin.domains.force_delete_toggle_btn.cancel_confirm') }, data: { confirm: view.t('admin.domains.force_delete_toggle_btn.cancel_confirm') },
class: 'btn btn-primary') class: 'btn btn-primary')
else
view.content_tag(:button, view.t('admin.domains.force_delete_toggle_btn.cancel'),
class: 'btn btn-default ',
title: view.t('admin.domains.force_delete_toggle_btn.unable_to_cancel'),
disabled: true)
end end
end end

View file

@ -7,11 +7,11 @@
<div class="page-header"> <div class="page-header">
<div class="row"> <div class="row">
<div class="col-sm-3"> <div class="col-sm-4">
<h1>Edit: <%= domain.name %></h1> <h1><%= t '.header', domain: domain.name %></h1>
</div> </div>
<div class="col-sm-9 text-right"> <div class="col-sm-8 text-right">
<%= link_to t('.add_new_status_btn'), '#', class: 'btn btn-primary js-add-status' %> <%= link_to t('.add_new_status_btn'), '#', class: 'btn btn-primary js-add-status' %>
<%= domain.keep_btn %> <%= domain.keep_btn %>
<%= domain.force_delete_toggle_btn %> <%= domain.force_delete_toggle_btn %>
@ -20,4 +20,4 @@
</div> </div>
<%= render 'form' %> <%= render 'form' %>
<%= render 'force_delete_dialog', domain: @domain, templates: force_delete_templates %> <%= render 'force_delete_dialog', domain: @domain, templates: force_delete_templates %>

View file

@ -13,6 +13,7 @@ en:
reset_btn: Reset reset_btn: Reset
edit: edit:
header: "Edit: %{domain}"
add_new_status_btn: Add new status add_new_status_btn: Add new status
keep_btn: Remove deleteCandidate status keep_btn: Remove deleteCandidate status
keep_btn_confirm: Are you sure you want to remove deleteCandidate status? keep_btn_confirm: Are you sure you want to remove deleteCandidate status?
@ -51,3 +52,5 @@ en:
schedule: Schedule force delete schedule: Schedule force delete
cancel: Cancel force delete cancel: Cancel force delete
cancel_confirm: Are you sure you want cancel force delete procedure? cancel_confirm: Are you sure you want cancel force delete procedure?
unable_to_cancel: >
Force delete procedure cannot be cancelled while a domain has deleteCandidate status

View file

@ -73,16 +73,8 @@ class DomainForceDeleteTest < ActiveSupport::TestCase
assert @domain.force_delete_scheduled? assert @domain.force_delete_scheduled?
end end
def test_cancelling_force_delete_on_a_discarded_domain def test_force_delete_cannot_be_cancelled_when_a_domain_is_discarded
@domain.discard @domain.discard
@domain.schedule_force_delete
@domain.cancel_force_delete
@domain.reload
assert_not @domain.force_delete_scheduled?
assert_nil @domain.force_delete_at
end
def test_cancelling_force_delete_requires_a_domain_to_be_discarded
@domain.schedule_force_delete @domain.schedule_force_delete
assert_raises StandardError do assert_raises StandardError do
@domain.cancel_force_delete @domain.cancel_force_delete
@ -91,7 +83,6 @@ class DomainForceDeleteTest < ActiveSupport::TestCase
def test_cancelling_force_delete_bypasses_validation def test_cancelling_force_delete_bypasses_validation
@domain = domains(:invalid) @domain = domains(:invalid)
@domain.discard
@domain.schedule_force_delete @domain.schedule_force_delete
@domain.cancel_force_delete @domain.cancel_force_delete
assert_not @domain.force_delete_scheduled? assert_not @domain.force_delete_scheduled?
@ -106,7 +97,6 @@ class DomainForceDeleteTest < ActiveSupport::TestCase
DomainStatus::PENDING_DELETE, DomainStatus::PENDING_DELETE,
DomainStatus::SERVER_MANUAL_INZONE DomainStatus::SERVER_MANUAL_INZONE
] ]
@domain.discard
@domain.statuses = @domain.statuses + statuses @domain.statuses = @domain.statuses + statuses
@domain.schedule_force_delete @domain.schedule_force_delete
@ -117,7 +107,6 @@ class DomainForceDeleteTest < ActiveSupport::TestCase
end end
def test_cancelling_force_delete_restores_statuses_that_a_domain_had_before_force_delete def test_cancelling_force_delete_restores_statuses_that_a_domain_had_before_force_delete
@domain.discard
@domain.statuses_before_force_delete = ['test1', DomainStatus::DELETE_CANDIDATE] @domain.statuses_before_force_delete = ['test1', DomainStatus::DELETE_CANDIDATE]
@domain.cancel_force_delete @domain.cancel_force_delete

View file

@ -44,7 +44,6 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase
end end
def test_cancels_scheduled_domain_force_delete def test_cancels_scheduled_domain_force_delete
@domain.discard
@domain.schedule_force_delete @domain.schedule_force_delete
visit edit_admin_domain_url(@domain) visit edit_admin_domain_url(@domain)
@ -55,4 +54,13 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase
assert_current_path edit_admin_domain_path(@domain) assert_current_path edit_admin_domain_path(@domain)
assert_text 'Force delete procedure has been cancelled' assert_text 'Force delete procedure has been cancelled'
end end
end
def test_force_delete_cannot_be_cancelled_when_a_domain_is_discarded
@domain.discard
@domain.schedule_force_delete
visit edit_admin_domain_url(@domain)
assert_no_button 'Cancel force delete'
assert_no_link 'Cancel force delete'
end
end