diff --git a/app/controllers/registrant/domains_controller.rb b/app/controllers/registrant/domains_controller.rb index 4fab83787..2e17f9039 100644 --- a/app/controllers/registrant/domains_controller.rb +++ b/app/controllers/registrant/domains_controller.rb @@ -32,11 +32,14 @@ class Registrant::DomainsController < RegistrantController @domains = @q end - respond_to do |format| - format.html - format.csv { render text: @domains.to_csv } + respond_to do |format| + format.csv { render text: @domains.result.to_csv } + format.pdf do + pdf = @domains.result.pdf(render_to_string('registrant/domains/download_list', layout: false)) + send_data pdf, filename: 'domains' + end + end end - end def normalize_search_parameters ca_cache = params[:q][:valid_to_lteq] diff --git a/app/models/domain.rb b/app/models/domain.rb index ca988dc4d..4d29d4032 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -783,5 +783,10 @@ class Domain < ActiveRecord::Base end end end + + def self.pdf(html) + kit = PDFKit.new(html) + kit.to_pdf + end end # rubocop: enable Metrics/ClassLength diff --git a/app/views/registrant/domains/index.haml b/app/views/registrant/domains/index.haml index b79b921bd..efc399ebf 100644 --- a/app/views/registrant/domains/index.haml +++ b/app/views/registrant/domains/index.haml @@ -39,8 +39,8 @@ Download %span.caret %ul.dropdown-menu - %li= link_to 'PDF', download_list_registrant_domain_path(params[:q], format: "pdf") - %li= link_to 'CSV', download_list_registrant_domain_path(params[:q], format: "csv") + %li= link_to 'PDF', download_list_registrant_domains_path(params[:q], format: "pdf") + %li= link_to 'CSV', download_list_registrant_domains_path(params[:q], format: "csv") .col-md-3 .col-md-3 .col-md-3 diff --git a/config/routes.rb b/config/routes.rb index 8abef6c2c..69e6c9680 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -103,7 +103,7 @@ Rails.application.routes.draw do root 'domains#index' resources :domains do - member do + collection do get :download_list end end