mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-17 23:44:39 -05:00
Added confirmation dialog when archiving newsletter
closes https://github.com/TryGhost/Team/issues/1530 - added confirmation modal that uses passed in archive task when confirming to provide feedback on progress - switched archive link from immediately triggering the archive task to an action that launches the confirm modal
This commit is contained in:
parent
1c34e41ea3
commit
58290a6134
5 changed files with 50 additions and 4 deletions
|
@ -1,5 +1,5 @@
|
|||
<div class="flex flex-column h-100" {{css-transition (unless @firstRender "gh-nav-main")}} data-test-nav-menu="main" ...attributes>
|
||||
|
||||
|
||||
{{#unless this.session.user.isContributor}}
|
||||
<header class="gh-nav-menu">
|
||||
<div class="gh-nav-menu-details">
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
<div class="modal-content">
|
||||
<header class="modal-header" data-test-modal="confirm-newsletter-archive">
|
||||
<h1>Are you sure?</h1>
|
||||
</header>
|
||||
<button type="button" class="close" role="button" title="Close" {{on "click" (fn @close false)}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
Your newsletter <strong>{{@data.newsletter.name}}</strong> will be
|
||||
immediately archived and no longer be visible to your members.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer" {{on-key "Enter" (perform @data.archiveNewsletterTask @data.newsletter)}}>
|
||||
<button
|
||||
type="button"
|
||||
class="gh-btn"
|
||||
{{on "click" (fn @close false)}}
|
||||
>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
<GhTaskButton
|
||||
@buttonText="Archive"
|
||||
@runningText="Archiving"
|
||||
@successText="Archived"
|
||||
@task={{@data.archiveNewsletterTask}}
|
||||
@taskArgs={{@data.newsletter}}
|
||||
@class="gh-btn gh-btn-black gh-btn-icon"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
|
@ -1,5 +1,5 @@
|
|||
<div class="modal-content">
|
||||
<header class="modal-header" data-test-modal="confirm-newsletter-email">
|
||||
<header class="modal-header" data-test-modal="confirm-newsletter-create">
|
||||
<h1>All set? Here's what happens next</h1>
|
||||
</header>
|
||||
<button type="button" class="close" role="button" title="Close" {{on "click" (fn @close false)}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
|
|
|
@ -97,7 +97,7 @@
|
|||
</li>
|
||||
{{#if (eq newsletter.status "active")}}
|
||||
<li>
|
||||
<button class="mr2" type="button" {{on "click" (perform this.archiveNewsletterTask newsletter)}}>
|
||||
<button class="mr2" type="button" {{on "click" (fn this.archiveNewsletter newsletter)}}>
|
||||
<span>Archive</span>
|
||||
</button>
|
||||
</li>
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
import Component from '@glimmer/component';
|
||||
import ConfirmArchiveModal from '../../modals/edit-newsletter/confirm-archive';
|
||||
import {action} from '@ember/object';
|
||||
import {inject as service} from '@ember/service';
|
||||
import {task} from 'ember-concurrency';
|
||||
import {tracked} from '@glimmer/tracking';
|
||||
|
||||
export default class NewsletterManagementComponent extends Component {
|
||||
@service store;
|
||||
@service modals;
|
||||
@service router;
|
||||
@service store;
|
||||
|
||||
@tracked statusFilter = 'active';
|
||||
@tracked filteredNewsletters = [];
|
||||
|
@ -24,6 +26,8 @@ export default class NewsletterManagementComponent extends Component {
|
|||
willDestroy() {
|
||||
super.willDestroy(...arguments);
|
||||
this.router.off('routeDidChange', this.handleNewRouteChange);
|
||||
|
||||
this.confirmArchiveModal?.close();
|
||||
}
|
||||
|
||||
get activeNewsletters() {
|
||||
|
@ -64,6 +68,14 @@ export default class NewsletterManagementComponent extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
@action
|
||||
archiveNewsletter(newsletter) {
|
||||
this.confirmArchiveModal = this.modals.open(ConfirmArchiveModal, {
|
||||
newsletter,
|
||||
archiveNewsletterTask: this.archiveNewsletterTask
|
||||
});
|
||||
}
|
||||
|
||||
@task
|
||||
*archiveNewsletterTask(newsletter) {
|
||||
newsletter.status = 'archived';
|
||||
|
@ -71,6 +83,8 @@ export default class NewsletterManagementComponent extends Component {
|
|||
|
||||
this.updateFilteredNewsletters();
|
||||
|
||||
this.confirmArchiveModal?.close();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue