From e9e1e057f5540a700b3f9fd2605e37cbe3949d35 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 9 Sep 2014 15:22:05 +0300 Subject: [PATCH] Domain create action --- app/assets/javascripts/autocomplete.js.coffee | 16 ++++++++++------ app/controllers/admin/domains_controller.rb | 9 ++++++++- app/views/admin/domains/new.haml | 13 ++++++++++--- config/locales/en.yml | 3 ++- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/autocomplete.js.coffee b/app/assets/javascripts/autocomplete.js.coffee index 5c9155e41..545ed1876 100644 --- a/app/assets/javascripts/autocomplete.js.coffee +++ b/app/assets/javascripts/autocomplete.js.coffee @@ -1,5 +1,6 @@ class @Autocomplete @bindTypeahead: (obj) -> + Autocomplete.toggleOkFeedback(obj.hiddenSelector) $(obj.selector).typeahead( highlight: true, hint: false @@ -8,12 +9,7 @@ class @Autocomplete source: Autocomplete.constructSourceAdapter(obj.remote) ).on('typeahead:selected', (e, item) -> $(obj.hiddenSelector).val item.id - - ok = $(obj.hiddenSelector).parent('div.has-feedback').find('.js-typeahead-ok') - remove = $(obj.hiddenSelector).parents('div.has-feedback').find('.js-typeahead-remove') - - ok.removeClass('hidden') - remove.addClass('hidden') + Autocomplete.toggleOkFeedback(obj.hiddenSelector) ) @constructSourceAdapter: (remote) -> @@ -27,3 +23,11 @@ class @Autocomplete source.initialize() source.ttAdapter() + + @toggleOkFeedback: (hiddenSelector) -> + if $(hiddenSelector).val() + ok = $(hiddenSelector).parent('div.has-feedback').find('.js-typeahead-ok') + remove = $(hiddenSelector).parents('div.has-feedback').find('.js-typeahead-remove') + + ok.removeClass('hidden') + remove.addClass('hidden') diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb index 69f0d6ec5..2fcf1d271 100644 --- a/app/controllers/admin/domains_controller.rb +++ b/app/controllers/admin/domains_controller.rb @@ -6,6 +6,13 @@ class Admin::DomainsController < ApplicationController end def create + @domain = Domain.new(domain_params) + + if @domain.save + redirect_to [:admin, @domain] + else + render 'new' + end end def index @@ -20,6 +27,6 @@ class Admin::DomainsController < ApplicationController end def domain_params - params.require(:domain).permit(:name, :period, :registrar, :owner_contact) + params.require(:domain).permit(:name, :period, :registrar_id, :owner_contact_id) end end diff --git a/app/views/admin/domains/new.haml b/app/views/admin/domains/new.haml index a52f75bb8..87e95cab1 100644 --- a/app/views/admin/domains/new.haml +++ b/app/views/admin/domains/new.haml @@ -1,6 +1,13 @@ %h2= t('shared.new_domain') %hr = form_for([:admin, @domain]) do |f| + - if @domain.errors.any? + - @domain.errors.full_messages.each do |x| + = x + %br + + + .row .col-md-6 .form-group @@ -12,16 +19,16 @@ .col-md-6 .form-group.has-feedback = f.label :registrar - = f.text_field(:registrar, class: 'form-control js-registrar-typeahead', placeholder: t('shared.registrar_name'), autocomplete: 'off') + = text_field_tag(: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 = f.label :owner_contact - = f.text_field(:owner_contact, class: 'form-control js-contact-typeahead', placeholder: t('shared.contact_code'), autocomplete: 'off') + = text_field_tag(:owner_contact, params[: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 %span.glyphicon.glyphicon-remove.form-control-feedback.js-typeahead-remove - = f.hidden_field(:owner_contact, class: 'js-contact-id') + = f.hidden_field(:owner_contact_id, class: 'js-contact-id') .row .col-md-12.text-right = button_tag(t('shared.save'), class: 'btn btn-primary') diff --git a/config/locales/en.yml b/config/locales/en.yml index cff7b89bb..e9bd76836 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -80,7 +80,7 @@ en: admin_contacts: out_of_range: 'Admin contacts count must be between 1 - infinity' nameservers: - out_of_range: 'Nameservers count must be between %{min}-%{max}' + out_of_range: 'count must be between %{min}-%{max}' not_found: 'Nameserver was not found' taken: 'Nameserver already exists on this domain' period: @@ -112,6 +112,7 @@ en: name_dirty: 'Domain name' name_puny: 'Domain name' owner_contact: 'Registrant' + nameservers: 'Nameservers' errors: messages: