mirror of
https://github.com/internetee/registry.git
synced 2025-05-19 10:49:39 +02:00
Add list view to domain transfers
This commit is contained in:
parent
d2565d646d
commit
6852aacd3b
11 changed files with 95 additions and 18 deletions
|
@ -2,6 +2,12 @@ class Client::DomainTransfersController < ClientController
|
|||
before_action :set_domain_transfer, only: [:show, :approve]
|
||||
before_action :set_domain, only: [:create]
|
||||
|
||||
def index
|
||||
@q = current_registrar.domain_transfers.search(params[:q])
|
||||
@q.sorts = 'created_at desc' if @q.sorts.empty?
|
||||
@domain_transfers = @q.result.page(params[:page])
|
||||
end
|
||||
|
||||
def new
|
||||
@domain_transfer = DomainTransfer.new
|
||||
end
|
||||
|
|
|
@ -11,13 +11,16 @@ class DomainTransfer < ActiveRecord::Base
|
|||
SERVER_APPROVED = 'serverApproved'
|
||||
SERVER_CANCELLED = 'serverCancelled'
|
||||
|
||||
def approved?
|
||||
status == CLIENT_APPROVED || status == SERVER_APPROVED
|
||||
before_create :set_wait_until
|
||||
|
||||
def set_wait_until
|
||||
wait_time = SettingGroup.domain_general.setting(:transfer_wait_time).value.to_i
|
||||
return if wait_time == 0
|
||||
self.wait_until = transfer_requested_at + wait_time.hours
|
||||
end
|
||||
|
||||
def transfer_confirm_time
|
||||
wait_time = SettingGroup.domain_general.setting(:transfer_wait_time).value.to_i
|
||||
transfer_requested_at + wait_time.hours
|
||||
def approved?
|
||||
status == CLIENT_APPROVED || status == SERVER_APPROVED
|
||||
end
|
||||
|
||||
def approve_as_client
|
||||
|
|
|
@ -4,7 +4,15 @@ class Registrar < ActiveRecord::Base
|
|||
has_many :ns_sets
|
||||
has_many :epp_users
|
||||
has_many :users
|
||||
has_many :domain_transfers, foreign_key: 'transfer_to_id'
|
||||
|
||||
def domain_transfers
|
||||
at = DomainTransfer.arel_table
|
||||
DomainTransfer.where(
|
||||
at[:transfer_to_id].eq(id).or(
|
||||
at[:transfer_from_id].eq(id)
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
def to_s
|
||||
name
|
||||
|
|
39
app/views/client/domain_transfers/index.haml
Normal file
39
app/views/client/domain_transfers/index.haml
Normal file
|
@ -0,0 +1,39 @@
|
|||
.row
|
||||
.col-sm-6
|
||||
%h2.text-center-xs= t('shared.domain_transfers')
|
||||
.col-sm-6
|
||||
%h2.text-right.text-center-xs
|
||||
= link_to(t('shared.request_domain_transfer'), new_client_domain_transfer_path, class: 'btn btn-primary')
|
||||
%hr
|
||||
.row
|
||||
.col-md-12
|
||||
.table-responsive
|
||||
%table.table.table-hover.table-bordered.table-condensed
|
||||
%thead
|
||||
%tr
|
||||
%th{class: 'col-xs-2'}
|
||||
= sort_link(@q, 'domain_name')
|
||||
%th{class: 'col-xs-2'}
|
||||
= sort_link(@q, 'status')
|
||||
%th{class: 'col-xs-2'}
|
||||
= sort_link(@q, 'transfer_from', t('shared.transfer_from'))
|
||||
%th{class: 'col-xs-2'}
|
||||
= sort_link(@q, 'transfer_to', t('shared.transfer_to'))
|
||||
%th{class: 'col-xs-2'}=t('shared.actions')
|
||||
%tbody
|
||||
- @domain_transfers.each do |x|
|
||||
%tr
|
||||
- if current_registrar == x.domain.registrar
|
||||
%td= link_to(x.domain, client_domain_path(x.domain))
|
||||
- else
|
||||
%td= x.domain
|
||||
%td= x.status
|
||||
%td= x.transfer_from
|
||||
%td= x.transfer_to
|
||||
%td
|
||||
= link_to(t('shared.details'), [:client, x], class: 'btn btn-xs btn-primary')
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
= paginate @domain_transfers
|
||||
|
|
@ -1,4 +1,10 @@
|
|||
%h2= t('shared.transfer_domain')
|
||||
.row
|
||||
.col-sm-6
|
||||
%h2.text-center-xs= t('shared.transfer_domain')
|
||||
.col-sm-6
|
||||
%h2.text-right.text-center-xs
|
||||
= link_to(t('shared.domain_transfers'), client_domain_transfers_path, class: 'btn btn-default')
|
||||
|
||||
%hr
|
||||
= form_for([:client, @domain_transfer]) do |f|
|
||||
= render 'shared/errors', object: @domain_transfer
|
||||
|
|
|
@ -4,14 +4,18 @@
|
|||
= "#{t('shared.domain_transfer')}"
|
||||
.col-sm-6
|
||||
%h2.text-right.text-center-xs
|
||||
= link_to(t('shared.domain_transfers'), client_domain_transfers_path, class: 'btn btn-default')
|
||||
- if can? :approve_as_client, @domain_transfer
|
||||
= button_to(t('shared.approve'), approve_client_domain_transfer_path, class: 'btn btn-success')
|
||||
= link_to(t('shared.approve'), approve_client_domain_transfer_path, method: :post, class: 'btn btn-success')
|
||||
%hr
|
||||
.row
|
||||
.col-md-12
|
||||
%dl.dl-horizontal
|
||||
%dt= t('shared.domain')
|
||||
%dd= @domain_transfer.domain.name
|
||||
- if current_registrar == @domain_transfer.domain.registrar
|
||||
%dd= link_to(@domain_transfer.domain, client_domain_path(@domain_transfer.domain))
|
||||
- else
|
||||
%dd= @domain_transfer.domain
|
||||
|
||||
%dt= t('shared.status')
|
||||
%dd= @domain_transfer.status
|
||||
|
@ -25,12 +29,11 @@
|
|||
%dt= t('shared.transfer_to')
|
||||
%dd= @domain_transfer.transfer_to
|
||||
|
||||
%dt= t('shared.accept_time')
|
||||
- if @domain_transfer.transferred_at
|
||||
%dt= t('shared.transferred_at')
|
||||
%dd= l(@domain_transfer.transferred_at)
|
||||
- else
|
||||
%dt= t('shared.transfer_confirm_time')
|
||||
%dd= l(@domain_transfer.transfer_confirm_time)
|
||||
%dd= l(@domain_transfer.wait_until)
|
||||
|
||||
%dt= t('shared.domain_valid_to')
|
||||
%dd= l(@domain_transfer.domain.valid_to)
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
%li
|
||||
= link_to t('shared.domain_list'), client_domains_path
|
||||
%li
|
||||
= link_to t('shared.transfer_domain'), new_client_domain_transfer_path
|
||||
= link_to t('shared.domain_transfers_list'), client_domain_transfers_path
|
||||
|
||||
- active_class = ['client/contacts'].include?(params[:controller]) ? 'active' :nil
|
||||
%li.dropdown{class: active_class}
|
||||
|
|
|
@ -288,10 +288,11 @@ en:
|
|||
domain_transfer: 'Domain transfer'
|
||||
request_domain_transfer: 'Request domain transfer'
|
||||
domain_valid_to: 'Domain valid to'
|
||||
transfer_requested_at: 'Transfer requested at'
|
||||
accept_time: 'Accept time'
|
||||
transfer_from: 'Transfer from'
|
||||
transferred_at: 'Transferred at'
|
||||
transfer_confirm_time: 'Transfer confirm time'
|
||||
domain_transfers_list: 'Domain transfers list'
|
||||
domain_transfers: 'Domain transfers'
|
||||
|
||||
password_invalid: 'Password invalid!'
|
||||
domain_was_not_found: 'Domain was not found!'
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class AddWaitUntilToDomainTransfer < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :domain_transfers, :wait_until, :datetime
|
||||
end
|
||||
end
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20140925101927) do
|
||||
ActiveRecord::Schema.define(version: 20140929095329) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
@ -91,6 +91,7 @@ ActiveRecord::Schema.define(version: 20140925101927) do
|
|||
t.integer "transfer_to_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.datetime "wait_until"
|
||||
end
|
||||
|
||||
create_table "domains", force: true do |t|
|
||||
|
|
|
@ -15,7 +15,8 @@ feature 'Domain transfer', type: :feature do
|
|||
scenario 'Registrar requests transfer on own domain', js: true do
|
||||
sign_in zone_user
|
||||
click_on 'Domains'
|
||||
click_on 'Transfer domain'
|
||||
click_on 'Domain transfers list'
|
||||
click_on 'Request domain transfer'
|
||||
|
||||
fill_in 'Domain name', with: 'false'
|
||||
click_on 'Request domain transfer'
|
||||
|
@ -81,6 +82,10 @@ feature 'Domain transfer', type: :feature do
|
|||
end
|
||||
|
||||
scenario 'Domain owner approves request' do
|
||||
s = Setting.find_by(code: 'transfer_wait_time')
|
||||
s.value = 1
|
||||
s.save
|
||||
|
||||
d = Domain.first
|
||||
d.domain_transfers.create(
|
||||
status: DomainTransfer::PENDING,
|
||||
|
@ -105,7 +110,7 @@ feature 'Domain transfer', type: :feature do
|
|||
fill_in 'Domain password', with: d.auth_info
|
||||
click_on 'Request domain transfer'
|
||||
|
||||
expect(page).to have_button('Approve')
|
||||
expect(page).to have_link('Approve')
|
||||
|
||||
click_on 'Approve'
|
||||
expect(page).to have_text('Domain transfer approved!')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue