diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 098c10d9b..7cee5b69e 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -72,4 +72,15 @@ module ApplicationHelper
link_to(title, url_for(sort: {param_name => order}), class: "sort_link #{order}")
end
+
+ def changing_css_class(version, *attrs)
+ return unless version
+ css_class = "text-warning"
+
+ if attrs.size == 1
+ version.object_changes.to_h[attrs.first] && css_class
+ else
+ version.object_changes.to_h.slice(*attrs).any? && css_class
+ end
+ end
end
diff --git a/app/models/domain.rb b/app/models/domain.rb
index ff51f6f08..dded56a3f 100644
--- a/app/models/domain.rb
+++ b/app/models/domain.rb
@@ -731,7 +731,8 @@ class Domain < ActiveRecord::Base
log[:tech_contacts] = tech_contact_ids
log[:nameservers] = nameserver_ids
log[:registrant] = [registrant_id]
- log[:domain_statuses] = domain_status_ids
+ log[:domain_statuses]= domain_status_ids
+ log[:dnskeys] = dnskeys_ids
log
end
diff --git a/app/views/admin/contact_versions/show.haml b/app/views/admin/contact_versions/show.haml
index 555c301dc..d6762a8c6 100644
--- a/app/views/admin/contact_versions/show.haml
+++ b/app/views/admin/contact_versions/show.haml
@@ -1,4 +1,6 @@
-= render 'shared/title', name: @version.reify.name
+- contact = Contact.new(@version.object.to_h)
+- @version.object_changes.to_h.each{|k,v| contact[k]=v.last}
+= render 'shared/title', name: contact.name
.row
.col-md-8
@@ -11,55 +13,64 @@
.panel-body
%dl.dl-horizontal
%dt= t(:id)
- %dd= @version.reify.code
+ %dd{class: changing_css_class(@version,"code")}
+ = contact.code
+
+ %dt= t(:statuses)
+ %dd{class: changing_css_class(@version,"statuses")}
+ = contact.statuses.join(", ")
%dt= t(:ident)
- %dd= ident_for(@version.reify)
+ %dd{class: changing_css_class(@version,"ident_country_code", "ident_type", "ident")}
+ = ident_for(contact)
%dt= t(:email)
- %dd= @version.reify.email
+ %dd{class: changing_css_class(@version,"email")}
+ = contact.email
%dt= t(:phone)
- %dd= @version.reify.phone
+ %dd{class: changing_css_class(@version,"phone")}
+ = contact.phone
- - if @version.reify.fax
+ - if contact.fax
%dt= t(:fax)
- %dd= @version.reify.fax
+ %dd{class: changing_css_class(@version,"fax")}
+ = contact.fax
%br
%dt= t(:created)
- %dd
- = l(@version.reify.created_at, format: :short)
+ %dd{class: changing_css_class(@version,"created_at")}
+ = l(contact.created_at, format: :short)
%dt= t(:updated)
- %dd
- = l(@version.reify.updated_at, format: :short)
+ %dd{class: changing_css_class(@version,"updated_at")}
+ = l(contact.updated_at, format: :short)
%dt= t(:registrar)
- %dd
- - if @version.reify.registrar.present?
- = link_to(@version.reify.registrar, admin_registrar_path(@version.reify.registrar))
+ %dd{class: changing_css_class(@version,"registrar_id")}
+ - if contact.registrar.present?
+ = link_to(contact.registrar, admin_registrar_path(contact.registrar))
%dl.dl-horizontal
- - if @version.reify.org_name.present?
+ - if contact.org_name.present?
%dt= t(:org_name)
- %dd= @version.reify.org_name
+ %dd{class: changing_css_class(@version,"org_name")}= contact.org_name
%dt= t(:street)
- %dd= @version.reify.street.to_s.gsub("\n", '
').html_safe
+ %dd{class: changing_css_class(@version,"street")}= contact.street.to_s.gsub("\n", '
').html_safe
%dt= t(:city)
- %dd= @version.reify.city
+ %dd{class: changing_css_class(@version,"city")}= contact.city
%dt= t(:zip)
- %dd= @version.reify.zip
+ %dd{class: changing_css_class(@version,"zip")}= contact.zip
%dt= t(:state)
- %dd= @version.reify.state
+ %dd{class: changing_css_class(@version,"state")}= contact.state
%dt= t(:country)
- %dd= @version.reify.country
+ %dd{class: changing_css_class(@version,"country_code")}= contact.country
%span{:style => "padding-right:10px; float: right;"}
diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml
index ffd2b359a..6244e60f0 100644
--- a/app/views/admin/domain_versions/show.haml
+++ b/app/views/admin/domain_versions/show.haml
@@ -1,4 +1,6 @@
= render 'shared/title', name: @version.reify.name
+- domain = Domain.new(@version.object.to_h)
+- @version.object_changes.to_h.each{|k,v| domain[k]=v.last}
- if @version
- children = HashWithIndifferentAccess.new(@version.children)
@@ -8,7 +10,6 @@
- registrant = Contact.all_versions_for(children[:registrant], @version.created_at)
- event = @version.event
- creator = plain_username(@version.terminator)
- - domain = @version.reify
.row
@@ -22,16 +23,16 @@
.panel-body
%dl.dl-horizontal
%dt= t(:name)
- %dd= link_to(@version.reify.name, admin_domain_path(@version.item_id))
+ %dd= link_to(domain.name, admin_domain_path(@version.item_id))
%dt= t(:statuses)
- %dd{class: @version.object_changes.to_h["statuses"] && "text-warning"}
- - if @version.reify.statuses.present?
- - @version.reify.statuses.each do |s|
+ %dd{class: changing_css_class(@version,"statuses")}
+ - if domain.statuses.present?
+ - domain.statuses.each do |s|
= s
%dt= t(:registrant)
- %dd{class: @version.object_changes.to_h["registrant_id"] && "text-warning"}
+ %dd{class: changing_css_class(@version,"registrant_id")}
- registrant.each do |r|
- link = r.version_loader ? admin_contact_version_path(r.version_loader.try(:id)) : admin_contact_path(r.id)
= link_to link, target: "contact_#{r.id}" do
@@ -70,10 +71,12 @@
= ns[:ipv4]
= ns[:ipv6]
%br
+
%dt= t(:registrar)
- %dd{class: @version.object_changes.to_h["registrar_id"] && "text-warning"}
+ %dd{class: changing_css_class(@version,"registrar_id")}
= link_to admin_registrar_path(domain.registrar), target: "registrar_#{domain.registrar.id}" do
- = @version.reify.registrar.name
+ = domain.registrar.name
+
%span{:style => "padding-right:10px; padding-top:40px; float: right; bottom: 10px;"}
- if @version.previous
= link_to(t(:previous),
diff --git a/app/views/admin/domains/partials/_version.haml b/app/views/admin/domains/partials/_version.haml
index e4b4c3c03..15768ea16 100644
--- a/app/views/admin/domains/partials/_version.haml
+++ b/app/views/admin/domains/partials/_version.haml
@@ -31,7 +31,7 @@
%br
= creator
- %td{class: version && version.object_changes.to_h["statuses"] && "warning"}
+ %td{class: changing_css_class(version,"statuses")}
%p
- if domain.statuses.present?
- domain.statuses.each do |s|
@@ -46,7 +46,7 @@
%p
= link_to t(:pending_epp), '#', class: 'js-pending-toggle'
- %td{class: version && version.object_changes.to_h.slice("period", "period_unit", "valid_from", "valid_to").any? && "warning"}
+ %td{class: changing_css_class(version, "period", "period_unit", "valid_from", "valid_to")}
%p
= "#{domain.period}#{domain.period_unit}"
%br
@@ -96,7 +96,7 @@
= ns[:ipv6].presence
%br
- %td
+ %td{class: changing_css_class(version,"registrar_id")}
- if domain.registrar
%p
= link_to admin_registrar_path(domain.registrar), target: "registrar_#{domain.registrar.id}" do