Added disabled newsletter dropdown to scheduled state of publish menu (#2357)
no issue If you scheduled a post to a specific newsletter it was no longer visible in the scheduled state of the publish menu making it difficult to know the behaviour when coming back to a scheduled post. - duplicated the newsletter dropdown from the draft to the scheduled state components and disabled it the same as the other recipient options - added temporary workaround for missing newsletter embed for the posts endpoint in the API - adds `newsletterId` attribute to the post model - uses `post.newsletterId` to find the matching newsletter model from the available newsletters list
This commit is contained in:
parent
25f4694d06
commit
4011c8b73d
|
@ -3,7 +3,7 @@ module.exports = {
|
||||||
|
|
||||||
rules: {
|
rules: {
|
||||||
'no-forbidden-elements': ['meta', 'html', 'script'],
|
'no-forbidden-elements': ['meta', 'html', 'script'],
|
||||||
'no-implicit-this': {allow: ['now', 'site-icon-style', 'accent-color-background']},
|
'no-implicit-this': {allow: ['noop', 'now', 'site-icon-style', 'accent-color-background']},
|
||||||
'no-inline-styles': false
|
'no-inline-styles': false
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,6 +38,24 @@
|
||||||
<div class="gh-publishmenu-email-label pe-none">
|
<div class="gh-publishmenu-email-label pe-none">
|
||||||
<label class="gh-publishmenu-radio-label mb3 midgrey">Send by email to</label>
|
<label class="gh-publishmenu-radio-label mb3 midgrey">Send by email to</label>
|
||||||
|
|
||||||
|
{{#if (and (feature "multipleNewsletters") (gt @availableNewsletters.length 1))}}
|
||||||
|
<div class="mb3">
|
||||||
|
<PowerSelect
|
||||||
|
@selected={{this.selectedNewsletter}}
|
||||||
|
@options={{@availableNewsletters}}
|
||||||
|
@onChange={{noop}}
|
||||||
|
@triggerComponent="gh-power-select/trigger"
|
||||||
|
@triggerClass="gh-publishmenu-newsletter-trigger"
|
||||||
|
@dropdownClass="gh-publishmenu-newsletter-dropdown"
|
||||||
|
@renderInPlace={{true}}
|
||||||
|
@disabled={{true}}
|
||||||
|
as |newsletter|
|
||||||
|
>
|
||||||
|
{{newsletter.name}}
|
||||||
|
</PowerSelect>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<GhMembersRecipientSelect
|
<GhMembersRecipientSelect
|
||||||
@filter={{@recipientsFilter}}
|
@filter={{@recipientsFilter}}
|
||||||
|
|
|
@ -26,6 +26,10 @@ export default class GhPublishmenuScheduledComponent extends Component {
|
||||||
return publishedAtUTC.toNow(true);
|
return publishedAtUTC.toNow(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get selectedNewsletter() {
|
||||||
|
return this.args.availableNewsletters.find(n => n.id === this.args.post.newsletterId);
|
||||||
|
}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super(...arguments);
|
super(...arguments);
|
||||||
this.minDate = new Date();
|
this.minDate = new Date();
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
@setTypedDateError={{action (mut this.typedDateError)}}
|
@setTypedDateError={{action (mut this.typedDateError)}}
|
||||||
@isSendingEmailLimited={{this.isSendingEmailLimited}}
|
@isSendingEmailLimited={{this.isSendingEmailLimited}}
|
||||||
@sendingEmailLimitError={{this.sendingEmailLimitError}}
|
@sendingEmailLimitError={{this.sendingEmailLimitError}}
|
||||||
|
@availableNewsletters={{this.availableNewsletters}}
|
||||||
data-test-publishmenu-scheduled="true" />
|
data-test-publishmenu-scheduled="true" />
|
||||||
|
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
|
@ -111,6 +111,9 @@ export default Model.extend(Comparable, ValidationEngine, {
|
||||||
featureImageAlt: attr('string'),
|
featureImageAlt: attr('string'),
|
||||||
featureImageCaption: attr('string'),
|
featureImageCaption: attr('string'),
|
||||||
|
|
||||||
|
// TODO: delete when newsletter relationship/embed is fully defined
|
||||||
|
newsletterId: attr(),
|
||||||
|
|
||||||
authors: hasMany('user', {embedded: 'always', async: false}),
|
authors: hasMany('user', {embedded: 'always', async: false}),
|
||||||
createdBy: belongsTo('user', {async: true}),
|
createdBy: belongsTo('user', {async: true}),
|
||||||
email: belongsTo('email', {async: false}),
|
email: belongsTo('email', {async: false}),
|
||||||
|
|
Loading…
Reference in New Issue