mirror of
https://github.com/internetee/registry.git
synced 2025-05-18 10:19:45 +02:00
eedirekt domain histories
This commit is contained in:
parent
a426862aa8
commit
9e9cc07075
7 changed files with 111 additions and 1 deletions
19
app/controllers/client/domain_versions_controller.rb
Normal file
19
app/controllers/client/domain_versions_controller.rb
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
class Client::DomainVersionsController < ClientController
|
||||||
|
before_action :set_version, only: [:show]
|
||||||
|
|
||||||
|
def index
|
||||||
|
@versions = DomainVersion.registrar_events(current_user.registrar.id)
|
||||||
|
@versions.flatten!
|
||||||
|
end
|
||||||
|
|
||||||
|
def show
|
||||||
|
@event = params[:event]
|
||||||
|
@domain = @version.reify(has_multiple: true) unless @event == 'create'
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def set_version
|
||||||
|
@version = DomainVersion.find(params[:id])
|
||||||
|
end
|
||||||
|
end
|
24
app/models/concerns/user_events.rb
Normal file
24
app/models/concerns/user_events.rb
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
module UserEvents
|
||||||
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
module ClassMethods
|
||||||
|
def registrar_events(id)
|
||||||
|
registrar = Registrar.find(id)
|
||||||
|
return nil unless registrar
|
||||||
|
@events = []
|
||||||
|
registrar.users.each { |user| @events << user_events(user.id) }
|
||||||
|
registrar.epp_users.each { |user| @events << user_events(user.id) }
|
||||||
|
@events
|
||||||
|
end
|
||||||
|
|
||||||
|
def user_events(id)
|
||||||
|
where(whodunnit: id.to_s)
|
||||||
|
end
|
||||||
|
|
||||||
|
def epp_user_events(id)
|
||||||
|
where(whodunnit: "#{id}-EppUser")
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,4 +1,6 @@
|
||||||
class DomainVersion < PaperTrail::Version
|
class DomainVersion < PaperTrail::Version
|
||||||
|
include UserEvents
|
||||||
|
|
||||||
scope :deleted, -> { where(event: 'destroy') }
|
scope :deleted, -> { where(event: 'destroy') }
|
||||||
|
|
||||||
self.table_name = :domain_versions
|
self.table_name = :domain_versions
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
= t('shared.whodunnit')
|
= t('shared.whodunnit')
|
||||||
%th{class: 'col-xs-2'}
|
%th{class: 'col-xs-2'}
|
||||||
= t('shared.created_at')
|
= t('shared.created_at')
|
||||||
|
%th{class: 'col-xs-1'}
|
||||||
|
= t('shared.contact')
|
||||||
%th{class: 'col-xs-1'}
|
%th{class: 'col-xs-1'}
|
||||||
= t('shared.details')
|
= t('shared.details')
|
||||||
=# sort_link(@q, 'email', t('shared.email'))
|
=# sort_link(@q, 'email', t('shared.email'))
|
||||||
|
@ -25,8 +27,9 @@
|
||||||
- @versions.each do |x|
|
- @versions.each do |x|
|
||||||
%tr
|
%tr
|
||||||
%td= x.event
|
%td= x.event
|
||||||
%td= x.whodunnit
|
%td= link_to_whodunnit(x.whodunnit)
|
||||||
%td= l(x.created_at, format: :short)
|
%td= l(x.created_at, format: :short)
|
||||||
|
%td= link_to(t('shared.contact'), client_contact_path(x.item_id))
|
||||||
%td= link_to(t('shared.details'), client_contact_version_path(x, event: x.event))
|
%td= link_to(t('shared.details'), client_contact_version_path(x, event: x.event))
|
||||||
.row
|
.row
|
||||||
.col-md-12
|
.col-md-12
|
||||||
|
|
37
app/views/client/domain_versions/index.haml
Normal file
37
app/views/client/domain_versions/index.haml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
.row
|
||||||
|
.col-sm-6
|
||||||
|
%h2.text-center-xs= t('shared.contacts')
|
||||||
|
=# render 'admin/contacts/partials/search'
|
||||||
|
.col-sm-6
|
||||||
|
%h2.text-right.text-center-xs
|
||||||
|
= link_to(t('shared.create_new_contact'), new_client_domain_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'}
|
||||||
|
= t('shared.event')
|
||||||
|
%th{class: 'col-xs-2'}
|
||||||
|
= t('shared.whodunnit')
|
||||||
|
%th{class: 'col-xs-2'}
|
||||||
|
= t('shared.created_at')
|
||||||
|
%th{class: 'col-xs-1'}
|
||||||
|
= t('shared.item_id')
|
||||||
|
=# sort_link(@q, 'email', t('shared.email'))
|
||||||
|
%th{class: 'col-xs-1'}
|
||||||
|
= t('shared.details')
|
||||||
|
|
||||||
|
%tbody
|
||||||
|
- @versions.each do |x|
|
||||||
|
%tr
|
||||||
|
%td= x.event
|
||||||
|
%td= x.whodunnit
|
||||||
|
%td= l(x.created_at, format: :short)
|
||||||
|
%td= link_to(t('shared.domain'), client_domain_path(x.item_id))
|
||||||
|
%td= link_to(t('shared.details'), client_domain_version_path(x, event: x.event))
|
||||||
|
.row
|
||||||
|
.col-md-12
|
||||||
|
=# paginate @contacts
|
24
app/views/client/domain_versions/show.haml
Normal file
24
app/views/client/domain_versions/show.haml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
.row
|
||||||
|
.col-sm-6
|
||||||
|
%h2.text-center-xs= t('shared.domains')
|
||||||
|
%hr
|
||||||
|
.row
|
||||||
|
- if @event != 'create'
|
||||||
|
.col-sm-6= render 'client/domains/partials/general'
|
||||||
|
- if @event != 'create' && @domain.owner_contact
|
||||||
|
.col-sm-6= render 'client/domains/partials/owner'
|
||||||
|
- if @event != 'create' && @domain.tech_contacts
|
||||||
|
.col-sm-6= render 'client/domains/partials/tech_contacts'
|
||||||
|
.col-sm-6
|
||||||
|
.panel.panel-default
|
||||||
|
.panel-heading
|
||||||
|
%h3.panel-title= t('shared.version')
|
||||||
|
.panel-body
|
||||||
|
%dl.dl-horizontal
|
||||||
|
%dt= t('shared.whodunnit')
|
||||||
|
%dd= @version.whodunnit
|
||||||
|
%dt= t('shared.event')
|
||||||
|
%dd= @version.event
|
||||||
|
%dt= t('shared.created_at')
|
||||||
|
%dd= l(@version.created_at, format: :short)
|
||||||
|
|
|
@ -49,6 +49,7 @@ Rails.application.routes.draw do
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :contact_versions
|
resources :contact_versions
|
||||||
|
resources :domain_versions
|
||||||
|
|
||||||
root 'domains#index'
|
root 'domains#index'
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue