ghost 5.47.0 → 5.47.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MigratorConfig.js +1 -0
- package/components/tryghost-adapter-cache-memory-ttl-5.47.1.tgz +0 -0
- package/components/tryghost-adapter-cache-redis-5.47.1.tgz +0 -0
- package/components/tryghost-adapter-manager-5.47.1.tgz +0 -0
- package/components/{tryghost-announcement-bar-settings-5.47.0.tgz → tryghost-announcement-bar-settings-5.47.1.tgz} +0 -0
- package/components/tryghost-api-framework-5.47.1.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-5.47.1.tgz +0 -0
- package/components/tryghost-audience-feedback-5.47.1.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.47.1.tgz +0 -0
- package/components/tryghost-constants-5.47.1.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.47.1.tgz +0 -0
- package/components/{tryghost-data-generator-5.47.0.tgz → tryghost-data-generator-5.47.1.tgz} +0 -0
- package/components/tryghost-domain-events-5.47.1.tgz +0 -0
- package/components/{tryghost-dynamic-routing-events-5.47.0.tgz → tryghost-dynamic-routing-events-5.47.1.tgz} +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.47.1.tgz +0 -0
- package/components/tryghost-email-analytics-service-5.47.1.tgz +0 -0
- package/components/tryghost-email-content-generator-5.47.1.tgz +0 -0
- package/components/tryghost-email-events-5.47.1.tgz +0 -0
- package/components/tryghost-email-service-5.47.1.tgz +0 -0
- package/components/tryghost-email-suppression-list-5.47.1.tgz +0 -0
- package/components/tryghost-event-aware-cache-wrapper-5.47.1.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.47.1.tgz +0 -0
- package/components/{tryghost-external-media-inliner-5.47.0.tgz → tryghost-external-media-inliner-5.47.1.tgz} +0 -0
- package/components/{tryghost-extract-api-key-5.47.0.tgz → tryghost-extract-api-key-5.47.1.tgz} +0 -0
- package/components/tryghost-html-to-plaintext-5.47.1.tgz +0 -0
- package/components/tryghost-i18n-5.47.1.tgz +0 -0
- package/components/tryghost-importer-handler-content-files-5.47.1.tgz +0 -0
- package/components/{tryghost-importer-revue-5.47.0.tgz → tryghost-importer-revue-5.47.1.tgz} +0 -0
- package/components/tryghost-in-memory-repository-5.47.1.tgz +0 -0
- package/components/tryghost-job-manager-5.47.1.tgz +0 -0
- package/components/{tryghost-link-redirects-5.47.0.tgz → tryghost-link-redirects-5.47.1.tgz} +0 -0
- package/components/tryghost-link-replacer-5.47.1.tgz +0 -0
- package/components/tryghost-link-tracking-5.47.1.tgz +0 -0
- package/components/{tryghost-magic-link-5.47.0.tgz → tryghost-magic-link-5.47.1.tgz} +0 -0
- package/components/tryghost-mailgun-client-5.47.1.tgz +0 -0
- package/components/tryghost-member-attribution-5.47.1.tgz +0 -0
- package/components/tryghost-member-events-5.47.1.tgz +0 -0
- package/components/tryghost-members-api-5.47.1.tgz +0 -0
- package/components/tryghost-members-csv-5.47.1.tgz +0 -0
- package/components/tryghost-members-events-service-5.47.1.tgz +0 -0
- package/components/tryghost-members-importer-5.47.1.tgz +0 -0
- package/components/tryghost-members-offers-5.47.1.tgz +0 -0
- package/components/tryghost-members-payments-5.47.1.tgz +0 -0
- package/components/tryghost-members-ssr-5.47.1.tgz +0 -0
- package/components/tryghost-members-stripe-service-5.47.1.tgz +0 -0
- package/components/{tryghost-mentions-email-report-5.47.0.tgz → tryghost-mentions-email-report-5.47.1.tgz} +0 -0
- package/components/tryghost-milestones-5.47.1.tgz +0 -0
- package/components/tryghost-minifier-5.47.1.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.47.1.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.47.1.tgz +0 -0
- package/components/{tryghost-mw-error-handler-5.47.0.tgz → tryghost-mw-error-handler-5.47.1.tgz} +0 -0
- package/components/tryghost-mw-session-from-token-5.47.1.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.47.1.tgz +0 -0
- package/components/tryghost-mw-version-match-5.47.1.tgz +0 -0
- package/components/tryghost-mw-vhost-5.47.1.tgz +0 -0
- package/components/tryghost-oembed-service-5.47.1.tgz +0 -0
- package/components/{tryghost-package-json-5.47.0.tgz → tryghost-package-json-5.47.1.tgz} +0 -0
- package/components/tryghost-post-revisions-5.47.1.tgz +0 -0
- package/components/{tryghost-posts-service-5.47.0.tgz → tryghost-posts-service-5.47.1.tgz} +0 -0
- package/components/tryghost-referrers-5.47.1.tgz +0 -0
- package/components/{tryghost-security-5.47.0.tgz → tryghost-security-5.47.1.tgz} +0 -0
- package/components/tryghost-session-service-5.47.1.tgz +0 -0
- package/components/tryghost-settings-path-manager-5.47.1.tgz +0 -0
- package/components/{tryghost-slack-notifications-5.47.0.tgz → tryghost-slack-notifications-5.47.1.tgz} +0 -0
- package/components/tryghost-staff-service-5.47.1.tgz +0 -0
- package/components/tryghost-stats-service-5.47.1.tgz +0 -0
- package/components/tryghost-tiers-5.47.1.tgz +0 -0
- package/components/tryghost-update-check-service-5.47.1.tgz +0 -0
- package/components/tryghost-verification-trigger-5.47.1.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-5.47.1.tgz +0 -0
- package/components/{tryghost-webmentions-5.47.0.tgz → tryghost-webmentions-5.47.1.tgz} +0 -0
- package/content/themes/casper/assets/built/global.css +1 -1
- package/content/themes/casper/assets/built/global.css.map +1 -1
- package/content/themes/casper/assets/built/screen.css +1 -1
- package/content/themes/casper/assets/built/screen.css.map +1 -1
- package/content/themes/casper/assets/css/screen.css +18 -2
- package/content/themes/casper/package.json +1 -1
- package/core/boot.js +2 -2
- package/core/built/admin/assets/{chunk.604.078e94b787281bfcb588.js → chunk.11.a4f9c30c0891933434bf.js} +52 -59
- package/core/built/admin/assets/{chunk.143.75a36ae8bf1b94136477.js → chunk.143.70ebfe98c846ee93f854.js} +5 -5
- package/core/built/admin/assets/{chunk.178.17fa23714a161c31e38c.js → chunk.178.e3546b84ecb79aae1772.js} +4 -4
- package/core/built/admin/assets/{ghost-96fca705b542a53a85d10e656a39065d.js → ghost-48e9d3e33a5bb943cd479b941dbfe62e.js} +269 -253
- package/core/built/admin/assets/ghost-a2e163a59a7ec0c8ceb97289113a9994.css +1 -0
- package/core/built/admin/assets/ghost-dark-f2d9fd8b4f7b41e98642a27afdc9b35a.css +1 -0
- package/core/built/admin/index.html +4 -4
- package/core/frontend/services/admin-auth-assets/index.js +1 -1
- package/core/frontend/services/card-assets/{service.js → CardAssetService.js} +2 -2
- package/core/frontend/services/card-assets/index.js +1 -1
- package/core/frontend/services/comment-counts-assets/index.js +1 -1
- package/core/frontend/services/member-attribution-assets/index.js +1 -1
- package/core/frontend/services/routing/index.js +1 -1
- package/core/frontend/services/sitemap/{page-generator.js → PageMapGenerator.js} +1 -1
- package/core/frontend/services/sitemap/{post-generator.js → PostMapGenerator.js} +1 -1
- package/core/frontend/services/sitemap/{manager.js → SiteMapManager.js} +5 -5
- package/core/frontend/services/sitemap/{tag-generator.js → TagsMapGenerator.js} +1 -1
- package/core/frontend/services/sitemap/{user-generator.js → UserMapGenerator.js} +1 -1
- package/core/frontend/services/sitemap/handler.js +1 -1
- package/core/frontend/services/theme-engine/i18n/{theme-i18n.js → ThemeI18n.js} +1 -1
- package/core/frontend/services/theme-engine/i18n/index.js +1 -1
- package/core/frontend/web/routes.js +1 -1
- package/core/frontend/web/site.js +2 -2
- package/core/server/adapters/cache/Redis.js +1 -0
- package/core/server/adapters/scheduling/post-scheduling/index.js +1 -1
- package/core/server/adapters/scheduling/{SchedulingDefault.js → scheduling-default.js} +1 -1
- package/core/server/adapters/sso/{Default.js → DefaultSSOAdapter.js} +1 -1
- package/core/server/adapters/storage/LocalMediaStorage.js +2 -2
- package/core/server/api/endpoints/authentication.js +7 -3
- package/core/server/api/endpoints/invites.js +2 -2
- package/core/server/api/endpoints/users.js +1 -1
- package/core/server/api/endpoints/utils/validators/input/password_reset.js +1 -0
- package/core/server/data/importer/importers/data/{custom-theme-settings.js → CustomThemeSettingsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{newsletters.js → NewslettersImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{posts.js → PostsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{products.js → ProductsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{revue-subscriber.js → RevueSubscriberImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{roles.js → RolesImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{settings.js → SettingsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{stripe-prices.js → StripePricesImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{stripe-products.js → StripeProductsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{tags.js → TagsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{users.js → UsersImporter.js} +1 -1
- package/core/server/data/importer/importers/data/data-importer.js +11 -11
- package/core/server/data/migrations/hooks/migrate/afterEach.js +1 -0
- package/core/server/data/migrations/hooks/migrate/beforeEach.js +1 -0
- package/core/server/data/migrations/versions/4.4/02-migrate-members-signup-access.js +1 -1
- package/core/server/data/schema/fixtures/index.js +1 -1
- package/core/server/lib/image/{image-utils.js → ImageUtils.js} +4 -4
- package/core/server/lib/image/index.js +1 -1
- package/core/server/models/invite.js +10 -6
- package/core/server/models/post.js +1 -1
- package/core/server/services/adapter-manager/index.js +2 -2
- package/core/server/services/auth/session/express-session.js +1 -1
- package/core/server/services/comments/{controller.js → CommentsController.js} +2 -2
- package/core/server/services/comments/{service.js → CommentsService.js} +1 -1
- package/core/server/services/comments/index.js +3 -3
- package/core/server/services/custom-redirects/index.js +1 -1
- package/core/server/services/email-analytics/index.js +1 -1
- package/core/server/services/email-service/{wrapper.js → EmailServiceWrapper.js} +2 -2
- package/core/server/services/email-service/index.js +1 -1
- package/core/server/services/explore/index.js +1 -1
- package/core/server/services/frontend-data-service/index.js +1 -1
- package/core/server/services/invites/{invites.js → Invites.js} +25 -10
- package/core/server/services/invites/index.js +3 -1
- package/core/server/services/mail/templates/invite-user-by-api-key.html +160 -0
- package/core/server/services/members/api.js +1 -1
- package/core/server/services/members/emails/signin.js +8 -8
- package/core/server/services/members/emails/signup-paid.js +7 -7
- package/core/server/services/members/emails/signup.js +9 -9
- package/core/server/services/members/emails/subscribe.js +9 -9
- package/core/server/services/members/emails/{updateEmail.js → update-email.js} +7 -7
- package/core/server/services/members/service.js +2 -2
- package/core/server/services/newsletters/index.js +1 -1
- package/core/server/services/notifications/index.js +1 -1
- package/core/server/services/oembed/{twitter-embed.js → TwitterOEmbedProvider.js} +2 -1
- package/core/server/services/oembed/service.js +2 -2
- package/core/server/services/posts/posts-service.js +1 -1
- package/core/server/services/route-settings/index.js +3 -3
- package/core/server/services/settings/settings-service.js +1 -1
- package/core/server/services/settings-helpers/index.js +1 -1
- package/core/server/services/webhooks/listen.js +1 -1
- package/core/server/web/api/endpoints/admin/middleware.js +2 -0
- package/core/server/web/parent/frontend.js +1 -1
- package/core/shared/config/defaults.json +5 -5
- package/core/shared/labs.js +3 -1
- package/core/shared/settings-cache/index.js +1 -1
- package/package.json +146 -144
- package/yarn.lock +514 -462
- package/components/tryghost-adapter-cache-memory-ttl-5.47.0.tgz +0 -0
- package/components/tryghost-adapter-cache-redis-5.47.0.tgz +0 -0
- package/components/tryghost-adapter-manager-5.47.0.tgz +0 -0
- package/components/tryghost-api-framework-5.47.0.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-5.47.0.tgz +0 -0
- package/components/tryghost-audience-feedback-5.47.0.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.47.0.tgz +0 -0
- package/components/tryghost-constants-5.47.0.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.47.0.tgz +0 -0
- package/components/tryghost-domain-events-5.47.0.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.47.0.tgz +0 -0
- package/components/tryghost-email-analytics-service-5.47.0.tgz +0 -0
- package/components/tryghost-email-content-generator-5.47.0.tgz +0 -0
- package/components/tryghost-email-events-5.47.0.tgz +0 -0
- package/components/tryghost-email-service-5.47.0.tgz +0 -0
- package/components/tryghost-email-suppression-list-5.47.0.tgz +0 -0
- package/components/tryghost-event-aware-cache-wrapper-5.47.0.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.47.0.tgz +0 -0
- package/components/tryghost-html-to-plaintext-5.47.0.tgz +0 -0
- package/components/tryghost-i18n-5.47.0.tgz +0 -0
- package/components/tryghost-importer-handler-content-files-5.47.0.tgz +0 -0
- package/components/tryghost-job-manager-5.47.0.tgz +0 -0
- package/components/tryghost-link-replacer-5.47.0.tgz +0 -0
- package/components/tryghost-link-tracking-5.47.0.tgz +0 -0
- package/components/tryghost-mailgun-client-5.47.0.tgz +0 -0
- package/components/tryghost-member-attribution-5.47.0.tgz +0 -0
- package/components/tryghost-member-events-5.47.0.tgz +0 -0
- package/components/tryghost-members-api-5.47.0.tgz +0 -0
- package/components/tryghost-members-csv-5.47.0.tgz +0 -0
- package/components/tryghost-members-events-service-5.47.0.tgz +0 -0
- package/components/tryghost-members-importer-5.47.0.tgz +0 -0
- package/components/tryghost-members-offers-5.47.0.tgz +0 -0
- package/components/tryghost-members-payments-5.47.0.tgz +0 -0
- package/components/tryghost-members-ssr-5.47.0.tgz +0 -0
- package/components/tryghost-members-stripe-service-5.47.0.tgz +0 -0
- package/components/tryghost-milestones-5.47.0.tgz +0 -0
- package/components/tryghost-minifier-5.47.0.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.47.0.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.47.0.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.47.0.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.47.0.tgz +0 -0
- package/components/tryghost-mw-version-match-5.47.0.tgz +0 -0
- package/components/tryghost-mw-vhost-5.47.0.tgz +0 -0
- package/components/tryghost-oembed-service-5.47.0.tgz +0 -0
- package/components/tryghost-post-revisions-5.47.0.tgz +0 -0
- package/components/tryghost-referrers-5.47.0.tgz +0 -0
- package/components/tryghost-session-service-5.47.0.tgz +0 -0
- package/components/tryghost-settings-path-manager-5.47.0.tgz +0 -0
- package/components/tryghost-staff-service-5.47.0.tgz +0 -0
- package/components/tryghost-stats-service-5.47.0.tgz +0 -0
- package/components/tryghost-tiers-5.47.0.tgz +0 -0
- package/components/tryghost-update-check-service-5.47.0.tgz +0 -0
- package/components/tryghost-verification-trigger-5.47.0.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-5.47.0.tgz +0 -0
- package/core/built/admin/assets/ghost-dark-164c6b54da62c0988a3411d458c9a4a5.css +0 -1
- package/core/built/admin/assets/ghost-ecce94abc3cc85a5281d047aa07403e6.css +0 -1
- /package/core/built/admin/assets/{chunk.604.078e94b787281bfcb588.js.LICENSE.txt → chunk.11.a4f9c30c0891933434bf.js.LICENSE.txt} +0 -0
- /package/core/frontend/services/admin-auth-assets/{service.js → AdminAuthAssetsService.js} +0 -0
- /package/core/frontend/services/comment-counts-assets/{service.js → CommentCountsAssetsService.js} +0 -0
- /package/core/frontend/services/member-attribution-assets/{service.js → MemberAttributionAssetsService.js} +0 -0
- /package/core/frontend/services/routing/{router-manager.js → RouterManager.js} +0 -0
- /package/core/frontend/services/sitemap/{base-generator.js → BaseSiteMapGenerator.js} +0 -0
- /package/core/frontend/services/sitemap/{index-generator.js → SiteMapIndexGenerator.js} +0 -0
- /package/core/frontend/services/theme-engine/i18n/{i18n.js → I18n.js} +0 -0
- /package/core/server/{ghost-server.js → GhostServer.js} +0 -0
- /package/core/server/adapters/cache/{Memory.js → MemoryCache.js} +0 -0
- /package/core/server/adapters/cache/{MemoryTTL.js → memory-ttl.js} +0 -0
- /package/core/server/adapters/scheduling/post-scheduling/{post-scheduler.js → PostScheduler.js} +0 -0
- /package/core/server/adapters/scheduling/{SchedulingBase.js → scheduling-base.js} +0 -0
- /package/core/server/adapters/sso/{Base.js → SSOBase.js} +0 -0
- /package/core/server/data/db/{state-manager.js → DatabaseStateManager.js} +0 -0
- /package/core/server/data/importer/importers/data/{base.js → Base.js} +0 -0
- /package/core/server/data/schema/fixtures/{fixture-manager.js → FixtureManager.js} +0 -0
- /package/core/server/lib/image/{blog-icon.js → BlogIcon.js} +0 -0
- /package/core/server/lib/image/{cached-image-size-from-url.js → CachedImageSizeFromUrl.js} +0 -0
- /package/core/server/lib/image/{gravatar.js → Gravatar.js} +0 -0
- /package/core/server/lib/image/{image-size.js → ImageSize.js} +0 -0
- /package/core/server/services/{users.js → Users.js} +0 -0
- /package/core/server/services/auth/session/{store.js → SessionStore.js} +0 -0
- /package/core/server/services/comments/{emails.js → CommentsServiceEmails.js} +0 -0
- /package/core/server/services/comments/{stats.js → CommentsStatsService.js} +0 -0
- /package/core/server/services/custom-redirects/{api.js → CustomRedirectsAPI.js} +0 -0
- /package/core/server/services/email-analytics/{wrapper.js → EmailAnalyticsServiceWrapper.js} +0 -0
- /package/core/server/services/explore/{service.js → ExploreService.js} +0 -0
- /package/core/server/services/frontend-data-service/{frontend-data-service.js → FrontendDataService.js} +0 -0
- /package/core/server/services/members/{config.js → MembersConfigProvider.js} +0 -0
- /package/core/server/services/members/stats/{members-stats.js → MembersStats.js} +0 -0
- /package/core/server/services/newsletters/{service.js → NewslettersService.js} +0 -0
- /package/core/server/services/notifications/{notifications.js → Notifications.js} +0 -0
- /package/core/server/services/oembed/{nft-oembed.js → NFTOEmbedProvider.js} +0 -0
- /package/core/server/services/posts/stats/{post-stats.js → PostStats.js} +0 -0
- /package/core/server/services/route-settings/{default-settings-manager.js → DefaultSettingsManager.js} +0 -0
- /package/core/server/services/route-settings/{route-settings.js → RouteSettings.js} +0 -0
- /package/core/server/services/route-settings/{settings-loader.js → SettingsLoader.js} +0 -0
- /package/core/server/services/settings/{settings-bread-service.js → SettingsBREADService.js} +0 -0
- /package/core/server/services/settings-helpers/{settings-helpers.js → SettingsHelpers.js} +0 -0
- /package/core/server/services/webhooks/{trigger.js → WebhookTrigger.js} +0 -0
- /package/core/shared/settings-cache/{cache.js → CacheManager.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const models = require('../../models');
|
|
2
|
-
const FrontendDataService = require('./
|
|
2
|
+
const FrontendDataService = require('./FrontendDataService');
|
|
3
3
|
|
|
4
4
|
module.exports.init = () => {
|
|
5
5
|
return new FrontendDataService({IntegrationModel: models.Integration});
|
|
@@ -4,6 +4,7 @@ const logging = require('@tryghost/logging');
|
|
|
4
4
|
|
|
5
5
|
const messages = {
|
|
6
6
|
invitedByName: '{invitedByName} has invited you to join {blogName}',
|
|
7
|
+
invitedByNoName: 'You have been invited to join {blogName}',
|
|
7
8
|
errorSendingEmail: {
|
|
8
9
|
error: 'Error sending email: {message}',
|
|
9
10
|
help: 'Please check your email settings and resend the invitation.'
|
|
@@ -11,8 +12,9 @@ const messages = {
|
|
|
11
12
|
};
|
|
12
13
|
|
|
13
14
|
class Invites {
|
|
14
|
-
constructor({settingsCache, mailService, urlUtils}) {
|
|
15
|
+
constructor({settingsCache, settingsHelpers, mailService, urlUtils}) {
|
|
15
16
|
this.settingsCache = settingsCache;
|
|
17
|
+
this.settingsHelpers = settingsHelpers;
|
|
16
18
|
this.mailService = mailService;
|
|
17
19
|
this.urlUtils = urlUtils;
|
|
18
20
|
}
|
|
@@ -37,15 +39,26 @@ class Invites {
|
|
|
37
39
|
|
|
38
40
|
const adminUrl = this.urlUtils.urlFor('admin', true);
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
if (user.name || user.email) {
|
|
43
|
+
emailData = {
|
|
44
|
+
blogName: this.settingsCache.get('title'),
|
|
45
|
+
invitedByName: user.name,
|
|
46
|
+
invitedByEmail: user.email,
|
|
47
|
+
resetLink: this.urlUtils.urlJoin(adminUrl, 'signup', security.url.encodeBase64(invite.get('token')), '/'),
|
|
48
|
+
recipientEmail: invite.get('email')
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
return this.mailService.utils.generateContent({data: emailData, template: 'invite-user'});
|
|
52
|
+
} else {
|
|
53
|
+
emailData = {
|
|
54
|
+
blogName: this.settingsCache.get('title'),
|
|
55
|
+
invitedByEmail: `ghost@${this.settingsHelpers.getDefaultEmailDomain()}`,
|
|
56
|
+
resetLink: this.urlUtils.urlJoin(adminUrl, 'signup', security.url.encodeBase64(invite.get('token')), '/'),
|
|
57
|
+
recipientEmail: invite.get('email')
|
|
58
|
+
};
|
|
47
59
|
|
|
48
|
-
|
|
60
|
+
return this.mailService.utils.generateContent({data: emailData, template: 'invite-user-by-api-key'});
|
|
61
|
+
}
|
|
49
62
|
})
|
|
50
63
|
.then((emailContent) => {
|
|
51
64
|
const payload = {
|
|
@@ -53,9 +66,11 @@ class Invites {
|
|
|
53
66
|
message: {
|
|
54
67
|
to: invite.get('email'),
|
|
55
68
|
replyTo: emailData.invitedByEmail,
|
|
56
|
-
subject: tpl(messages.invitedByName, {
|
|
69
|
+
subject: emailData.invitedByName ? tpl(messages.invitedByName, {
|
|
57
70
|
invitedByName: emailData.invitedByName,
|
|
58
71
|
blogName: emailData.blogName
|
|
72
|
+
}) : tpl(messages.invitedByNoName, {
|
|
73
|
+
blogName: emailData.blogName
|
|
59
74
|
}),
|
|
60
75
|
html: emailContent.html,
|
|
61
76
|
text: emailContent.text
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
const settingsCache = require('../../../shared/settings-cache');
|
|
2
|
+
const settingsHelpers = require('../settings-helpers');
|
|
2
3
|
const mailService = require('../../services/mail');
|
|
3
4
|
const urlUtils = require('../../../shared/url-utils');
|
|
4
|
-
const Invites = require('./
|
|
5
|
+
const Invites = require('./Invites');
|
|
5
6
|
|
|
6
7
|
module.exports = new Invites({
|
|
7
8
|
settingsCache,
|
|
9
|
+
settingsHelpers,
|
|
8
10
|
mailService,
|
|
9
11
|
urlUtils
|
|
10
12
|
});
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta name="viewport" content="width=device-width">
|
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
6
|
+
<title>Welcome to Ghost</title>
|
|
7
|
+
<style>
|
|
8
|
+
/* -------------------------------------
|
|
9
|
+
RESPONSIVE AND MOBILE FRIENDLY STYLES
|
|
10
|
+
------------------------------------- */
|
|
11
|
+
@media only screen and (max-width: 620px) {
|
|
12
|
+
table[class=body] h1 {
|
|
13
|
+
font-size: 28px !important;
|
|
14
|
+
margin-bottom: 10px !important;
|
|
15
|
+
}
|
|
16
|
+
table[class=body] p,
|
|
17
|
+
table[class=body] ul,
|
|
18
|
+
table[class=body] ol,
|
|
19
|
+
table[class=body] td,
|
|
20
|
+
table[class=body] span,
|
|
21
|
+
table[class=body] a {
|
|
22
|
+
font-size: 16px !important;
|
|
23
|
+
}
|
|
24
|
+
table[class=body] .title {
|
|
25
|
+
font-size: 22px !important;
|
|
26
|
+
}
|
|
27
|
+
table[class=body] .wrapper,
|
|
28
|
+
table[class=body] .article {
|
|
29
|
+
padding: 10px !important;
|
|
30
|
+
}
|
|
31
|
+
table[class=body] .content {
|
|
32
|
+
padding: 0 !important;
|
|
33
|
+
}
|
|
34
|
+
table[class=body] .container {
|
|
35
|
+
padding: 0 !important;
|
|
36
|
+
width: 100% !important;
|
|
37
|
+
}
|
|
38
|
+
table[class=body] .main {
|
|
39
|
+
border-left-width: 0 !important;
|
|
40
|
+
border-radius: 0 !important;
|
|
41
|
+
border-right-width: 0 !important;
|
|
42
|
+
}
|
|
43
|
+
table[class=body] .btn table {
|
|
44
|
+
width: 100% !important;
|
|
45
|
+
}
|
|
46
|
+
table[class=body] .btn a {
|
|
47
|
+
width: 100% !important;
|
|
48
|
+
}
|
|
49
|
+
table[class=body] .img-responsive {
|
|
50
|
+
height: auto !important;
|
|
51
|
+
max-width: 100% !important;
|
|
52
|
+
width: auto !important;
|
|
53
|
+
}
|
|
54
|
+
table[class=body] p[class=small],
|
|
55
|
+
table[class=body] a[class=small] {
|
|
56
|
+
font-size: 12x !important;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/* -------------------------------------
|
|
60
|
+
PRESERVE THESE STYLES IN THE HEAD
|
|
61
|
+
------------------------------------- */
|
|
62
|
+
@media all {
|
|
63
|
+
.ExternalClass {
|
|
64
|
+
width: 100%;
|
|
65
|
+
}
|
|
66
|
+
.ExternalClass,
|
|
67
|
+
.ExternalClass p,
|
|
68
|
+
.ExternalClass span,
|
|
69
|
+
.ExternalClass font,
|
|
70
|
+
.ExternalClass td,
|
|
71
|
+
.ExternalClass div {
|
|
72
|
+
line-height: 100%;
|
|
73
|
+
}
|
|
74
|
+
.recipient-link a {
|
|
75
|
+
color: inherit !important;
|
|
76
|
+
font-family: inherit !important;
|
|
77
|
+
font-size: inherit !important;
|
|
78
|
+
font-weight: inherit !important;
|
|
79
|
+
line-height: inherit !important;
|
|
80
|
+
text-decoration: none !important;
|
|
81
|
+
}
|
|
82
|
+
#MessageViewBody a {
|
|
83
|
+
color: inherit;
|
|
84
|
+
text-decoration: none;
|
|
85
|
+
font-size: inherit;
|
|
86
|
+
font-family: inherit;
|
|
87
|
+
font-weight: inherit;
|
|
88
|
+
line-height: inherit;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
hr {
|
|
92
|
+
border-width: 0;
|
|
93
|
+
height: 0;
|
|
94
|
+
margin-top: 34px;
|
|
95
|
+
margin-bottom: 34px;
|
|
96
|
+
border-bottom-width: 1px;
|
|
97
|
+
border-bottom-color: #EEF5F8;
|
|
98
|
+
}
|
|
99
|
+
a {
|
|
100
|
+
color: #3A464C;
|
|
101
|
+
}
|
|
102
|
+
</style>
|
|
103
|
+
</head>
|
|
104
|
+
<body style="background-color: #ffffff; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; -webkit-font-smoothing: antialiased; font-size: 14px; line-height: 1.5em; margin: 0; padding: 0; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;">
|
|
105
|
+
|
|
106
|
+
<table border="0" cellpadding="0" cellspacing="0" class="body" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
|
|
107
|
+
<tr>
|
|
108
|
+
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;"> </td>
|
|
109
|
+
<td class="container" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; display: block; Margin: 0 auto; max-width: 540px; padding: 10px; width: 540px;">
|
|
110
|
+
|
|
111
|
+
<div class="content" style="box-sizing: border-box; display: block; Margin: 0 auto; max-width: 600px; padding: 30px 20px;">
|
|
112
|
+
|
|
113
|
+
<!-- START CENTERED CONTAINER -->
|
|
114
|
+
<table class="main" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; background: #ffffff; border-radius: 8px;">
|
|
115
|
+
|
|
116
|
+
<!-- START MAIN CONTENT AREA -->
|
|
117
|
+
<tr>
|
|
118
|
+
<td class="wrapper" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; box-sizing: border-box;">
|
|
119
|
+
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
|
|
120
|
+
<tr>
|
|
121
|
+
<td align="center" style="padding-top: 20px; padding-bottom: 12px;"><img src="https://static.ghost.org/v4.0.0/images/ghost-orb-1.png" width="60" height="60" style="width: 60px; height: 60px;" /></td>
|
|
122
|
+
</tr>
|
|
123
|
+
<tr>
|
|
124
|
+
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; vertical-align: top;">
|
|
125
|
+
<p class="title" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 21px; color: #3A464C; font-weight: normal; line-height: 25px; margin-bottom: 0px; margin-top: 50px; font-weight: 600; color: #15212A;">Welcome</p>
|
|
126
|
+
</td>
|
|
127
|
+
</tr>
|
|
128
|
+
<tr>
|
|
129
|
+
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; padding-top: 24px; padding-bottom: 10px;">
|
|
130
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 25px; margin-bottom: 40px;"> <strong style="font-weight: 600;">{{blogName}}</strong> is using Ghost to publish things on the internet! You've been invited to join them as a staff user.. Please click on the link below to activate your account.</p>
|
|
131
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 25px; margin-bottom: 40px;">
|
|
132
|
+
<a href="{{resetLink}}" target="_blank" style="display: inline-block; color: #ffffff; background-color: #15212A; border: solid 1px #15212A; border-radius: 5px; box-sizing: border-box; cursor: pointer; text-decoration: none; font-size: 16px; font-weight: normal; margin: 0; padding: 9px 22px 10px; border-color: #15212A;">Click here to activate your account</a>
|
|
133
|
+
</p>
|
|
134
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 25px; margin-bottom: 20px;"><strong style="font-weight: 600;">No idea what Ghost is?</strong> It's a simple, beautiful platform for running an online publication. Writers, businesses and individuals from all over the world use Ghost to publish their stories and ideas. <a href="http://ghost.org" style="color: #15212A;">Find out more</a>.</p>
|
|
135
|
+
|
|
136
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 25px; margin-bottom: 0px;">Have fun, and good luck!</p>
|
|
137
|
+
</td>
|
|
138
|
+
</tr>
|
|
139
|
+
</table>
|
|
140
|
+
</td>
|
|
141
|
+
</tr>
|
|
142
|
+
<tr>
|
|
143
|
+
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; vertical-align: top; padding-top: 80px; padding-bottom: 10px;">
|
|
144
|
+
<div class="footer">
|
|
145
|
+
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; color: #738A94; font-weight: normal; margin: 0; line-height: 18px; margin-bottom: 0px; font-size: 11px;">This email was sent from <a href="{{ siteUrl }}" style="color: #738A94;">{{ siteUrl }}</a> to <a href="mailto:{{recipientEmail}}" style="color: #738A94;">{{recipientEmail}}</a></p>
|
|
146
|
+
</div>
|
|
147
|
+
</td>
|
|
148
|
+
</tr>
|
|
149
|
+
|
|
150
|
+
<!-- END MAIN CONTENT AREA -->
|
|
151
|
+
</table>
|
|
152
|
+
|
|
153
|
+
<!-- END CENTERED CONTAINER -->
|
|
154
|
+
</div>
|
|
155
|
+
</td>
|
|
156
|
+
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;"> </td>
|
|
157
|
+
</tr>
|
|
158
|
+
</table>
|
|
159
|
+
</body>
|
|
160
|
+
</html>
|
|
@@ -8,7 +8,7 @@ const signinEmail = require('./emails/signin');
|
|
|
8
8
|
const signupEmail = require('./emails/signup');
|
|
9
9
|
const signupPaidEmail = require('./emails/signup-paid');
|
|
10
10
|
const subscribeEmail = require('./emails/subscribe');
|
|
11
|
-
const updateEmail = require('./emails/
|
|
11
|
+
const updateEmail = require('./emails/update-email');
|
|
12
12
|
const SingleUseTokenProvider = require('./SingleUseTokenProvider');
|
|
13
13
|
const urlUtils = require('../../../shared/url-utils');
|
|
14
14
|
const labsService = require('../../../shared/labs');
|
|
@@ -116,8 +116,8 @@ module.exports = ({t, siteTitle, email, url, accentColor = '#15212A', siteDomain
|
|
|
116
116
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
|
|
117
117
|
<tr>
|
|
118
118
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;">
|
|
119
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height:
|
|
120
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height:
|
|
119
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 24px; margin: 0; margin-bottom: 15px;">${t('Hey there,')}</p>
|
|
120
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 32px;">${t('Welcome back! Use this link to securely sign in to your {{siteTitle}} account:', {siteTitle})}</p>
|
|
121
121
|
<table border="0" cellpadding="0" cellspacing="0" class="btn btn-primary" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; box-sizing: border-box;">
|
|
122
122
|
<tbody>
|
|
123
123
|
<tr>
|
|
@@ -133,11 +133,11 @@ module.exports = ({t, siteTitle, email, url, accentColor = '#15212A', siteDomain
|
|
|
133
133
|
</tr>
|
|
134
134
|
</tbody>
|
|
135
135
|
</table>
|
|
136
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height:
|
|
137
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height:
|
|
136
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0; margin-bottom: 11px;">${t('For your security, the link will expire in 24 hours time.')}</p>
|
|
137
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0; margin-bottom: 30px;">${t('See you soon!')}</p>
|
|
138
138
|
<hr/>
|
|
139
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height:
|
|
140
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height:
|
|
139
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px;">${t('You can also copy & paste this URL into your browser:')}</p>
|
|
140
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height: 22px; margin-top:0; color: #3A464C;">${url}</p>
|
|
141
141
|
</td>
|
|
142
142
|
</tr>
|
|
143
143
|
|
|
@@ -145,12 +145,12 @@ module.exports = ({t, siteTitle, email, url, accentColor = '#15212A', siteDomain
|
|
|
145
145
|
|
|
146
146
|
<tr>
|
|
147
147
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; padding-top: 80px;">
|
|
148
|
-
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height:
|
|
148
|
+
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 16px; font-size: 11px; color: #738A94; font-weight: normal; margin: 0;">If you did not make this request, you can safely ignore this email.</p>
|
|
149
149
|
</td>
|
|
150
150
|
</tr>
|
|
151
151
|
<tr>
|
|
152
152
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; padding-top: 2px;">
|
|
153
|
-
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height:
|
|
153
|
+
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 16px; font-size: 11px; color: #738A94; font-weight: normal; margin: 0;">This message was sent from <a class="small" href="${siteUrl}" style="text-decoration: underline; color: #738A94; font-size: 11px;">${siteDomain}</a> to <a class="small" href="mailto:${email}" style="text-decoration: underline; color: #738A94; font-size: 11px;">${email}</a></p>
|
|
154
154
|
</td>
|
|
155
155
|
</tr>
|
|
156
156
|
|
|
@@ -116,8 +116,8 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
116
116
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
|
|
117
117
|
<tr>
|
|
118
118
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;">
|
|
119
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height:
|
|
120
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height:
|
|
119
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 24px; margin: 0; margin-bottom: 15px;">Hey there!</p>
|
|
120
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0; margin-bottom: 32px;">Thank you for subscribing to ${siteTitle}. Tap the link below to be automatically signed in:</p>
|
|
121
121
|
<table border="0" cellpadding="0" cellspacing="0" class="btn btn-primary" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; box-sizing: border-box;">
|
|
122
122
|
<tbody>
|
|
123
123
|
<tr>
|
|
@@ -133,11 +133,11 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
133
133
|
</tr>
|
|
134
134
|
</tbody>
|
|
135
135
|
</table>
|
|
136
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height:
|
|
137
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height:
|
|
136
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0; margin-bottom: 11px;">For your security, the link will expire in 24 hours time.</p>
|
|
137
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0; margin-bottom: 30px;">See you soon!</p>
|
|
138
138
|
<hr/>
|
|
139
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; line-height:
|
|
140
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height:
|
|
139
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0;">You can also copy & paste this URL into your browser:</p>
|
|
140
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height: 22px; margin-top: 0; color: #3A464C;">${url}</p>
|
|
141
141
|
</td>
|
|
142
142
|
</tr>
|
|
143
143
|
</table>
|
|
@@ -147,7 +147,7 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
147
147
|
<!-- START FOOTER -->
|
|
148
148
|
<tr>
|
|
149
149
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; padding-top: 2px;">
|
|
150
|
-
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height:
|
|
150
|
+
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 16px; font-size: 11px; color: #738A94; font-weight: normal; margin: 0;">This message was sent from <a class="small" href="${siteUrl}" style="text-decoration: underline; color: #738A94; font-size: 11px;">${siteDomain}</a> to <a class="small" href="mailto:${email}" style="text-decoration: underline; color: #738A94; font-size: 11px;">${email}</a></p>
|
|
151
151
|
</td>
|
|
152
152
|
</tr>
|
|
153
153
|
|
|
@@ -116,8 +116,8 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
116
116
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
|
|
117
117
|
<tr>
|
|
118
118
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;">
|
|
119
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height:
|
|
120
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height:
|
|
119
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 24px; margin: 0; margin-bottom: 15px;">Hey there!</p>
|
|
120
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0; margin-bottom: 32px;">Tap the link below to complete the signup process for ${siteTitle}, and be automatically signed in:</p>
|
|
121
121
|
<table border="0" cellpadding="0" cellspacing="0" class="btn btn-primary" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; box-sizing: border-box;">
|
|
122
122
|
<tbody>
|
|
123
123
|
<tr>
|
|
@@ -133,11 +133,11 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
133
133
|
</tr>
|
|
134
134
|
</tbody>
|
|
135
135
|
</table>
|
|
136
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height:
|
|
137
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height:
|
|
136
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0; margin-bottom: 11px;">For your security, the link will expire in 24 hours time.</p>
|
|
137
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0; margin-bottom: 30px;">See you soon!</p>
|
|
138
138
|
<hr/>
|
|
139
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; line-height:
|
|
140
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height:
|
|
139
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; line-height: 24px; margin: 0;">You can also copy & paste this URL into your browser:</p>
|
|
140
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height: 22px; margin-top: 0; color: #3A464C;">${url}</p>
|
|
141
141
|
</td>
|
|
142
142
|
</tr>
|
|
143
143
|
</table>
|
|
@@ -148,15 +148,15 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
148
148
|
|
|
149
149
|
<tr>
|
|
150
150
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; padding-top: 80px;">
|
|
151
|
-
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height:
|
|
151
|
+
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 16px; font-size: 11px; color: #738A94; font-weight: normal; margin: 0;">If you did not make this request, you can simply delete this message. You will not be signed up, and no account will be created for you.</p>
|
|
152
152
|
</td>
|
|
153
153
|
</tr>
|
|
154
154
|
<tr>
|
|
155
155
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; padding-top: 2px;">
|
|
156
|
-
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height:
|
|
156
|
+
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 16px; font-size: 11px; color: #738A94; font-weight: normal; margin: 0;">This message was sent from <a class="small" href="${siteUrl}" style="text-decoration: underline; color: #738A94; font-size: 11px;">${siteDomain}</a> to <a class="small" href="mailto:${email}" style="text-decoration: underline; color: #738A94; font-size: 11px;">${email}</a></p>
|
|
157
157
|
</td>
|
|
158
158
|
</tr>
|
|
159
|
-
|
|
159
|
+
|
|
160
160
|
<!-- END FOOTER -->
|
|
161
161
|
|
|
162
162
|
<!-- END MAIN CONTENT AREA -->
|
|
@@ -116,8 +116,8 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
116
116
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
|
|
117
117
|
<tr>
|
|
118
118
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;">
|
|
119
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height:
|
|
120
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height:
|
|
119
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 24px; margin: 0; margin-bottom: 15px;">Hey there,</p>
|
|
120
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 32px;">You're one tap away from subscribing to ${siteTitle} — please confirm your email address with this link:</p>
|
|
121
121
|
<table border="0" cellpadding="0" cellspacing="0" class="btn btn-primary" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; box-sizing: border-box;">
|
|
122
122
|
<tbody>
|
|
123
123
|
<tr>
|
|
@@ -133,11 +133,11 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
133
133
|
</tr>
|
|
134
134
|
</tbody>
|
|
135
135
|
</table>
|
|
136
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height:
|
|
137
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height:
|
|
136
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 11px;">For your security, the link will expire in 24 hours time.</p>
|
|
137
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 30px;">All the best!</p>
|
|
138
138
|
<hr/>
|
|
139
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height:
|
|
140
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height:
|
|
139
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px;">You can also copy & paste this URL into your browser:</p>
|
|
140
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height: 22px; margin-top: 0; color: #3A464C;">${url}</p>
|
|
141
141
|
</td>
|
|
142
142
|
</tr>
|
|
143
143
|
</table>
|
|
@@ -148,15 +148,15 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
148
148
|
|
|
149
149
|
<tr>
|
|
150
150
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; padding-top: 80px;">
|
|
151
|
-
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height:
|
|
151
|
+
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 16px; font-size: 11px; color: #738A94; font-weight: normal; margin: 0;">If you did not make this request, you can simply delete this message. <br />You will not be subscribed.</p>
|
|
152
152
|
</td>
|
|
153
153
|
</tr>
|
|
154
154
|
<tr>
|
|
155
155
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; padding-top: 2px;">
|
|
156
|
-
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height:
|
|
156
|
+
<p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 16px; font-size: 11px; color: #738A94; font-weight: normal; margin: 0;">This message was sent from <a class="small" href="${siteUrl}" style="text-decoration: underline; color: #738A94; font-size: 11px;">${siteDomain}</a> to <a class="small" href="mailto:${email}" style="text-decoration: underline; color: #738A94; font-size: 11px;">${email}</a></p>
|
|
157
157
|
</td>
|
|
158
158
|
</tr>
|
|
159
|
-
|
|
159
|
+
|
|
160
160
|
<!-- END FOOTER -->
|
|
161
161
|
|
|
162
162
|
<!-- END MAIN CONTENT AREA -->
|
|
@@ -108,8 +108,8 @@ module.exports = ({email, url}) => `
|
|
|
108
108
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
|
|
109
109
|
<tr>
|
|
110
110
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;">
|
|
111
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height:
|
|
112
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height:
|
|
111
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 24px; margin: 0; margin-bottom: 15px;">Hey there,</p>
|
|
112
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 32px;">Please confirm your email address with this link:</p>
|
|
113
113
|
<table border="0" cellpadding="0" cellspacing="0" class="btn btn-primary" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; box-sizing: border-box;">
|
|
114
114
|
<tbody>
|
|
115
115
|
<tr>
|
|
@@ -125,10 +125,10 @@ module.exports = ({email, url}) => `
|
|
|
125
125
|
</tr>
|
|
126
126
|
</tbody>
|
|
127
127
|
</table>
|
|
128
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height:
|
|
128
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 25px;">For your security, the link will expire in 24 hours time.</p>
|
|
129
129
|
<hr/>
|
|
130
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height:
|
|
131
|
-
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size:
|
|
130
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px;">You can also copy & paste this URL into your browser:</p>
|
|
131
|
+
<p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height: 22px; margin-top: 0; color: #738A94;">${url}</p>
|
|
132
132
|
</td>
|
|
133
133
|
</tr>
|
|
134
134
|
</table>
|
|
@@ -142,12 +142,12 @@ module.exports = ({email, url}) => `
|
|
|
142
142
|
<div class="footer" style="clear: both; Margin-top: 10px; text-align: center; width: 100%;">
|
|
143
143
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
|
|
144
144
|
<tr>
|
|
145
|
-
<td class="content-block" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; vertical-align: top; padding-bottom: 5px; padding-top: 15px; font-size:
|
|
145
|
+
<td class="content-block" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; vertical-align: top; padding-bottom: 5px; padding-top: 15px; font-size: 11px; line-height: 16px; color: #738A94; text-align: center;">
|
|
146
146
|
If you did not make this request, you can simply delete this message.<br/>This email address will not be used.
|
|
147
147
|
</td>
|
|
148
148
|
</tr>
|
|
149
149
|
<tr>
|
|
150
|
-
<td class="content-block" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; vertical-align: top; padding-bottom: 10px; padding-top: 10px; font-size:
|
|
150
|
+
<td class="content-block" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; vertical-align: top; padding-bottom: 10px; padding-top: 10px; font-size: 11px; line-height: 16px; color: #738A94; text-align: center;">
|
|
151
151
|
<span class="recipient-link" style="color: #738A94; font-size: 13px; text-align: center;">Sent to <a href="mailto:${email}" style="text-decoration: underline; color: #738A94; font-size: 13px; text-align: center;">${email}</a></span>
|
|
152
152
|
</td>
|
|
153
153
|
</tr>
|
|
@@ -3,9 +3,9 @@ const errors = require('@tryghost/errors');
|
|
|
3
3
|
const tpl = require('@tryghost/tpl');
|
|
4
4
|
const MembersSSR = require('@tryghost/members-ssr');
|
|
5
5
|
const db = require('../../data/db');
|
|
6
|
-
const MembersConfigProvider = require('./
|
|
6
|
+
const MembersConfigProvider = require('./MembersConfigProvider');
|
|
7
7
|
const MembersCSVImporter = require('@tryghost/members-importer');
|
|
8
|
-
const MembersStats = require('./stats/
|
|
8
|
+
const MembersStats = require('./stats/MembersStats');
|
|
9
9
|
const memberJobs = require('./jobs');
|
|
10
10
|
const logging = require('@tryghost/logging');
|
|
11
11
|
const urlUtils = require('../../../shared/url-utils');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const NewslettersService = require('./
|
|
1
|
+
const NewslettersService = require('./NewslettersService.js');
|
|
2
2
|
const SingleUseTokenProvider = require('../members/SingleUseTokenProvider');
|
|
3
3
|
const mail = require('../mail');
|
|
4
4
|
const models = require('../../models');
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
const {extract} = require('@extractus/oembed-extractor');
|
|
2
1
|
const logging = require('@tryghost/logging');
|
|
3
2
|
|
|
4
3
|
/**
|
|
@@ -39,6 +38,8 @@ class TwitterOEmbedProvider {
|
|
|
39
38
|
return null;
|
|
40
39
|
}
|
|
41
40
|
|
|
41
|
+
const {extract} = require('@extractus/oembed-extractor');
|
|
42
|
+
|
|
42
43
|
/** @type {object} */
|
|
43
44
|
const oembedData = await extract(url.href);
|
|
44
45
|
|
|
@@ -4,14 +4,14 @@ const externalRequest = require('../../lib/request-external');
|
|
|
4
4
|
const OEmbed = require('@tryghost/oembed-service');
|
|
5
5
|
const oembed = new OEmbed({config, externalRequest});
|
|
6
6
|
|
|
7
|
-
const NFT = require('./
|
|
7
|
+
const NFT = require('./NFTOEmbedProvider');
|
|
8
8
|
const nft = new NFT({
|
|
9
9
|
config: {
|
|
10
10
|
apiKey: config.get('opensea').privateReadOnlyApiKey
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
13
|
|
|
14
|
-
const Twitter = require('./
|
|
14
|
+
const Twitter = require('./TwitterOEmbedProvider');
|
|
15
15
|
const twitter = new Twitter({
|
|
16
16
|
config: {
|
|
17
17
|
bearerToken: config.get('twitter').privateReadOnlyToken
|
|
@@ -8,7 +8,7 @@ const getPostServiceInstance = () => {
|
|
|
8
8
|
const urlUtils = require('../../../shared/url-utils');
|
|
9
9
|
const labs = require('../../../shared/labs');
|
|
10
10
|
const models = require('../../models');
|
|
11
|
-
const PostStats = require('./stats/
|
|
11
|
+
const PostStats = require('./stats/PostStats');
|
|
12
12
|
const emailService = require('../email-service');
|
|
13
13
|
const settingsCache = require('../../../shared/settings-cache');
|
|
14
14
|
const settingsHelpers = require('../settings-helpers');
|