Use buttons to send notifications and newsletters

As mentioned in commits 5311daadf and bb958daf0, using links combined
with JavaScript to generate POST requests to the server has a few
issues.
This commit is contained in:
Javi Martín
2021-08-20 01:24:40 +02:00
parent 09321f41a7
commit 52ec55970b
5 changed files with 25 additions and 17 deletions

View File

@@ -64,12 +64,17 @@
<% if @admin_notification.draft? && @admin_notification.valid_segment_recipient? %> <% if @admin_notification.draft? && @admin_notification.valid_segment_recipient? %>
<div class="small-12 medium-6 large-3 column end"> <div class="small-12 medium-6 large-3 column end">
<%= link_to t("admin.admin_notifications.show.send"), <%= render Admin::ActionComponent.new(
deliver_admin_admin_notification_path(@admin_notification), :deliver,
"data-alert": t("admin.admin_notifications.show.send_alert", @admin_notification,
n: @admin_notification.list_of_recipients_count), text: t("admin.admin_notifications.show.send"),
method: :post, method: :post,
"data-alert": t(
"admin.admin_notifications.show.send_alert",
n: @admin_notification.list_of_recipients_count
),
id: "js-send-admin_notification-alert", id: "js-send-admin_notification-alert",
class: "button success expanded" %> class: "button success expanded",
) %>
</div> </div>
<% end %> <% end %>

View File

@@ -56,10 +56,13 @@
</div> </div>
<% if @newsletter.draft? && @newsletter.valid_segment_recipient? %> <% if @newsletter.draft? && @newsletter.valid_segment_recipient? %>
<%= link_to t("admin.newsletters.show.send"), <%= render Admin::ActionComponent.new(
deliver_admin_newsletter_path(@newsletter), :deliver,
"data-alert": t("admin.newsletters.show.send_alert", n: recipients_count), @newsletter,
text: t("admin.newsletters.show.send"),
method: :post, method: :post,
"data-alert": t("admin.newsletters.show.send_alert", n: recipients_count),
id: "js-send-newsletter-alert", id: "js-send-newsletter-alert",
class: "button success" %> class: "button success"
) %>
<% end %> <% end %>

View File

@@ -190,7 +190,7 @@ describe "Admin Notifications", :admin do
visit admin_admin_notification_path(notification) visit admin_admin_notification_path(notification)
accept_confirm { click_link "Send notification" } accept_confirm { click_button "Send notification" }
expect(page).to have_content "Notification sent successfully" expect(page).to have_content "Notification sent successfully"

View File

@@ -134,7 +134,7 @@ describe "Admin newsletter emails", :admin do
newsletter = create(:newsletter) newsletter = create(:newsletter)
visit admin_newsletter_path(newsletter) visit admin_newsletter_path(newsletter)
accept_confirm { click_link "Send" } accept_confirm { click_button "Send" }
expect(page).to have_content "Newsletter sent successfully" expect(page).to have_content "Newsletter sent successfully"
end end
@@ -153,7 +153,7 @@ describe "Admin newsletter emails", :admin do
newsletter = create(:newsletter, segment_recipient: "administrators") newsletter = create(:newsletter, segment_recipient: "administrators")
visit admin_newsletter_path(newsletter) visit admin_newsletter_path(newsletter)
accept_confirm { click_link "Send" } accept_confirm { click_button "Send" }
expect(page).to have_content "Newsletter sent successfully" expect(page).to have_content "Newsletter sent successfully"

View File

@@ -482,7 +482,7 @@ describe "Emails" do
expect(page).to have_content "Newsletter created successfully" expect(page).to have_content "Newsletter created successfully"
accept_confirm { click_link "Send" } accept_confirm { click_button "Send" }
expect(page).to have_content "Newsletter sent successfully" expect(page).to have_content "Newsletter sent successfully"