Ghost/ghost/admin/app/components/modal-confirm-email-send.hbs
Kevin Ansfield 63070673d2 Added explicit count of paid members to email confirmation modal
closes https://github.com/TryGhost/Ghost/issues/12112

- perform a paid members list query with a limit of 1 when the modal is displayed if the post is set to members only, then use the pagination meta data to get a total number of members
- display a spinner and disable the confirm button whilst the count query is in progress
- does not display any counts for users with the Editor role as they do not have permission to list members
2020-08-10 12:27:16 +01:00

86 lines
3.8 KiB
Handlebars
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{#unless this.errorMessage}}
<header class="modal-header" data-test-modal="delete-user">
<h1>Ready to go? Heres what happens next</h1>
</header>
<button class="close" title="Close" {{on "click" this.closeModal}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
<div class="modal-body" {{did-insert this.countPaidMembers}}>
{{#if this.countPaidMembersTask.isRunning}}
<div class="flex flex-column items-center">
<div class="gh-loading-spinner"></div>
</div>
{{else}}
<p>
Your post will be delivered to
<strong>
{{#if this.model.paidOnly}}
{{!-- TODO: remove editor fallback once editors can query member counts --}}
{{if this.session.user.isEditor "all paid members" (gh-pluralize this.paidMemberCount "paid member")}}
{{else}}
{{!-- TODO: remove editor fallback once editors can query member counts --}}
{{if this.session.user.isEditor "all members" (gh-pluralize this.model.memberCount "member")}}
{{/if}}
</strong>
and will be published on your site{{#if this.model.isScheduled}} at the scheduled time{{/if}}. Sound good?
</p>
{{/if}}
</div>
<div class="modal-footer">
<button {{on "click" this.closeModal}} class="gh-btn" data-test-button="cancel-publish-and-email">
<span>Cancel</span>
</button>
<GhTaskButton
@disabled={{this.countPaidMembersTask.isRunning}}
@buttonText={{if this.model.isScheduled "Schedule" "Publish and send"}}
@runningText={{if this.model.isScheduled "Scheduling..." "Publishing..."}}
@task={{this.confirmAndCheckErrorTask}}
@class="gh-btn gh-btn-green gh-btn-icon"
data-test-button="confirm-publish-and-email"
/>
</div>
{{else}}
<header class="modal-header" data-test-modal="delete-user">
<h1>Failed to send email</h1>
</header>
<button class="close" title="Close" {{on "click" this.closeModal}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
<div class="modal-body">
{{#if this.session.user.isOwner}}
<p>Your post has been published but the email failed to send. Please verify your email settings if the error persists.</p>
{{else}}
<p>Your post has been published but the email failed to send. Please verify your email settings if the error persists.</p>
{{/if}}
<p class="mb0">
<button type="button" class="gh-btn gh-btn-text regular" {{action (toggle "errorDetailsOpen" this)}} data-test-toggle-error>
{{#if this.errorDetailsOpen}}
{{svg-jar "arrow-down" class="nudge-top--2 w2 h2 fill-darkgrey mr1"}}
{{else}}
{{svg-jar "arrow-right" class="nudge-top--1 w2 h2 fill-darkgrey mr1"}}
{{/if}}
<span>Error details</span>
</button>
</p>
{{#liquid-if this.errorDetailsOpen}}
<p class="error gh-box gh-box-error mt3 mb3">
{{svg-jar "warning"}}
{{this.errorMessage}}
</p>
{{/liquid-if}}
</div>
<div class="modal-footer">
<button {{on "click" this.closeModal}} class="gh-btn" data-test-button="cancel-publish-and-email">
<span>Close</span>
</button>
<GhTaskButton
@buttonText="Retry email"
@runningText="Sending..."
@task={{this.retryEmailTask}}
@class="gh-btn gh-btn-red gh-btn-icon"
data-test-button="retry-email"
/>
</div>
{{/unless}}