From ac4a7bd769886ae6a0704fa268c9e311f5cd905e Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 13 Nov 2017 01:23:25 +0200 Subject: [PATCH 01/23] Convert HAML to ERB #509 --- app/views/admin/registrars/_form.haml | 105 --------- app/views/admin/registrars/_form.html.erb | 183 +++++++++++++++ app/views/admin/registrars/edit.haml | 5 - app/views/admin/registrars/edit.html.erb | 5 + app/views/admin/registrars/index.haml | 28 --- app/views/admin/registrars/index.html.erb | 51 ++++ app/views/admin/registrars/new.haml | 3 - app/views/admin/registrars/new.html.erb | 2 + app/views/admin/registrars/show.haml | 118 ---------- app/views/admin/registrars/show.html.erb | 222 ++++++++++++++++++ ...rm.haml_spec.rb => _form.html.erb_spec.rb} | 0 11 files changed, 463 insertions(+), 259 deletions(-) delete mode 100644 app/views/admin/registrars/_form.haml create mode 100644 app/views/admin/registrars/_form.html.erb delete mode 100644 app/views/admin/registrars/edit.haml create mode 100644 app/views/admin/registrars/edit.html.erb delete mode 100644 app/views/admin/registrars/index.haml create mode 100644 app/views/admin/registrars/index.html.erb delete mode 100644 app/views/admin/registrars/new.haml create mode 100644 app/views/admin/registrars/new.html.erb delete mode 100644 app/views/admin/registrars/show.haml create mode 100644 app/views/admin/registrars/show.html.erb rename spec/views/admin/registrars/{_form.haml_spec.rb => _form.html.erb_spec.rb} (100%) diff --git a/app/views/admin/registrars/_form.haml b/app/views/admin/registrars/_form.haml deleted file mode 100644 index 2a80e7357..000000000 --- a/app/views/admin/registrars/_form.haml +++ /dev/null @@ -1,105 +0,0 @@ -= form_for([:admin, @registrar], html: {class: 'form-horizontal'}) do |f| - = render 'shared/full_errors', object: @registrar - - .row - .col-md-8 - .panel.panel-default - .panel-heading.clearfix - .pull-left= t(:general) - .panel-body - .form-group - .col-md-4.control-label - = f.label :name - .col-md-7 - = f.text_field(:name, class: 'form-control') - .form-group - .col-md-4.control-label - = f.label :reg_no - .col-md-7 - = f.text_field(:reg_no, class: 'form-control') - .form-group - .col-md-4.control-label - = f.label :vat_no - .col-md-7 - = f.text_field(:vat_no, class: 'form-control') - .form-group - .col-md-4.control-label - = f.label :phone - .col-md-7 - = f.text_field(:phone, class: 'form-control') - .form-group - .col-md-4.control-label - = f.label :website - .col-md-7 - = f.url_field :website, class: 'form-control' - .form-group - .col-md-4.control-label - = f.label :email - .col-md-7 - = f.email_field :email, class: 'form-control' - .form-group - .col-md-4.control-label - = f.label :billing_email - .col-md-7 - = f.email_field :billing_email, class: 'form-control' - - .form-group - .col-md-4.control-label - = f.label :accounting_customer_code - .col-md-7 - = f.text_field :accounting_customer_code, class: 'form-control', required: true - - .row - .col-md-8 - .panel.panel-default - .panel-heading.clearfix - .pull-left= t(:address) - .panel-body - .form-group - .col-md-4.control-label - = f.label :street - .col-md-7 - = f.text_field(:street, class: 'form-control') - .form-group - .col-md-4.control-label - = f.label :city - .col-md-7 - = f.text_field(:city, class: 'form-control') - .form-group - .col-md-4.control-label - = f.label :state - .col-md-7 - = f.text_field(:state, class: 'form-control') - .form-group - .col-md-4.control-label - = f.label :zip - .col-md-7 - = f.text_field(:zip, class: 'form-control') - .form-group - .col-md-4.control-label - = f.label :country_code, t(:country) - .col-md-7 - = f.select(:country_code, - SortedCountry.all_options(f.object.country_code), {}, class: 'form-control') - - .row - .col-md-8 - .panel.panel-default - .panel-heading.clearfix - .pull-left= t('.misc') - .panel-body - .form-group - .col-md-4.control-label - = f.label :code - .col-md-7 - = f.text_field(:code, class: 'form-control', disabled: !f.object.new_record?) - .form-group - .col-md-4.control-label - = f.label :test_registrar - .col-md-7 - = f.check_box :test_registrar, class: 'form-control' - - %hr - .row - .col-md-8.text-right - = button_tag(t(".#{f.object.new_record? ? 'create' : 'update'}_btn"), class: 'btn btn-success') diff --git a/app/views/admin/registrars/_form.html.erb b/app/views/admin/registrars/_form.html.erb new file mode 100644 index 000000000..33210b4fb --- /dev/null +++ b/app/views/admin/registrars/_form.html.erb @@ -0,0 +1,183 @@ +<%= form_for([:admin, @registrar], html: { class: 'form-horizontal' }) do |f| %> + <%= render 'shared/full_errors', object: @registrar %> +
+
+
+
+
+ <%= t(:general) %> +
+
+
+
+
+ <%= f.label :name %> +
+
+ <%= f.text_field(:name, class: 'form-control') %> +
+
+ +
+
+ <%= f.label :reg_no %> +
+
+ <%= f.text_field(:reg_no, class: 'form-control') %> +
+
+ +
+
+ <%= f.label :vat_no %> +
+
+ <%= f.text_field(:vat_no, class: 'form-control') %> +
+
+ +
+
+ <%= f.label :phone %> +
+
+ <%= f.text_field(:phone, class: 'form-control') %> +
+
+ +
+
+ <%= f.label :website %> +
+
+ <%= f.url_field :website, class: 'form-control' %> +
+
+ +
+
+ <%= f.label :email %> +
+
+ <%= f.email_field :email, class: 'form-control' %> +
+
+ +
+
+ <%= f.label :billing_email %> +
+
+ <%= f.email_field :billing_email, class: 'form-control' %> +
+
+ +
+
+ <%= f.label :accounting_customer_code %> +
+
+ <%= f.text_field :accounting_customer_code, class: 'form-control', required: true %> +
+
+
+
+
+
+ +
+
+
+
+
+ <%= t(:address) %> +
+
+
+
+
+ <%= f.label :street %> +
+
+ <%= f.text_field(:street, class: 'form-control') %> +
+
+ +
+
+ <%= f.label :city %> +
+
+ <%= f.text_field(:city, class: 'form-control') %> +
+
+ +
+
+ <%= f.label :state %> +
+
+ <%= f.text_field(:state, class: 'form-control') %> +
+
+ +
+
+ <%= f.label :zip %> +
+
+ <%= f.text_field(:zip, class: 'form-control') %> +
+
+ +
+
+ <%= f.label :country_code, t(:country) %> +
+
+ <%= f.select(:country_code, SortedCountry.all_options(f.object.country_code), {}, class: 'form-control') %> +
+
+
+
+
+
+ +
+
+
+
+
+ <%= t('.misc') %> +
+
+ +
+
+
+ <%= f.label :code %> +
+
+ <%= f.text_field(:code, class: 'form-control', disabled: !f.object.new_record?) %> +
+
+ +
+
+ <%= f.label :test_registrar %> +
+
+ <%= f.check_box :test_registrar, class: 'form-control' %> +
+
+
+
+
+
+
+
+
+ <%= button_tag(t(".#{f.object.new_record? ? 'create' : 'update'}_btn"), class: 'btn btn-success') %> +
+
+<% end %> diff --git a/app/views/admin/registrars/edit.haml b/app/views/admin/registrars/edit.haml deleted file mode 100644 index 0fb8a88c6..000000000 --- a/app/views/admin/registrars/edit.haml +++ /dev/null @@ -1,5 +0,0 @@ -- content_for :actions do - = link_to(t(:back_to_registrar), [:admin, @registrar], class: 'btn btn-default') -= render 'shared/title', name: "#{t(:edit)}: #{@registrar.name}" - -= render 'form' diff --git a/app/views/admin/registrars/edit.html.erb b/app/views/admin/registrars/edit.html.erb new file mode 100644 index 000000000..71d6bd882 --- /dev/null +++ b/app/views/admin/registrars/edit.html.erb @@ -0,0 +1,5 @@ +<% content_for :actions do %> + <%= link_to(t(:back_to_registrar), [:admin, @registrar], class: 'btn btn-default') %> +<% end %> +<%= render 'shared/title', name: "#{t(:edit)}: #{@registrar.name}" %> +<%= render 'form' %> diff --git a/app/views/admin/registrars/index.haml b/app/views/admin/registrars/index.haml deleted file mode 100644 index ea9f7b312..000000000 --- a/app/views/admin/registrars/index.haml +++ /dev/null @@ -1,28 +0,0 @@ -- content_for :actions do - = link_to(t('.new_btn'), new_admin_registrar_path, class: 'btn btn-primary') -= render 'shared/title', name: t(:registrars) - -.row - .col-md-12 - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-4'} - = sort_link(@q, 'name') - %th{class: 'col-xs-4'} - = sort_link(@q, 'reg_no', t(:reg_no)) - %th{class: 'col-xs-4'} - = t(:credit_balance) - %th{class: 'col-xs-4'} - = t(:test_registrar) - %tbody - - @registrars.each do |x| - %tr - %td= link_to(x, [:admin, x]) - %td= x.reg_no - %td= "#{x.balance}" - %td= "#{x.test_registrar}" -.row - .col-md-12 - = paginate @registrars diff --git a/app/views/admin/registrars/index.html.erb b/app/views/admin/registrars/index.html.erb new file mode 100644 index 000000000..5533a6f07 --- /dev/null +++ b/app/views/admin/registrars/index.html.erb @@ -0,0 +1,51 @@ +<% content_for :actions do %> + <%= link_to(t('.new_btn'), new_admin_registrar_path, class: 'btn btn-primary') %> +<% end %> +<%= render 'shared/title', name: t(:registrars) %> +
+
+
+ + + + + + + + + + + <% @registrars.each do |x| %> + + + + + + + <% end %> + +
+ <%= sort_link(@q, 'name') %> + + <%= sort_link(@q, 'reg_no', t(:reg_no)) %> + + <%= t(:credit_balance) %> + + <%= t(:test_registrar) %> +
+ <%= link_to(x, [:admin, x]) %> + + <%= x.reg_no %> + + <%= "#{x.balance}" %> + + <%= "#{x.test_registrar}" %> +
+
+
+
+
+
+ <%= paginate @registrars %> +
+
diff --git a/app/views/admin/registrars/new.haml b/app/views/admin/registrars/new.haml deleted file mode 100644 index 5f651835a..000000000 --- a/app/views/admin/registrars/new.haml +++ /dev/null @@ -1,3 +0,0 @@ -= render 'shared/title', name: t(:new_registrar) - -= render 'form' diff --git a/app/views/admin/registrars/new.html.erb b/app/views/admin/registrars/new.html.erb new file mode 100644 index 000000000..70154d217 --- /dev/null +++ b/app/views/admin/registrars/new.html.erb @@ -0,0 +1,2 @@ +<%= render 'shared/title', name: t(:new_registrar) %> +<%= render 'form' %> diff --git a/app/views/admin/registrars/show.haml b/app/views/admin/registrars/show.haml deleted file mode 100644 index 7bd49f058..000000000 --- a/app/views/admin/registrars/show.haml +++ /dev/null @@ -1,118 +0,0 @@ -- content_for :actions do - = link_to(t(:edit), edit_admin_registrar_path(@registrar), class: 'btn btn-primary') - = link_to(t(:delete), admin_registrar_path(@registrar), - method: :delete, data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger') -- content_for :page_name do - = @registrar.name - - if @registrar.test_registrar? - %span{style: "color: #c9302c;"} (test) -= render 'shared/title', name: @registrar.name - -- if @registrar.errors.any? - - @registrar.errors.each do |attr, err| - = err - %br -- if @registrar.errors.any? - %hr -.row - .col-md-6 - .panel.panel-default - .panel-heading - %h3.panel-title= t(:general) - .panel-body - %dl.dl-horizontal - %dt= t(:name) - %dd= @registrar.name - - %dt= t(:reg_no) - %dd= @registrar.reg_no - - %dt= t(:vat_no) - %dd= @registrar.vat_no - - %dt= t(:reference_no) - %dd= @registrar.reference_no - - %dt= t(:id) - %dd= @registrar.code - - %dt= t(:credit_balance) - %dd= @registrar.balance - - %dt= Registrar.human_attribute_name :website - %dd= @registrar.website - - %dt= Registrar.human_attribute_name :accounting_customer_code - %dd= @registrar.accounting_customer_code - - .col-md-6 - .panel.panel-default - .panel-heading - %h3.panel-title= t(:contact) - .panel-body - %dl.dl-horizontal - %dt= t(:country) - %dd= @registrar.country - - %dt= t(:address) - %dd= @registrar.address - - %dt= t(:contact_phone) - %dd= @registrar.phone - - %dt= t(:contact_email) - %dd= @registrar.email - - %dt= t(:billing_address) - %dd= @registrar.billing_address - - %dt= t(:billing_email) - %dd= @registrar.billing_email - -.row - .col-md-12 - #epp-users.panel.panel-default - .panel-heading.clearfix - .pull-left - = t('.api_users') - .pull-right - = link_to(t('.new_api_use_btn'), new_admin_registrar_api_user_path(@registrar), class: 'btn btn-default btn-xs') - - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-6'}= t(:username) - %th{class: 'col-xs-6'}= t('.active') - %tbody - - @registrar.api_users.each do |x| - %tr - %td= link_to(x, [:admin, x]) - %td= x.active - -.row - .col-md-12 - #epp-users.panel.panel-default - .panel-heading.clearfix - .pull-left - = t(:white_ips) - .pull-right - = link_to(t(:create_new_white_ip), new_admin_registrar_white_ip_path(@registrar), class: 'btn btn-default btn-xs') - - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-4'}= t(:ipv4) - %th{class: 'col-xs-6'}= t(:ipv6) - %th{class: 'col-xs-2'}= t(:interfaces) - %tbody - - @registrar.white_ips.each do |x| - %tr - %td - - if x.ipv4.present? - = link_to(x.ipv4, [:admin, @registrar, x]) - %td - - if x.ipv6.present? - = link_to(x.ipv6, [:admin, @registrar, x]) - %td= x.interfaces.join(', ').upcase diff --git a/app/views/admin/registrars/show.html.erb b/app/views/admin/registrars/show.html.erb new file mode 100644 index 000000000..00a1e4647 --- /dev/null +++ b/app/views/admin/registrars/show.html.erb @@ -0,0 +1,222 @@ +<% content_for :actions do %> + <%= link_to(t(:edit), edit_admin_registrar_path(@registrar), class: 'btn btn-primary') %> + <%= link_to(t(:delete), admin_registrar_path(@registrar), method: :delete, data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger') %> +<% end %> +<% content_for :page_name do %> + <%= @registrar.name %> + <% if @registrar.test_registrar? %> + (test) + <% end %> +<% end %> +<%= render 'shared/title', name: @registrar.name %> +<% if @registrar.errors.any? %> + <% @registrar.errors.each do |attr, err| %> + <%= err %> +
+ <% end %> +<% end %> +<% if @registrar.errors.any? %> +
+<% end %> +
+
+
+
+

