Ghost/ghost/admin/app/models/newsletter.js
Simon Backx 986aa38903 Implemented basic color picker in newsletter settings
refs https://github.com/TryGhost/Team/issues/2830

Allows to change the colors, but not yet allows to select custom colors.
2023-03-28 14:24:04 +02:00

56 lines
1.9 KiB
JavaScript

import Model, {attr} from '@ember-data/model';
import ValidationEngine from '../mixins/validation-engine';
export default class Newsletter extends Model.extend(ValidationEngine) {
validationType = 'newsletter';
@attr name;
@attr slug;
@attr description;
@attr senderName;
@attr senderEmail;
@attr({defaultValue: 'newsletter'}) senderReplyTo;
@attr({defaultValue: 'active'}) status;
@attr({defaultValue: true}) subscribeOnSignup;
@attr({defaultValue: 'members'}) visibility;
@attr({defaultValue: 0}) sortOrder;
@attr({defaultValue: true}) feedbackEnabled;
// Design-related properties
@attr headerImage;
@attr({defaultValue: true}) showHeaderIcon;
@attr({defaultValue: true}) showHeaderTitle;
@attr({defaultValue: true}) showHeaderName;
@attr({defaultValue: true}) showPostTitleSection;
@attr({defaultValue: true}) showCommentCta;
@attr({defaultValue: false}) showSubscriptionDetails;
@attr({defaultValue: false}) showLatestPosts;
@attr({defaultValue: 'sans_serif'}) titleFontCategory;
@attr({defaultValue: 'center'}) titleAlignment;
@attr({defaultValue: true}) showFeatureImage;
@attr({defaultValue: 'sans_serif'}) bodyFontCategory;
@attr({defaultValue: 'light'}) backgroundColor;
@attr({defaultValue: null}) borderColor;
@attr({defaultValue: null}) titleColor;
@attr footerContent;
@attr({defaultValue: true}) showBadge;
@attr count;
// HACK - not a real model attribute but a workaround for Ember Data not
// exposing meta from save responses
@attr _meta;
/**
* The filter that we should use to filter out members that are subscribed to this newsletter
*/
get recipientFilter() {
const idFilter = 'newsletters.slug:' + this.slug;
if (this.visibility === 'paid') {
return idFilter + '+status:-free';
}
return idFilter;
}
}