Enable to keep a domain

#790
This commit is contained in:
Artur Beljajev 2018-04-08 18:52:32 +03:00
parent 90a4e11ce4
commit cc4a244844
7 changed files with 39 additions and 4 deletions

View file

@ -1,6 +1,6 @@
module Admin module Admin
class DomainsController < BaseController class DomainsController < BaseController
before_action :set_domain, only: %i[show edit update] before_action :set_domain, only: %i[show edit update keep]
authorize_resource authorize_resource
helper_method :force_delete_templates helper_method :force_delete_templates
@ -68,6 +68,11 @@ module Admin
@versions = @domain.versions @versions = @domain.versions
end end
def keep
@domain.keep
redirect_to edit_admin_domain_url(@domain), notice: t('.kept')
end
private private
def set_domain def set_domain

View file

@ -175,7 +175,8 @@ class DomainStatus < ActiveRecord::Base
PENDING_RENEW, PENDING_RENEW,
PENDING_TRANSFER, PENDING_TRANSFER,
PENDING_UPDATE, PENDING_UPDATE,
PENDING_DELETE_CONFIRMATION PENDING_DELETE_CONFIRMATION,
DELETE_CANDIDATE,
] ]
end end
end end

View file

@ -67,6 +67,15 @@ class DomainPresenter
end end
end end
def keep_btn
return unless domain.discarded?
view.link_to view.t('admin.domains.edit.keep_btn'), view.keep_admin_domain_path(@domain),
method: :patch,
data: { confirm: view.t('admin.domains.edit.keep_btn_confirm') },
class: 'btn btn-default'
end
private private
attr_reader :domain attr_reader :domain

View file

@ -7,12 +7,13 @@
<div class="page-header"> <div class="page-header">
<div class="row"> <div class="row">
<div class="col-sm-5"> <div class="col-sm-3">
<h1>Edit: <%= domain.name %></h1> <h1>Edit: <%= domain.name %></h1>
</div> </div>
<div class="col-sm-7 text-right"> <div class="col-sm-9 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.force_delete_toggle_btn %> <%= domain.force_delete_toggle_btn %>
</div> </div>
</div> </div>

View file

@ -14,6 +14,11 @@ en:
edit: edit:
add_new_status_btn: Add new status add_new_status_btn: Add new status
keep_btn: Remove deleteCandidate status
keep_btn_confirm: Are you sure you want to remove deleteCandidate status?
keep:
kept: deleteCandidate status has been removed
force_delete_dialog: force_delete_dialog:
title: Force delete title: Force delete

View file

@ -191,6 +191,10 @@ Rails.application.routes.draw do
resources :pending_updates resources :pending_updates
resources :pending_deletes resources :pending_deletes
resource :force_delete, controller: 'domains/force_delete', only: %i[create destroy] resource :force_delete, controller: 'domains/force_delete', only: %i[create destroy]
member do
patch :keep
end
end end
resources :domain_versions do resources :domain_versions do

View file

@ -13,4 +13,14 @@ class AdminAreaDomainDetailsTest < ActionDispatch::IntegrationTest
visit admin_domain_url(@domain) visit admin_domain_url(@domain)
assert_css 'span.label.label-warning', text: 'deleteCandidate' assert_css 'span.label.label-warning', text: 'deleteCandidate'
end end
def test_keep_a_domain
@domain.discard
visit edit_admin_domain_url(@domain)
click_link_or_button 'Remove deleteCandidate status'
@domain.reload
refute @domain.discarded?
assert_text 'deleteCandidate status has been removed'
assert_no_link 'Remove deleteCandidate status'
end
end end