Add remove clientHold to registrar UI

This commit is contained in:
Alex Sherman 2020-02-19 14:09:45 +05:00
parent adba253d01
commit 3b332da0bb
9 changed files with 30 additions and 0 deletions

View file

@ -153,6 +153,14 @@ class Registrar
render json: scope.pluck(:name, :code).map { |c| { display_key: "#{c.second} #{c.first}", value: c.second } } render json: scope.pluck(:name, :code).map { |c| { display_key: "#{c.second} #{c.first}", value: c.second } }
end end
def remove_hold
authorize! :remove_hold, Depp::Domain
return unless params[:domain_name]
@data = @domain.remove_hold(params)
redirect_to info_registrar_domains_url(domain_name: params[:domain_name])
end
private private
def init_domain def init_domain

View file

@ -50,6 +50,7 @@ class Ability
can(:check, Epp::Domain) can(:check, Epp::Domain)
can(:create, Epp::Domain) can(:create, Epp::Domain)
can(:renew, Epp::Domain) { |d| d.registrar_id == @user.registrar_id } can(:renew, Epp::Domain) { |d| d.registrar_id == @user.registrar_id }
can(:remove_hold, Epp::Domain) { |d| d.registrar_id == @user.registrar_id }
can(:update, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw } can(:update, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw }
can(:transfer, Epp::Domain) can(:transfer, Epp::Domain)
can(:delete, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw } can(:delete, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.transfer_code == pw }

View file

@ -34,6 +34,10 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
force_delete_start.present? && force_delete_lte_today && force_delete_lte_valid_date force_delete_start.present? && force_delete_lte_today && force_delete_lte_valid_date
end end
def client_holded?
statuses.include?(DomainStatus::CLIENT_HOLD)
end
def force_delete_lte_today def force_delete_lte_today
force_delete_start + Setting.expire_warning_period.days <= Time.zone.now force_delete_start + Setting.expire_warning_period.days <= Time.zone.now
end end

View file

@ -0,0 +1,9 @@
module RemoveHold
extend ActiveSupport::Concern
def remove_hold(params)
xml = epp_xml.update(name: { value: params[:domain_name] },
rem: [status: { attrs: { s: 'clientHold' }, value: '' }])
current_user.request(xml)
end
end

View file

@ -1,6 +1,7 @@
module Depp module Depp
class Domain class Domain
include ActiveModel::Conversion include ActiveModel::Conversion
include RemoveHold
extend ActiveModel::Naming extend ActiveModel::Naming
attr_accessor :name, :current_user, :epp_xml attr_accessor :name, :current_user, :epp_xml

View file

@ -9,5 +9,9 @@
class: 'btn btn-default btn-xs' %> class: 'btn btn-default btn-xs' %>
<%= link_to t('.delete_btn'), delete_registrar_domains_path(domain_name: domain.name), <%= link_to t('.delete_btn'), delete_registrar_domains_path(domain_name: domain.name),
class: 'btn btn-default btn-xs' %> class: 'btn btn-default btn-xs' %>
<% if domain.client_holded? %>
<%= link_to t('.client_hold_btn'), remove_hold_registrar_domains_path(domain_name: domain.name),
class: 'btn btn-default btn-xs' %>
<% end %>
</td> </td>
</tr> </tr>

View file

@ -580,6 +580,7 @@ en:
tech: Tech contact tech: Tech contact
valid: Valid valid: Valid
object_is_not_eligible_for_renewal: 'Object is not eligible for renewal' object_is_not_eligible_for_renewal: 'Object is not eligible for renewal'
object_is_not_holded: 'Object is not holded'
bank_statement_desc: 'Import file row will match only when matching following attributes: <b><br>ref number<br>payment amount<br>invoice number (the first numerical value in comment field)</b>.' bank_statement_desc: 'Import file row will match only when matching following attributes: <b><br>ref number<br>payment amount<br>invoice number (the first numerical value in comment field)</b>.'
create_bank_statement: 'Create bank statement' create_bank_statement: 'Create bank statement'
create_bank_transaction: 'Create bank transaction' create_bank_transaction: 'Create bank transaction'

View file

@ -24,6 +24,7 @@ en:
edit_btn: Edit edit_btn: Edit
renew_btn: Renew renew_btn: Renew
delete_btn: Delete delete_btn: Delete
client_hold_btn: Remove Hold
form: form:
save_btn: Save save_btn: Save

View file

@ -99,6 +99,7 @@ Rails.application.routes.draw do
get 'check' get 'check'
get 'delete' get 'delete'
get 'search_contacts' get 'search_contacts'
get 'remove_hold'
end end
end end
resources :domain_transfers, only: %i[new create] resources :domain_transfers, only: %i[new create]