diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 981783e20..9700e26c1 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -4,6 +4,12 @@ class Admin::DomainVersionsController < AdminController def index @domain = Domain.find(params[:domain_id]) @versions = @domain.versions + + 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.new_from_epp(frame, @pending_user) + end end # def index diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4efb6f2ee..6ab5fe4e8 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -50,4 +50,9 @@ module ApplicationHelper amount ||= 0 ("%01.2f" % amount.round(2)).sub(/\./, ',') end + + def plain_username(username) + username ||= '' + username.split(':').last.to_s.strip + end end diff --git a/app/views/admin/domain_versions/_version.haml b/app/views/admin/domain_versions/_version.haml index c8bef118b..3c8b87ff2 100644 --- a/app/views/admin/domain_versions/_version.haml +++ b/app/views/admin/domain_versions/_version.haml @@ -1,16 +1,37 @@ -- if version.present? && domain.present? - - children = HashWithIndifferentAccess.new(version.children) - - nameservers = children[:nameservers] || [] - - tech_contacts = children[:tech_contacts] || [] - - admin_contacts = children[:admin_contacts] || [] - - registrant = children[:registrant] || [] +- version ||= false +- domain ||= false +- pending_user ||= false + +- if domain.present? + - if version # normal history + - children = HashWithIndifferentAccess.new(version.children) + - nameservers = children[:nameservers] || [] + - tech_contacts = children[:tech_contacts] || [] + - admin_contacts = children[:admin_contacts] || [] + - registrant = children[:registrant] || [] + - event = version.event + - creator = plain_username(version.terminator) + - elsif pending_user # pending history + - nameservers = domain.nameservers + - tech_contacts = domain.tech_contacts + - admin_contacts = domain.admin_contacts + - registrant = [domain.registrant] + - event = 'PENDING' + - creator = pending_user.try(:username) + - else # if legacy data not presentable + - nameservers = [] + - tech_contacts = [] + - admin_contacts = [] + - registrant = [] + - event = 'Log data is not viewable' + - creator = '' %td %p.nowrap = l(domain.updated_at, format: :short) - = version.event + = event %p.text-right - = version.terminator + = creator %td %p diff --git a/app/views/admin/domain_versions/index.haml b/app/views/admin/domain_versions/index.haml index 58bb175ab..ef31d2c17 100644 --- a/app/views/admin/domain_versions/index.haml +++ b/app/views/admin/domain_versions/index.haml @@ -17,6 +17,11 @@ %th{class: 'col-xs-2'}= t(:registrar) %tbody + - if @pending_domain.present? + %tr.small + = render 'admin/domain_versions/version', + domain: @pending_domain, pending_user: @pending_user + - if @domain.versions.present? %tr.small = render 'admin/domain_versions/version', diff --git a/app/views/admin/domains/partials/_statuses.haml b/app/views/admin/domains/partials/_statuses.haml index 51a88b18b..82480c7a6 100644 --- a/app/views/admin/domains/partials/_statuses.haml +++ b/app/views/admin/domains/partials/_statuses.haml @@ -8,7 +8,11 @@ %th{class: 'col-xs-6'}= t(:status) %th{class: 'col-xs-6'}= t(:description) %tbody - - @domain.statuses.each do |x| + - @domain.statuses.each do |status| %tr - %td= x + %td + - if [DomainStatus::PENDING_UPDATE, DomainStatus::PENDING_DELETE].include? status + = link_to status, admin_domain_domain_versions_path(@domain.id) + - else + = status %td