mirror of
https://github.com/internetee/registry.git
synced 2025-07-12 14:08:17 +02:00
Nameserver form validations
This commit is contained in:
parent
d9c750e7e2
commit
211964c296
8 changed files with 71 additions and 16 deletions
|
@ -1,3 +1,4 @@
|
|||
ready = ->
|
||||
Autocomplete.bindTypeahead
|
||||
remote: '/admin/registrars/search'
|
||||
selector: '.js-registrar-typeahead'
|
||||
|
@ -7,3 +8,6 @@ Autocomplete.bindTypeahead
|
|||
remote: '/admin/contacts/search'
|
||||
selector: '.js-contact-typeahead'
|
||||
hiddenSelector: '.js-contact-id'
|
||||
|
||||
$(document).ready(ready)
|
||||
$(document).on('page:load', ready)
|
||||
|
|
|
@ -9,11 +9,14 @@ class Admin::NameserversController < ApplicationController
|
|||
|
||||
def create
|
||||
@domain = Domain.find(params[:domain_id])
|
||||
@nameserver = @domain.nameservers.build(nameserver_params)
|
||||
|
||||
if @domain.save
|
||||
redirect_to [:admin, @domain]
|
||||
if @domain.can_add_nameserver?
|
||||
@domain.nameservers.build(nameserver_params)
|
||||
flash[:notice] = I18n.t('shared.nameserver_added')
|
||||
redirect_to [:admin, @domain] and return if @domain.save
|
||||
else
|
||||
@nameserver = @domain.nameservers.build(nameserver_params)
|
||||
flash.now[:alert] = I18n.t('shared.failed_to_add_nameserver')
|
||||
render 'new'
|
||||
end
|
||||
end
|
||||
|
@ -32,7 +35,16 @@ class Admin::NameserversController < ApplicationController
|
|||
end
|
||||
|
||||
def destroy
|
||||
@nameserver.destroy
|
||||
if @domain.can_remove_nameserver?
|
||||
if @nameserver.destroy
|
||||
flash[:notice] = I18n.t('shared.nameserver_deleted')
|
||||
else
|
||||
flash[:alert] = I18n.t('shared.failed_to_delete_nameserver')
|
||||
end
|
||||
else
|
||||
flash[:alert] = @domain.errors[:nameservers].first
|
||||
end
|
||||
|
||||
redirect_to [:admin, @domain]
|
||||
end
|
||||
|
||||
|
|
|
@ -46,6 +46,21 @@ class Domain < ActiveRecord::Base
|
|||
end
|
||||
|
||||
### VALIDATIONS ###
|
||||
def can_remove_nameserver?
|
||||
sg = SettingGroup.domain_validation
|
||||
min = sg.setting(:ns_min_count).value.to_i
|
||||
return true if nameservers.length > min
|
||||
errors.add(:nameservers, :greater_than_or_equal_to, { count: min })
|
||||
false
|
||||
end
|
||||
|
||||
def can_add_nameserver?
|
||||
sg = SettingGroup.domain_validation
|
||||
max = sg.setting(:ns_max_count).value.to_i
|
||||
return true if nameservers.length < max
|
||||
errors.add(:nameservers, :less_than_or_equal_to, { count: max })
|
||||
false
|
||||
end
|
||||
|
||||
def validate_nameservers_count
|
||||
sg = SettingGroup.domain_validation
|
||||
|
@ -75,6 +90,8 @@ class Domain < ActiveRecord::Base
|
|||
def all_dependencies_valid?
|
||||
validate_nameservers_count
|
||||
validate_admin_contacts_count
|
||||
|
||||
errors.empty?
|
||||
end
|
||||
|
||||
## SHARED
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
%h2= t('shared.edit_nameserver')
|
||||
.row
|
||||
.col-sm-6
|
||||
%h2.text-center-xs
|
||||
= "#{t('shared.edit_nameserver')}"
|
||||
.col-sm-6
|
||||
%h2.text-right.text-center-xs
|
||||
= link_to(t('shared.back_to_domain'), [:admin, @domain], class: 'btn btn-default')
|
||||
%hr
|
||||
= render 'form'
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
%h2= t('shared.new_nameserver')
|
||||
.row
|
||||
.col-sm-6
|
||||
%h2.text-center-xs
|
||||
= "#{t('shared.new_nameserver')}"
|
||||
.col-sm-6
|
||||
%h2.text-right.text-center-xs
|
||||
= link_to(t('shared.back_to_domain'), [:admin, @domain], class: 'btn btn-default')
|
||||
%hr
|
||||
= render 'form'
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
%meta{content: "Gitlab LTD", name: "author"}/
|
||||
= csrf_meta_tags
|
||||
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
|
||||
= javascript_include_tag 'application', 'data-turbolinks-track' => true
|
||||
%link{href: "../../favicon.ico", rel: "icon"}/
|
||||
%title Eesti Interneti SA
|
||||
%body
|
||||
|
@ -48,7 +49,9 @@
|
|||
%li= link_to t('shared.log_out'), '/logout'
|
||||
/ /.nav-collapse
|
||||
.container
|
||||
- display = (flash.empty?) ? 'none' : 'block'
|
||||
#flash{style: "display: #{display};"}
|
||||
- type = (flash[:notice]) ? 'bg-success' : 'bg-danger'
|
||||
.alert{class: type}= flash[:notice] || flash[:alert]
|
||||
= yield
|
||||
|
||||
= javascript_include_tag 'application', 'data-turbolinks-track' => true
|
||||
|
||||
|
|
|
@ -85,6 +85,8 @@ en:
|
|||
out_of_range: 'Nameservers count must be between %{min}-%{max}'
|
||||
not_found: 'Nameserver was not found'
|
||||
taken: 'Nameserver already exists on this domain'
|
||||
less_than_or_equal_to: 'Nameservers count must be less than or equal to %{count}'
|
||||
greater_than_or_equal_to: 'Nameservers count must be greater than or equal to %{count}'
|
||||
period:
|
||||
out_of_range: 'Period must add up to 1, 2 or 3 years'
|
||||
not_a_number: 'Period is not a number'
|
||||
|
@ -198,3 +200,8 @@ en:
|
|||
domain: 'Domain'
|
||||
new_nameserver: 'New nameserver'
|
||||
edit_nameserver: 'Edit nameserver'
|
||||
nameserver_deleted: 'Nameserver deleted!'
|
||||
failed_to_delete_nameserver: 'Failed to delete nameserver!'
|
||||
failed_to_add_nameserver: 'Failed to add nameserver!'
|
||||
nameserver_added: 'Nameserver added!'
|
||||
back_to_domain: 'Back to domain'
|
||||
|
|
0
vendor/assets/javascripts/.keep
vendored
0
vendor/assets/javascripts/.keep
vendored
Loading…
Add table
Add a link
Reference in a new issue