diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb index f60c186fa..682c3d7ea 100644 --- a/app/controllers/admin/domains_controller.rb +++ b/app/controllers/admin/domains_controller.rb @@ -1,6 +1,14 @@ class Admin::DomainsController < ApplicationController + before_action :set_domain, only: [:show] + def index @q = Domain.search(params[:q]) @domains = @q.result.page(params[:page]) end + + private + + def set_domain + @domain = Domain.find(params[:id]) + end end diff --git a/app/models/domain.rb b/app/models/domain.rb index c2d9ca586..1a23dbee2 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -30,6 +30,9 @@ class Domain < ActiveRecord::Base has_many :domain_transfers, dependent: :delete_all delegate :code, to: :owner_contact, prefix: true + delegate :email, to: :owner_contact, prefix: true + delegate :ident, to: :owner_contact, prefix: true + delegate :phone, to: :owner_contact, prefix: true delegate :name, to: :registrar, prefix: true before_create :generate_auth_info diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index 9e5c8d3dd..eb97a8985 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -23,4 +23,8 @@ class Nameserver < ActiveRecord::Base ] } end + + def to_s + hostname + end end diff --git a/app/views/admin/domains/index.haml b/app/views/admin/domains/index.haml index 6a22ee175..b5bcbbb56 100644 --- a/app/views/admin/domains/index.haml +++ b/app/views/admin/domains/index.haml @@ -3,25 +3,27 @@ .row .col-md-12 .table-responsive - %table.table.table-striped.table-bordered.table-condensed - %tr - %th{class: 'col-xs-2'} - = sort_link(@q, 'name') - %th{class: 'col-xs-2'} - = sort_link(@q, 'registrar_name', t('shared.registrar')) - %th{class: 'col-xs-2'} - = sort_link(@q, 'owner_contact_international_address_name', t('shared.owner')) - %th{class: 'col-xs-1'} - = sort_link(@q, 'valid_to', t('shared.valid_to')) - %th{class: 'col-xs-1'} - = t('shared.action') - - @domains.each do |x| + %table.table.table-hover.table-bordered.table-condensed + %thead %tr - %td= link_to(x, admin_domain_path(x)) - %td= link_to(x.registrar, root_path) if x.registrar - %td= link_to(x.owner_contact, root_path) - %td= l(x.valid_to, format: :short) - %td= link_to(t('shared.edit'), edit_admin_domain_path(x), class: 'btn btn-primary btn-xs') + %th{class: 'col-xs-2'} + = sort_link(@q, 'name') + %th{class: 'col-xs-2'} + = sort_link(@q, 'registrar_name', t('shared.registrar')) + %th{class: 'col-xs-2'} + = sort_link(@q, 'owner_contact_international_address_name', t('shared.owner')) + %th{class: 'col-xs-1'} + = sort_link(@q, 'valid_to', t('shared.valid_to')) + %th{class: 'col-xs-1'} + = t('shared.action') + %tbody + - @domains.each do |x| + %tr + %td= link_to(x, admin_domain_path(x)) + %td= link_to(x.registrar, root_path) if x.registrar + %td= link_to(x.owner_contact, root_path) + %td= l(x.valid_to, format: :short) + %td= link_to(t('shared.edit'), edit_admin_domain_path(x), class: 'btn btn-primary btn-xs') .row .col-md-12 = paginate @domains diff --git a/app/views/admin/domains/partials/_admin_contacts.haml b/app/views/admin/domains/partials/_admin_contacts.haml new file mode 100644 index 000000000..12ad0bdb7 --- /dev/null +++ b/app/views/admin/domains/partials/_admin_contacts.haml @@ -0,0 +1,15 @@ +.panel.panel-default + .panel-heading= t('shared.admin_contacts') + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-4'}= t('shared.name') + %th{class: 'col-xs-5'}= t('shared.email') + %th{class: 'col-xs-3'}= t('shared.action') + %tbody + - @domain.admin_contacts.each do |x| + %tr + %td= link_to(x, root_path) + %td= x.email + %td= link_to(t('shared.edit'), root_path, class: 'btn btn-primary btn-xs') diff --git a/app/views/admin/domains/partials/_general.haml b/app/views/admin/domains/partials/_general.haml new file mode 100644 index 000000000..1730836b6 --- /dev/null +++ b/app/views/admin/domains/partials/_general.haml @@ -0,0 +1,22 @@ +.panel.panel-default + .panel-heading + %h3.panel-title= t('shared.general') + .panel-body + %dl.dl-horizontal + %dt= t('shared.name') + %dd= @domain.name + + %dt= t('shared.registered_at') + %dd= l(@domain.registered_at) + + %dt= t('shared.registrar') + %dd= link_to(@domain.registrar, root_path) + + %dt= t('shared.password') + %dd= @domain.auth_info + + %dt= t('shared.valid_from') + %dd= l(@domain.valid_from) + + %dt= t('shared.valid_to') + %dd= l(@domain.valid_to) diff --git a/app/views/admin/domains/partials/_nameservers.haml b/app/views/admin/domains/partials/_nameservers.haml new file mode 100644 index 000000000..bd0514d35 --- /dev/null +++ b/app/views/admin/domains/partials/_nameservers.haml @@ -0,0 +1,17 @@ +.panel.panel-default + .panel-heading= t('shared.nameservers') + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-3'}= t('shared.hostname') + %th{class: 'col-xs-3'}= t('shared.ipv4') + %th{class: 'col-xs-3'}= t('shared.ipv6') + %th{class: 'col-xs-3'}= t('shared.action') + %tbody + - @domain.nameservers.each do |x| + %tr + %td= link_to(x, root_path) + %td= x.ipv4 + %td= x.ipv6 + %td= link_to(t('shared.edit'), root_path, class: 'btn btn-primary btn-xs') diff --git a/app/views/admin/domains/partials/_owner.haml b/app/views/admin/domains/partials/_owner.haml new file mode 100644 index 000000000..a16276906 --- /dev/null +++ b/app/views/admin/domains/partials/_owner.haml @@ -0,0 +1,19 @@ +.panel.panel-default + .panel-heading + %h3.panel-title= t('shared.owner') + .panel-body + %dl.dl-horizontal + %dt= t('shared.name') + %dd= link_to(@domain.owner_contact, root_path) + + %dt= t('shared.code') + %dd= @domain.owner_contact_code + + %dt= t('shared.identity_code') + %dd= @domain.owner_contact_ident + + %dt= t('shared.email') + %dd= @domain.owner_contact_email + + %dt= t('shared.phone') + %dd= @domain.owner_contact_phone diff --git a/app/views/admin/domains/partials/_tech_contacts.haml b/app/views/admin/domains/partials/_tech_contacts.haml new file mode 100644 index 000000000..a64150cf1 --- /dev/null +++ b/app/views/admin/domains/partials/_tech_contacts.haml @@ -0,0 +1,15 @@ +.panel.panel-default + .panel-heading= t('shared.tech_contacts') + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-4'}= t('shared.name') + %th{class: 'col-xs-5'}= t('shared.email') + %th{class: 'col-xs-3'}= t('shared.action') + %tbody + - @domain.tech_contacts.each do |x| + %tr + %td= link_to(x, root_path) + %td= x.email + %td= link_to(t('shared.edit'), root_path, class: 'btn btn-primary btn-xs') diff --git a/app/views/admin/domains/show.haml b/app/views/admin/domains/show.haml new file mode 100644 index 000000000..a5c93c7a9 --- /dev/null +++ b/app/views/admin/domains/show.haml @@ -0,0 +1,11 @@ +%h2= "#{t('shared.domain_details')}" +%hr +.row + .col-md-6= render 'admin/domains/partials/general' + .col-md-6= render 'admin/domains/partials/owner' +.row + .col-md-12= render 'admin/domains/partials/tech_contacts' +.row + .col-md-12= render 'admin/domains/partials/admin_contacts' +.row + .col-md-12= render 'admin/domains/partials/nameservers' diff --git a/app/views/admin/setting_groups/index.haml b/app/views/admin/setting_groups/index.haml index 9c3fc87a1..1c97f56cb 100644 --- a/app/views/admin/setting_groups/index.haml +++ b/app/views/admin/setting_groups/index.haml @@ -3,13 +3,15 @@ .row .col-md-12 .table-responsive - %table.table.table-striped.table-bordered.table-condensed - %tr - %th{class: 'col-xs-9'} - = sort_link(@q, 'code', t('shared.setting_group')) - %th{class: 'col-xs-2'} - = t('shared.action') - - @setting_groups.each do |x| + %table.table.table-hover.table-bordered.table-condensed + %thead %tr - %td= t("setting_groups.codes.#{x.code}") - %td= link_to(t('shared.edit_settings'), admin_setting_group_path(x), class: 'btn btn-primary btn-xs') + %th{class: 'col-xs-9'} + = sort_link(@q, 'code', t('shared.setting_group')) + %th{class: 'col-xs-2'} + = t('shared.action') + %tbody + - @setting_groups.each do |x| + %tr + %td= t("setting_groups.codes.#{x.code}") + %td= link_to(t('shared.edit_settings'), admin_setting_group_path(x), class: 'btn btn-primary btn-xs') diff --git a/app/views/admin/setting_groups/show.haml b/app/views/admin/setting_groups/show.haml index 2a15d78dc..714d37407 100644 --- a/app/views/admin/setting_groups/show.haml +++ b/app/views/admin/setting_groups/show.haml @@ -4,17 +4,19 @@ .row .col-md-12 .table-responsive - %table.table.table-striped.table-bordered.table-condensed - %tr - %th{class: 'col-xs-9'} - = t('shared.setting') - %th{class: 'col-xs-2'} - = t('shared.value') - - @setting_group.settings.order(:code).each do |setting| - = f.fields_for :settings, setting do |sf| - %tr - %td= sf.label :value, t("settings.codes.#{sf.object.code}") - %td= sf.text_field(:value, autocomplete: 'off') + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-9'} + = t('shared.setting') + %th{class: 'col-xs-2'} + = t('shared.value') + %tbody + - @setting_group.settings.order(:code).each do |setting| + = f.fields_for :settings, setting do |sf| + %tr + %td= sf.label :value, t("settings.codes.#{sf.object.code}") + %td= sf.text_field(:value, autocomplete: 'off') .row .col-md-12.text-right %button.btn.btn-primary=t('shared.save') diff --git a/config/locales/en.yml b/config/locales/en.yml index fb55fc01d..d0fb04963 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -157,10 +157,22 @@ en: registrars: 'Registrars' valid_to: 'Valid to' name: 'Name' - transfer_can_be_approved_only_by_current_registrar: 'Transfer can be approved only by current domain registrar' edit_settings: 'Edit settings' setting_group: 'Setting group' setting: 'Setting' registrar: 'Registrar' owner: 'Owner' + domain_details: 'Domain details' + registered_at: 'Registered at' + password: 'Password' + valid_from: 'Valid from' + general: 'General' + contacts: 'Contacts' + tech_contacts: 'Technical contacts' + admin_contacts: 'Admin contacts' + identity_code: 'Identity code' + nameservers: 'Nameservers' + hostname: 'Hostname' + ipv4: 'IPv4' + ipv6: 'IPv6'