mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-25 11:55:03 +03:00
f1c8af662f
refs https://github.com/TryGhost/Team/issues/559 Members controller was becoming bloated and difficult to follow due to catering for many different concerns. - converted old modal to newer promise-modal style - pulled full bulk unsubscribing logic out of the members controller and into the modal so logic is contained in one place
80 lines
3.4 KiB
Handlebars
80 lines
3.4 KiB
Handlebars
<div class="modal-content">
|
|
<header class="modal-header" data-test-modal="unsubscribe-members">
|
|
<h1>Unsubscribe members from email?</h1>
|
|
</header>
|
|
<a class="close" href="" role="button" title="Close" {{on "click" @close}}>{{svg-jar "close"}}<span class="hidden">Close</span></a>
|
|
|
|
{{#if this.hasRun}}
|
|
<div class="gh-content-box pa" data-test-state="unsubscribe-complete">
|
|
{{#if this.error}}
|
|
<div class="flex items-center">
|
|
{{svg-jar "warning" class="w4 h4 fill-red mr2 nudge-top--3"}}
|
|
<div>
|
|
<p class="ma0 pa0">
|
|
<span class="fw5" data-test-text="unsubscribe-error">{{this.error}}</span>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{{else}}
|
|
<div class="flex items-center">
|
|
{{svg-jar "check-circle" class="w4 h4 stroke-green mr2"}}
|
|
<p class="ma0 pa0">
|
|
<span class="fw6" data-test-text="unsubscribe-count">{{gh-pluralize this.response.stats.successful "member"}}</span>
|
|
successfully unsubscribed
|
|
</p>
|
|
</div>
|
|
{{#if this.response.stats.unsuccessful}}
|
|
<div class="flex items-start mt2" data-test-bulk-delete-errors>
|
|
{{svg-jar "warning" class="w4 h4 fill-red mr2 nudge-top--3"}}
|
|
<div>
|
|
<p class="ma0 pa0">
|
|
<span class="fw5" data-test-text="invalid-count">{{gh-pluralize this.response.stats.unsuccessful "member"}}</span>
|
|
failed to unsubscribe
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
{{/if}}
|
|
</div>
|
|
{{else}}
|
|
<div class="modal-body" data-test-state="unsubscribe-unconfirmed">
|
|
{{#if @data.query}}
|
|
{{#let (members-count-fetcher query=@data.query) as |countFetcher|}}
|
|
{{#if countFetcher.isLoading}}
|
|
<GhLoadingSpinner />
|
|
{{else}}
|
|
<p>
|
|
You're about to unsubscribe
|
|
<strong data-test-text="unsubscribe-count">{{gh-pluralize countFetcher.count "member"}}</strong> from email newsletters.
|
|
Are you sure?
|
|
</p>
|
|
{{/if}}
|
|
{{/let}}
|
|
{{else}}
|
|
<p>No members are selected.</p>
|
|
{{/if}}
|
|
</div>
|
|
{{/if}}
|
|
|
|
<div class="modal-footer">
|
|
{{#if this.hasRun}}
|
|
<button class="gh-btn gh-btn-black" data-test-button="close-modal" type="button" {{on "click" @close}}>
|
|
<span>Close</span>
|
|
</button>
|
|
{{else}}
|
|
<button class="gh-btn" data-test-button="cancel" type="button" {{on "click" @close}}>
|
|
<span>Cancel</span>
|
|
</button>
|
|
|
|
<GhTaskButton
|
|
@disabled={{this.isDisabled}}
|
|
@buttonText="Unsubscribe members"
|
|
@successText="Unsubscribed"
|
|
@task={{this.bulkUnsubscribeTask}}
|
|
@class="gh-btn gh-btn-red gh-btn-icon"
|
|
data-test-button="confirm"
|
|
/>
|
|
{{/if}}
|
|
</div>
|
|
|
|
</div> |