From f46c7f554397584b12b4d97fa07865891ddfdc7a Mon Sep 17 00:00:00 2001 From: Stas Date: Mon, 4 Jan 2016 16:35:02 +0200 Subject: [PATCH 1/3] 110152326-is_registrant_filter_modification --- app/controllers/admin/contacts_controller.rb | 10 ++++++++-- app/views/admin/contacts/index.haml | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index a1df165d2..50131066f 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -4,7 +4,13 @@ class Admin::ContactsController < AdminController def index params[:q] ||= {} - @q = Contact.includes(:registrar).search(params[:q]) + search_params = params[:q].deep_dup + + if search_params[:domain_contacts_type_in].is_a?(Array) && search_params[:domain_contacts_type_in].delete('registrant') + search_params[:registrant_domains_id_not_null] = 1 + end + + @q = Contact.includes(:registrar).search(search_params) @contacts = @q.result.page(params[:page]) if params[:statuses_contains] @@ -16,7 +22,7 @@ class Admin::ContactsController < AdminController end normalize_search_parameters do - @q = contacts.search(params[:q]) + @q = contacts.search(search_params) @contacts = @q.result.page(params[:page]) end diff --git a/app/views/admin/contacts/index.haml b/app/views/admin/contacts/index.haml index b8e7850e6..c200dac02 100644 --- a/app/views/admin/contacts/index.haml +++ b/app/views/admin/contacts/index.haml @@ -37,7 +37,7 @@ .col-md-3 .form-group = label_tag t(:contact_type) - = select_tag '[q][domain_contacts_type_in]', options_for_select([['admin', 'AdminDomainContact'], ['tech', 'TechDomainContact']], params[:q][:domain_contacts_type_in]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } + = select_tag '[q][domain_contacts_type_in]', options_for_select([['admin', 'AdminDomainContact'], ['tech', 'TechDomainContact'], ['registrant', 'registrant']], params[:q][:domain_contacts_type_in]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } .row .col-md-3 .form-group From f3d22e0145d2b1f46fc21286685ff1db8f7d75d6 Mon Sep 17 00:00:00 2001 From: Stas Date: Tue, 5 Jan 2016 14:41:09 +0200 Subject: [PATCH 2/3] 110152326-registrar_portal_filter --- app/controllers/registrar/contacts_controller.rb | 13 ++++++++++--- app/views/admin/contacts/index.haml | 7 +------ app/views/registrar/contacts/index.haml | 9 ++------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/app/controllers/registrar/contacts_controller.rb b/app/controllers/registrar/contacts_controller.rb index 878e29cd2..c0b814993 100644 --- a/app/controllers/registrar/contacts_controller.rb +++ b/app/controllers/registrar/contacts_controller.rb @@ -6,8 +6,15 @@ class Registrar::ContactsController < Registrar::DeppController # EPP controller params[:q] ||= {} params[:q].delete_if { |_k, v| v.blank? } - if params[:q].length == 1 && params[:q][:name_matches].present? - @contacts = Contact.find_by(name: params[:q][:name_matches]) + + search_params = params[:q].deep_dup + + if search_params[:domain_contacts_type_in].is_a?(Array) && search_params[:domain_contacts_type_in].delete('registrant') + search_params[:registrant_domains_id_not_null] = 1 + end + + if search_params.length == 1 && search_params[:name_matches].present? + @contacts = Contact.find_by(name: search_params[:name_matches]) end if params[:statuses_contains] @@ -19,7 +26,7 @@ class Registrar::ContactsController < Registrar::DeppController # EPP controller end normalize_search_parameters do - @q = contacts.search(params[:q]) + @q = contacts.search(search_params) @contacts = @q.result.page(params[:page]) end diff --git a/app/views/admin/contacts/index.haml b/app/views/admin/contacts/index.haml index c200dac02..715b87eb6 100644 --- a/app/views/admin/contacts/index.haml +++ b/app/views/admin/contacts/index.haml @@ -29,12 +29,7 @@ .form-group = label_tag t(:country) = select_tag '[q][country_code_eq]', SortedCountry.all_options(params[:q][:country_code_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } - .col-md-3 - .form-group - = f.label t(:is_registrant) - %div - = f.check_box :registrant_domains_id_not_null - .col-md-3 + .col-md-6 .form-group = label_tag t(:contact_type) = select_tag '[q][domain_contacts_type_in]', options_for_select([['admin', 'AdminDomainContact'], ['tech', 'TechDomainContact'], ['registrant', 'registrant']], params[:q][:domain_contacts_type_in]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } diff --git a/app/views/registrar/contacts/index.haml b/app/views/registrar/contacts/index.haml index ae93a82fd..2226f7c6a 100644 --- a/app/views/registrar/contacts/index.haml +++ b/app/views/registrar/contacts/index.haml @@ -31,15 +31,10 @@ .form-group = label_tag t(:country) = select_tag '[q][country_code_eq]', SortedCountry.all_options(params[:q][:country_code_eq]), { include_blank: true, placeholder: t(:choose), class: 'form-control selectize' } - .col-md-3 - .form-group - = f.label t(:is_registrant) - %div - = f.check_box :registrant_domains_id_not_null - .col-md-3 + .col-md-6 .form-group = label_tag t(:contact_type) - = select_tag '[q][domain_contacts_type_in]', options_for_select([['admin', 'AdminDomainContact'], ['tech', 'TechDomainContact']], params[:q][:domain_contacts_type_in]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } + = select_tag '[q][domain_contacts_type_in]', options_for_select([['admin', 'AdminDomainContact'], ['tech', 'TechDomainContact'], ['registrant', 'registrant']], params[:q][:domain_contacts_type_in]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } .row .col-md-3 .form-group From f019bf5e0da5adf093fa2a2a9558ca3b4071f11c Mon Sep 17 00:00:00 2001 From: Stas Date: Wed, 13 Jan 2016 15:41:21 +0200 Subject: [PATCH 3/3] 110152326-filter_fix --- app/controllers/admin/contacts_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index 50131066f..960d74002 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -11,7 +11,7 @@ class Admin::ContactsController < AdminController end @q = Contact.includes(:registrar).search(search_params) - @contacts = @q.result.page(params[:page]) + @contacts = @q.result(distinct: :true).page(params[:page]) if params[:statuses_contains] contacts = Contact.includes(:registrar).where( @@ -23,7 +23,7 @@ class Admin::ContactsController < AdminController normalize_search_parameters do @q = contacts.search(search_params) - @contacts = @q.result.page(params[:page]) + @contacts = @q.result(distinct: :true).page(params[:page]) end @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i > 0