From 79617da2c306e078fb807e3f0bcfc77c1d27f34a Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Thu, 30 Jul 2015 11:50:27 +0300 Subject: [PATCH] Add statuses to domain search #2122 --- app/assets/javascripts/admin-manifest.coffee | 1 + app/assets/stylesheets/admin-manifest.sass | 2 ++ app/controllers/admin/domains_controller.rb | 10 +++++++++- app/views/admin/domains/index.haml | 8 ++++++-- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/admin-manifest.coffee b/app/assets/javascripts/admin-manifest.coffee index df3af084c..759e78c5a 100644 --- a/app/assets/javascripts/admin-manifest.coffee +++ b/app/assets/javascripts/admin-manifest.coffee @@ -8,5 +8,6 @@ #= require selectize #= require shared/jquery.validate.bootstrap #= require jquery-ui/datepicker +#= require select2 #= require shared/general #= require admin/application diff --git a/app/assets/stylesheets/admin-manifest.sass b/app/assets/stylesheets/admin-manifest.sass index b93e65268..b69267519 100644 --- a/app/assets/stylesheets/admin-manifest.sass +++ b/app/assets/stylesheets/admin-manifest.sass @@ -1,6 +1,8 @@ //= require 'shared/general-manifest' //= require 'admin/admin-bootstrap' //= require 'jquery-ui/datepicker' +//= require 'select2' +//= require 'select2-bootstrap' @import shared/fonts @import shared/general @import nprogress diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb index 453fc179b..768ff3c6d 100644 --- a/app/controllers/admin/domains_controller.rb +++ b/app/controllers/admin/domains_controller.rb @@ -3,7 +3,15 @@ class Admin::DomainsController < AdminController before_action :set_domain, only: [:show, :edit, :update, :zonefile] def index - @q = Domain.includes(:registrar, :registrant).search(params[:q]) + params[:q] ||= {} + if params[:q][:statuses_contains] + domains = Domain.includes(:registrar, :registrant).where( + "statuses @> ?::varchar[]", "{#{params[:q][:statuses_contains].join(',')}}" + ) + else + domains = Domain.includes(:registrar, :registrant) + end + @q = domains.search(params[:q]) @domains = @q.result.page(params[:page]) end diff --git a/app/views/admin/domains/index.haml b/app/views/admin/domains/index.haml index 948939f4f..3cfc7d758 100644 --- a/app/views/admin/domains/index.haml +++ b/app/views/admin/domains/index.haml @@ -8,15 +8,19 @@ .form-group = f.label :name = f.search_field :name_cont, class: 'form-control', placeholder: t(:name) + .col-md-8 + .form-group + = label_tag t(:status) + = select_tag 'q[statuses_contains]', options_for_select(DomainStatus::STATUSES, params[:q][:statuses_contains]), { multiple: true, placeholder: t(:choose), class: 'form-control js-combobox' } + .row .col-md-4 .form-group = f.label t(:registrar) - = f.select :registrar_id_eq, Registrar.all.map { |x| [x, x.id] }, {}, class: 'form-control selectize', placeholder: t(:choose) + = f.select :registrar_id_eq, Registrar.all.map { |x| [x, x.id] }, { include_blank: true }, class: 'form-control selectize', placeholder: t(:choose) .col-md-4 .form-group = f.label t(:registrant_ident) = f.search_field :registrant_ident_eq, class: 'form-control', placeholder: t(:registrant_ident) - .row .col-md-3 .form-group = f.label t(:valid_to_from)