diff --git a/Gemfile b/Gemfile index 55d9a5284..5a9141ae9 100644 --- a/Gemfile +++ b/Gemfile @@ -41,7 +41,6 @@ gem 'redcarpet', '~> 3.4.0' gem 'responders', '~> 2.4.0' gem 'rinku', '~> 2.0.2', require: 'rails_rinku' gem 'rollbar', '~> 2.15.5' -gem 'rubyzip', '~> 1.2.0' gem 'sass-rails', '~> 5.0', '>= 5.0.4' gem 'savon', '~> 2.11.1' gem 'sitemap_generator', '~> 6.0.1' diff --git a/app/assets/javascripts/prevent_double_submission.js.coffee b/app/assets/javascripts/prevent_double_submission.js.coffee index 56a099730..5f080ddfe 100644 --- a/app/assets/javascripts/prevent_double_submission.js.coffee +++ b/app/assets/javascripts/prevent_double_submission.js.coffee @@ -22,11 +22,15 @@ App.PreventDoubleSubmission = initialize: -> $('form').on('submit', (event) -> - unless event.target.id == "new_officing_voter" + unless event.target.id == "new_officing_voter" || + event.target.id == "admin_download_emails" + buttons = $(this).find(':button, :submit') App.PreventDoubleSubmission.disable_buttons(buttons) ).on('ajax:success', (event) -> - unless event.target.id == "new_officing_voter" + unless event.target.id == "new_officing_voter" || + event.target.id == "admin_download_emails" + buttons = $(this).find(':button, :submit') App.PreventDoubleSubmission.reset_buttons(buttons) ) diff --git a/app/controllers/admin/emails_download_controller.rb b/app/controllers/admin/emails_download_controller.rb new file mode 100644 index 000000000..326c32ff1 --- /dev/null +++ b/app/controllers/admin/emails_download_controller.rb @@ -0,0 +1,18 @@ +class Admin::EmailsDownloadController < Admin::BaseController + def index + end + + def generate_csv + users_segment = params[:users_segment] + filename = t("admin.segment_recipient.#{users_segment}") + + csv_file = users_segment_emails_csv(users_segment) + send_data csv_file, filename: "#{filename}.csv" + end + + private + + def users_segment_emails_csv(users_segment) + UserSegments.send(users_segment).pluck(:email).to_csv + end +end diff --git a/app/controllers/admin/newsletters_controller.rb b/app/controllers/admin/newsletters_controller.rb index dc06a5488..4dbf963f7 100644 --- a/app/controllers/admin/newsletters_controller.rb +++ b/app/controllers/admin/newsletters_controller.rb @@ -44,12 +44,6 @@ class Admin::NewslettersController < Admin::BaseController redirect_to admin_newsletters_path, notice: t("admin.newsletters.delete_success") end - def users - zip = NewsletterZip.new('emails') - zip.create - send_file(File.join(zip.path), type: 'application/zip') - end - def deliver @newsletter = Newsletter.find(params[:id]) Mailer.newsletter(@newsletter).deliver_later diff --git a/app/views/admin/_menu.html.erb b/app/views/admin/_menu.html.erb index 896574e31..134725cda 100644 --- a/app/views/admin/_menu.html.erb +++ b/app/views/admin/_menu.html.erb @@ -63,7 +63,7 @@