+ <%= t(:general) %> +

+
+
+
+
+ <%= t(:name) %> +
+
+ <%= @registrar.name %> +
+
+ <%= t(:reg_no) %> +
+
+ <%= @registrar.reg_no %> +
+
+ <%= t(:vat_no) %> +
+
+ <%= @registrar.vat_no %> +
+
+ <%= t(:reference_no) %> +
+
+ <%= @registrar.reference_no %> +
+
+ <%= t(:id) %> +
+
+ <%= @registrar.code %> +
+
+ <%= t(:credit_balance) %> +
+
+ <%= @registrar.balance %> +
+
+ <%= Registrar.human_attribute_name :website %> +
+
+ <%= @registrar.website %> +
+
+ <%= Registrar.human_attribute_name :accounting_customer_code %> +
+
+ <%= @registrar.accounting_customer_code %> +
+
+
+
+
+
+
+
+

+ <%= t(:contact) %> +

+
+
+
+
+ <%= t(:country) %> +
+
+ <%= @registrar.country %> +
+
+ <%= t(:address) %> +
+
+ <%= @registrar.address %> +
+
+ <%= t(:contact_phone) %> +
+
+ <%= @registrar.phone %> +
+
+ <%= t(:contact_email) %> +
+
+ <%= @registrar.email %> +
+
+ <%= t(:billing_address) %> +
+
+ <%= @registrar.billing_address %> +
+
+ <%= t(:billing_email) %> +
+
+ <%= @registrar.billing_email %> +
+
+
+
+
+
+
+
+
+
+
+ <%= t('.api_users') %> +
+
+ <%= link_to(t('.new_api_use_btn'), new_admin_registrar_api_user_path(@registrar), class: 'btn btn-default btn-xs') %> +
+
+
+ + + + + + + + + <% @registrar.api_users.each do |x| %> + + + + + <% end %> + +
+ <%= t(:username) %> + + <%= t('.active') %> +
+ <%= link_to(x, [:admin, x]) %> + + <%= x.active %> +
+
+
+
+
+
+
+
+
+
+ <%= t(:white_ips) %> +
+
+ <%= link_to(t(:create_new_white_ip), new_admin_registrar_white_ip_path(@registrar), class: 'btn btn-default btn-xs') %> +
+
+
+ + + + + + + + + + <% @registrar.white_ips.each do |x| %> + + + + + + <% end %> + +
+ <%= t(:ipv4) %> + + <%= t(:ipv6) %> + + <%= t(:interfaces) %> +
+ <% if x.ipv4.present? %> + <%= link_to(x.ipv4, [:admin, @registrar, x]) %> + <% end %> + + <% if x.ipv6.present? %> + <%= link_to(x.ipv6, [:admin, @registrar, x]) %> + <% end %> + + <%= x.interfaces.join(', ').upcase %> +
+
+
+
+
diff --git a/spec/views/admin/registrars/_form.haml_spec.rb b/spec/views/admin/registrars/_form.html.erb_spec.rb similarity index 100% rename from spec/views/admin/registrars/_form.haml_spec.rb rename to spec/views/admin/registrars/_form.html.erb_spec.rb From db0384a58ad372ab14c824c3f0a918f42efbf462 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 17 Nov 2017 00:44:52 +0200 Subject: [PATCH 02/23] Improve UI #509 --- app/views/admin/registrars/_form.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/registrars/_form.html.erb b/app/views/admin/registrars/_form.html.erb index 33210b4fb..c8d48a2b8 100644 --- a/app/views/admin/registrars/_form.html.erb +++ b/app/views/admin/registrars/_form.html.erb @@ -14,7 +14,7 @@ <%= f.label :name %>
- <%= f.text_field(:name, class: 'form-control') %> + <%= f.text_field :name, class: 'form-control', autofocus: true %>
From 928393f58374af00234ed4355e9baf09b715921d Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 17 Nov 2017 01:30:36 +0200 Subject: [PATCH 03/23] Use HTML validation #509 --- app/views/admin/registrars/_form.html.erb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/admin/registrars/_form.html.erb b/app/views/admin/registrars/_form.html.erb index c8d48a2b8..b163f0168 100644 --- a/app/views/admin/registrars/_form.html.erb +++ b/app/views/admin/registrars/_form.html.erb @@ -14,7 +14,7 @@ <%= f.label :name %>
- <%= f.text_field :name, class: 'form-control', autofocus: true %> + <%= f.text_field :name, required: true, autofocus: true, class: 'form-control' %>
@@ -23,7 +23,7 @@ <%= f.label :reg_no %>
- <%= f.text_field(:reg_no, class: 'form-control') %> + <%= f.text_field :reg_no, required: true, class: 'form-control' %>
@@ -59,7 +59,7 @@ <%= f.label :email %>
- <%= f.email_field :email, class: 'form-control' %> + <%= f.email_field :email, required: true, class: 'form-control' %>
@@ -158,7 +158,7 @@ <%= f.label :code %>
- <%= f.text_field(:code, class: 'form-control', disabled: !f.object.new_record?) %> + <%= f.text_field :code, required: f.object.new_record?, class: 'form-control', disabled: !f.object.new_record? %>
From e2c5eb5eacb717c366246f0417aa15fa13056b5c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 17 Nov 2017 01:20:45 +0200 Subject: [PATCH 04/23] Extract registrar billing form #509 --- app/views/admin/registrars/_form.html.erb | 29 +------------- .../admin/registrars/form/_billing.html.erb | 40 +++++++++++++++++++ config/locales/admin/registrars.en.yml | 3 ++ 3 files changed, 45 insertions(+), 27 deletions(-) create mode 100644 app/views/admin/registrars/form/_billing.html.erb diff --git a/app/views/admin/registrars/_form.html.erb b/app/views/admin/registrars/_form.html.erb index b163f0168..7bdddb5d9 100644 --- a/app/views/admin/registrars/_form.html.erb +++ b/app/views/admin/registrars/_form.html.erb @@ -27,15 +27,6 @@ -
-
- <%= f.label :vat_no %> -
-
- <%= f.text_field(:vat_no, class: 'form-control') %> -
-
-
<%= f.label :phone %> @@ -62,24 +53,6 @@ <%= f.email_field :email, required: true, class: 'form-control' %>
- -
-
- <%= f.label :billing_email %> -
-
- <%= f.email_field :billing_email, class: 'form-control' %> -
-
- -
-
- <%= f.label :accounting_customer_code %> -
-
- <%= f.text_field :accounting_customer_code, class: 'form-control', required: true %> -
-
@@ -143,6 +116,8 @@ + <%= render 'admin/registrars/form/billing', f: f %> +
diff --git a/app/views/admin/registrars/form/_billing.html.erb b/app/views/admin/registrars/form/_billing.html.erb new file mode 100644 index 000000000..a3adf1312 --- /dev/null +++ b/app/views/admin/registrars/form/_billing.html.erb @@ -0,0 +1,40 @@ +
+
+
+
+
+ <%= t '.header' %> +
+
+ +
+
+
+ <%= f.label :vat_no %> +
+
+ <%= f.text_field :vat_no, class: 'form-control' %> +
+
+ +
+
+ <%= f.label :accounting_customer_code %> +
+
+ <%= f.text_field :accounting_customer_code, class: 'form-control', required: true %> +
+
+ +
+
+ <%= f.label :billing_email %> +
+
+ <%= f.email_field :billing_email, class: 'form-control' %> +
+
+
+
+
+
diff --git a/config/locales/admin/registrars.en.yml b/config/locales/admin/registrars.en.yml index b30ad456e..7d1846e05 100644 --- a/config/locales/admin/registrars.en.yml +++ b/config/locales/admin/registrars.en.yml @@ -21,3 +21,6 @@ en: misc: Miscellaneous create_btn: Create registrar update_btn: Update registrar + + billing: + header: Billing From d04eb36db2be694d3e919d7bbc32b49d87819f48 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 22 Nov 2017 04:16:33 +0200 Subject: [PATCH 05/23] Add fixtures --- test/fixtures/registrars.yml | 10 ++++++++++ test/fixtures/users.yml | 16 ++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 test/fixtures/registrars.yml create mode 100644 test/fixtures/users.yml diff --git a/test/fixtures/registrars.yml b/test/fixtures/registrars.yml new file mode 100644 index 000000000..f4ad94604 --- /dev/null +++ b/test/fixtures/registrars.yml @@ -0,0 +1,10 @@ +DEFAULTS: &DEFAULTS + name: Acme Ltd + reg_no: 1234 + country_code: US + email: acme@example.com + code: 1234 + accounting_customer_code: C1 + +valid: + <<: *DEFAULTS diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml new file mode 100644 index 000000000..860f06c13 --- /dev/null +++ b/test/fixtures/users.yml @@ -0,0 +1,16 @@ +DEFAULTS: &DEFAULTS + username: test + +api: + <<: *DEFAULTS + type: ApiUser + registrar: valid + roles: + - super + +admin: + <<: *DEFAULTS + type: AdminUser + country_code: US + roles: + - admin From 93b0037c391684e3ec7e7c22d86cba1d9aa15816 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 22 Nov 2017 04:35:06 +0200 Subject: [PATCH 06/23] Convert specs to tests --- .../admin/registrars/create_test.rb | 18 ---------- .../controllers/admin/registrars/show_test.rb | 13 ------- .../admin/registrars/update_test.rb | 34 +++++++------------ .../admin/registrars/edit_registrar_test.rb | 8 ++--- .../admin/registrars/show_registrar_test.rb | 15 ++++++++ test/models/registrar_test.rb | 20 +++++++++-- 6 files changed, 48 insertions(+), 60 deletions(-) delete mode 100644 test/controllers/admin/registrars/create_test.rb delete mode 100644 test/controllers/admin/registrars/show_test.rb create mode 100644 test/integration/admin/registrars/show_registrar_test.rb diff --git a/test/controllers/admin/registrars/create_test.rb b/test/controllers/admin/registrars/create_test.rb deleted file mode 100644 index e7ee57011..000000000 --- a/test/controllers/admin/registrars/create_test.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'test_helper' - -class RegistrarsControllerTest < ActionDispatch::IntegrationTest - def setup - login_as create(:admin_user) - end - - def test_creates_new_registrar - assert_difference -> { Registrar.count } do - post admin_registrars_path, registrar: attributes_for(:registrar) - end - end - - def test_redirects_to_newly_created_registrar - post admin_registrars_path, registrar: attributes_for(:registrar) - assert_redirected_to admin_registrar_path(Registrar.first) - end -end diff --git a/test/controllers/admin/registrars/show_test.rb b/test/controllers/admin/registrars/show_test.rb deleted file mode 100644 index a3868dded..000000000 --- a/test/controllers/admin/registrars/show_test.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'test_helper' - -class RegistrarsControllerTest < ActionDispatch::IntegrationTest - def setup - login_as create(:admin_user) - end - - def test_accounting_customer_code - registrar = create(:registrar, accounting_customer_code: 'test accounting customer code') - visit admin_registrar_path(registrar) - assert_text 'test accounting customer code' - end -end diff --git a/test/controllers/admin/registrars/update_test.rb b/test/controllers/admin/registrars/update_test.rb index bf79aca65..ae695f3c3 100644 --- a/test/controllers/admin/registrars/update_test.rb +++ b/test/controllers/admin/registrars/update_test.rb @@ -2,39 +2,29 @@ require 'test_helper' class RegistrarsControllerTest < ActionDispatch::IntegrationTest def setup - login_as create(:admin_user) + login_as users(:admin) + @registrar = registrars(:valid) end def test_updates_website - registrar = create(:registrar, website: 'test') + patch admin_registrar_path(@registrar), registrar: @registrar.attributes.merge(website: 'new.example.com') + @registrar.reload - patch admin_registrar_path(registrar), registrar: attributes_for(:registrar, website: 'new-website') - registrar.reload - - assert_equal 'new-website', registrar.website + assert_equal 'new.example.com', @registrar.website end def test_updates_email - registrar = create(:registrar, email: 'test@test.com') + patch admin_registrar_path(@registrar), registrar: @registrar.attributes.merge(email: 'new@example.com') + @registrar.reload - patch admin_registrar_path(registrar), registrar: attributes_for(:registrar, email: 'new-test@test.com') - registrar.reload - - assert_equal 'new-test@test.com', registrar.email + assert_equal 'new@example.com', @registrar.email end def test_updates_billing_email - registrar = create(:registrar, billing_email: 'test@test.com') + patch admin_registrar_path(@registrar), + registrar: @registrar.attributes.merge(billing_email: 'new-billing@example.com') + @registrar.reload - patch admin_registrar_path(registrar), registrar: attributes_for(:registrar, billing_email: 'new-test@test.com') - registrar.reload - - assert_equal 'new-test@test.com', registrar.billing_email - end - - def test_redirects_to_registrar - registrar = create(:registrar) - patch admin_registrar_path(registrar), registrar: attributes_for(:registrar) - assert_redirected_to admin_registrar_path(registrar) + assert_equal 'new-billing@example.com', @registrar.billing_email end end diff --git a/test/integration/admin/registrars/edit_registrar_test.rb b/test/integration/admin/registrars/edit_registrar_test.rb index 6965cfd02..b21488306 100644 --- a/test/integration/admin/registrars/edit_registrar_test.rb +++ b/test/integration/admin/registrars/edit_registrar_test.rb @@ -2,16 +2,16 @@ require 'test_helper' class EditRegistrarTest < ActionDispatch::IntegrationTest def setup - login_as create(:admin_user) + login_as users(:admin) + @registrar = registrars(:valid) end def test_updates_registrar - registrar = create(:registrar) - - visit admin_registrar_path(registrar) + visit admin_registrar_path(@registrar) click_link_or_button 'Edit' click_link_or_button 'Update registrar' + assert_current_path admin_registrar_path(@registrar) assert_text 'Registrar has been successfully updated' end end diff --git a/test/integration/admin/registrars/show_registrar_test.rb b/test/integration/admin/registrars/show_registrar_test.rb new file mode 100644 index 000000000..e064b1abd --- /dev/null +++ b/test/integration/admin/registrars/show_registrar_test.rb @@ -0,0 +1,15 @@ +require 'test_helper' + +class ShowRegistrarTest < ActionDispatch::IntegrationTest + include ActionView::Helpers::NumberHelper + + def setup + login_as users(:admin) + @registrar = registrars(:complete) + visit admin_registrar_path(@registrar) + end + + def test_accounting_customer_code + assert_text 'ACCOUNT001' + end +end diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index f5012b099..345297ee8 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -1,9 +1,23 @@ require 'test_helper' class RegistrarTest < ActiveSupport::TestCase + def setup + @registrar = registrars(:valid) + end + + def test_valid + assert @registrar.valid? + end + def test_rejects_absent_accounting_customer_code - registrar = Registrar.new(accounting_customer_code: nil) - registrar.validate - assert registrar.errors.added?(:accounting_customer_code, :blank) + @registrar.accounting_customer_code = nil + @registrar.validate + assert @registrar.invalid? + end + + def test_requires_country_code + @registrar.country_code = nil + @registrar.validate + assert @registrar.invalid? end end From 0c7aba6fb704c9d8cce373075f0870443db6d3c1 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 22 Nov 2017 04:36:59 +0200 Subject: [PATCH 07/23] Update fixture --- test/fixtures/registrars.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/fixtures/registrars.yml b/test/fixtures/registrars.yml index f4ad94604..2d23188af 100644 --- a/test/fixtures/registrars.yml +++ b/test/fixtures/registrars.yml @@ -4,7 +4,17 @@ DEFAULTS: &DEFAULTS country_code: US email: acme@example.com code: 1234 - accounting_customer_code: C1 + accounting_customer_code: ACCOUNT001 valid: <<: *DEFAULTS + +complete: + <<: *DEFAULTS + name: 2 + reg_no: 2 + code: 2 + website: example.com + email: info@example.com + billing_email: billing@example.com + vat_no: US12345 From 3ca34fe100497e7436f26936065d0ddce0716ccc Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 22 Nov 2017 04:39:35 +0200 Subject: [PATCH 08/23] Use fixture instead of factory --- test/integration/admin/registrars/new_registrar_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/admin/registrars/new_registrar_test.rb b/test/integration/admin/registrars/new_registrar_test.rb index c0087e5e2..af6e7ea41 100644 --- a/test/integration/admin/registrars/new_registrar_test.rb +++ b/test/integration/admin/registrars/new_registrar_test.rb @@ -2,7 +2,7 @@ require 'test_helper' class NewRegistrarTest < ActionDispatch::IntegrationTest def setup - login_as create(:admin_user) + login_as users(:admin) end def test_creates_registrar From bb6f6cc81a838fa15c259f817a17479d2f2a5a45 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 22 Nov 2017 04:51:59 +0200 Subject: [PATCH 09/23] Update fixture --- test/fixtures/registrars.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/test/fixtures/registrars.yml b/test/fixtures/registrars.yml index 2d23188af..72cbb2be1 100644 --- a/test/fixtures/registrars.yml +++ b/test/fixtures/registrars.yml @@ -8,13 +8,3 @@ DEFAULTS: &DEFAULTS valid: <<: *DEFAULTS - -complete: - <<: *DEFAULTS - name: 2 - reg_no: 2 - code: 2 - website: example.com - email: info@example.com - billing_email: billing@example.com - vat_no: US12345 From 3aca9f723fcda84f88025f2d41663261c68316d6 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 22 Nov 2017 05:01:18 +0200 Subject: [PATCH 10/23] Remove test --- .../admin/registrars/create_test.rb | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 test/controllers/admin/registrars/create_test.rb diff --git a/test/controllers/admin/registrars/create_test.rb b/test/controllers/admin/registrars/create_test.rb deleted file mode 100644 index e7ee57011..000000000 --- a/test/controllers/admin/registrars/create_test.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'test_helper' - -class RegistrarsControllerTest < ActionDispatch::IntegrationTest - def setup - login_as create(:admin_user) - end - - def test_creates_new_registrar - assert_difference -> { Registrar.count } do - post admin_registrars_path, registrar: attributes_for(:registrar) - end - end - - def test_redirects_to_newly_created_registrar - post admin_registrars_path, registrar: attributes_for(:registrar) - assert_redirected_to admin_registrar_path(Registrar.first) - end -end From 5ef767ccca2c5081e957f8c6ffc508d207d1e442 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 22 Nov 2017 05:02:08 +0200 Subject: [PATCH 11/23] Update fixture --- test/fixtures/registrars.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/fixtures/registrars.yml b/test/fixtures/registrars.yml index 72cbb2be1..2d23188af 100644 --- a/test/fixtures/registrars.yml +++ b/test/fixtures/registrars.yml @@ -8,3 +8,13 @@ DEFAULTS: &DEFAULTS valid: <<: *DEFAULTS + +complete: + <<: *DEFAULTS + name: 2 + reg_no: 2 + code: 2 + website: example.com + email: info@example.com + billing_email: billing@example.com + vat_no: US12345 From 4b287a3e75d7b2686d608982bffa7712654a9b95 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 22 Nov 2017 15:02:43 +0200 Subject: [PATCH 12/23] Add `registrars.language` DB column #640 --- db/migrate/20171121233843_add_registrar_language.rb | 5 +++++ db/structure.sql | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20171121233843_add_registrar_language.rb diff --git a/db/migrate/20171121233843_add_registrar_language.rb b/db/migrate/20171121233843_add_registrar_language.rb new file mode 100644 index 000000000..ac3500b4a --- /dev/null +++ b/db/migrate/20171121233843_add_registrar_language.rb @@ -0,0 +1,5 @@ +class AddRegistrarLanguage < ActiveRecord::Migration + def change + add_column :registrars, :language, :string + end +end diff --git a/db/structure.sql b/db/structure.sql index 860a85530..2d219f3d0 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2477,7 +2477,8 @@ CREATE TABLE registrars ( vat boolean, legacy_id integer, reference_no character varying, - test_registrar boolean DEFAULT false + test_registrar boolean DEFAULT false, + language character varying ); @@ -5057,3 +5058,5 @@ INSERT INTO schema_migrations (version) VALUES ('20171025113808'); INSERT INTO schema_migrations (version) VALUES ('20171025153841'); +INSERT INTO schema_migrations (version) VALUES ('20171121233843'); + From 1cd4d2854f4e94fd7bb54d55a606be42ef787c51 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 23 Nov 2017 06:03:52 +0200 Subject: [PATCH 13/23] Change registrars.language to NOT NULL and set default to "et" #640 --- .../20171123035941_change_registrar_language_to_not_null.rb | 5 +++++ db/structure.sql | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20171123035941_change_registrar_language_to_not_null.rb diff --git a/db/migrate/20171123035941_change_registrar_language_to_not_null.rb b/db/migrate/20171123035941_change_registrar_language_to_not_null.rb new file mode 100644 index 000000000..583e17bf4 --- /dev/null +++ b/db/migrate/20171123035941_change_registrar_language_to_not_null.rb @@ -0,0 +1,5 @@ +class ChangeRegistrarLanguageToNotNull < ActiveRecord::Migration + def change + change_column_null :registrars, :language, false, 'et' + end +end diff --git a/db/structure.sql b/db/structure.sql index 2d219f3d0..30df2f3cf 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2478,7 +2478,7 @@ CREATE TABLE registrars ( legacy_id integer, reference_no character varying, test_registrar boolean DEFAULT false, - language character varying + language character varying NOT NULL ); @@ -5060,3 +5060,5 @@ INSERT INTO schema_migrations (version) VALUES ('20171025153841'); INSERT INTO schema_migrations (version) VALUES ('20171121233843'); +INSERT INTO schema_migrations (version) VALUES ('20171123035941'); + From fc134ee7fbc070e2cf38462ab7cbe941bc1cd997 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 23 Nov 2017 07:05:59 +0200 Subject: [PATCH 14/23] Add language_select form field #640 --- app/helpers/default_form_builder.rb | 7 +++++++ app/helpers/form_helper.rb | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/app/helpers/default_form_builder.rb b/app/helpers/default_form_builder.rb index 406893109..02f98e69d 100644 --- a/app/helpers/default_form_builder.rb +++ b/app/helpers/default_form_builder.rb @@ -7,4 +7,11 @@ class DefaultFormBuilder < ActionView::Helpers::FormBuilder def money_field(method, options = {}) @template.money_field(@object_name, method, objectify_options(options)) end + + def language_select(method, choices = nil, options = {}, html_options = {}, &block) + options[:selected] = @object.send(method) unless options[:selected] + @template.language_select(@object_name, method, choices, objectify_options(options), + @default_options.merge(html_options), + &block) + end end diff --git a/app/helpers/form_helper.rb b/app/helpers/form_helper.rb index aa25fbaea..5cd5998eb 100644 --- a/app/helpers/form_helper.rb +++ b/app/helpers/form_helper.rb @@ -12,4 +12,9 @@ module FormHelper text_field(object_name, method, options) end + + def language_select(object, method, choices = nil, options = {}, html_options = {}, &block) + choices = options_for_select({ en: 'English', et: 'Estonian' }.invert, options[:selected]) + select(object, method, choices, options, html_options, &block) + end end From 92f33ad4d86cab3d4866a25a94ddede2eb4ec0e6 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 23 Nov 2017 07:06:47 +0200 Subject: [PATCH 15/23] Add default_language setting #640 --- app/views/admin/settings/index.haml | 7 +++++++ config/initializers/initial_settings.rb | 1 + 2 files changed, 8 insertions(+) diff --git a/app/views/admin/settings/index.haml b/app/views/admin/settings/index.haml index 94d0a2657..9c302cc53 100644 --- a/app/views/admin/settings/index.haml +++ b/app/views/admin/settings/index.haml @@ -50,6 +50,13 @@ = render 'setting_row', var: :request_confirmation_on_domain_deletion_enabled = render 'setting_row', var: :address_processing + %tr + %td.col-md-6= label_tag :default_language + %td.col-md-6 + = select_tag '[settings][default_language]', + options_for_select({ en: 'English', et: 'Estonian' }.invert, Setting.default_language), + class: 'form-control' + .panel.panel-default .panel-heading = t('.billing') diff --git a/config/initializers/initial_settings.rb b/config/initializers/initial_settings.rb index 922d96bc9..94ff1dc7e 100644 --- a/config/initializers/initial_settings.rb +++ b/config/initializers/initial_settings.rb @@ -27,6 +27,7 @@ if con.present? && con.table_exists?('settings') Setting.save_default(:request_confrimation_on_registrant_change_enabled, true) Setting.save_default(:request_confirmation_on_domain_deletion_enabled, true) Setting.save_default(:address_processing, true) + Setting.save_default(:default_language, 'en') Setting.save_default(:nameserver_required, false) Setting.save_default(:client_side_status_editing_enabled, false) From 77b24fdbd111a98d594a3cf68cb7f48eaaf8916e Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 23 Nov 2017 07:09:16 +0200 Subject: [PATCH 16/23] Add registrar language #640 --- .../admin/registrars_controller.rb | 3 ++- app/models/registrar.rb | 9 +++++++++ app/views/admin/registrars/_form.html.erb | 1 + .../registrars/form/_preferences.html.erb | 20 +++++++++++++++++++ config/locales/admin/registrars.en.yml | 3 +++ test/fixtures/registrars.yml | 1 + test/models/registrar_test.rb | 18 +++++++++++++++++ 7 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 app/views/admin/registrars/form/_preferences.html.erb diff --git a/app/controllers/admin/registrars_controller.rb b/app/controllers/admin/registrars_controller.rb index de8d099d2..119abf85b 100644 --- a/app/controllers/admin/registrars_controller.rb +++ b/app/controllers/admin/registrars_controller.rb @@ -78,7 +78,8 @@ module Admin :billing_email, :code, :test_registrar, - :accounting_customer_code) + :accounting_customer_code, + :language) end end end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index b410a1c76..418277b8a 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -16,8 +16,11 @@ class Registrar < ActiveRecord::Base validates :name, :reg_no, :country_code, :email, :code, presence: true validates :name, :reg_no, :reference_no, :code, uniqueness: true validates :accounting_customer_code, presence: true + validates :language, presence: true validate :forbidden_codes + after_initialize :set_defaults + def forbidden_codes return true unless ['CID'].include? code errors.add(:code, I18n.t(:forbidden_code)) @@ -163,4 +166,10 @@ class Registrar < ActiveRecord::Base return true unless Setting.api_ip_whitelist_enabled white_ips.api.pluck(:ipv4, :ipv6).flatten.include?(ip) end + + private + + def set_defaults + self.language = Setting.default_language unless language + end end diff --git a/app/views/admin/registrars/_form.html.erb b/app/views/admin/registrars/_form.html.erb index 7bdddb5d9..389960f01 100644 --- a/app/views/admin/registrars/_form.html.erb +++ b/app/views/admin/registrars/_form.html.erb @@ -149,6 +149,7 @@
+ <%= render 'admin/registrars/form/preferences', f: f %>
diff --git a/app/views/admin/registrars/form/_preferences.html.erb b/app/views/admin/registrars/form/_preferences.html.erb new file mode 100644 index 000000000..443c7cf91 --- /dev/null +++ b/app/views/admin/registrars/form/_preferences.html.erb @@ -0,0 +1,20 @@ +
+
+
+
+ <%= t '.header' %> +
+ +
+
+
+ <%= f.label :language %> +
+
+ <%= f.language_select :language, nil, {}, required: true, class: 'form-control' %> +
+
+
+
+
+
diff --git a/config/locales/admin/registrars.en.yml b/config/locales/admin/registrars.en.yml index 7d1846e05..4a4fc78e6 100644 --- a/config/locales/admin/registrars.en.yml +++ b/config/locales/admin/registrars.en.yml @@ -24,3 +24,6 @@ en: billing: header: Billing + + preferences: + header: Preferences diff --git a/test/fixtures/registrars.yml b/test/fixtures/registrars.yml index 2d23188af..52b2bbc00 100644 --- a/test/fixtures/registrars.yml +++ b/test/fixtures/registrars.yml @@ -5,6 +5,7 @@ DEFAULTS: &DEFAULTS email: acme@example.com code: 1234 accounting_customer_code: ACCOUNT001 + language: en valid: <<: *DEFAULTS diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 345297ee8..6c92bbff9 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -20,4 +20,22 @@ class RegistrarTest < ActiveSupport::TestCase @registrar.validate assert @registrar.invalid? end + + def test_requires_language + @registrar.language = nil + @registrar.validate + assert @registrar.invalid? + end + + def test_has_default_language + Setting.default_language = 'en' + registrar = Registrar.new + assert_equal 'en', registrar.language + end + + def test_overrides_default_language + Setting.default_language = 'en' + registrar = Registrar.new(language: 'de') + assert_equal 'de', registrar.language + end end From 5f69067d35cd868ccd3010642d42dbb596bb14bd Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 23 Nov 2017 10:17:59 +0200 Subject: [PATCH 17/23] Extract available languages #640 --- app/controllers/application_controller.rb | 8 ++++++++ app/helpers/form_helper.rb | 2 +- app/views/admin/settings/index.haml | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index fac9d29f4..ff1e8eb26 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -16,6 +16,8 @@ class ApplicationController < ActionController::Base end helper_method :registrant_request?, :registrar_request?, :admin_request?, :current_root_url + helper_method :available_languages + def registrant_request? request.path.match(/^\/registrant/) end @@ -79,4 +81,10 @@ class ApplicationController < ActionController::Base return if params[parent_key][key].blank? params[parent_key][key].sub!(/,/, '.') end + + private + + def available_languages + { en: 'English', et: 'Estonian' }.invert + end end diff --git a/app/helpers/form_helper.rb b/app/helpers/form_helper.rb index 5cd5998eb..f82fee682 100644 --- a/app/helpers/form_helper.rb +++ b/app/helpers/form_helper.rb @@ -14,7 +14,7 @@ module FormHelper end def language_select(object, method, choices = nil, options = {}, html_options = {}, &block) - choices = options_for_select({ en: 'English', et: 'Estonian' }.invert, options[:selected]) + choices = options_for_select(available_languages, options[:selected]) select(object, method, choices, options, html_options, &block) end end diff --git a/app/views/admin/settings/index.haml b/app/views/admin/settings/index.haml index 9c302cc53..c41f5cd6b 100644 --- a/app/views/admin/settings/index.haml +++ b/app/views/admin/settings/index.haml @@ -54,7 +54,7 @@ %td.col-md-6= label_tag :default_language %td.col-md-6 = select_tag '[settings][default_language]', - options_for_select({ en: 'English', et: 'Estonian' }.invert, Setting.default_language), + options_for_select(available_languages, Setting.default_language), class: 'form-control' .panel.panel-default From 9d85fb96f290a09d6bcb82120ee16c9c3264ea12 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 23 Nov 2017 10:29:02 +0200 Subject: [PATCH 18/23] Fix spec #640 --- spec/views/admin/registrars/_form.html.erb_spec.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/views/admin/registrars/_form.html.erb_spec.rb b/spec/views/admin/registrars/_form.html.erb_spec.rb index 98021d93a..83b727a30 100644 --- a/spec/views/admin/registrars/_form.html.erb_spec.rb +++ b/spec/views/admin/registrars/_form.html.erb_spec.rb @@ -6,6 +6,10 @@ RSpec.describe 'admin/registrars/_form' do before :example do assign(:registrar, registrar) stub_template 'shared/_full_errors' => '' + + without_partial_double_verification do + allow(view).to receive(:available_languages).and_return({}) + end end it 'has website' do From 716bd57e4f1dba1f211581338bc9a35caf7de86f Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 23 Nov 2017 12:03:31 +0200 Subject: [PATCH 19/23] Update test --- test/integration/admin/registrars/new_registrar_test.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/integration/admin/registrars/new_registrar_test.rb b/test/integration/admin/registrars/new_registrar_test.rb index af6e7ea41..33deea9e8 100644 --- a/test/integration/admin/registrars/new_registrar_test.rb +++ b/test/integration/admin/registrars/new_registrar_test.rb @@ -9,13 +9,15 @@ class NewRegistrarTest < ActionDispatch::IntegrationTest visit admin_registrars_path click_link_or_button 'New registrar' - fill_in 'registrar[name]', with: 'test' + fill_in 'registrar[name]', with: 'John Doe' fill_in 'registrar[reg_no]', with: '1234567' fill_in 'registrar[email]', with: 'test@test.com' fill_in 'registrar[code]', with: 'test' fill_in 'registrar[accounting_customer_code]', with: 'test' click_link_or_button 'Create registrar' + assert_current_path admin_registrar_path(Registrar.last) assert_text 'Registrar has been successfully created' + assert_text 'John Doe' end end From ba7ddd68851a628ef595531a3a3d4d4605dbfe19 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 30 Nov 2017 06:05:21 +0200 Subject: [PATCH 20/23] Show registrar language in UI #640 --- app/presenters/registrar_presenter.rb | 4 ++++ app/views/admin/registrars/show.html.erb | 2 ++ app/views/admin/registrars/show/_preferences.html.erb | 11 +++++++++++ config/locales/admin/registrars.en.yml | 3 +++ .../admin/registrars/show_registrar_test.rb | 4 ++++ 5 files changed, 24 insertions(+) create mode 100644 app/views/admin/registrars/show/_preferences.html.erb diff --git a/app/presenters/registrar_presenter.rb b/app/presenters/registrar_presenter.rb index 57c130faa..40d26f063 100644 --- a/app/presenters/registrar_presenter.rb +++ b/app/presenters/registrar_presenter.rb @@ -20,6 +20,10 @@ class RegistrarPresenter registrar.website end + def language + view.available_languages.key(registrar.language.to_sym) + end + private attr_reader :registrar diff --git a/app/views/admin/registrars/show.html.erb b/app/views/admin/registrars/show.html.erb index 00a1e4647..c09602985 100644 --- a/app/views/admin/registrars/show.html.erb +++ b/app/views/admin/registrars/show.html.erb @@ -1,3 +1,4 @@ +<% registrar = RegistrarPresenter.new(registrar: @registrar, view: self) %> <% content_for :actions do %> <%= link_to(t(:edit), edit_admin_registrar_path(@registrar), class: 'btn btn-primary') %> <%= link_to(t(:delete), admin_registrar_path(@registrar), method: :delete, data: { confirm: t(:are_you_sure) }, class: 'btn btn-danger') %> @@ -128,6 +129,7 @@
+ <%= render 'admin/registrars/show/preferences', registrar: registrar %>
diff --git a/app/views/admin/registrars/show/_preferences.html.erb b/app/views/admin/registrars/show/_preferences.html.erb new file mode 100644 index 000000000..9e1d57074 --- /dev/null +++ b/app/views/admin/registrars/show/_preferences.html.erb @@ -0,0 +1,11 @@ +
+
+ <%= t '.header' %> +
+
+
+
<%= Registrar.human_attribute_name :language %>
+
<%= registrar.language %>
+
+
+
diff --git a/config/locales/admin/registrars.en.yml b/config/locales/admin/registrars.en.yml index 4a4fc78e6..3d269f64b 100644 --- a/config/locales/admin/registrars.en.yml +++ b/config/locales/admin/registrars.en.yml @@ -9,6 +9,9 @@ en: active: Active api_users: API users + preferences: + header: Preferences + create: created: Registrar has been successfully created not_created: Unable to create registrar diff --git a/test/integration/admin/registrars/show_registrar_test.rb b/test/integration/admin/registrars/show_registrar_test.rb index e064b1abd..b56c3a74f 100644 --- a/test/integration/admin/registrars/show_registrar_test.rb +++ b/test/integration/admin/registrars/show_registrar_test.rb @@ -12,4 +12,8 @@ class ShowRegistrarTest < ActionDispatch::IntegrationTest def test_accounting_customer_code assert_text 'ACCOUNT001' end + + def test_language + assert_text 'Language English' + end end From d85d4cf62d942c5845d3380dd8bf38795ca8e450 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 30 Nov 2017 06:11:02 +0200 Subject: [PATCH 21/23] Reformat code #640 --- app/views/admin/registrars/show/_preferences.html.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/admin/registrars/show/_preferences.html.erb b/app/views/admin/registrars/show/_preferences.html.erb index 9e1d57074..7b492962e 100644 --- a/app/views/admin/registrars/show/_preferences.html.erb +++ b/app/views/admin/registrars/show/_preferences.html.erb @@ -2,6 +2,7 @@
<%= t '.header' %>
+
<%= Registrar.human_attribute_name :language %>
From 5dc9f12e8b12aef30c7228599039580e5eb1a25b Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 30 Nov 2017 06:12:08 +0200 Subject: [PATCH 22/23] Refactor registrar form #640 --- app/views/admin/registrars/_form.html.erb | 8 +++++- .../registrars/form/_preferences.html.erb | 26 ++++++++----------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/app/views/admin/registrars/_form.html.erb b/app/views/admin/registrars/_form.html.erb index 389960f01..65a5351ad 100644 --- a/app/views/admin/registrars/_form.html.erb +++ b/app/views/admin/registrars/_form.html.erb @@ -149,7 +149,13 @@
- <%= render 'admin/registrars/form/preferences', f: f %> + +
+
+ <%= render 'admin/registrars/form/preferences', f: f %> +
+
+
diff --git a/app/views/admin/registrars/form/_preferences.html.erb b/app/views/admin/registrars/form/_preferences.html.erb index 443c7cf91..0626c21ef 100644 --- a/app/views/admin/registrars/form/_preferences.html.erb +++ b/app/views/admin/registrars/form/_preferences.html.erb @@ -1,19 +1,15 @@ -
-
-
-
- <%= t '.header' %> -
+
+
+ <%= t '.header' %> +
-
-
-
- <%= f.label :language %> -
-
- <%= f.language_select :language, nil, {}, required: true, class: 'form-control' %> -
-
+
+
+
+ <%= f.label :language %> +
+
+ <%= f.language_select :language, nil, {}, required: true, class: 'form-control' %>
From 0640a6525104567414fcc00381c6867bf4cb3d37 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Thu, 30 Nov 2017 06:21:27 +0200 Subject: [PATCH 23/23] Fix spec #640 --- spec/views/admin/registrars/show.haml_spec.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/views/admin/registrars/show.haml_spec.rb b/spec/views/admin/registrars/show.haml_spec.rb index 6ec9cab14..4def10e8c 100644 --- a/spec/views/admin/registrars/show.haml_spec.rb +++ b/spec/views/admin/registrars/show.haml_spec.rb @@ -6,6 +6,10 @@ RSpec.describe 'admin/registrars/show' do before :example do assign(:registrar, registrar) stub_template 'shared/_title' => '' + + without_partial_double_verification do + allow(view).to receive(:available_languages).and_return({}) + end end it 'has website' do