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