diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb index 58b0b4ebd..c7a816bc0 100644 --- a/app/controllers/admin/domains_controller.rb +++ b/app/controllers/admin/domains_controller.rb @@ -9,6 +9,7 @@ class Admin::DomainsController < ApplicationController @domain.nameservers.build @domain.domain_contacts.build + @domain.domain_statuses.build end def create @@ -69,7 +70,9 @@ class Admin::DomainsController < ApplicationController :registrar_id, :owner_contact_id, nameservers_attributes: [:id, :hostname, :ipv4, :ipv6, :_destroy], - domain_contacts_attributes: [:id, :contact_type, :contact_id, :typeahead_value, :_destroy]) + domain_contacts_attributes: [:id, :contact_type, :contact_id, :typeahead_value, :_destroy], + domain_statuses_attributes: [:id, :value, :description, :_destroy] + ) end def verify_deletion diff --git a/app/models/domain.rb b/app/models/domain.rb index 4aefdb5c2..18eb2dd9f 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -19,6 +19,7 @@ class Domain < ActiveRecord::Base accepts_nested_attributes_for :nameservers, allow_destroy: true has_many :domain_statuses, dependent: :delete_all + accepts_nested_attributes_for :domain_statuses, allow_destroy: true has_many :domain_transfers, dependent: :delete_all diff --git a/app/views/admin/domains/_form.haml b/app/views/admin/domains/_form.haml index eab4c87ca..f5f665f03 100644 --- a/app/views/admin/domains/_form.haml +++ b/app/views/admin/domains/_form.haml @@ -26,7 +26,8 @@ = render 'admin/domains/form_partials/nameservers', f: f #contacts-tab.tab-pane = render 'admin/domains/form_partials/contacts', f: f - #statuses-tab.tab-pane ... + #statuses-tab.tab-pane + = render 'admin/domains/form_partials/statuses', f: f .row .col-md-12.text-right = button_tag(t('shared.save'), class: 'btn btn-primary') diff --git a/app/views/admin/domains/form_partials/_statuses.haml b/app/views/admin/domains/form_partials/_statuses.haml new file mode 100644 index 000000000..79109e6ae --- /dev/null +++ b/app/views/admin/domains/form_partials/_statuses.haml @@ -0,0 +1,25 @@ +#domain_statuses + = f.fields_for :domain_statuses do |status_fields| + .panel.panel-default + .panel-heading.text-right + = link_to(t('shared.add_another'), '#', class: 'btn btn-primary btn-xs add-domain-status') + = link_to(t('shared.delete'), '#', class: 'btn btn-danger btn-xs destroy') + .panel-body + .errors + = render 'admin/shared/errors', object: status_fields.object + .row + .col-md-6 + .form-group + = status_fields.label :value + = status_fields.select :value, options_for_select(DomainStatus::STATUSES, status_fields.object.value), {include_blank: true}, {class: 'form-control'} + .col-md-6 + .form-group + = status_fields.label :description + = status_fields.text_field :description, class: 'form-control', autocomplete: 'off' +:javascript + $("#domain_statuses").nestedAttributes({ + bindAddTo: $(".add-domain-status"), + afterAdd: function(item) { + item.find('.errors').html(''); + } + });