diff --git a/apps/client/src/app/components/admin-settings/admin-settings.component.html b/apps/client/src/app/components/admin-settings/admin-settings.component.html index 643737c4d..c2ed2f8f5 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.component.html +++ b/apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -21,8 +21,8 @@ Get Access diff --git a/apps/client/src/app/components/admin-settings/admin-settings.component.ts b/apps/client/src/app/components/admin-settings/admin-settings.component.ts index d030abb82..c08f2d473 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.component.ts +++ b/apps/client/src/app/components/admin-settings/admin-settings.component.ts @@ -2,7 +2,10 @@ import { GfAdminPlatformComponent } from '@ghostfolio/client/components/admin-pl import { GfAdminTagComponent } from '@ghostfolio/client/components/admin-tag/admin-tag.component'; import { GfDataProviderStatusComponent } from '@ghostfolio/client/components/data-provider-status/data-provider-status.component'; import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { PROPERTY_API_KEY_GHOSTFOLIO } from '@ghostfolio/common/config'; +import { + E_MAIL_LINE_BREAK, + PROPERTY_API_KEY_GHOSTFOLIO +} from '@ghostfolio/common/config'; import { ConfirmationDialogType } from '@ghostfolio/common/enums'; import { getDateFormatString } from '@ghostfolio/common/helper'; import { @@ -80,6 +83,13 @@ export class GfAdminSettingsComponent implements OnInit { public ghostfolioApiStatus: DataProviderGhostfolioStatusResponse; public isGhostfolioApiKeyValid: boolean; public isLoading = false; + public readonly premiumDataProviderMailHref = `mailto:hi@ghostfol.io?subject=Ghostfolio Premium Data Provider&body=${[ + 'Hello,', + '', + 'I am interested in the Ghostfolio Premium data provider. Could you please give me access so I can try it for some time?', + '', + 'Kind regards' + ].join(E_MAIL_LINE_BREAK)}`; public pricingUrl: string; public user: User; diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts index c5beb6c2d..52e0a14d4 100644 --- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts +++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts @@ -1,6 +1,7 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { DEFAULT_PAGE_SIZE, + E_MAIL_LINE_BREAK, NUMERICAL_PRECISION_THRESHOLD_3_FIGURES, NUMERICAL_PRECISION_THRESHOLD_4_FIGURES } from '@ghostfolio/common/config'; @@ -169,7 +170,7 @@ export class GfHoldingDetailDialogComponent implements OnInit { protected readonly pageSize = DEFAULT_PAGE_SIZE; protected quantity: number; protected quantityPrecision = 2; - protected reportDataGlitchMail: string; + protected reportDataGlitchMailHref: string; protected readonly round = round; protected readonly routerLinkAdminControlMarketData = internalRoutes.adminControl.subRoutes.marketData.routerLink; @@ -456,7 +457,20 @@ export class GfHoldingDetailDialogComponent implements OnInit { this.assetProfile?.symbol ? ` (${this.assetProfile.symbol})` : '' }`; - this.reportDataGlitchMail = `mailto:hi@ghostfol.io?subject=${reportDataGlitchSubject}&body=Hello%0D%0DI would like to report a data glitch for%0D%0DSymbol: ${this.assetProfile?.symbol}%0DData Source: ${this.assetProfile?.dataSource}%0D%0DAdditional notes:%0D%0DCan you please take a look?%0D%0DKind regards`; + this.reportDataGlitchMailHref = `mailto:hi@ghostfol.io?subject=${reportDataGlitchSubject}&body=${[ + 'Hello', + '', + 'I would like to report a data glitch for', + '', + `Symbol: ${this.assetProfile?.symbol}`, + `Data Source: ${this.assetProfile?.dataSource}`, + '', + 'Additional notes:', + '', + 'Can you please take a look?', + '', + 'Kind regards' + ].join(E_MAIL_LINE_BREAK)}`; if (this.assetProfile?.assetClass) { this.assetClass = translate(this.assetProfile?.assetClass); diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html index 04388bddb..f233df8b6 100644 --- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html +++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -456,7 +456,10 @@ dataSource?.data.length > 0 && data.hasPermissionToReportDataGlitch === true ) { - Report Data Glitch... @if (!user?.subscription?.expiresAt) { - Try Premium } @else if (hasPermissionToRequestOwnUserDeletion) { - Close Account } diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index e071a72c5..f7bafb101 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -184,6 +184,8 @@ export const DERIVED_CURRENCIES = [ } ]; +export const E_MAIL_LINE_BREAK = '%0D%0A'; + export const GATHER_ASSET_PROFILE_PROCESS_JOB_NAME = 'GATHER_ASSET_PROFILE'; export const GATHER_ASSET_PROFILE_PROCESS_JOB_OPTIONS: JobOptions = { attempts: 12,