From 44e5f10c38aaeb102e25a4ae1557318c17a38f72 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 29 Mar 2016 18:05:46 +0300 Subject: [PATCH 1/3] story#115762063 - show all dnskey attributes in history --- app/views/admin/domains/partials/_version.haml | 10 ++++++++++ app/views/admin/domains/versions.haml | 1 + 2 files changed, 11 insertions(+) diff --git a/app/views/admin/domains/partials/_version.haml b/app/views/admin/domains/partials/_version.haml index 15768ea16..31619dbbc 100644 --- a/app/views/admin/domains/partials/_version.haml +++ b/app/views/admin/domains/partials/_version.haml @@ -7,6 +7,7 @@ - if version # normal history - children = HashWithIndifferentAccess.new(version.children) - nameservers = Nameserver.all_versions_for(children[:nameservers], version.created_at) + - dnskeys = Dnskey.all_versions_for(children[:dnskeys], version.created_at) - tech_contacts = Contact.all_versions_for(children[:tech_contacts], version.created_at) - admin_contacts = Contact.all_versions_for(children[:admin_contacts], version.created_at) - registrant = Contact.all_versions_for(children[:registrant], version.created_at) @@ -14,6 +15,7 @@ - creator = plain_username(version.terminator) - else # pending history - nameservers = domain.nameservers + - dnskeys = domain.dnskeys - tech_contacts = domain.tech_contacts - admin_contacts = domain.admin_contacts - registrant = [domain.registrant] @@ -95,6 +97,14 @@ = ns[:ipv4].presence = ns[:ipv6].presence %br + %td + - Array(dnskeys).each do |ns| + %p + = ns.flags + = ns.protocol + = ns.alg + %br + = ns.attributes.except("id", "domain_id", "updated_at", "legacy_domain_id") %td{class: changing_css_class(version,"registrar_id")} - if domain.registrar diff --git a/app/views/admin/domains/versions.haml b/app/views/admin/domains/versions.haml index 175b0be02..63d318236 100644 --- a/app/views/admin/domains/versions.haml +++ b/app/views/admin/domains/versions.haml @@ -15,6 +15,7 @@ %th{class: 'col-xs-2'}= t(:admin) %th{class: 'col-xs-2'}= t(:tech) %th{class: 'col-xs-2'}= t(:nameservers) + %th{class: 'col-xs-2'}= t(:dnskeys) %th{class: 'col-xs-2'}= t(:registrar) %tbody From da0f11d47ffd924e2e09d6496a36a36f8c5a2779 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 29 Mar 2016 18:08:31 +0300 Subject: [PATCH 2/3] story#115762063 - render link to pure history --- app/views/admin/domains/partials/_version.haml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/views/admin/domains/partials/_version.haml b/app/views/admin/domains/partials/_version.haml index 31619dbbc..c7f4862cf 100644 --- a/app/views/admin/domains/partials/_version.haml +++ b/app/views/admin/domains/partials/_version.haml @@ -32,6 +32,9 @@ = event %br = creator + - if version + %p.text-right + = link_to "Pure history", admin_domain_version_path(version) %td{class: changing_css_class(version,"statuses")} %p From f873b14214de8f1817ef53febf516fb9f5210efd Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 30 Mar 2016 17:07:27 +0300 Subject: [PATCH 3/3] story#115762063 - children log method doesn't save ids marked for destruction --- app/models/domain.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index 29a53ead3..a7815c9ce 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -725,14 +725,18 @@ class Domain < ActiveRecord::Base # rubocop: enable Metrics/CyclomaticComplexity # rubocop: enable Metrics/PerceivedComplexity + + # small optimization that we'are using to_a if it was done already + # otherwise just getting ids def children_log - log = HashWithIndifferentAccess.new - log[:admin_contacts] = admin_contact_ids - log[:tech_contacts] = tech_contact_ids - log[:nameservers] = nameserver_ids + log = HashWithIndifferentAccess.new + types = %i(admin_contacts tech_contacts nameservers dnskeys domain_statuses) + + types.each do |rel| + ids = send(rel).loaded? ? send(rel).reject(&:marked_for_destruction?).map(&:id) : send(rel).pluck(:id) + log[rel] = ids + end log[:registrant] = [registrant_id] - log[:domain_statuses]= domain_status_ids - log[:dnskeys] = dnskey_ids log end