diff --git a/app/controllers/registrar/domains_controller.rb b/app/controllers/registrar/domains_controller.rb index b1eba35d9..df616cc16 100644 --- a/app/controllers/registrar/domains_controller.rb +++ b/app/controllers/registrar/domains_controller.rb @@ -24,7 +24,7 @@ class Registrar::DomainsController < Registrar::DeppController # EPP controller render 'info' else flash[:alert] = t('domain_not_found') - redirect_to registrar_domains_path and return + redirect_to registrar_domains_url and return end end @@ -49,7 +49,7 @@ class Registrar::DomainsController < Registrar::DeppController # EPP controller @data = @domain.create(@domain_params) if response_ok? - redirect_to info_registrar_domains_path(domain_name: @domain_params[:name]) + redirect_to info_registrar_domains_url(domain_name: @domain_params[:name]) else render 'new' end @@ -67,7 +67,7 @@ class Registrar::DomainsController < Registrar::DeppController # EPP controller @data = @domain.update(@domain_params) if response_ok? - redirect_to info_domains_path(domain_name: @domain_params[:name]) + redirect_to info_registrar_domains_url(domain_name: @domain_params[:name]) else params[:domain_name] = @domain_params[:name] render 'new' diff --git a/app/controllers/registrar/polls_controller.rb b/app/controllers/registrar/polls_controller.rb index db0a83258..9dd284512 100644 --- a/app/controllers/registrar/polls_controller.rb +++ b/app/controllers/registrar/polls_controller.rb @@ -24,7 +24,7 @@ class Registrar::PollsController < Registrar::DeppController # EPP controller @data = @domain.confirm_keyrelay(domain_params) if response_ok? - redirect_to info_domains_path(domain_name: domain_params[:name]) + redirect_to info_registrar_domains_url(domain_name: domain_params[:name]) else @results = @data.css('result') @data = depp_current_user.request(@ex.poll) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 98d3b0b58..5c1a9a401 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -10,11 +10,21 @@ module ApplicationHelper end def ident_for(contact) - case contact.ident_type - when 'birthday' - "#{contact.ident} [#{contact.ident_type}]" + if contact.kind_of? Hash + ident_country_code = contact[:ident_country_code] + ident_type = contact[:ident_type] + ident = contact[:ident] else - "#{contact.ident} [#{contact.ident_country_code} #{contact.ident_type}]" + ident_country_code = contact.ident_country_code + ident_type = contact.ident_type + ident = contact.ident + end + + case ident_type + when 'birthday' + "#{ident} [#{ident_type}]" + else + "#{ident} [#{ident_country_code} #{ident_type}]" end end diff --git a/app/models/contact.rb b/app/models/contact.rb index 1df655f2e..5d0ba74b7 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -1,5 +1,6 @@ class Contact < ActiveRecord::Base include Versions # version/contact_version.rb + include EppErrors belongs_to :registrar has_many :domain_contacts diff --git a/app/models/depp/domain.rb b/app/models/depp/domain.rb index 7034ebaee..dfeef981f 100644 --- a/app/models/depp/domain.rb +++ b/app/models/depp/domain.rb @@ -5,7 +5,7 @@ module Depp attr_accessor :name, :current_user, :epp_xml - DOMAIN_STATUSES = %w( + STATUSES = %w( clientDeleteProhibited clientHold clientRenewProhibited @@ -13,6 +13,8 @@ module Depp clientUpdateProhibited ) + PERIODS = [['1 year', '1y'], ['2 years', '2y'], ['3 years', '3y']] + def initialize(args = {}) self.current_user = args[:current_user] self.epp_xml = EppXml::Domain.new(cl_trid_prefix: current_user.tag) @@ -36,7 +38,7 @@ module Depp xml = epp_xml.create({ name: { value: domain_params[:name] }, registrant: { value: domain_params[:registrant] }, - period: { value: domain_params[:period], attrs: { unit: domain_params[:period_unit] } }, + period: { value: domain_params[:period].to_s[0], attrs: { unit: domain_params[:period].to_s[1] } }, ns: Domain.create_nameservers_hash(domain_params), _anonymus: Domain.create_contacts_hash(domain_params) }, { @@ -164,7 +166,7 @@ module Depp end data.css('status').each_with_index do |x, i| - next unless DOMAIN_STATUSES.include?(x['s']) + next unless STATUSES.include?(x['s']) ret[:statuses_attributes][i] = { code: x['s'], description: x.text @@ -190,12 +192,10 @@ module Depp def construct_edit_hash(domain_params, old_domain_params) contacts = create_contacts_hash(domain_params) - create_contacts_hash(old_domain_params) - statuses = create_statuses_hash(domain_params) - create_statuses_hash(old_domain_params) - add_anon = contacts + statuses + add_anon = contacts contacts = create_contacts_hash(old_domain_params) - create_contacts_hash(domain_params) - statuses = create_statuses_hash(old_domain_params) - create_statuses_hash(domain_params) - rem_anon = contacts + statuses + rem_anon = contacts if domain_params[:registrant] != old_domain_params[:registrant] chg = [{ registrant: { value: domain_params[:registrant] } }] @@ -283,18 +283,6 @@ module Depp pubKey: { value: key_data_params['public_key'] } } end - - def create_statuses_hash(domain_params) - ret = [] - domain_params[:statuses_attributes].each do |_k, v| - next if v['code'].blank? - ret << { - status: { value: v['description'], attrs: { s: v['code'] } } - } - end - - ret - end end end end diff --git a/app/views/registrar/contacts/index.haml b/app/views/registrar/contacts/index.haml index 33927ee89..39fd8dd10 100644 --- a/app/views/registrar/contacts/index.haml +++ b/app/views/registrar/contacts/index.haml @@ -16,7 +16,7 @@ %tr %td= link_to(c[:name], registrar_contact_path(id: c[:code])) %td= c[:code] - %td= c[:ident] + %td= ident_for(c) %td = link_to(t(:edit), edit_registrar_contact_path(c[:code]), class: 'btn btn-primary btn-xs') = link_to(t(:delete), delete_registrar_contact_path(c[:code]), class: 'btn btn-default btn-xs') diff --git a/app/views/registrar/contacts/partials/_general.haml b/app/views/registrar/contacts/partials/_general.haml index 2524f34e9..3e3894278 100644 --- a/app/views/registrar/contacts/partials/_general.haml +++ b/app/views/registrar/contacts/partials/_general.haml @@ -3,21 +3,19 @@ %h3.panel-title= t(:general) .panel-body %dl.dl-horizontal - %dt= t(:ident) - %dd= ident_for(@contact) + %dt= t(:contact_code) + %dd= @contact.id + + %dt= t(:password) + %dd= @contact.password %br + %dt= t(:ident) + %dd= ident_for(@contact) + %dt= t(:email) %dd= @contact.email %dt= t(:phone) %dd= @contact.phone - - %br - - %dt= t(:contact_code) - %dd= @contact.id - - %dt= t(:password) - %dd= @contact.password diff --git a/app/views/registrar/deposits/new.haml b/app/views/registrar/deposits/new.haml index 695068ecc..d2af9f3c9 100644 --- a/app/views/registrar/deposits/new.haml +++ b/app/views/registrar/deposits/new.haml @@ -1,4 +1,4 @@ -%h1= t('add_deposit') +%h1= t(:add_deposit) %hr = form_for([:registrar, @deposit], method: :post) do |f| .row diff --git a/app/views/registrar/domains/_form.haml b/app/views/registrar/domains/_form.haml index fcd944e62..0bba02de2 100644 --- a/app/views/registrar/domains/_form.haml +++ b/app/views/registrar/domains/_form.haml @@ -1,38 +1,28 @@ - path = (params[:domain_name]) ? update_registrar_domains_path : registrar_domains_path = form_tag(path, class: 'form-horizontal', multipart: true) do .row - .col-md-12 - / Nav tabs - %ul.nav.nav-tabs{:role => "tablist", id: 'tabs'} - %li.active - %a{"data-toggle" => "tab", :href => "#general-tab", :role => "tab"}= t('general') - - if params['domain_name'] - %li - %a{"data-toggle" => "tab", :href => "#statuses-tab", :role => "tab"}= t('statuses') - / Tab panes - .tab-content - #general-tab.tab-pane.active - = render 'registrar/domains/form_partials/general' - = render 'registrar/domains/form_partials/contacts' - %hr - = render 'registrar/domains/form_partials/nameservers' - %hr - = render 'registrar/domains/form_partials/dnskeys' - - if params['domain_name'] - #statuses-tab.tab-pane - = render 'registrar/domains/form_partials/statuses' + .col-md-8 + #general-tab.tab-pane.active + = render 'registrar/domains/form_partials/general' + = render 'registrar/domains/form_partials/contacts' + = render 'registrar/domains/form_partials/nameservers' + = render 'registrar/domains/form_partials/dnskeys' - .panel.panel-default - .panel-heading.clearfix - .pull-left= t(:legal_document) - .panel-body - .form-group - = label_tag 'domain[legal_document]', t('legal_document'),class: 'col-md-3 control-label' - .col-md-9 - = file_field_tag 'domain[legal_document]' + .panel.panel-default + .panel-heading.clearfix + .pull-left= t(:legal_document) + .panel-body + .form-group + = label_tag 'domain[legal_document]', t('legal_document'),class: 'col-md-3 control-label' + .col-md-9 + = file_field_tag 'domain[legal_document]' + .col-md-4 + %p.domain-general-help= t(:domain_general_help).html_safe + %p.domain-admin-contact-help= t(:domain_admin_contact_help).html_safe + %p.domain-tech-contact-help= t(:domain_tech_contact_help).html_safe .row - .col-md-12.text-right + .col-md-8.text-right = button_tag(t('shared.save'), class: 'btn btn-primary') :javascript diff --git a/app/views/registrar/domains/edit.haml b/app/views/registrar/domains/edit.haml index 71662a8dd..6a42ec473 100644 --- a/app/views/registrar/domains/edit.haml +++ b/app/views/registrar/domains/edit.haml @@ -1,4 +1,2 @@ = render 'registrar/shared/title', name: "#{t(:edit)}: #{params[:domain_name]}" - -%hr = render 'form' diff --git a/app/views/registrar/domains/form_partials/_contacts.haml b/app/views/registrar/domains/form_partials/_contacts.haml index 8fce6c4f5..20e7675b9 100644 --- a/app/views/registrar/domains/form_partials/_contacts.haml +++ b/app/views/registrar/domains/form_partials/_contacts.haml @@ -8,13 +8,13 @@ = link_to(t('delete'), '#', class: 'btn btn-danger btn-xs destroy') .panel-body .form-group - = label_tag "domain_contacts_attributes_#{k}_type", t('contact_type'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_contacts_attributes_#{k}_type", t('contact_type'), class: 'col-md-3 control-label' + .col-md-7 = select_tag "domain[contacts_attributes][#{k}][type]", options_for_select(['admin', 'tech'], v['type']), {class: 'form-control'} .form-group - = label_tag "domain_contacts_attributes_#{k}_code", t('contact_code'), class: 'col-md-2 control-label' - .col-md-10.has-feedback + = label_tag "domain_contacts_attributes_#{k}_code", t('contact_code'), class: 'col-md-3 control-label' + .col-md-7.has-feedback = text_field_tag("domain[contacts_attributes][#{k}][code]", v['code'], class: 'form-control', placeholder: t('contact_code'), autocomplete: 'off') :coffee $("#domain-contacts").nestedAttributes diff --git a/app/views/registrar/domains/form_partials/_dnskeys.haml b/app/views/registrar/domains/form_partials/_dnskeys.haml index 06f7152dd..1db448d11 100644 --- a/app/views/registrar/domains/form_partials/_dnskeys.haml +++ b/app/views/registrar/domains/form_partials/_dnskeys.haml @@ -9,43 +9,43 @@ .panel-body - if ENV['show_ds_data_fields'] == 'true' .form-group - = label_tag "domain_dnskeys_attributes_#{k}_ds_key_tag", t('ds_key_tag'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_dnskeys_attributes_#{k}_ds_key_tag", t('ds_key_tag'), class: 'col-md-3 control-label' + .col-md-7 = text_field_tag "domain[dnskeys_attributes][#{k}][ds_key_tag]", v['ds_key_tag'], {class: 'form-control'} .form-group - = label_tag "domain_dnskeys_attributes_#{k}_ds_alg", t('ds_algorithm'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_dnskeys_attributes_#{k}_ds_alg", t('ds_algorithm'), class: 'col-md-3 control-label' + .col-md-7 = select_tag "domain[dnskeys_attributes][#{k}][ds_alg]", options_for_select(Depp::Dnskey::ALGORITHMS, v['ds_alg']), {class: 'form-control'} .form-group = label_tag "domain_dnskeys_attributes_#{k}_ds_digest_type", t('ds_digest_type'), class: 'col-md-2 control-label' - .col-md-10 + .col-md-7 = select_tag "domain[dnskeys_attributes][#{k}][ds_digest_type]", options_for_select(Depp::Dnskey::DS_DIGEST_TYPES, v['ds_digest_type']), {class: 'form-control'} .form-group - = label_tag "domain_dnskeys_attributes_#{k}_ds_digest", t('ds_digest'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_dnskeys_attributes_#{k}_ds_digest", t('ds_digest'), class: 'col-md-3 control-label' + .col-md-7 = text_field_tag "domain[dnskeys_attributes][#{k}][ds_digest]", v['ds_digest'], {class: 'form-control'} .form-group - = label_tag "domain_dnskeys_attributes_#{k}_flags", t('flags'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_dnskeys_attributes_#{k}_flags", t('flags'), class: 'col-md-3 control-label' + .col-md-7 = select_tag "domain[dnskeys_attributes][#{k}][flags]", options_for_select(Depp::Dnskey::FLAGS, v['flags']), {class: 'form-control'} .form-group - = label_tag "domain_dnskeys_attributes_#{k}_protocol", t('protocol'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_dnskeys_attributes_#{k}_protocol", t('protocol'), class: 'col-md-3 control-label' + .col-md-7 = select_tag "domain[dnskeys_attributes][#{k}][protocol]", options_for_select(Depp::Dnskey::PROTOCOLS, v['protocol']), {class: 'form-control'} .form-group - = label_tag "domain_dnskeys_attributes_#{k}_alg", t('alg'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_dnskeys_attributes_#{k}_alg", t('alg'), class: 'col-md-3 control-label' + .col-md-7 = select_tag "domain[dnskeys_attributes][#{k}][alg]", options_for_select(Depp::Dnskey::ALGORITHMS, v['alg']), {class: 'form-control'} .form-group - = label_tag "domain_dnskeys_attributes_#{k}_public_key", t('public_key'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_dnskeys_attributes_#{k}_public_key", t('public_key'), class: 'col-md-3 control-label' + .col-md-7 = text_field_tag "domain[dnskeys_attributes][#{k}][public_key]", v['public_key'], class: 'form-control' :coffee $("#dnskeys").nestedAttributes diff --git a/app/views/registrar/domains/form_partials/_general.haml b/app/views/registrar/domains/form_partials/_general.haml index 45b2bf57c..bce8ef3b8 100644 --- a/app/views/registrar/domains/form_partials/_general.haml +++ b/app/views/registrar/domains/form_partials/_general.haml @@ -1,20 +1,19 @@ .general-tab.panel.panel-default .panel-body .form-group - = label_tag :domain_name, t('name'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag :domain_name, t('name'), class: 'col-md-3 control-label' + .col-md-7 - readonly = params[:domain_name] ? true : false = text_field_tag('domain[name]', @domain_params[:name], class: 'form-control', readonly: readonly) - unless params[:domain_name] .form-group - = label_tag :domain_period, t('period'), class: 'col-md-2 control-label' - .col-md-5 - = text_field_tag('domain[period]', @domain_params[:period], class: 'form-control') - .col-md-5 - = select_tag 'domain[period_unit]', options_for_select(['y', 'm', 'd'], @domain_params[:period_unit]), { class: 'form-control' } + = label_tag :domain_period, t('period'), class: 'col-md-3 control-label' + .col-md-7 + = select_tag 'domain[period]', + options_for_select(Depp::Domain::PERIODS, @domain_params[:period]), { class: 'form-control' } .form-group - = label_tag :domain_registrant, t('registrant'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag :domain_registrant, t('registrant'), class: 'col-md-3 control-label' + .col-md-7 = text_field_tag('domain[registrant]', @domain_params[:registrant], class: 'form-control', placeholder: t('contact_code'), autocomplete: 'off') diff --git a/app/views/registrar/domains/form_partials/_nameservers.haml b/app/views/registrar/domains/form_partials/_nameservers.haml index b37d73594..0fbbc519a 100644 --- a/app/views/registrar/domains/form_partials/_nameservers.haml +++ b/app/views/registrar/domains/form_partials/_nameservers.haml @@ -8,16 +8,16 @@ = link_to(t('delete'), '#', class: 'btn btn-danger btn-xs destroy') .panel-body .form-group - = label_tag "domain_nameservers_attributes_#{k}_hostname", t('hostname'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_nameservers_attributes_#{k}_hostname", t('hostname'), class: 'col-md-3 control-label' + .col-md-7 = text_field_tag "domain[nameservers_attributes][#{k}][hostname]", v['hostname'], class: 'form-control' .form-group - = label_tag "domain_nameservers_attributes_#{k}_ipv4", t('ipv4'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_nameservers_attributes_#{k}_ipv4", t('ipv4'), class: 'col-md-3 control-label' + .col-md-7 = text_field_tag "domain[nameservers_attributes][#{k}][ipv4]", v['ipv4'], class: 'form-control' .form-group - = label_tag "domain_nameservers_attributes_#{k}_ipv6", t('ipv6'), class: 'col-md-2 control-label' - .col-md-10 + = label_tag "domain_nameservers_attributes_#{k}_ipv6", t('ipv6'), class: 'col-md-3 control-label' + .col-md-7 = text_field_tag "domain[nameservers_attributes][#{k}][ipv6]", v['ipv6'], class: 'form-control' :coffee $("#nameservers").nestedAttributes diff --git a/app/views/registrar/domains/form_partials/_statuses.haml b/app/views/registrar/domains/form_partials/_statuses.haml deleted file mode 100644 index af7fe8e2d..000000000 --- a/app/views/registrar/domains/form_partials/_statuses.haml +++ /dev/null @@ -1,24 +0,0 @@ -#domain-statuses - - @domain_params['statuses_attributes'].each do |k, v| - %br - .panel.panel-default - .panel-heading.clearfix - .pull-left= t('status') - .pull-right - = link_to(t('add_another'), '#', class: 'btn btn-primary btn-xs add-domain-status') - = link_to(t('delete'), '#', class: 'btn btn-danger btn-xs destroy') - .panel-body - .form-group - = label_tag "domain_statuses_attributes_#{k}_code", t('code'),class: 'col-md-2 control-label' - .col-md-10 - = select_tag "domain[statuses_attributes][#{k}][code]", options_for_select(Depp::Domain::DOMAIN_STATUSES, v['code']), {class: 'form-control', prompt: ''} - .form-group - = label_tag "domain_statuses_attributes_#{k}_description", t('description'),class: 'col-md-2 control-label' - .col-md-10 - = text_field_tag "domain[statuses_attributes][#{k}][description]", v['description'], class: 'form-control', autocomplete: 'off' -:coffee - $("#domain-statuses").nestedAttributes - bindAddTo: $(".add-domain-status") - afterAdd: (item) -> - item.find('select').each (k, v) -> - $(v).val($(v).find('option:first-child').val()) diff --git a/app/views/registrar/sessions/login_mid.haml b/app/views/registrar/sessions/login_mid.haml index ccbb05179..628c5b8c7 100644 --- a/app/views/registrar/sessions/login_mid.haml +++ b/app/views/registrar/sessions/login_mid.haml @@ -11,7 +11,7 @@ - if ['development', 'alpha'].include?(Rails.env) %div.text-center - 60000007 / 00000766 + 00007, 60000007, 00000766 :coffee $('.js-login').attr('disabled', false) diff --git a/config/locales/en.yml b/config/locales/en.yml index 520a80df9..b67093489 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -702,3 +702,12 @@ en: invoices_were_fully_binded: 'Invoices were fully binded' invoices_were_partially_binded: 'Invoices were partially binded' no_invoices_were_binded: 'No invoices were binded' + domain_general_help: + The Administrative Contact + is an Estonian citizen or a citizen of another country in the European Union, European Economic Area or the Swiss Confederation with a registered place of residence in Estonia and an Estonian personal identification code who has the right to represent the registering entity in accordance with the current legislation of the Republic of Estonia (member of the management board) or on the basis of the written authorisation issued by a member of the management board. The Administrative Contact has the right to sign and submit in the name of the registering entity any applications connected with the domain name and also to receive and forward any information concerning the domain name(s). The Administrative Contact is responsible for the correctness and authenticity of the data and documents submitted about itself and the registering entity. + domain_admin_contact_help: + The Technical Contact + is a person who has the right to modify only such domain name server data that is connected with it. If the domain registering entity is using a website hosting service, it is recommended to register as the Technical Contact a representative of the corresponding provider company. If the domain registering entity manages its own servers, it can register itself as the Technical Contact. + domain_tech_contact_help: + The domain name server + is a computer that saves and forwards via a general-access data communications network such data that is connected with the domain name and corresponding IP addresses. Your IT helpdesk or Internet service provider will have the necessary information about the domain name servers.