Domain form contacts partial refactor

This commit is contained in:
Martin Lensment 2014-09-22 11:06:07 +03:00
parent bfe89c7a09
commit 89295f5642
6 changed files with 17 additions and 14 deletions

View file

@ -9,7 +9,7 @@ class @Autocomplete
displayKey: "display_key"
source: Autocomplete.constructSourceAdapter(obj.remote)
).on('typeahead:selected', (e, item) ->
parent = $(e.currentTarget).parents('div.has-feedback')
parent = $(e.currentTarget).parents('div.js-typeahead-container')
jObj = parent.find(obj.hiddenSelector).val item.id
Autocomplete.toggleOkFeedback(jObj)
)
@ -27,8 +27,8 @@ class @Autocomplete
source.ttAdapter()
@toggleOkFeedback: (jObj) ->
ok = jObj.parents('div.has-feedback').find('.js-typeahead-ok')
remove = jObj.parents('div.has-feedback').find('.js-typeahead-remove')
ok = jObj.parents('div.js-typeahead-container').find('.js-typeahead-ok')
remove = jObj.parents('div.js-typeahead-container').find('.js-typeahead-remove')
if jObj.val()
ok.removeClass('hidden')

View file

@ -69,7 +69,7 @@ class Admin::DomainsController < ApplicationController
:registrar_id,
:owner_contact_id,
nameservers_attributes: [:id, :hostname, :ipv4, :ipv6, :_destroy],
domain_contacts_attributes: [:id, :contact_type, :contact_id, :_destroy])
domain_contacts_attributes: [:id, :contact_type, :contact_id, :typeahead_value, :_destroy])
end
def verify_deletion

View file

@ -3,6 +3,8 @@ class DomainContact < ActiveRecord::Base
belongs_to :contact
belongs_to :domain
attr_accessor :typeahead_value
def epp_code_map
{
'2302' => [
@ -28,4 +30,8 @@ class DomainContact < ActiveRecord::Base
def tech?
contact_type == TECH
end
def typeahead_value
@typeahead_value || contact.try(:name) || nil
end
end

View file

@ -15,9 +15,7 @@
%li
%a{"data-toggle" => "tab", :href => "#nameservers-tab", :role => "tab"} nameservers-tab
%li
%a{"data-toggle" => "tab", :href => "#tech-contacts-tab", :role => "tab"} tech-contacts-tab
%li
%a{"data-toggle" => "tab", :href => "#admin-contacts", :role => "tab"} admin-contacts-tab
%a{"data-toggle" => "tab", :href => "#contacts-tab", :role => "tab"} contacts-tab
%li
%a{"data-toggle" => "tab", :href => "#statuses-tab", :role => "tab"} statuses-tab
/ Tab panes
@ -26,9 +24,8 @@
= render 'admin/domains/form_partials/general', f: f
#nameservers-tab.tab-pane
= render 'admin/domains/form_partials/nameservers', f: f
#tech-contacts-tab.tab-pane
= render 'admin/domains/form_partials/tech_contacts', f: f
#admin-contacts-tab.tab-pane ...
#contacts-tab.tab-pane
= render 'admin/domains/form_partials/contacts', f: f
#statuses-tab.tab-pane ...
.row
.col-md-12.text-right

View file

@ -14,8 +14,8 @@
= contact_fields.select :contact_type, options_for_select(DomainContact::TYPES, contact_fields.object.contact_type), {}, {class: 'form-control'}
.col-md-6
.form-group.has-feedback.js-typeahead-container
= label_tag :contact
= text_field_tag(:contact, params[:contact], class: 'form-control js-contact-typeahead', placeholder: t('shared.contact_code'), autocomplete: 'off')
= contact_fields.label :typeahead_value
= contact_fields.text_field(:typeahead_value, class: 'form-control js-contact-typeahead', placeholder: t('shared.contact_code'), autocomplete: 'off')
%span.glyphicon.glyphicon-ok.form-control-feedback.js-typeahead-ok.hidden
%span.glyphicon.glyphicon-remove.form-control-feedback.js-typeahead-remove
= contact_fields.hidden_field(:contact_id, class: 'js-contact-id')

View file

@ -11,13 +11,13 @@
.col-md-6
= f.select :period_unit, options_for_select(['y', 'm', 'd'], @domain.period_unit), {}, {class: 'form-control'}
.col-md-6
.form-group.has-feedback
.form-group.has-feedback.js-typeahead-container
= f.label :registrar
= text_field_tag(:domain_registrar, params[:registrar], class: 'form-control js-registrar-typeahead', placeholder: t('shared.registrar_name'), autocomplete: 'off')
%span.glyphicon.glyphicon-ok.form-control-feedback.js-typeahead-ok.hidden
%span.glyphicon.glyphicon-remove.form-control-feedback.js-typeahead-remove
= f.hidden_field(:registrar_id, class: 'js-registrar-id')
.form-group.has-feedback
.form-group.has-feedback.js-typeahead-container
= f.label :owner_contact
= text_field_tag(:domain_owner_contact, params[:domain_owner_contact], class: 'form-control js-contact-typeahead', placeholder: t('shared.contact_code'), autocomplete: 'off')
%span.glyphicon.glyphicon-ok.form-control-feedback.js-typeahead-ok.hidden