mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-23 19:02:29 +03:00
699e67f4e4
fixes https://github.com/TryGhost/Team/issues/1900 refs https://github.com/TryGhost/Team/issues/1901 - Defaults to the same value as the current email_track_opens setting for existing installations, otherwise defaults to true - Had to use a custom migration because the `addSetting` helper doesn't support using an existing setting as current value - Added a minimal UI to change the setting, but this still needs some design magic 🪄✨ - Link replacement is disabled if `email_track_clicks` is disabled. In the future we might consider to still do parial additions, such as source attribution and maybe redirects (to discuss).
92 lines
3.1 KiB
JavaScript
92 lines
3.1 KiB
JavaScript
/* eslint-disable camelcase */
|
|
import Model, {attr} from '@ember-data/model';
|
|
import ValidationEngine from 'ghost-admin/mixins/validation-engine';
|
|
import {and} from '@ember/object/computed';
|
|
|
|
export default Model.extend(ValidationEngine, {
|
|
validationType: 'setting',
|
|
|
|
title: attr('string'),
|
|
description: attr('string'),
|
|
logo: attr('string'),
|
|
coverImage: attr('string'),
|
|
icon: attr('string'),
|
|
accentColor: attr('string'),
|
|
locale: attr('string'),
|
|
timezone: attr('string', {defaultValue: 'Etc/UTC'}),
|
|
codeinjectionHead: attr('string'),
|
|
codeinjectionFoot: attr('string'),
|
|
facebook: attr('facebook-url-user'),
|
|
twitter: attr('twitter-url-user'),
|
|
labs: attr('string'),
|
|
navigation: attr('navigation-settings'),
|
|
secondaryNavigation: attr('navigation-settings', {isSecondary: true}),
|
|
isPrivate: attr('boolean'),
|
|
publicHash: attr('string'),
|
|
password: attr('string'),
|
|
slackUrl: attr('string'),
|
|
slackUsername: attr('string'),
|
|
amp: attr('boolean'),
|
|
ampGtagId: attr('string'),
|
|
firstpromoter: attr('boolean'),
|
|
firstpromoterId: attr('string'),
|
|
unsplash: attr('boolean'),
|
|
metaTitle: attr('string'),
|
|
metaDescription: attr('string'),
|
|
twitterTitle: attr('string'),
|
|
twitterDescription: attr('string'),
|
|
twitterImage: attr('string'),
|
|
ogTitle: attr('string'),
|
|
ogDescription: attr('string'),
|
|
ogImage: attr('string'),
|
|
mailgunApiKey: attr('string'),
|
|
mailgunDomain: attr('string'),
|
|
mailgunBaseUrl: attr('string'),
|
|
emailTrackOpens: attr('boolean'),
|
|
emailTrackClicks: attr('boolean'),
|
|
portalButton: attr('boolean'),
|
|
portalName: attr('boolean'),
|
|
portalPlans: attr('json-string'),
|
|
portalProducts: attr('json-string'),
|
|
portalButtonStyle: attr('string'),
|
|
portalButtonIcon: attr('string'),
|
|
portalButtonSignupText: attr('string'),
|
|
sharedViews: attr('string'),
|
|
/**
|
|
* Members settings
|
|
*/
|
|
membersSignupAccess: attr('string'),
|
|
defaultContentVisibility: attr('string'),
|
|
defaultContentVisibilityTiers: attr('json-string'),
|
|
membersSupportAddress: attr('string'),
|
|
membersMonthlyPriceId: attr('string'),
|
|
membersYearlyPriceId: attr('string'),
|
|
stripeSecretKey: attr('string'),
|
|
stripePublishableKey: attr('string'),
|
|
stripePlans: attr('json-string'),
|
|
stripeConnectIntegrationToken: attr('string'),
|
|
stripeConnectPublishableKey: attr('string'),
|
|
stripeConnectSecretKey: attr('string'),
|
|
stripeConnectLivemode: attr('boolean'),
|
|
stripeConnectDisplayName: attr('string'),
|
|
stripeConnectAccountId: attr('string'),
|
|
|
|
membersEnabled: attr('boolean'),
|
|
paidMembersEnabled: attr('boolean'),
|
|
|
|
commentsEnabled: attr(), // "off", "free", "paid"
|
|
|
|
/**
|
|
* Editor settings
|
|
*/
|
|
editorDefaultEmailRecipients: attr('string'),
|
|
editorDefaultEmailRecipientsFilter: attr('members-segment-string'),
|
|
emailVerificationRequired: attr('boolean'),
|
|
|
|
mailgunIsConfigured: and('mailgunApiKey', 'mailgunDomain', 'mailgunBaseUrl'),
|
|
|
|
// HACK - not a real model attribute but a workaround for Ember Data not
|
|
// exposing meta from save responses
|
|
_meta: attr()
|
|
});
|