internetee/registry

View on GitHub
app/views/admin/domain_versions/archive.haml

Summary

Maintainability
Test Coverage
= render 'shared/title', name: t(:domains)

.row
  .col-md-12
    = search_form_for [:admin, @q], html: { style: 'margin-bottom: 0;', class: 'js-form', autocomplete: 'off' } do |f|
      .row
        .col-md-3
          .form-group
            = label_tag :name
            = f.search_field :name, value: params[:q][:name], class: 'form-control', placeholder: t(:name)
        .col-md-3
          .form-group
            = label_tag :registrant
            = f.search_field :registrant, value: params[:q][:registrant], class: 'form-control', placeholder: t('.registrant_placeholder')
        .col-md-3
          .form-group
            = label_tag t(:registrar_name)
            = select_tag '[q][registrar]', options_for_select(Registrar.all.map { |r| [r.name] }, selected: params[:q][:registrar]), { include_blank: true, class: 'form-control', placeholder: t('.registrant')}
        .col-md-3
          .form-group
            = label_tag :action
            = select_tag '[q][event]', options_for_select([['Update', 'update'], ['Destroy', 'destroy'], ['Create', 'create']], params[:q][:event]), { include_blank:true, multiple: false, placeholder: t(:choose), class: 'form-control js-combobox' }
        .row
        .col-md-3
          .form-group
            = f.label t(:created_at_from)
            = f.search_field :created_at_gteq, value: params[:q][:created_at_gteq], class: 'form-control js-datepicker', placeholder: t(:created_at_from)
        .col-md-3
          .form-group
            = f.label t(:created_at_until)
            = f.search_field :created_at_lteq, value: params[:q][:created_at_lteq], class: 'form-control js-datepicker', placeholder: t(:created_at_until)
        .col-md-3
          .form-group
            = label_tag t(:results_per_page)
            = text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page)
        .col-md-3{style: 'padding-top: 25px;float:right;padding-right: 0px;'}
          %button.btn.btn-primary
             
            %span.glyphicon.glyphicon-search
             
          = link_to(t('.csv_btn'), admin_domain_versions_path(format: :csv, params: params.permit!), class: 'btn btn-default')
          = link_to(t('.reset_btn'), admin_domain_versions_path, class: 'btn btn-default')
%hr


.row
  .col-md-12
    .table-responsive
      %table.table.table-hover.table-bordered.table-condensed
        %thead
          %tr
            %th{class: 'col-xs-2'}
              = t(:name)
            %th{class: 'col-xs-2'}
              = t('.registrant')
            %th{class: 'col-xs-2'}
              = t(:registrar_name)
            %th{class: 'col-xs-2'}
              = t(:action)
            %th{class: 'col-xs-2'}
              = t(:created_at)
        %tbody
          - @versions.each do |version|
            - if version
              - domain = ObjectVersionsParser.new(version).parse

              %tr
                %td= link_to(domain.name, admin_domain_version_path(version.id))
                %td
                  - if domain.registrant
                    = domain.registrant.name
                  - else
                    - contact = Contact.all_versions_for([domain.registrant_id], version.created_at).first
                    - if contact.nil? && ver = Version::ContactVersion.where(item_id: domain.registrant_id).last
                      - merged_obj = ver.object_changes.to_h.each_with_object({}) {|(k,v), o| o[k] = v.last }
                      - result = ver.object.to_h.merge(merged_obj)&.slice(*Contact&.column_names)
                      - contact = Contact.new(result)
                    = contact.try(:name)
                    = " ".html_safe
                    = "(#{t(:deleted)})"
                %td
                  - if domain.registrar
                    = link_to(domain.registrar, admin_registrar_path(domain.registrar))
                %td= version.event
                %td= l(version.created_at, format: :short)


.row
  .col-md-6
    = paginate @versions
  .col-md-6.text-right
    .pagination
      = t(:result_count, count: @versions.total_count)