Add list view to domain transfers

This commit is contained in:
Martin Lensment 2014-09-29 14:30:26 +03:00
parent d2565d646d
commit 6852aacd3b
11 changed files with 95 additions and 18 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View 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

View file

@ -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

View file

@ -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)

View file

@ -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}