Merge remote-tracking branch 'origin/108869472-objects_archive' into story/115762063--show-historical-nested

# Conflicts:
#	app/views/admin/domain_versions/_version.haml
#	app/views/admin/domain_versions/index.haml
This commit is contained in:
Vladimir Krylov 2016-03-22 23:51:21 +02:00
parent 5a582d872d
commit ffe2ddd02c
3 changed files with 50 additions and 39 deletions

View file

@ -3,6 +3,7 @@ module Versions
extend ActiveSupport::Concern extend ActiveSupport::Concern
included do included do
attr_accessor :version_loader
has_paper_trail class_name: "#{model_name}Version" has_paper_trail class_name: "#{model_name}Version"
# add creator and updator # add creator and updator
@ -65,6 +66,7 @@ module Versions
select("distinct on (item_id) #{ver_klass.table_name}.*"). select("distinct on (item_id) #{ver_klass.table_name}.*").
map do |ver| map do |ver|
o = new(ver.object) o = new(ver.object)
o.version_loader = ver
ver.object_changes.to_h.each { |k, v| o[k]=v[-1] } ver.object_changes.to_h.each { |k, v| o[k]=v[-1] }
o o
end end

View file

@ -5,20 +5,20 @@
- if domain.present? - if domain.present?
- if version # normal history - if version # normal history
- children = HashWithIndifferentAccess.new(version.children) - children = HashWithIndifferentAccess.new(version.children)
- nameservers = Nameserver.where(id: children[:nameservers]) - nameservers = Nameserver.all_versions_for(children[:nameservers], version.created_at)
- tech_contacts = Contact.where(id: children[:tech_contacts]) - tech_contacts = Contact.all_versions_for(children[:tech_contacts], version.created_at)
- admin_contacts = Contact.where(id: children[:admin_contacts]) - admin_contacts = Contact.all_versions_for(children[:admin_contacts], version.created_at)
- registrant = Contact.where(id: children[:registrant]) - registrant = Contact.all_versions_for(children[:registrant], version.created_at)
- event = version.event - event = version.event
- creator = plain_username(version.terminator) - creator = plain_username(version.terminator)
- else # pending history - else # pending history
- nameservers = domain.nameservers - nameservers = domain.nameservers
- tech_contacts = domain.tech_contacts - tech_contacts = domain.tech_contacts
- admin_contacts = domain.admin_contacts - admin_contacts = domain.admin_contacts
- registrant = [domain.registrant] - registrant = [domain.registrant]
- creator = pending_user.try(:username) - creator = pending_user.try(:username)
- event = 'pending' - event = 'pending'
%td %td
%p.nowrap %p.nowrap
@ -31,7 +31,7 @@
%br %br
= creator = creator
%td %td{class: version && version.object_changes.to_h["statuses"] && "warning"}
%p %p
- if domain.statuses.present? - if domain.statuses.present?
- domain.statuses.each do |s| - domain.statuses.each do |s|
@ -46,7 +46,7 @@
%p %p
= link_to t(:pending_epp), '#', class: 'js-pending-toggle' = link_to t(:pending_epp), '#', class: 'js-pending-toggle'
%td %td{class: version && version.object_changes.to_h.slice("period", "period_unit", "valid_from", "valid_to").any? && "warning"}
%p %p
= "#{domain.period}#{domain.period_unit}" = "#{domain.period}#{domain.period_unit}"
%br %br
@ -55,43 +55,52 @@
= "#{l(domain.valid_to, format: :date)}" = "#{l(domain.valid_to, format: :date)}"
%td %td
- registrant.each do |r| - Array(registrant).each do |r|
%p - link = r.version_loader ? admin_contact_version_path(r.version_loader.try(:id)) : admin_contact_path(r.id)
= r[:name] = link_to link, target: "contact_#{r.id}" do
= r[:phone] %p
= r[:email] = r[:name]
%p = r[:phone]
= r[:code] = r[:email]
%p
= r[:code]
%td %td
- admin_contacts.each do |ac| - Array(admin_contacts).each do |ac|
%p - link = ac.version_loader ? admin_contact_version_path(ac.version_loader.try(:id)) : admin_contact_path(ac.id)
= ac[:name] = link_to link, target: "contact_#{ac.id}" do
= ac[:phone] %p
= ac[:email] = ac[:name]
%p = ac[:phone]
= ac[:code] = ac[:email]
%p
= ac[:code]
%td %td
- tech_contacts.each do |tc| - Array(tech_contacts).each do |tc|
%p - link = tc.version_loader ? admin_contact_version_path(tc.version_loader.try(:id)) : admin_contact_path(tc.id)
= tc[:name] = link_to link, target: "contact_#{tc.id}" do
= tc[:phone] %p
= tc[:email] = tc[:name]
%p = tc[:phone]
= tc[:code] = tc[:email]
%p
= tc[:code]
%td %td
%p %p
- nameservers.each do |ns| - Array(nameservers).each do |ns|
= ns[:hostname] = ns[:hostname]
%br %br
= ns[:ipv4] = ns[:ipv4].presence
= ns[:ipv6] = ns[:ipv6].presence
%br
%td %td
%p - if domain.registrar
= domain.registrar.name %p
= link_to admin_registrar_path(domain.registrar), target: "registrar_#{domain.registrar.id}" do
= domain.registrar.name
- if domain.pending_json.present? - if domain.pending_json.present?
%tr.js-pending{ style: 'display: none;' } %tr.js-pending{ style: 'display: none;' }

View file

@ -5,7 +5,7 @@
.row .row
.col-md-12 .col-md-12
.table-responsive .table-responsive
%table.table-hover.table-bordered.table-condensed %table.table.table-bordered.table-condensed
%thead %thead
%tr %tr
%th{class: 'col-xs-1'}= t(:timestap) %th{class: 'col-xs-1'}= t(:timestap)