mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-30 06:12:03 +03:00
107ed0e1f3
refs https://github.com/TryGhost/Team/issues/947 - With email-only posts there's a new "send" status that deserved it's own publishing action in the post publish menu. With with addition the post ended up having few more publishing states: publish, send, and publish&send. In addition to all this there's a "schedule" option. An addition of the "send" only select option there became a need to persist the "email_only" flag when the option was changed in the publish menu. Such persistance was not done before from the publishing menu and led a whole chain of additional methods being passed down from publishmenu component all the way down to distribution-action-select component - At this moment only a happy path work properly when selecting one of the publishing options and publishing. More states will need to be handled for scheduled, unblished, etc. states of the post
80 lines
3.6 KiB
Handlebars
80 lines
3.6 KiB
Handlebars
{{#if (eq this.displayState "sent")}}
|
|
<div class="gh-btn gh-btn-text green">Sent</div>
|
|
{{else}}
|
|
<GhBasicDropdown @verticalPosition="below" @horizontalPosition="right" @onOpen={{action "open"}} @onClose={{action "close"}} as |dd|>
|
|
<dd.Trigger class="gh-btn gh-btn-editor {{if (or (eq this.displayState "published") (eq this.displayState "scheduled") (eq this.uiContext "preview")) "green"}} gh-publishmenu-trigger">
|
|
<span data-test-publishmenu-trigger>{{this.triggerText}} {{svg-jar "arrow-down"}}</span>
|
|
</dd.Trigger>
|
|
|
|
<dd.Content class="gh-publishmenu-dropdown">
|
|
{{#if (eq this.displayState "published")}}
|
|
<GhPublishmenuPublished
|
|
@post={{this.post}}
|
|
@saveType={{this.saveType}}
|
|
@setSaveType={{action "setSaveType"}}
|
|
data-test-publishmenu-published="true" />
|
|
|
|
{{else if (eq this.displayState "scheduled")}}
|
|
<GhPublishmenuScheduled
|
|
@post={{this.post}}
|
|
@saveType={{this.saveType}}
|
|
@isClosing={{this.isClosing}}
|
|
@canSendEmail={{this.canSendEmail}}
|
|
@recipientsFilter={{this.sendEmailWhenPublished}}
|
|
@setSaveType={{action "setSaveType"}}
|
|
@setTypedDateError={{action (mut this.typedDateError)}}
|
|
@isSendingEmailLimited={{this.isSendingEmailLimited}}
|
|
@sendingEmailLimitError={{this.sendingEmailLimitError}}
|
|
data-test-publishmenu-scheduled="true" />
|
|
|
|
{{else}}
|
|
<GhPublishmenuDraft
|
|
@post={{this.post}}
|
|
@saveType={{this.saveType}}
|
|
@setSaveType={{action "setSaveType"}}
|
|
@setTypedDateError={{action (mut this.typedDateError)}}
|
|
@canSendEmail={{this.canSendEmail}}
|
|
@recipientsFilter={{this.sendEmailWhenPublished}}
|
|
@setSendEmailWhenPublished={{action "setSendEmailWhenPublished"}}
|
|
@isSendingEmailLimited={{this.isSendingEmailLimited}}
|
|
@sendingEmailLimitError={{this.sendingEmailLimitError}}
|
|
@setDistributionAction={{action "setDistributionAction"}}
|
|
data-test-publishmenu-draft="true" />
|
|
{{/if}}
|
|
|
|
{{!--
|
|
save button needs to be outside of menu components so it doesn't lose state
|
|
or cancel the task when the post status updates and switches components
|
|
--}}
|
|
<footer class="gh-publishmenu-footer">
|
|
<button class="gh-btn gh-btn-outline" {{on "click" (action dd.actions.close)}} data-test-publishmenu-cancel>
|
|
<span>Cancel</span>
|
|
</button>
|
|
<GhTaskButton
|
|
@buttonText={{this.buttonText}}
|
|
@task={{this.save}}
|
|
@taskArgs={{hash dropdown=dd}}
|
|
@successText={{this.successText}}
|
|
@runningText={{this.runningText}}
|
|
@class="gh-btn gh-btn-black gh-publishmenu-button gh-btn-icon"
|
|
data-test-publishmenu-save="true"
|
|
/>
|
|
</footer>
|
|
</dd.Content>
|
|
</GhBasicDropdown>
|
|
{{/if}}
|
|
|
|
{{#if this.showEmailConfirmationModal}}
|
|
<GhFullscreenModal
|
|
@modal="confirm-email-send"
|
|
@model={{hash
|
|
sendEmailWhenPublished=this.sendEmailWhenPublished
|
|
isScheduled=(eq this.saveType "schedule")
|
|
emailOnly=this.post.emailOnly
|
|
retryEmailSend=this.retryEmailSend
|
|
}}
|
|
@confirm={{this.confirmEmailSend}}
|
|
@close={{this.closeEmailConfirmationModal}}
|
|
@modifier="action wide"
|
|
/>
|
|
{{/if}} |