From 779a47c80fe00b263e82d330a6407ba286f9a52f Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 22 Mar 2016 11:43:24 +0200 Subject: [PATCH 1/6] Story#105842700 - found some way how to load historical objects. Data will be extracted --- .../admin/domain_versions_controller.rb | 12 +-- app/views/admin/domain_versions/_version.haml | 78 +++++++++---------- 2 files changed, 39 insertions(+), 51 deletions(-) diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 44a2087cd..9f8823d58 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -1,18 +1,8 @@ class Admin::DomainVersionsController < AdminController load_and_authorize_resource - # rubocop:disable Style/GuardClause def index - @domain = Domain.where(id: params[:domain_id]).includes({versions: :item}).first + @domain = Domain.where(id: params[:domain_id]).includes(versions: :item).first @versions = @domain.versions - - # Depricated it had to load legal document. We may do it by parsing and adding link. - # if @domain.pending_json.present? - # frame = Nokogiri::XML(@domain.pending_json['frame']) - # @pending_user = User.find(@domain.pending_json['current_user_id']) - # @pending_domain = Epp::Domain.find(@domain.id) - # @pending_domain.update(frame, @pending_user, false) - # end end - # rubocop:enable Style/GuardClause end diff --git a/app/views/admin/domain_versions/_version.haml b/app/views/admin/domain_versions/_version.haml index 321e9abda..53d97059e 100644 --- a/app/views/admin/domain_versions/_version.haml +++ b/app/views/admin/domain_versions/_version.haml @@ -5,20 +5,21 @@ - if domain.present? - if version # normal history - - children = HashWithIndifferentAccess.new(version.children) - - nameservers = Nameserver.where(id: children[:nameservers]) - - tech_contacts = Contact.where(id: children[:tech_contacts]) - - admin_contacts = Contact.where(id: children[:admin_contacts]) - - registrant = Contact.where(id: children[:registrant]) - - event = version.event - - creator = plain_username(version.terminator) + - children = HashWithIndifferentAccess.new(version.children) + - nameservers = NameserverVersion.where(item_id: children[:nameservers]).order(:item_id).preceding(version.created_at + 1, true).select("distinct on (item_id) #{NameserverVersion.table_name}.*").map{|ver| o=Nameserver.new(ver.object); ver.object_changes.to_h.each{|k,v| o[k]=v[-1] };o } + -#- nameservers = children[:nameservers].map{|id| Nameserver.new(id: id).safe_version_at(version.created_at)} + - tech_contacts = Contact.where(id: children[:tech_contacts]).map{|o| o.safe_version_at(version.created_at)} + - admin_contacts = Contact.where(id: children[:admin_contacts]).map{|o| o.safe_version_at(version.created_at)} + - registrant = Contact.where(id: children[:registrant]).map{|o| o.safe_version_at(version.created_at)} + - event = version.event + - creator = plain_username(version.terminator) - else # pending history - nameservers = domain.nameservers - tech_contacts = domain.tech_contacts - admin_contacts = domain.admin_contacts - - registrant = [domain.registrant] - - creator = pending_user.try(:username) - - event = 'pending' + - registrant = [domain.registrant] + - creator = pending_user.try(:username) + - event = 'pending' %td %p.nowrap @@ -55,43 +56,40 @@ = "#{l(domain.valid_to, format: :date)}" %td - - if registrant - - registrant.each do |r| - %p - = r[:name] - = r[:phone] - = r[:email] - %p - = r[:code] + - Array(registrant).each do |r| + %p + = r[:name] + = r[:phone] + = r[:email] + %p + = r[:code] %td - - if admin_contacts - - admin_contacts.each do |ac| - %p - = ac[:name] - = ac[:phone] - = ac[:email] - %p - = ac[:code] + - Array(admin_contacts).each do |ac| + %p + = ac[:name] + = ac[:phone] + = ac[:email] + %p + = ac[:code] %td - - if tech_contacts - - tech_contacts.each do |tc| - %p - = tc[:name] - = tc[:phone] - = tc[:email] - %p - = tc[:code] + - Array(tech_contacts).each do |tc| + %p + = tc[:name] + = tc[:phone] + = tc[:email] + %p + = tc[:code] %td %p - - if nameservers - - nameservers.each do |ns| - = ns[:hostname] - %br - = ns[:ipv4] - = ns[:ipv6] + - Array(nameservers).each do |ns| + = ns[:hostname] + %br + = ns[:ipv4] + = ns[:ipv6] + %br %td %p From 028aa31232ce6ca8c244703edd6ce179e010a097 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 22 Mar 2016 15:17:36 +0200 Subject: [PATCH 2/6] Story#115762063 - all contacts are using the same versions logic --- app/models/concerns/versions.rb | 18 ++++++++++++++++++ app/views/admin/domain_versions/_version.haml | 13 ++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index 768cf021e..9af2b3640 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -55,4 +55,22 @@ module Versions domains.each(&:touch_with_version) end end + + module ClassMethods + def all_versions_for(ids, time) + ver_klass = paper_trail_version_class + from_history = ver_klass.where(item_id: ids). + order(:item_id). + preceding(time + 1, true). + select("distinct on (item_id) #{ver_klass.table_name}.*"). + map do |ver| + o = new(ver.object) + ver.object_changes.to_h.each { |k, v| o[k]=v[-1] } + o + end + not_in_history = where(id: (ids - from_history.map(&:id))) + + from_history + not_in_history + end + end end diff --git a/app/views/admin/domain_versions/_version.haml b/app/views/admin/domain_versions/_version.haml index 53d97059e..47a2e597b 100644 --- a/app/views/admin/domain_versions/_version.haml +++ b/app/views/admin/domain_versions/_version.haml @@ -6,11 +6,10 @@ - if domain.present? - if version # normal history - children = HashWithIndifferentAccess.new(version.children) - - nameservers = NameserverVersion.where(item_id: children[:nameservers]).order(:item_id).preceding(version.created_at + 1, true).select("distinct on (item_id) #{NameserverVersion.table_name}.*").map{|ver| o=Nameserver.new(ver.object); ver.object_changes.to_h.each{|k,v| o[k]=v[-1] };o } - -#- nameservers = children[:nameservers].map{|id| Nameserver.new(id: id).safe_version_at(version.created_at)} - - tech_contacts = Contact.where(id: children[:tech_contacts]).map{|o| o.safe_version_at(version.created_at)} - - admin_contacts = Contact.where(id: children[:admin_contacts]).map{|o| o.safe_version_at(version.created_at)} - - registrant = Contact.where(id: children[:registrant]).map{|o| o.safe_version_at(version.created_at)} + - nameservers = Nameserver.all_versions_for(children[:nameservers], 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) - event = version.event - creator = plain_username(version.terminator) - else # pending history @@ -87,8 +86,8 @@ - Array(nameservers).each do |ns| = ns[:hostname] %br - = ns[:ipv4] - = ns[:ipv6] + = ns[:ipv4].presence + = ns[:ipv6].presence %br %td From 92b64d6268f167de88d9391fae772b9464d1c1f8 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 22 Mar 2016 15:53:47 +0200 Subject: [PATCH 3/6] Story#115762063 - add links to versions list --- app/views/admin/domain_versions/_version.haml | 49 ++++++++++--------- app/views/admin/domain_versions/index.haml | 4 +- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/app/views/admin/domain_versions/_version.haml b/app/views/admin/domain_versions/_version.haml index 47a2e597b..7ef1dc182 100644 --- a/app/views/admin/domain_versions/_version.haml +++ b/app/views/admin/domain_versions/_version.haml @@ -31,7 +31,7 @@ %br = creator - %td + %td{class: version && version.object_changes.to_h["statuses"] && "warning"} %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 + %td{class: version && version.object_changes.to_h.slice("period", "period_unit", "valid_from", "valid_to").any? && "warning"} %p = "#{domain.period}#{domain.period_unit}" %br @@ -56,30 +56,33 @@ %td - Array(registrant).each do |r| - %p - = r[:name] - = r[:phone] - = r[:email] - %p - = r[:code] + = link_to admin_contact_path(r.id), target: "contact_#{r.id}" do + %p + = r[:name] + = r[:phone] + = r[:email] + %p + = r[:code] %td - Array(admin_contacts).each do |ac| - %p - = ac[:name] - = ac[:phone] - = ac[:email] - %p - = ac[:code] + = link_to admin_contact_path(ac.id), target: "contact_#{ac.id}" do + %p + = ac[:name] + = ac[:phone] + = ac[:email] + %p + = ac[:code] %td - Array(tech_contacts).each do |tc| - %p - = tc[:name] - = tc[:phone] - = tc[:email] - %p - = tc[:code] + = link_to admin_contact_path(tc.id), target: "contact_#{tc.id}" do + %p + = tc[:name] + = tc[:phone] + = tc[:email] + %p + = tc[:code] %td %p @@ -91,8 +94,10 @@ %br %td - %p - = domain.registrar.name if domain.registrar + - if domain.registrar + %p + = link_to admin_registrar_path(domain.registrar), target: "registrar_#{domain.registrar.id}" do + = domain.registrar.name - if domain.pending_json.present? %tr.js-pending{ style: 'display: none;' } diff --git a/app/views/admin/domain_versions/index.haml b/app/views/admin/domain_versions/index.haml index d948d53df..7717d16de 100644 --- a/app/views/admin/domain_versions/index.haml +++ b/app/views/admin/domain_versions/index.haml @@ -5,7 +5,7 @@ .row .col-md-12 .table-responsive - %table.table-hover.table-bordered.table-condensed + %table.table.table-bordered.table-condensed %thead %tr %th{class: 'col-xs-1'}= t(:timestap) @@ -26,7 +26,7 @@ -# current version - if @domain.versions.present? %tr.small - = render 'admin/domain_versions/version', + = render 'admin/domain_versions/version', domain: @domain, version: @domain.versions.last -# all other older versions From ffe2ddd02c075bc32163d2f0fbf795376721dff8 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 22 Mar 2016 23:51:21 +0200 Subject: [PATCH 4/6] 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 --- app/models/concerns/versions.rb | 2 + .../admin/domains/partials/_version.haml | 85 ++++++++++--------- app/views/admin/domains/versions.haml | 2 +- 3 files changed, 50 insertions(+), 39 deletions(-) diff --git a/app/models/concerns/versions.rb b/app/models/concerns/versions.rb index 9af2b3640..779bd781a 100644 --- a/app/models/concerns/versions.rb +++ b/app/models/concerns/versions.rb @@ -3,6 +3,7 @@ module Versions extend ActiveSupport::Concern included do + attr_accessor :version_loader has_paper_trail class_name: "#{model_name}Version" # add creator and updator @@ -65,6 +66,7 @@ module Versions select("distinct on (item_id) #{ver_klass.table_name}.*"). map do |ver| o = new(ver.object) + o.version_loader = ver ver.object_changes.to_h.each { |k, v| o[k]=v[-1] } o end diff --git a/app/views/admin/domains/partials/_version.haml b/app/views/admin/domains/partials/_version.haml index fd449b4b0..e4b4c3c03 100644 --- a/app/views/admin/domains/partials/_version.haml +++ b/app/views/admin/domains/partials/_version.haml @@ -5,20 +5,20 @@ - if domain.present? - if version # normal history - - children = HashWithIndifferentAccess.new(version.children) - - nameservers = Nameserver.where(id: children[:nameservers]) - - tech_contacts = Contact.where(id: children[:tech_contacts]) - - admin_contacts = Contact.where(id: children[:admin_contacts]) - - registrant = Contact.where(id: children[:registrant]) - - event = version.event - - creator = plain_username(version.terminator) + - children = HashWithIndifferentAccess.new(version.children) + - nameservers = Nameserver.all_versions_for(children[:nameservers], 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) + - event = version.event + - creator = plain_username(version.terminator) - else # pending history - nameservers = domain.nameservers - tech_contacts = domain.tech_contacts - admin_contacts = domain.admin_contacts - - registrant = [domain.registrant] - - creator = pending_user.try(:username) - - event = 'pending' + - registrant = [domain.registrant] + - creator = pending_user.try(:username) + - event = 'pending' %td %p.nowrap @@ -31,7 +31,7 @@ %br = creator - %td + %td{class: version && version.object_changes.to_h["statuses"] && "warning"} %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 + %td{class: version && version.object_changes.to_h.slice("period", "period_unit", "valid_from", "valid_to").any? && "warning"} %p = "#{domain.period}#{domain.period_unit}" %br @@ -55,43 +55,52 @@ = "#{l(domain.valid_to, format: :date)}" %td - - registrant.each do |r| - %p - = r[:name] - = r[:phone] - = r[:email] - %p - = r[:code] + - Array(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 + %p + = r[:name] + = r[:phone] + = r[:email] + %p + = r[:code] %td - - admin_contacts.each do |ac| - %p - = ac[:name] - = ac[:phone] - = ac[:email] - %p - = ac[:code] + - Array(admin_contacts).each do |ac| + - link = ac.version_loader ? admin_contact_version_path(ac.version_loader.try(:id)) : admin_contact_path(ac.id) + = link_to link, target: "contact_#{ac.id}" do + %p + = ac[:name] + = ac[:phone] + = ac[:email] + %p + = ac[:code] %td - - tech_contacts.each do |tc| - %p - = tc[:name] - = tc[:phone] - = tc[:email] - %p - = tc[:code] + - Array(tech_contacts).each do |tc| + - link = tc.version_loader ? admin_contact_version_path(tc.version_loader.try(:id)) : admin_contact_path(tc.id) + = link_to link, target: "contact_#{tc.id}" do + %p + = tc[:name] + = tc[:phone] + = tc[:email] + %p + = tc[:code] %td %p - - nameservers.each do |ns| + - Array(nameservers).each do |ns| = ns[:hostname] %br - = ns[:ipv4] - = ns[:ipv6] + = ns[:ipv4].presence + = ns[:ipv6].presence + %br %td - %p - = domain.registrar.name + - if domain.registrar + %p + = link_to admin_registrar_path(domain.registrar), target: "registrar_#{domain.registrar.id}" do + = domain.registrar.name - if domain.pending_json.present? %tr.js-pending{ style: 'display: none;' } diff --git a/app/views/admin/domains/versions.haml b/app/views/admin/domains/versions.haml index 5224aa34a..175b0be02 100644 --- a/app/views/admin/domains/versions.haml +++ b/app/views/admin/domains/versions.haml @@ -5,7 +5,7 @@ .row .col-md-12 .table-responsive - %table.table-hover.table-bordered.table-condensed + %table.table.table-bordered.table-condensed %thead %tr %th{class: 'col-xs-1'}= t(:timestap) From 306819eeaf0aa973d0a7707e0589cd27d470c6ab Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 23 Mar 2016 00:05:55 +0200 Subject: [PATCH 5/6] story#115762063 - add links to just domain version view --- app/views/admin/domain_versions/show.haml | 58 ++++++++++++++--------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index e6076a3db..ffd2b359a 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -2,12 +2,13 @@ - if @version - children = HashWithIndifferentAccess.new(@version.children) - - nameservers = Nameserver.where(id: children[:nameservers]) - - tech_contacts = Contact.where(id: children[:tech_contacts]) - - admin_contacts = Contact.where(id: children[:admin_contacts]) - - registrant = Contact.where(id: children[:registrant]) + - nameservers = Nameserver.all_versions_for(children[:nameservers], @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) - event = @version.event - creator = plain_username(@version.terminator) + - domain = @version.reify .row @@ -22,35 +23,46 @@ %dl.dl-horizontal %dt= t(:name) %dd= link_to(@version.reify.name, admin_domain_path(@version.item_id)) + %dt= t(:statuses) - %dd + %dd{class: @version.object_changes.to_h["statuses"] && "text-warning"} - if @version.reify.statuses.present? - @version.reify.statuses.each do |s| = s + %dt= t(:registrant) - %dd + %dd{class: @version.object_changes.to_h["registrant_id"] && "text-warning"} - registrant.each do |r| - = r[:name] - = r[:phone] - = r[:email] - = r[:code] - %br + - 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 + = r[:name] + = r[:phone] + = r[:email] + = r[:code] + %br + %dt= t(:admin_contacts) %dd - admin_contacts.each do |r| - = r[:name] - = r[:phone] - = r[:email] - = r[:code] - %br + - 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 + = r[:name] + = r[:phone] + = r[:email] + = r[:code] + %br + %dt= t(:tech_contacts) %dd - tech_contacts.each do |r| - = r[:name] - = r[:phone] - = r[:email] - = r[:code] - %br + - 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 + = r[:name] + = r[:phone] + = r[:email] + = r[:code] + %br + %dt= t(:nameservers) %dd - nameservers.each do |ns| @@ -59,7 +71,9 @@ = ns[:ipv6] %br %dt= t(:registrar) - %dd= @version.reify.registrar.name + %dd{class: @version.object_changes.to_h["registrar_id"] && "text-warning"} + = link_to admin_registrar_path(domain.registrar), target: "registrar_#{domain.registrar.id}" do + = @version.reify.registrar.name %span{:style => "padding-right:10px; padding-top:40px; float: right; bottom: 10px;"} - if @version.previous = link_to(t(:previous), From bcc8e7b6f81309e8c75f13e78b064bbdcd7316ee Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 23 Mar 2016 18:28:40 +0200 Subject: [PATCH 6/6] story#115762063 - use special helper method to generate class name --- app/helpers/application_helper.rb | 11 ++++ app/models/domain.rb | 3 +- app/views/admin/contact_versions/show.haml | 53 +++++++++++-------- app/views/admin/domain_versions/show.haml | 19 ++++--- .../admin/domains/partials/_version.haml | 6 +-- 5 files changed, 59 insertions(+), 33 deletions(-) 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