From b11b6f7d8b117a20ce9446241b85ae152e893915 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 22 Jan 2018 16:29:37 +0200 Subject: [PATCH] Extract domain transfers controller #660 --- .../registrar/domain_transfers_controller.rb | 15 +++++++++++++++ app/controllers/registrar/domains_controller.rb | 10 ---------- .../create.html.erb} | 0 .../new.html.erb} | 2 +- app/views/registrar/domains/index.html.erb | 2 +- app/views/registrar/domains/info.html.erb | 2 +- config/locales/registrar/domain_transfers.en.yml | 8 ++++++++ config/locales/registrar/domains.en.yml | 6 ------ config/routes.rb | 2 +- test/integration/registrar/domains_test.rb | 6 ++++++ 10 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 app/controllers/registrar/domain_transfers_controller.rb rename app/views/registrar/{domains/transfer.html.erb => domain_transfers/create.html.erb} (100%) rename app/views/registrar/{domains/transfer_index.html.erb => domain_transfers/new.html.erb} (96%) create mode 100644 config/locales/registrar/domain_transfers.en.yml diff --git a/app/controllers/registrar/domain_transfers_controller.rb b/app/controllers/registrar/domain_transfers_controller.rb new file mode 100644 index 000000000..89c942845 --- /dev/null +++ b/app/controllers/registrar/domain_transfers_controller.rb @@ -0,0 +1,15 @@ +class Registrar + class DomainTransfersController < DeppController + before_action do + authorize! :transfer, Depp::Domain + end + + def new + end + + def create + domain = Depp::Domain.new(current_user: depp_current_user) + @data = domain.transfer(params) + end + end +end diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index 76467ce79..78a5b24b6 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -146,16 +146,6 @@ class Registrar end end - def transfer - authorize! :transfer, Depp::Domain - if request.post? && params[:domain_name] - @data = @domain.transfer(params) - render 'transfer_index' and return unless response_ok? - else - render 'transfer_index' - end - end - def search_contacts authorize! :create, Depp::Domain diff --git a/app/views/registrar/domains/transfer.html.erb b/app/views/registrar/domain_transfers/create.html.erb similarity index 100% rename from app/views/registrar/domains/transfer.html.erb rename to app/views/registrar/domain_transfers/create.html.erb diff --git a/app/views/registrar/domains/transfer_index.html.erb b/app/views/registrar/domain_transfers/new.html.erb similarity index 96% rename from app/views/registrar/domains/transfer_index.html.erb rename to app/views/registrar/domain_transfers/new.html.erb index bd43f055f..dd847e6c2 100644 --- a/app/views/registrar/domains/transfer_index.html.erb +++ b/app/views/registrar/domain_transfers/new.html.erb @@ -6,7 +6,7 @@
- <%= form_tag transfer_registrar_domains_path, class: 'form-horizontal', multipart: true, autocomplete: 'off' do %> + <%= form_tag registrar_domain_transfers_path, class: 'form-horizontal', multipart: true, autocomplete: 'off' do %>
<%= label_tag :domain_name, t(:name), class: 'required' %> diff --git a/app/views/registrar/domains/index.html.erb b/app/views/registrar/domains/index.html.erb index a8680b7cf..a62619ca4 100644 --- a/app/views/registrar/domains/index.html.erb +++ b/app/views/registrar/domains/index.html.erb @@ -6,7 +6,7 @@
<%= link_to t('.new_btn'), new_registrar_domain_path, class: 'btn btn-primary' %> - <%= link_to t('.transfer_btn'), transfer_registrar_domains_path, class: 'btn btn-default' %> + <%= link_to t('.transfer_btn'), new_registrar_domain_transfer_path, class: 'btn btn-default' %>
diff --git a/app/views/registrar/domains/info.html.erb b/app/views/registrar/domains/info.html.erb index b251989f5..ee7329cea 100644 --- a/app/views/registrar/domains/info.html.erb +++ b/app/views/registrar/domains/info.html.erb @@ -7,7 +7,7 @@ <%= link_to(t(:delete), delete_registrar_domains_path(domain_name: params[:domain_name]), class: 'btn btn-default') %> <% else %> - <%= link_to(t(:transfer), transfer_registrar_domains_path(domain_name: params[:domain_name]), + <%= link_to(t(:transfer), new_registrar_domain_transfer_path(domain_name: params[:domain_name]), class: 'btn btn-default') %> <% end %> <% end %> diff --git a/config/locales/registrar/domain_transfers.en.yml b/config/locales/registrar/domain_transfers.en.yml new file mode 100644 index 000000000..1e507c27b --- /dev/null +++ b/config/locales/registrar/domain_transfers.en.yml @@ -0,0 +1,8 @@ +en: + registrar: + domain_transfers: + new: + header: Domain transfer + + create: + header: Domain transfer diff --git a/config/locales/registrar/domains.en.yml b/config/locales/registrar/domains.en.yml index e56f38ebb..1e6f58326 100644 --- a/config/locales/registrar/domains.en.yml +++ b/config/locales/registrar/domains.en.yml @@ -12,12 +12,6 @@ en: registrant_code: Registrant code expire_time: Date of expiry - transfer_index: - header: Domain transfer - - transfer: - header: Domain transfer - search_form: download_btn: Download as CSV reset_btn: Reset diff --git a/config/routes.rb b/config/routes.rb index 242028cbb..c49399573 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -54,7 +54,6 @@ Rails.application.routes.draw do post 'update', as: 'update' post 'destroy', as: 'destroy' get 'renew' - match 'transfer', via: [:post, :get] get 'edit' get 'info' get 'check' @@ -62,6 +61,7 @@ Rails.application.routes.draw do get 'search_contacts' end end + resources :domain_transfers, only: %i[new create] resources :contacts, constraints: {:id => /[^\/]+(?=#{ ActionController::Renderers::RENDERERS.map{|e| "\\.#{e}\\z"}.join("|") })|[^\/]+/} do member do diff --git a/test/integration/registrar/domains_test.rb b/test/integration/registrar/domains_test.rb index 8c68387cb..d81321233 100644 --- a/test/integration/registrar/domains_test.rb +++ b/test/integration/registrar/domains_test.rb @@ -29,4 +29,10 @@ class RegistrarDomainsTest < ActionDispatch::IntegrationTest assert_text 'Transfer requested at: 2010-07-05 10:30:00' end + + def test_prefills_domain_transfer_form + visit info_registrar_domains_url(domain_name: 'airport.test') + click_link 'Transfer' + assert_field 'domain_name', with: 'airport.test' + end end