diff --git a/.agents/skills/karpathy-guidelines/SKILL.md b/.agents/skills/karpathy-guidelines/SKILL.md new file mode 100644 index 000000000..029e4d55d --- /dev/null +++ b/.agents/skills/karpathy-guidelines/SKILL.md @@ -0,0 +1,72 @@ +--- +name: karpathy-guidelines +description: Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria. +license: MIT +--- + +# Karpathy Guidelines + +Behavioral guidelines to reduce common LLM coding mistakes, derived from [Andrej Karpathy's observations](https://x.com/karpathy/status/2015883857489522876) on LLM coding pitfalls. + +**Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment. + +## 1. Think Before Coding + +**Don't assume. Don't hide confusion. Surface tradeoffs.** + +Before implementing: + +- State your assumptions explicitly. If uncertain, ask. +- If multiple interpretations exist, present them - don't pick silently. +- If a simpler approach exists, say so. Push back when warranted. +- If something is unclear, stop. Name what's confusing. Ask. + +## 2. Simplicity First + +**Minimum code that solves the problem. Nothing speculative.** + +- No features beyond what was asked. +- No abstractions for single-use code. +- No "flexibility" or "configurability" that wasn't requested. +- No error handling for impossible scenarios. +- If you write 200 lines and it could be 50, rewrite it. + +Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify. + +## 3. Surgical Changes + +**Touch only what you must. Clean up only your own mess.** + +When editing existing code: + +- Don't "improve" adjacent code, comments, or formatting. +- Don't refactor things that aren't broken. +- Match existing style, even if you'd do it differently. +- If you notice unrelated dead code, mention it - don't delete it. + +When your changes create orphans: + +- Remove imports/variables/functions that YOUR changes made unused. +- Don't remove pre-existing dead code unless asked. + +The test: Every changed line should trace directly to the user's request. + +## 4. Goal-Driven Execution + +**Define success criteria. Loop until verified.** + +Transform tasks into verifiable goals: + +- "Add validation" → "Write tests for invalid inputs, then make them pass" +- "Fix the bug" → "Write a test that reproduces it, then make it pass" +- "Refactor X" → "Ensure tests pass before and after" + +For multi-step tasks, state a brief plan: + +``` +1. [Step] → verify: [check] +2. [Step] → verify: [check] +3. [Step] → verify: [check] +``` + +Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification. diff --git a/.claude/skills/karpathy-guidelines b/.claude/skills/karpathy-guidelines new file mode 120000 index 000000000..743bef527 --- /dev/null +++ b/.claude/skills/karpathy-guidelines @@ -0,0 +1 @@ +../../.agents/skills/karpathy-guidelines \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index e968ebdba..4fedaa3a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 3.22.0 - 2026-07-08 ### Added @@ -13,7 +13,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the user account deletion flow in the user settings of the user account page +- Improved the date formatting of the first activity in the historical market data table of the admin control panel +- Set the change detection strategy to `OnPush` in the activities page +- Set the change detection strategy to `OnPush` in the allocations page +- Set the change detection strategy to `OnPush` in the analysis page +- Set the change detection strategy to `OnPush` in the portfolio holdings page +- Set the change detection strategy to `OnPush` in the activities page - Set the change detection strategy to `OnPush` in the _FIRE_ page +- Set the change detection strategy to `OnPush` in the users section of the admin control panel +- Hardened the endpoint to update a property of the admin control panel by validating the `key` path parameter +- Renamed the `SymbolProfileOverrides` _Prisma_ data model to `AssetProfileOverrides` while keeping the database table name - Improved the language localization for Dutch (`nl`) - Improved the language localization for French (`fr`) - Improved the language localization for German (`de`) diff --git a/apps/api/src/app/activities/activities.service.ts b/apps/api/src/app/activities/activities.service.ts index b404b6a37..bd08d05f9 100644 --- a/apps/api/src/app/activities/activities.service.ts +++ b/apps/api/src/app/activities/activities.service.ts @@ -615,14 +615,14 @@ export class ActivitiesService { }, { OR: [ - { SymbolProfileOverrides: { is: null } }, - { SymbolProfileOverrides: { assetClass: null } } + { assetProfileOverrides: { is: null } }, + { assetProfileOverrides: { assetClass: null } } ] } ] }, { - SymbolProfileOverrides: { + assetProfileOverrides: { OR: filtersByAssetClass.map(({ id }) => { return { assetClass: AssetClass[id] }; }) diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index 019468dfd..26e0de0ac 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -29,7 +29,11 @@ import { ScraperConfiguration } from '@ghostfolio/common/interfaces'; import { permissions } from '@ghostfolio/common/permissions'; -import type { DateRange, RequestWithUser } from '@ghostfolio/common/types'; +import type { + DateRange, + PropertyKey, + RequestWithUser +} from '@ghostfolio/common/types'; import { Body, @@ -55,6 +59,7 @@ import { isDate, parseISO } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { AdminService } from './admin.service'; +import { PropertyKeyPipe } from './pipes/property-key.pipe'; @Controller('admin') export class AdminController { @@ -310,7 +315,7 @@ export class AdminController { @Put('settings/:key') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) public async updateProperty( - @Param('key') key: string, + @Param('key', PropertyKeyPipe) key: PropertyKey, @Body() data: UpdatePropertyDto ) { return this.adminService.putSetting(key, data.value); diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index e6f5fd700..8325fa90e 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -299,7 +299,7 @@ export class AdminService { ); } } else { - const symbolProfileOverrides = { + const assetProfileOverrides = { assetClass: assetClass as AssetClass, assetSubClass: assetSubClass as AssetSubClass, countries: countries as Prisma.JsonArray, @@ -320,7 +320,7 @@ export class AdminService { symbolMapping, ...this.symbolProfileService.getAssetProfileUpdateInput( { dataSource, symbol }, - symbolProfileOverrides + assetProfileOverrides ) }; @@ -344,17 +344,17 @@ export class AdminService { } } - public async putSetting(key: string, value: string) { + public async putSetting(key: PropertyKey, value: string) { let response: Property; if (value) { response = await this.propertyService.put({ - value, - key: key as PropertyKey + key, + value }); } else { response = await this.propertyService.delete({ - key: key as PropertyKey + key }); } diff --git a/apps/api/src/app/admin/pipes/property-key.pipe.ts b/apps/api/src/app/admin/pipes/property-key.pipe.ts new file mode 100644 index 000000000..a980b552b --- /dev/null +++ b/apps/api/src/app/admin/pipes/property-key.pipe.ts @@ -0,0 +1,29 @@ +import * as config from '@ghostfolio/common/config'; +import type { PropertyKey } from '@ghostfolio/common/types'; + +import { BadRequestException, Injectable, PipeTransform } from '@nestjs/common'; + +@Injectable() +export class PropertyKeyPipe implements PipeTransform { + private readonly allowedKeys: Set; + + public constructor() { + this.allowedKeys = new Set( + Object.entries(config) + .filter(([key]) => { + return key.startsWith('PROPERTY_'); + }) + .map(([, value]) => { + return value as string; + }) + ); + } + + public transform(value: string): PropertyKey { + if (!this.allowedKeys.has(value)) { + throw new BadRequestException(`Invalid property key: ${value}`); + } + + return value as PropertyKey; + } +} diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts index 68b8d5627..b1a36df26 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts @@ -198,6 +198,7 @@ export class AssetProfilesService { take: 1 }, assetClass: true, + assetProfileOverrides: true, assetSubClass: true, comment: true, countries: true, @@ -210,8 +211,7 @@ export class AssetProfilesService { name: true, scraperConfiguration: true, sectors: true, - symbol: true, - SymbolProfileOverrides: true + symbol: true } }), this.prismaService.symbolProfile.count({ where }) @@ -268,7 +268,7 @@ export class AssetProfilesService { const { assetClass, assetSubClass, countries, name, sectors } = applyAssetProfileOverrides( assetProfile, - assetProfile.SymbolProfileOverrides + assetProfile.assetProfileOverrides ); const countriesCount = countries ? Object.keys(countries).length : 0; diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 0c159bc1c..4dcf16034 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -535,6 +535,14 @@ export class UserService { user.subscription.offer.label = undefined; } + if ( + !hasRole(user, Role.DEMO) && + (user.provider !== 'ANONYMOUS' || + user.subscription?.type === SubscriptionType.Premium) + ) { + currentPermissions.push(permissions.requestOwnUserDeletion); + } + if (hasRole(user, Role.ADMIN)) { currentPermissions.push(permissions.syncDemoUserAccount); } diff --git a/apps/api/src/services/symbol-profile/symbol-profile.service.ts b/apps/api/src/services/symbol-profile/symbol-profile.service.ts index 5d0968c5c..7157f0856 100644 --- a/apps/api/src/services/symbol-profile/symbol-profile.service.ts +++ b/apps/api/src/services/symbol-profile/symbol-profile.service.ts @@ -12,10 +12,10 @@ import { Sector } from '@ghostfolio/common/interfaces/sector.interface'; import { Injectable } from '@nestjs/common'; import { + AssetProfileOverrides, DataSource, Prisma, - SymbolProfile, - SymbolProfileOverrides + SymbolProfile } from '@prisma/client'; import { continents, countries } from 'countries-list'; @@ -85,12 +85,12 @@ export class SymbolProfileService { } return { - SymbolProfileOverrides: { + assetProfileOverrides: { upsert: { create: - data as Prisma.SymbolProfileOverridesCreateWithoutSymbolProfileInput, + data as Prisma.AssetProfileOverridesCreateWithoutSymbolProfileInput, update: - data as Prisma.SymbolProfileOverridesUpdateWithoutSymbolProfileInput + data as Prisma.AssetProfileOverridesUpdateWithoutSymbolProfileInput } } }; @@ -112,7 +112,7 @@ export class SymbolProfileService { select: { date: true }, take: 1 }, - SymbolProfileOverrides: true + assetProfileOverrides: true }, where: { OR: aAssetProfileIdentifiers.map(({ dataSource, symbol }) => { @@ -137,7 +137,7 @@ export class SymbolProfileService { _count: { select: { activities: true, watchedBy: true } }, - SymbolProfileOverrides: true + assetProfileOverrides: true }, where: { id: { @@ -174,6 +174,7 @@ export class SymbolProfileService { { dataSource, symbol }: AssetProfileIdentifier, { assetClass, + assetProfileOverrides, assetSubClass, comment, countries, @@ -185,13 +186,13 @@ export class SymbolProfileService { scraperConfiguration, sectors, symbolMapping, - SymbolProfileOverrides, url }: Prisma.SymbolProfileUpdateInput ) { return this.prismaService.symbolProfile.update({ data: { assetClass, + assetProfileOverrides, assetSubClass, comment, countries, @@ -203,7 +204,6 @@ export class SymbolProfileService { scraperConfiguration, sectors, symbolMapping, - SymbolProfileOverrides, url }, where: { dataSource_symbol: { dataSource, symbol } } @@ -216,13 +216,13 @@ export class SymbolProfileService { activities?: { date: Date; }[]; - SymbolProfileOverrides: SymbolProfileOverrides; + assetProfileOverrides: AssetProfileOverrides; })[] ): EnhancedSymbolProfile[] { return symbolProfiles.map((symbolProfile) => { const symbolProfileWithOverrides = applyAssetProfileOverrides( symbolProfile, - symbolProfile.SymbolProfileOverrides + symbolProfile.assetProfileOverrides ); const item = { @@ -252,7 +252,7 @@ export class SymbolProfileService { item.dateOfFirstActivity = symbolProfile.activities?.[0]?.date; delete item.activities; - delete item.SymbolProfileOverrides; + delete item.assetProfileOverrides; return item; }); diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts index ae0f8fda2..c64405cb6 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts @@ -4,10 +4,7 @@ import { DEFAULT_LOCALE, DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config'; -import { - canDeleteAssetProfile, - getDateFormatString -} from '@ghostfolio/common/helper'; +import { canDeleteAssetProfile } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier, AssetProfileItem, @@ -153,7 +150,6 @@ export class GfAdminMarketDataComponent implements AfterViewInit, OnInit { ]; protected readonly canDeleteAssetProfile = canDeleteAssetProfile; protected dataSource = new MatTableDataSource(); - protected defaultDateFormat: string; protected readonly displayedColumns: string[] = []; protected readonly filters$ = new Subject(); protected isLoading = true; @@ -236,10 +232,6 @@ export class GfAdminMarketDataComponent implements AfterViewInit, OnInit { .subscribe((state) => { if (state?.user) { this.user = state.user; - - this.defaultDateFormat = getDateFormatString( - this.user.settings.locale - ); } }); diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.html b/apps/client/src/app/components/admin-market-data/admin-market-data.html index 83703b548..ae7adfdd8 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.html +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -147,7 +147,13 @@ First Activity - {{ (element.date | date: defaultDateFormat) ?? '' }} + @if (element.date) { + + } 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 76af96c4e..8ee6250e5 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,7 +21,7 @@ Get Access diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts index 5460745f5..4b9848cf8 100644 --- a/apps/client/src/app/components/admin-users/admin-users.component.ts +++ b/apps/client/src/app/components/admin-users/admin-users.component.ts @@ -27,6 +27,7 @@ import { GfValueComponent } from '@ghostfolio/ui/value'; import { CommonModule } from '@angular/common'; import { + ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, @@ -67,6 +68,7 @@ import { interval } from 'rxjs'; import { switchMap, tap } from 'rxjs/operators'; @Component({ + changeDetection: ChangeDetectionStrategy.OnPush, imports: [ CommonModule, GfPremiumIndicatorComponent, @@ -165,6 +167,8 @@ export class GfAdminUsersComponent implements OnInit { this.user.permissions, permissions.impersonateAllUsers ); + + this.changeDetectorRef.markForCheck(); } }), switchMap(() => this.route.paramMap) @@ -196,6 +200,8 @@ export class GfAdminUsersComponent implements OnInit { pageIndex: this.paginator().pageIndex, showLoading: false }); + + this.changeDetectorRef.markForCheck(); }); } 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 b2cdedbc5..c5beb6c2d 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 @@ -456,7 +456,7 @@ 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.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`; if (this.assetProfile?.assetClass) { this.assetClass = translate(this.assetProfile?.assetClass); diff --git a/apps/client/src/app/components/home-holdings/home-holdings.component.ts b/apps/client/src/app/components/home-holdings/home-holdings.component.ts index 661e21163..a789f3c66 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.component.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.component.ts @@ -15,6 +15,7 @@ import { GfToggleComponent } from '@ghostfolio/ui/toggle'; import { GfTreemapChartComponent } from '@ghostfolio/ui/treemap-chart'; import { + ChangeDetectionStrategy, ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, @@ -32,6 +33,7 @@ import { gridOutline, reorderFourOutline } from 'ionicons/icons'; import { DeviceDetectorService } from 'ngx-device-detector'; @Component({ + changeDetection: ChangeDetectionStrategy.OnPush, imports: [ FormsModule, GfHoldingsTableComponent, @@ -88,6 +90,8 @@ export class GfHomeHoldingsComponent implements OnInit { .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe((impersonationId) => { this.hasImpersonationId = !!impersonationId; + + this.changeDetectorRef.markForCheck(); }); this.userService.stateChanged @@ -107,9 +111,9 @@ export class GfHomeHoldingsComponent implements OnInit { ); this.initialize(); - - this.changeDetectorRef.markForCheck(); } + + this.changeDetectorRef.markForCheck(); }); this.viewModeFormControl.valueChanges diff --git a/apps/client/src/app/components/home-overview/home-overview.html b/apps/client/src/app/components/home-overview/home-overview.html index 8361c5b88..0ca4912b9 100644 --- a/apps/client/src/app/components/home-overview/home-overview.html +++ b/apps/client/src/app/components/home-overview/home-overview.html @@ -86,7 +86,6 @@
- @if (errors?.length > 0 && !isLoading) { + @if (errors()?.length > 0 && !isLoading()) { }
- @if (isLoading) { + @if (isLoading()) {
- {{ unit }} + {{ unit() }}
- @if (showDetails) { + @if (showDetails()) {
@@ -50,11 +50,11 @@
diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts index 56e75ec1e..a48d77a2d 100644 --- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts +++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts @@ -13,10 +13,11 @@ import { GfValueComponent } from '@ghostfolio/ui/value'; import { ChangeDetectionStrategy, Component, + effect, ElementRef, - Input, - OnChanges, - ViewChild + inject, + input, + viewChild } from '@angular/core'; import { IonIcon } from '@ionic/angular/standalone'; import { CountUp } from 'countup.js'; @@ -32,58 +33,68 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; styleUrls: ['./portfolio-performance.component.scss'], templateUrl: './portfolio-performance.component.html' }) -export class GfPortfolioPerformanceComponent implements OnChanges { - @Input() deviceType: string; - @Input() errors: ResponseError['errors']; - @Input() isLoading: boolean; - @Input() locale = getLocale(); - @Input() performance: PortfolioPerformance; - @Input() precision: number; - @Input() showDetails: boolean; - @Input() unit: string; +export class GfPortfolioPerformanceComponent { + public readonly errors = input(); + public readonly isLoading = input(); + public readonly locale = input(getLocale()); + public readonly performance = input.required(); + public readonly precision = input.required({ + transform: (value) => { + return value >= 0 ? value : 2; + } + }); + public readonly showDetails = input(false); + public readonly unit = input.required(); - @ViewChild('value') value: ElementRef; + private readonly value = + viewChild.required>('value'); - public constructor(private notificationService: NotificationService) { - addIcons({ timeOutline }); - } + private readonly notificationService = inject(NotificationService); - public ngOnChanges() { - this.precision = this.precision >= 0 ? this.precision : 2; + public constructor() { + addIcons({ timeOutline }); - if (this.isLoading) { - if (this.value?.nativeElement) { - this.value.nativeElement.innerHTML = ''; - } - } else { - if (isNumber(this.performance?.currentValueInBaseCurrency)) { - new CountUp('value', this.performance?.currentValueInBaseCurrency, { - decimal: getNumberFormatDecimal(this.locale), - decimalPlaces: this.precision, - duration: 1, - separator: getNumberFormatGroup(this.locale) - }).start(); - } else if (this.showDetails === false) { - new CountUp( - 'value', - this.performance?.netPerformancePercentageWithCurrencyEffect * 100, - { - decimal: getNumberFormatDecimal(this.locale), - decimalPlaces: 2, - duration: 1, - separator: getNumberFormatGroup(this.locale) - } - ).start(); + effect(() => { + if (this.isLoading()) { + if (this.value().nativeElement) { + this.value().nativeElement.innerHTML = ''; + } } else { - this.value.nativeElement.innerHTML = '*****'; + if (isNumber(this.performance().currentValueInBaseCurrency)) { + new CountUp('value', this.performance().currentValueInBaseCurrency, { + decimal: getNumberFormatDecimal(this.locale()), + decimalPlaces: this.precision(), + duration: 1, + separator: getNumberFormatGroup(this.locale()) + }).start(); + } else if (this.showDetails() === false) { + new CountUp( + 'value', + this.performance().netPerformancePercentageWithCurrencyEffect * 100, + { + decimal: getNumberFormatDecimal(this.locale()), + decimalPlaces: 2, + duration: 1, + separator: getNumberFormatGroup(this.locale()) + } + ).start(); + } else { + this.value().nativeElement.innerHTML = '*****'; + } } - } + }); } - public onShowErrors() { - const errorMessageParts = []; + protected onShowErrors() { + const errors = this.errors(); + + if (!errors?.length) { + return; + } + + const errorMessageParts: string[] = []; - for (const error of this.errors) { + for (const error of errors) { errorMessageParts.push(`${error.symbol} (${error.dataSource})`); } diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts index 1b23a6df9..bdf2c3eb6 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts @@ -52,7 +52,7 @@ export class GfUserAccountMembershipComponent { public priceId: string; public routerLinkPricing = publicRoutes.pricing.routerLink; public trySubscriptionMail = - 'mailto:hi@ghostfol.io?Subject=Ghostfolio Premium Trial&body=Hello%0D%0DI am interested in Ghostfolio Premium. Can you please send me a coupon code to try it for some time?%0D%0DKind regards'; + 'mailto:hi@ghostfol.io?subject=Ghostfolio Premium Trial&body=Hello%0D%0DI am interested in Ghostfolio Premium. Can you please send me a coupon code to try it for some time?%0D%0DKind regards'; public user: User; public constructor( @@ -147,7 +147,7 @@ export class GfUserAccountMembershipComponent { .subscribe(({ apiKey }) => { this.notificationService.alert({ copyValue: apiKey, - discardLabel: $localize`Okay`, + discardLabel: $localize`Close`, message: $localize`Set this API key in your self-hosted environment:`, title: $localize`Ghostfolio Premium Data Provider API Key` }); diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts index 948c5a25e..c8210b0c3 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -71,11 +71,13 @@ import { catchError } from 'rxjs/operators'; export class GfUserAccountSettingsComponent implements OnInit { public appearancePlaceholder = $localize`Auto`; public baseCurrency: string; + public closeUserAccountMail: string; public currencies: string[] = []; public deleteOwnUserForm = this.formBuilder.group({ accessToken: ['', Validators.required] }); public hasPermissionToDeleteOwnUser: boolean; + public hasPermissionToRequestOwnUserDeletion: boolean; public hasPermissionToUpdateViewMode: boolean; public hasPermissionToUpdateUserSettings: boolean; public isAccessTokenHidden = true; @@ -124,11 +126,18 @@ export class GfUserAccountSettingsComponent implements OnInit { if (state?.user) { this.user = state.user; + this.closeUserAccountMail = `mailto:hi@ghostfol.io?subject=Delete Account&body=Hello%0D%0DPlease delete my Ghostfolio account.%0D%0DUser ID: ${this.user.id}%0D%0DKind regards`; + this.hasPermissionToDeleteOwnUser = hasPermission( this.user.permissions, permissions.deleteOwnUser ); + this.hasPermissionToRequestOwnUserDeletion = hasPermission( + this.user.permissions, + permissions.requestOwnUserDeletion + ); + this.hasPermissionToUpdateUserSettings = hasPermission( this.user.permissions, permissions.updateUserSettings diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.html b/apps/client/src/app/components/user-account-settings/user-account-settings.html index cefa3a0a1..351e718ec 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.html +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -280,61 +280,81 @@
-
- @if (hasPermissionToDeleteOwnUser) { + @if ( + hasPermissionToDeleteOwnUser || hasPermissionToRequestOwnUserDeletion + ) {
-
-
}
diff --git a/apps/client/src/app/pages/faq/saas/saas-page.html b/apps/client/src/app/pages/faq/saas/saas-page.html index e832676bf..fc39acc53 100644 --- a/apps/client/src/app/pages/faq/saas/saas-page.html +++ b/apps/client/src/app/pages/faq/saas/saas-page.html @@ -96,7 +96,7 @@ Request your student discount - here with + here with your university e-mail address. diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index 41ff570c2..91f4b6210 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -16,6 +16,7 @@ import { GfFabComponent } from '@ghostfolio/ui/fab'; import { DataService } from '@ghostfolio/ui/services'; import { + ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, @@ -38,6 +39,7 @@ import { GfImportActivitiesDialogComponent } from './import-activities-dialog/im import { ImportActivitiesDialogParams } from './import-activities-dialog/interfaces/interfaces'; @Component({ + changeDetection: ChangeDetectionStrategy.OnPush, imports: [ GfActivitiesTableComponent, GfFabComponent, @@ -112,6 +114,8 @@ export class GfActivitiesPageComponent implements OnInit { .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe((impersonationId) => { this.hasImpersonationId = !!impersonationId; + + this.changeDetectorRef.markForCheck(); }); this.userService.stateChanged diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts index 1ed8bfa66..f1dfed942 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts @@ -22,6 +22,7 @@ import { GfValueComponent } from '@ghostfolio/ui/value'; import { GfWorldMapChartComponent } from '@ghostfolio/ui/world-map-chart'; import { + ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, @@ -48,6 +49,7 @@ import { filter, switchMap, tap } from 'rxjs'; import { AllocationsPageParams } from './interfaces/interfaces'; @Component({ + changeDetection: ChangeDetectionStrategy.OnPush, imports: [ GfPortfolioProportionChartComponent, GfPremiumIndicatorComponent, @@ -161,6 +163,8 @@ export class GfAllocationsPageComponent implements OnInit { .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe((impersonationId) => { this.hasImpersonationId = !!impersonationId; + + this.changeDetectorRef.markForCheck(); }); this.userService.stateChanged diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts index 6c49a9030..ae41f54c8 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts @@ -25,6 +25,7 @@ import { GfValueComponent } from '@ghostfolio/ui/value'; import { Clipboard } from '@angular/cdk/clipboard'; import { + ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, @@ -51,6 +52,7 @@ import { DeviceDetectorService } from 'ngx-device-detector'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; @Component({ + changeDetection: ChangeDetectionStrategy.OnPush, imports: [ GfBenchmarkComparatorComponent, GfInvestmentChartComponent, @@ -148,6 +150,8 @@ export class GfAnalysisPageComponent implements OnInit { .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe((impersonationId) => { this.hasImpersonationId = !!impersonationId; + + this.changeDetectorRef.markForCheck(); }); this.userService.stateChanged @@ -167,6 +171,8 @@ export class GfAnalysisPageComponent implements OnInit { this.update(); } + + this.changeDetectorRef.markForCheck(); }); } @@ -229,6 +235,8 @@ export class GfAnalysisPageComponent implements OnInit { } else if (mode === 'portfolio') { this.isLoadingPortfolioPrompt = false; } + + this.changeDetectorRef.markForCheck(); }); } @@ -382,6 +390,7 @@ export class GfAnalysisPageComponent implements OnInit { }); this.fetchDividendsAndInvestments(); + this.changeDetectorRef.markForCheck(); } diff --git a/apps/client/src/app/pages/pricing/pricing-page.html b/apps/client/src/app/pages/pricing/pricing-page.html index 23693457c..ddd92892a 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.html +++ b/apps/client/src/app/pages/pricing/pricing-page.html @@ -332,7 +332,7 @@ } please   - contact us   @@ -343,7 +343,7 @@   Request it   - here + here   with your university e-mail address.

diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index c9f75afde..3ef04ff96 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -498,6 +498,14 @@ 62 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Divisa @@ -623,7 +631,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1331,7 +1339,7 @@ Està segur qeu vol eliminar aquest cupó? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -1339,7 +1347,7 @@ Està segur que vol eliminar aquest missatge del sistema? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -1347,7 +1355,7 @@ Està segur que vol depurar el cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -1355,7 +1363,7 @@ Si us plau, afegeixi el seu missatge del sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -1371,7 +1379,7 @@ per Usuari apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -1447,7 +1455,7 @@ Afegir apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1587,7 +1595,7 @@ Està segur que vol eliminar aquest usuari? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -1695,7 +1703,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -1791,7 +1799,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -1871,7 +1879,7 @@ en Actiiu apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -1879,7 +1887,7 @@ Finalitzat apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -2091,7 +2099,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -2183,7 +2191,7 @@ Les dades del mercat s’han retardat apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -2526,6 +2534,14 @@ 204 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Concedeix accés @@ -2579,7 +2595,7 @@ Introduïu el vostre codi de cupó. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -2587,7 +2603,7 @@ No s’ha pogut bescanviar el codi de cupó apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -2603,7 +2619,7 @@ El codi del cupó s’ha bescanviat apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -2611,7 +2627,7 @@ Torna a carregar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -2667,7 +2683,7 @@ De debò vols tancar el teu compte de Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -2683,7 +2699,7 @@ De debò vols eliminar aquest mètode d’inici de sessió? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -2699,7 +2715,7 @@ Ups! Hi ha hagut un error en configurar l’autenticació biomètrica. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -2778,6 +2794,18 @@ 153 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Aparença @@ -2870,7 +2898,7 @@ 255 - + Export Data Exporta dades @@ -2883,7 +2911,7 @@ Zona de perill apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -2891,7 +2919,7 @@ Tanca el compte apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -2943,7 +2971,7 @@ D’acord apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -3515,6 +3543,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Bons @@ -3638,6 +3674,10 @@ Creation Creation + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -3676,7 +3716,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -4772,7 +4812,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -5265,7 +5305,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6677,7 +6717,7 @@ Alternativa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6685,7 +6725,7 @@ Aplicació apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6753,7 +6793,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6777,7 +6817,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6789,7 +6829,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6801,7 +6841,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6809,7 +6849,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6817,7 +6857,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6825,7 +6865,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6833,7 +6873,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6841,7 +6881,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7129,7 +7169,7 @@ has been copied to the clipboard apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7507,7 +7547,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7515,7 +7555,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7871,7 +7911,7 @@ Security token apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7883,7 +7923,7 @@ Do you really want to generate a new security token for this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8093,7 +8133,7 @@ Demo user account has been synced. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 1d63e4ddc..313a22ce3 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -270,7 +270,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -538,7 +538,7 @@ Möchtest du diesen Gutscheincode wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -546,7 +546,7 @@ Möchtest du den Cache wirklich leeren? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -554,7 +554,7 @@ Bitte gebe deine Systemmeldung ein: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -562,7 +562,7 @@ pro Benutzer apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -638,7 +638,7 @@ Hinzufügen apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -666,7 +666,7 @@ Möchtest du diesen Benutzer wirklich löschen? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -768,6 +768,10 @@ Creation Erstellung + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -810,7 +814,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -850,7 +854,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -1186,7 +1190,7 @@ Okay apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -1254,7 +1258,7 @@ Bitte gebe deinen Gutscheincode ein. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -1262,7 +1266,7 @@ Gutscheincode konnte nicht eingelöst werden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -1278,7 +1282,7 @@ Gutscheincode wurde eingelöst apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -1286,7 +1290,7 @@ Neu laden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -1294,7 +1298,7 @@ Möchtest du diese Anmeldemethode wirklich löschen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -1429,6 +1433,14 @@ 59 + + The value has been copied to the clipboard + Der Wert wurde in die Zwischenablage kopiert + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Zugang gewähren @@ -1505,6 +1517,14 @@ 10 + + Copy + Kopieren + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Währung @@ -2274,7 +2294,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -2873,6 +2893,18 @@ 190 + + Close Account + Konto schliessen + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Aussehen @@ -3466,7 +3498,7 @@ gerade eben apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -4389,6 +4421,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + Bitte lösche aus Sicherheitsgründen zuerst alle Aktivitäten und Konten, bevor dein Ghostfolio Konto geschlossen werden kann. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Anleihen @@ -5013,7 +5053,7 @@ 133 - + Export Data Daten exportieren @@ -5660,7 +5700,7 @@ Weltweit apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6048,7 +6088,7 @@ Möchtest du diese Systemmeldung wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -6192,7 +6232,7 @@ Die Marktdaten sind verzögert für apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6216,7 +6256,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6493,7 +6533,7 @@ Aktiv apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6501,7 +6541,7 @@ Abgeschlossen apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6589,7 +6629,7 @@ Möchtest du dieses Ghostfolio Konto wirklich schliessen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6605,7 +6645,7 @@ Gefahrenzone apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6613,7 +6653,7 @@ Konto schliessen apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6653,7 +6693,7 @@ Ups! Beim Einrichten der biometrischen Authentifizierung ist ein Fehler aufgetreten. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6701,7 +6741,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6709,7 +6749,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6777,7 +6817,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6801,7 +6841,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6813,7 +6853,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6825,7 +6865,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6833,7 +6873,7 @@ Datenschutz apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6841,7 +6881,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6849,7 +6889,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6857,7 +6897,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6865,7 +6905,7 @@ Vermögen apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7153,7 +7193,7 @@ wurde in die Zwischenablage kopiert apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7531,7 +7571,7 @@ API-Schlüssel für den Ghostfolio Premium Datenanbieter apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7539,7 +7579,7 @@ Möchtest du wirklich einen neuen API-Schlüssel erstellen? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7895,7 +7935,7 @@ Sicherheits-Token apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7907,7 +7947,7 @@ Möchtest du für diesen Benutzer wirklich ein neues Sicherheits-Token generieren? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8093,7 +8133,7 @@ Demo Benutzerkonto wurde synchronisiert. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index f459717b1..e99def710 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -271,7 +271,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -539,7 +539,7 @@ ¿Seguro que quieres eliminar este cupón? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -547,7 +547,7 @@ ¿Seguro que quieres limpiar la caché? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -555,7 +555,7 @@ Por favor, establece tu mensaje del sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -563,7 +563,7 @@ por usuario apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -623,7 +623,7 @@ Añadir apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -651,7 +651,7 @@ ¿Seguro que quieres eliminar este usuario? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -753,6 +753,10 @@ Creation Creation + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -795,7 +799,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -835,7 +839,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -1171,7 +1175,7 @@ De acuerdo apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -1239,7 +1243,7 @@ Por favor, ingresa tu código de cupón. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -1247,7 +1251,7 @@ No se pudo canjear el código de cupón apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -1263,7 +1267,7 @@ El código del cupón ha sido canjeado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -1271,7 +1275,7 @@ Recargar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -1279,7 +1283,7 @@ ¿Seguro que quieres eliminar este método de acceso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -1414,6 +1418,14 @@ 59 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Conceder acceso @@ -1490,6 +1502,14 @@ 10 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Divisa @@ -2259,7 +2279,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -2858,6 +2878,18 @@ 190 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Apariencia @@ -3451,7 +3483,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -4366,6 +4398,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Bonos @@ -4990,7 +5030,7 @@ 133 - + Export Data Exportar datos @@ -5637,7 +5677,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6025,7 +6065,7 @@ ¿Seguro que quieres eliminar este mensaje del sistema? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -6169,7 +6209,7 @@ Los datos del mercado tienen un retraso de apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6193,7 +6233,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6470,7 +6510,7 @@ Activo apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6478,7 +6518,7 @@ Cerrado apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6566,7 +6606,7 @@ ¿Seguro que quieres eliminar tu cuenta de Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6582,7 +6622,7 @@ Zona peligrosa apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6590,7 +6630,7 @@ Eliminar cuenta apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6630,7 +6670,7 @@ ¡Vaya! Hubo un error al configurar la autenticación biométrica. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6678,7 +6718,7 @@ Alternativa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6686,7 +6726,7 @@ Aplicación apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6754,7 +6794,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6778,7 +6818,7 @@ Inversor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6790,7 +6830,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6802,7 +6842,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6810,7 +6850,7 @@ Privacidad apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6818,7 +6858,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6826,7 +6866,7 @@ Herramienta apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6834,7 +6874,7 @@ Experiencia del usuario apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6842,7 +6882,7 @@ Patrimonio apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7130,7 +7170,7 @@ ha sido copiado al portapapeles apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7508,7 +7548,7 @@ Clave API del proveedor de datos premium de Ghostfolio apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7516,7 +7556,7 @@ ¿Seguro que quieres generar una nueva clave API? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7872,7 +7912,7 @@ Token de seguridad apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7884,7 +7924,7 @@ ¿Seguro que quieres generar un nuevo token de seguridad para este usuario? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8094,7 +8134,7 @@ La cuenta de usuario de demostración se ha sincronizado. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 2272f3005..119ba3d02 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -185,6 +185,14 @@ 62 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Devise @@ -326,7 +334,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -770,7 +778,7 @@ Voulez-vous vraiment supprimer ce code promotionnel ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -778,7 +786,7 @@ Voulez-vous vraiment vider le cache ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -786,7 +794,7 @@ Veuillez définir votre message système : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -794,7 +802,7 @@ par Utilisateur apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -866,7 +874,7 @@ Ajouter apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -894,7 +902,7 @@ Voulez-vous vraiment supprimer cet·te utilisateur·rice ? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -978,7 +986,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -1054,7 +1062,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -1150,7 +1158,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -1478,7 +1486,7 @@ D’accord apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -1558,7 +1566,7 @@ Veuillez entrer votre code promotionnel. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -1566,7 +1574,7 @@ Le code promotionnel n’a pas pu être appliqué apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -1582,7 +1590,7 @@ Le code promotionnel a été appliqué apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -1590,7 +1598,7 @@ Rafraîchir apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -1598,7 +1606,7 @@ Voulez-vous vraiment supprimer cette méthode de connexion ? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -1697,6 +1705,18 @@ 153 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Apparence @@ -1781,6 +1801,14 @@ 59 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Donner accès @@ -2114,7 +2142,7 @@ à l’instant apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -2772,6 +2800,10 @@ Creation Création + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -4365,6 +4397,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Obligations @@ -4989,7 +5029,7 @@ 133 - + Export Data Exporter les Data @@ -5636,7 +5676,7 @@ Mondial apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6024,7 +6064,7 @@ Confirmer la suppresion de ce message système? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -6168,7 +6208,7 @@ Les données du marché sont retardées de apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6192,7 +6232,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6469,7 +6509,7 @@ Actif apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6477,7 +6517,7 @@ Clôturé apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6565,7 +6605,7 @@ Confirmer la suppresion de votre compte Ghostfolio ? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6581,7 +6621,7 @@ Zone de danger apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6589,7 +6629,7 @@ Supprimer le compte apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6629,7 +6669,7 @@ Oops! Une erreur s’est produite lors de la configuration de l’authentification biométrique. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6677,7 +6717,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6685,7 +6725,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6753,7 +6793,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6777,7 +6817,7 @@ Investisseur apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6789,7 +6829,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6801,7 +6841,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6809,7 +6849,7 @@ Confidentialité apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6817,7 +6857,7 @@ Logiciels apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6825,7 +6865,7 @@ Outils apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6833,7 +6873,7 @@ Expérience Utilisateur apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6841,7 +6881,7 @@ Patrimoine apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7129,7 +7169,7 @@ a été copié dans le presse-papiers apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7507,7 +7547,7 @@ Clé API du fournisseur de données Ghostfolio Premium apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7515,7 +7555,7 @@ Voulez-vous vraiment générer une nouvelle clé API ? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7871,7 +7911,7 @@ Jeton de sécurité apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7883,7 +7923,7 @@ Voulez-vous vraiment générer un nouveau jeton de sécurité pour cet utilisateur ? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8093,7 +8133,7 @@ Le compte utilisateur de démonstration a été synchronisé. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index a8fd45524..66c141baa 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -271,7 +271,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -539,7 +539,7 @@ Vuoi davvero eliminare questo buono? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -547,7 +547,7 @@ Vuoi davvero svuotare la cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -555,7 +555,7 @@ Imposta il messaggio di sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -563,7 +563,7 @@ per utente apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -623,7 +623,7 @@ Aggiungi apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -651,7 +651,7 @@ Vuoi davvero eliminare questo utente? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -753,6 +753,10 @@ Creation Creation + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -795,7 +799,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -835,7 +839,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -1171,7 +1175,7 @@ Bene apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -1239,7 +1243,7 @@ Inserisci il tuo codice del buono: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -1247,7 +1251,7 @@ Impossibile riscattare il codice del buono apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -1263,7 +1267,7 @@ Il codice del buono è stato riscattato apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -1271,7 +1275,7 @@ Ricarica apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -1279,7 +1283,7 @@ Vuoi davvero rimuovere questo metodo di accesso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -1414,6 +1418,14 @@ 59 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Concedi l’accesso @@ -1490,6 +1502,14 @@ 10 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Valuta @@ -2259,7 +2279,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -2858,6 +2878,18 @@ 190 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Aspetto @@ -3451,7 +3483,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -4366,6 +4398,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Obbligazioni @@ -4990,7 +5030,7 @@ 133 - + Export Data Esporta dati @@ -5637,7 +5677,7 @@ Globale apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6025,7 +6065,7 @@ Confermi di voler cancellare questo messaggio di sistema? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -6169,7 +6209,7 @@ I dati di mercato sono ritardati di apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6193,7 +6233,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6470,7 +6510,7 @@ Attivo apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6478,7 +6518,7 @@ Chiuso apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6566,7 +6606,7 @@ Confermi di voler chiudere il tuo account Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6582,7 +6622,7 @@ Zona di Pericolo apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6590,7 +6630,7 @@ Chiudi l’account apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6630,7 +6670,7 @@ Ops! C’è stato un errore impostando l’autenticazione biometrica. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6678,7 +6718,7 @@ Alternativa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6686,7 +6726,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6754,7 +6794,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6778,7 +6818,7 @@ Investitore apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6790,7 +6830,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6802,7 +6842,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6810,7 +6850,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6818,7 +6858,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6826,7 +6866,7 @@ Strumento apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6834,7 +6874,7 @@ Esperienza Utente apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6842,7 +6882,7 @@ Ricchezza apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7130,7 +7170,7 @@ has been copied to the clipboard apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7508,7 +7548,7 @@ API Key for Ghostfolio Premium Data Provider apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7516,7 +7556,7 @@ Vuoi davvero generare una nuova API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7872,7 +7912,7 @@ Token di sicurezza apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7884,7 +7924,7 @@ Vuoi davvero generare un nuovo token di sicurezza per questo utente? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8094,7 +8134,7 @@ L’account utente demo è stato sincronizzato. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.ja.xlf b/apps/client/src/locales/messages.ja.xlf index c3ae93112..0e72d5649 100644 --- a/apps/client/src/locales/messages.ja.xlf +++ b/apps/client/src/locales/messages.ja.xlf @@ -431,6 +431,14 @@ 62 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency 通貨 @@ -556,7 +564,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1192,7 +1200,7 @@ このクーポンを削除してもよろしいですか? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -1200,7 +1208,7 @@ 本当にこのシステムメッセージを削除しますか? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -1208,7 +1216,7 @@ キャッシュをクリアしてもよろしいですか? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -1216,7 +1224,7 @@ システムメッセージを設定してください: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -1232,7 +1240,7 @@ ユーザーあたり apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -1288,7 +1296,7 @@ 追加 apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1456,7 +1464,7 @@ このユーザーを削除してもよろしいですか? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -1564,7 +1572,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -1640,7 +1648,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -1836,7 +1844,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -2323,6 +2331,14 @@ 415 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access アクセスを許可する @@ -2352,7 +2368,7 @@ クーポンコードを入力してください。 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -2360,7 +2376,7 @@ クーポンコードを引き換えられませんでした apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -2376,7 +2392,7 @@ クーポンコードが引き換えられました apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -2384,7 +2400,7 @@ 再読み込み apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -2440,7 +2456,7 @@ このサインイン方法を本当に削除しますか? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -2511,6 +2527,18 @@ 153 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance 外見 @@ -2619,7 +2647,7 @@ 35 - + Export Data データをエクスポート @@ -2668,7 +2696,7 @@ オッケー apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -3187,6 +3215,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds 債券 @@ -3310,6 +3346,10 @@ Creation 創造 + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -3348,7 +3388,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -5129,7 +5169,7 @@ グローバル apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6193,7 +6233,7 @@ 市場データは〜間遅延しています apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6241,7 +6281,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6494,7 +6534,7 @@ クローズ済み apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6502,7 +6542,7 @@ アクティブ apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6590,7 +6630,7 @@ アカウントを閉鎖する apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6598,7 +6638,7 @@ Ghostfolioアカウントを本当に閉鎖しますか? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6614,7 +6654,7 @@ 危険ゾーン apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6654,7 +6694,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6702,7 +6742,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -6762,7 +6802,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6778,7 +6818,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6786,7 +6826,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6794,7 +6834,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6802,7 +6842,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6826,7 +6866,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6846,7 +6886,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6854,7 +6894,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6874,7 +6914,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6882,7 +6922,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -7170,7 +7210,7 @@ has been copied to the clipboard apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7540,7 +7580,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7548,7 +7588,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7896,7 +7936,7 @@ Do you really want to generate a new security token for this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -7904,7 +7944,7 @@ Security token apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -8102,7 +8142,7 @@ Demo user account has been synced. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.ko.xlf b/apps/client/src/locales/messages.ko.xlf index 50b90ef68..b7d7cad22 100644 --- a/apps/client/src/locales/messages.ko.xlf +++ b/apps/client/src/locales/messages.ko.xlf @@ -431,6 +431,14 @@ 62 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency 통화 @@ -556,7 +564,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1192,7 +1200,7 @@ 이 쿠폰을 정말 삭제하시겠습니까? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -1200,7 +1208,7 @@ 이 시스템 메시지를 정말 삭제하시겠습니까? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -1208,7 +1216,7 @@ 정말로 캐시를 플러시하시겠습니까? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -1216,7 +1224,7 @@ 시스템 메시지를 설정하십시오: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -1232,7 +1240,7 @@ 사용자당 apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -1288,7 +1296,7 @@ 추가 apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1456,7 +1464,7 @@ 이 사용자를 정말로 삭제하시겠습니까? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -1564,7 +1572,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -1640,7 +1648,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -1836,7 +1844,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -2323,6 +2331,14 @@ 415 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access 액세스 권한 부여 @@ -2352,7 +2368,7 @@ 쿠폰 코드를 입력해주세요. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -2360,7 +2376,7 @@ 쿠폰 코드를 사용할 수 없습니다. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -2376,7 +2392,7 @@ 쿠폰 코드가 사용되었습니다. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -2384,7 +2400,7 @@ 새로고침 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -2440,7 +2456,7 @@ 이 로그인 방법을 정말로 제거하시겠습니까? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -2511,6 +2527,18 @@ 153 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance 테마 @@ -2619,7 +2647,7 @@ 35 - + Export Data 데이터 내보내기 @@ -2668,7 +2696,7 @@ 좋아요 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -3187,6 +3215,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds 채권 @@ -3310,6 +3346,10 @@ Creation Creation + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -3348,7 +3388,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -5121,7 +5161,7 @@ 글로벌 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6193,7 +6233,7 @@ 시장 데이터가 지연됩니다. apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6241,7 +6281,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6494,7 +6534,7 @@ 닫은 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6502,7 +6542,7 @@ 활동적인 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6590,7 +6630,7 @@ 계정 폐쇄 apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6598,7 +6638,7 @@ 정말로 Ghostfolio 계정을 폐쇄하시겠습니까? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6614,7 +6654,7 @@ 위험지대 apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6654,7 +6694,7 @@ 이런! 생체 인증을 설정하는 중에 오류가 발생했습니다. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6702,7 +6742,7 @@ 재산 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -6762,7 +6802,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6778,7 +6818,7 @@ 사용자 경험 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6786,7 +6826,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6794,7 +6834,7 @@ 도구 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6802,7 +6842,7 @@ 투자자 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6826,7 +6866,7 @@ 대안 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6846,7 +6886,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6854,7 +6894,7 @@ 소프트웨어 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6874,7 +6914,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6882,7 +6922,7 @@ 은둔 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -7170,7 +7210,7 @@ 가 클립보드에 복사되었습니다. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7540,7 +7580,7 @@ 정말로 새 API 키를 생성하시겠습니까? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7548,7 +7588,7 @@ Ghostfolio 프리미엄 데이터 공급자 API 키 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7896,7 +7936,7 @@ 정말로 이 사용자에 대한 새 보안 토큰을 생성하시겠습니까? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -7904,7 +7944,7 @@ 보안 토큰 apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -8102,7 +8142,7 @@ 데모 사용자 계정이 동기화되었습니다. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index d0b61f75f..0f02c4747 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -270,7 +270,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -538,7 +538,7 @@ Wil je deze coupon echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -546,7 +546,7 @@ Wil je echt de cache legen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -554,7 +554,7 @@ Stel je systeemboodschap in: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -562,7 +562,7 @@ per gebruiker apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -622,7 +622,7 @@ Toevoegen apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -650,7 +650,7 @@ Wilt je deze gebruiker echt verwijderen? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -752,6 +752,10 @@ Creation Aanmaakdatum + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -794,7 +798,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -834,7 +838,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -1170,7 +1174,7 @@ Oké apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -1238,7 +1242,7 @@ Voer je couponcode in: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -1246,7 +1250,7 @@ Kon je kortingscode niet inwisselen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -1262,7 +1266,7 @@ Je couponcode is ingewisseld apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -1270,7 +1274,7 @@ Herladen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -1278,7 +1282,7 @@ Wil je deze aanmeldingsmethode echt verwijderen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -1413,6 +1417,14 @@ 59 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Toegang verlenen @@ -1489,6 +1501,14 @@ 10 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Valuta @@ -2258,7 +2278,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -2857,6 +2877,18 @@ 190 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Weergave @@ -3450,7 +3482,7 @@ zojuist apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -4365,6 +4397,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Obligaties @@ -4989,7 +5029,7 @@ 133 - + Export Data Exporteer Data @@ -5636,7 +5676,7 @@ Wereldwijd apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6024,7 +6064,7 @@ Wilt u dit systeembericht echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -6168,7 +6208,7 @@ Markt data is vertraagd voor apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6192,7 +6232,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6469,7 +6509,7 @@ Actief apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6477,7 +6517,7 @@ Gesloten apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6565,7 +6605,7 @@ Wilt u uw Ghostfolio account echt sluiten? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6581,7 +6621,7 @@ Gevarenzone apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6589,7 +6629,7 @@ Account Sluiten apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6629,7 +6669,7 @@ Oeps! Er is een fout opgetreden met het instellen van de biometrische authenticatie. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6677,7 +6717,7 @@ Alternatief apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6685,7 +6725,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6753,7 +6793,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6777,7 +6817,7 @@ Investeerder apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6789,7 +6829,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6801,7 +6841,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6809,7 +6849,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6817,7 +6857,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6825,7 +6865,7 @@ Hulpmiddel apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6833,7 +6873,7 @@ Gebruikers Ervaring apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6841,7 +6881,7 @@ Vermogen apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7129,7 +7169,7 @@ is naar het klembord gekopieerd apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7507,7 +7547,7 @@ Ghostfolio Premium Gegevensleverancier API-sleutel apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7515,7 +7555,7 @@ Wilt u echt een nieuwe API-sleutel genereren? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7871,7 +7911,7 @@ Beveiligingstoken apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7883,7 +7923,7 @@ Wilt u echt een nieuw beveiligingstoken voor deze gebruiker aanmaken? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8093,7 +8133,7 @@ Demo-gebruikersaccount is gesynchroniseerd. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index cc1137028..2c993890c 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -422,6 +422,14 @@ 62 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Waluta @@ -547,7 +555,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1159,7 +1167,7 @@ Czy naprawdę chcesz usunąć ten kupon? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -1167,7 +1175,7 @@ Czy naprawdę chcesz usunąć tę wiadomość systemową? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -1175,7 +1183,7 @@ Czy naprawdę chcesz wyczyścić pamięć podręczną? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -1183,7 +1191,7 @@ Proszę ustawić swoją wiadomość systemową: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -1199,7 +1207,7 @@ na Użytkownika apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -1255,7 +1263,7 @@ Dodaj apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1423,7 +1431,7 @@ Czy na pewno chcesz usunąć tego użytkownika? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -1531,7 +1539,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -1607,7 +1615,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -1803,7 +1811,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -2290,6 +2298,14 @@ 415 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Przyznaj dostęp @@ -2319,7 +2335,7 @@ Wpisz kod kuponu: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -2327,7 +2343,7 @@ Nie udało się zrealizować kodu kuponu apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -2343,7 +2359,7 @@ Kupon został zrealizowany apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -2351,7 +2367,7 @@ Odśwież apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -2407,7 +2423,7 @@ Czy na pewno chcesz usunąć tą metode logowania? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -2478,6 +2494,18 @@ 153 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Wygląd (tryb) @@ -2586,7 +2614,7 @@ 35 - + Export Data Eksportuj Dane @@ -2635,7 +2663,7 @@ Okej apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -3154,6 +3182,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Obligacje @@ -3277,6 +3313,10 @@ Creation Creation + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -3315,7 +3355,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -5076,7 +5116,7 @@ Globalny apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6168,7 +6208,7 @@ Dane rynkowe są opóźnione o apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6192,7 +6232,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6469,7 +6509,7 @@ Antywne apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6477,7 +6517,7 @@ Zamknięte apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6565,7 +6605,7 @@ Czy na pewno chcesz zamknąć swoje konto Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6581,7 +6621,7 @@ Strefa Zagrożenia apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6589,7 +6629,7 @@ Zamknij Konto apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6629,7 +6669,7 @@ Ups! Wystąpił błąd podczas konfigurowania uwierzytelniania biometrycznego. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6677,7 +6717,7 @@ Alternatywa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6685,7 +6725,7 @@ Aplikacja apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6753,7 +6793,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6777,7 +6817,7 @@ Inwestor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6789,7 +6829,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6801,7 +6841,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6809,7 +6849,7 @@ Prywatność apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6817,7 +6857,7 @@ Oprogramowanie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6825,7 +6865,7 @@ Narzędzie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6833,7 +6873,7 @@ Doświadczenie Użytkownika apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6841,7 +6881,7 @@ Majątek apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7129,7 +7169,7 @@ has been copied to the clipboard apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7507,7 +7547,7 @@ Klucz API dostawcy danych Premium Ghostfolio apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7515,7 +7555,7 @@ Czy na pewno chcesz wygenerować nowy klucz API? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7871,7 +7911,7 @@ Token bezpieczeństwa apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7883,7 +7923,7 @@ Czy napewno chcesz wygenerować nowy token bezpieczeństwa dla tego użytkownika? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8093,7 +8133,7 @@ Konto użytkownika demonstracyjnego zostało zsynchronizowane. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 870e1f43b..af9f30ed2 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -185,6 +185,14 @@ 62 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Moeda @@ -326,7 +334,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -646,7 +654,7 @@ Deseja realmente eliminar este cupão? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -654,7 +662,7 @@ Deseja realmente limpar a cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -662,7 +670,7 @@ Por favor, defina a sua mensagem do sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -670,7 +678,7 @@ por Utilizador apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -718,7 +726,7 @@ Adicionar apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -746,7 +754,7 @@ Deseja realmente excluir este utilizador? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -830,7 +838,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -906,7 +914,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -1018,7 +1026,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -1466,7 +1474,7 @@ OK apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -1546,7 +1554,7 @@ Por favor, insira o seu código de cupão: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -1554,7 +1562,7 @@ Não foi possível resgatar o código de cupão apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -1570,7 +1578,7 @@ Código de cupão foi resgatado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -1578,7 +1586,7 @@ Atualizar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -1586,7 +1594,7 @@ Deseja realmente remover este método de início de sessão? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -1709,6 +1717,18 @@ 246 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Aparência @@ -1781,6 +1801,14 @@ 59 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Conceder Acesso @@ -2700,6 +2728,10 @@ Creation Creation + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -3350,7 +3382,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -4365,6 +4397,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Obrigações @@ -4989,7 +5029,7 @@ 133 - + Export Data Exportar dados @@ -5636,7 +5676,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6024,7 +6064,7 @@ Você realmente deseja excluir esta mensagem do sistema? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -6168,7 +6208,7 @@ Dados de mercado estão atrasados para apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6192,7 +6232,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6469,7 +6509,7 @@ Ativo apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6477,7 +6517,7 @@ Fechado apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6565,7 +6605,7 @@ Você realmente deseja encerrar sua conta Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6581,7 +6621,7 @@ Zona de perigo apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6589,7 +6629,7 @@ Fechar conta apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6629,7 +6669,7 @@ Ops! Ocorreu um erro ao configurar a autenticação biométrica. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6677,7 +6717,7 @@ Alternativo apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6685,7 +6725,7 @@ Aplicativo apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6753,7 +6793,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6777,7 +6817,7 @@ Investidor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6789,7 +6829,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6801,7 +6841,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6809,7 +6849,7 @@ Privacidade apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6817,7 +6857,7 @@ Programas apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6825,7 +6865,7 @@ Ferramenta apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6833,7 +6873,7 @@ Experiência do usuário apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6841,7 +6881,7 @@ Fortuna apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7129,7 +7169,7 @@ has been copied to the clipboard apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7507,7 +7547,7 @@ Chave de API do Provedor de Dados do Ghostfolio Premium apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7515,7 +7555,7 @@ Você realmente deseja gerar uma nova chave de API? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7871,7 +7911,7 @@ Security token apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7883,7 +7923,7 @@ Do you really want to generate a new security token for this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8093,7 +8133,7 @@ Demo user account has been synced. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 27559e50d..8514610e5 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -382,6 +382,14 @@ 62 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Para Birimi @@ -507,7 +515,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1055,7 +1063,7 @@ Bu kuponu gerçekten silmek istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -1063,7 +1071,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -1071,7 +1079,7 @@ Lütfen sistem mesajınızı belirleyin: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -1079,7 +1087,7 @@ Kullanıcı başına apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -1151,7 +1159,7 @@ Ekle apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1271,7 +1279,7 @@ Bu kullanıcıyı silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -1379,7 +1387,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -1455,7 +1463,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -1651,7 +1659,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -2179,7 +2187,7 @@ Tamam apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -2666,6 +2674,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Tahviller @@ -2801,6 +2817,10 @@ Creation Creation + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -2839,7 +2859,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -4500,7 +4520,7 @@ Küresel apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -4531,6 +4551,14 @@ 332 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Erişim izni ver @@ -4576,7 +4604,7 @@ Lütfen kupon kodunuzu girin: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -4584,7 +4612,7 @@ Kupon kodu kullanılamadı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -4600,7 +4628,7 @@ Kupon kodu kullanıldı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -4608,7 +4636,7 @@ Yeniden Yükle apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -4616,7 +4644,7 @@ Bu giriş yöntemini kaldırmayı gerçekten istiyor musunuz? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -4735,6 +4763,18 @@ 153 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Görünüm @@ -4831,7 +4871,7 @@ 35 - + Export Data Verileri Dışa Aktar @@ -6024,7 +6064,7 @@ Bu sistem mesajını silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -6168,7 +6208,7 @@ Piyasa verileri gecikmeli apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6192,7 +6232,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6469,7 +6509,7 @@ Aktif apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6477,7 +6517,7 @@ Kapalı apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6565,7 +6605,7 @@ Ghostfolio hesabınızı kapatmak istediğinize emin misiniz? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6581,7 +6621,7 @@ Tehlikeli Alan apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6589,7 +6629,7 @@ Hesabı Kapat apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6629,7 +6669,7 @@ Oops! Biyometrik kimlik doğrulama ayarlanırken bir hata oluştu. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6677,7 +6717,7 @@ Alternatif apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6685,7 +6725,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6753,7 +6793,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6777,7 +6817,7 @@ Yatırımcı apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6789,7 +6829,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6801,7 +6841,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6809,7 +6849,7 @@ Gizlilik apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6817,7 +6857,7 @@ Yazılım apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6825,7 +6865,7 @@ Araç apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6833,7 +6873,7 @@ Kullanıcı Deneyimi apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6841,7 +6881,7 @@ Zenginlik apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7129,7 +7169,7 @@ has been copied to the clipboard apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7507,7 +7547,7 @@ Ghostfolio Premium Veri Sağlayıcı API Anahtarı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7515,7 +7555,7 @@ Yeni bir API anahtarı oluşturmak istediğinize emin misiniz? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7871,7 +7911,7 @@ Güvenlik belirteci apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7883,7 +7923,7 @@ Bu kullanıcı için yeni bir güvenlik belirteci oluşturmak istediğinize emin misiniz? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8093,7 +8133,7 @@ Demo kullanıcı hesabı senkronize edildi. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index 18eb0ae03..8152c9936 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -522,6 +522,14 @@ 62 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency Валюта @@ -647,7 +655,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1327,7 +1335,7 @@ Ви дійсно хочете видалити цей купон? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -1335,7 +1343,7 @@ Ви дійсно хочете видалити це системне повідомлення? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -1343,7 +1351,7 @@ Ви дійсно хочете очистити кеш? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -1351,7 +1359,7 @@ Будь ласка, встановіть ваше системне повідомлення: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -1367,7 +1375,7 @@ на користувача apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -1435,7 +1443,7 @@ Додати apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1719,7 +1727,7 @@ Ви дійсно хочете видалити цього користувача? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -1815,7 +1823,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -1911,7 +1919,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -2015,7 +2023,7 @@ Активний apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -2023,7 +2031,7 @@ Закритий apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -2235,7 +2243,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -2283,7 +2291,7 @@ Ринкові дані затримуються для apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -2754,6 +2762,14 @@ 204 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access Надати доступ @@ -2843,7 +2859,7 @@ ОК apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -2867,7 +2883,7 @@ Ключ API Ghostfolio Premium Data Provider apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -2875,7 +2891,7 @@ Ви дійсно хочете згенерувати новий ключ API? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -2883,7 +2899,7 @@ Не вдалося обміняти код купона apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -2899,7 +2915,7 @@ Код купона був обміняний apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -2907,7 +2923,7 @@ Перезавантажити apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -2915,7 +2931,7 @@ Будь ласка, введіть ваш код купона. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -2971,7 +2987,7 @@ Ви дійсно хочете закрити ваш обліковий запис Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -2987,7 +3003,7 @@ Ви дійсно хочете вилучити цей спосіб входу? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -3003,7 +3019,7 @@ Упс! Виникла помилка під час налаштування біометричної автентифікації. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -3082,6 +3098,18 @@ 153 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance Зовнішній вигляд @@ -3174,7 +3202,7 @@ 255 - + Export Data Експортувати дані @@ -3187,7 +3215,7 @@ Зона небезпеки apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -3195,7 +3223,7 @@ Закрити обліковий запис apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -3811,6 +3839,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds Облігації @@ -3934,6 +3970,10 @@ Creation Створення + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -3972,7 +4012,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -5112,7 +5152,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -5532,7 +5572,7 @@ has been copied to the clipboard apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -5739,7 +5779,7 @@ Глобальний apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -5751,7 +5791,7 @@ Альтернатива apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -5759,7 +5799,7 @@ Додаток apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -5827,7 +5867,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -5851,7 +5891,7 @@ Інвестор apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -5863,7 +5903,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -5875,7 +5915,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -5883,7 +5923,7 @@ Конфіденційність apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -5891,7 +5931,7 @@ Програмне забезпечення apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -5899,7 +5939,7 @@ Інструмент apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -5907,7 +5947,7 @@ Користувацький досвід apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -5915,7 +5955,7 @@ Багатство apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7871,7 +7911,7 @@ Security token apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7883,7 +7923,7 @@ Do you really want to generate a new security token for this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8093,7 +8133,7 @@ Demo user account has been synced. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 672554a58..bf7304782 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -404,6 +404,13 @@ 62 + + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency @@ -525,7 +532,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1103,28 +1110,28 @@ Do you really want to delete this coupon? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 Do you really want to flush the cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 Please set your system message: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -1138,7 +1145,7 @@ per User apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -1187,7 +1194,7 @@ Add apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1337,7 +1344,7 @@ Do you really want to delete this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -1435,7 +1442,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -1506,7 +1513,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -1682,7 +1689,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -2130,6 +2137,13 @@ 415 + + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access @@ -2155,14 +2169,14 @@ Please enter your coupon code. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 Could not redeem coupon code apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -2176,14 +2190,14 @@ Coupon code has been redeemed apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 Reload apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -2234,7 +2248,7 @@ Do you really want to remove this sign in method? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -2297,6 +2311,17 @@ 153 + + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance @@ -2393,7 +2418,7 @@ 35 - + Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -2437,7 +2462,7 @@ Okay apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -2925,6 +2950,13 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds @@ -3035,6 +3067,10 @@ Creation + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -3071,7 +3107,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -4671,7 +4707,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -5632,7 +5668,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -5676,7 +5712,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -5903,14 +5939,14 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -5987,14 +6023,14 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6008,7 +6044,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6043,7 +6079,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6085,7 +6121,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -6144,7 +6180,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6158,28 +6194,28 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6200,7 +6236,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6218,14 +6254,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6243,14 +6279,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6513,7 +6549,7 @@ has been copied to the clipboard apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -6845,14 +6881,14 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7165,14 +7201,14 @@ Do you really want to generate a new security token for this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 Security token apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7349,7 +7385,7 @@ Demo user account has been synced. apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 1537fa141..2230a6f86 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -431,6 +431,14 @@ 62 + + Copy + Copy + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html + 20 + + Currency 货币 @@ -556,7 +564,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 213 + 235 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1168,7 +1176,7 @@ 您确实要删除此优惠券吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 226 + 232 @@ -1176,7 +1184,7 @@ 您真的要删除这条系统消息吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 239 + 245 @@ -1184,7 +1192,7 @@ 您真的要刷新缓存吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 263 + 269 @@ -1192,7 +1200,7 @@ 请设置您的系统消息: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 283 + 289 @@ -1208,7 +1216,7 @@ 每位用户 apps/client/src/app/components/admin-overview/admin-overview.component.ts - 170 + 175 @@ -1264,7 +1272,7 @@ 添加 apps/client/src/app/components/admin-overview/admin-overview.html - 265 + 287 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1432,7 +1440,7 @@ 您真的要删除该用户吗? apps/client/src/app/components/admin-users/admin-users.component.ts - 238 + 244 @@ -1540,7 +1548,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 117 + 123 libs/common/src/lib/routes/routes.ts @@ -1616,7 +1624,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 194 + 203 @@ -1812,7 +1820,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 303 + 306 apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html @@ -2299,6 +2307,14 @@ 415 + + The value has been copied to the clipboard + The value has been copied to the clipboard + + libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts + 46 + + Grant access 授予访问权限 @@ -2328,7 +2344,7 @@ 请输入您的优惠券代码。 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 210 + 208 @@ -2336,7 +2352,7 @@ 无法兑换优惠券代码 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 174 + 172 @@ -2352,7 +2368,7 @@ 优惠券代码已被兑换 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 187 + 185 @@ -2360,7 +2376,7 @@ 重新加载 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 186 @@ -2416,7 +2432,7 @@ 您确实要删除此登录方法吗? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 282 + 291 @@ -2487,6 +2503,18 @@ 153 + + Close Account + Close Account + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 337 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 345 + + Appearance 外观 @@ -2595,7 +2623,7 @@ 35 - + Export Data 导出数据 @@ -2644,7 +2672,7 @@ 好的 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 149 + 150 apps/client/src/app/core/http-response.interceptor.ts @@ -3163,6 +3191,14 @@ 25 + + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 348 + + Bonds 债券 @@ -3286,6 +3322,10 @@ Creation Creation + + apps/client/src/app/components/admin-overview/admin-overview.html + 185 + apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 145 @@ -3324,7 +3364,7 @@ just now apps/client/src/app/components/admin-users/admin-users.component.ts - 211 + 217 @@ -5105,7 +5145,7 @@ 全球的 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 54 + 59 libs/ui/src/lib/i18n.ts @@ -6169,7 +6209,7 @@ 市场数据延迟 apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 92 + 103 @@ -6217,7 +6257,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 112 + 118 @@ -6470,7 +6510,7 @@ 已关闭 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 62 + 64 @@ -6478,7 +6518,7 @@ 活跃 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 61 + 63 @@ -6566,7 +6606,7 @@ 您确定要关闭您的 Ghostfolio 账户吗? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 208 + 217 @@ -6582,7 +6622,7 @@ 危险区域 apps/client/src/app/components/user-account-settings/user-account-settings.html - 296 + 293 @@ -6590,7 +6630,7 @@ 关闭账户 apps/client/src/app/components/user-account-settings/user-account-settings.html - 333 + 353 @@ -6630,7 +6670,7 @@ 哎呀!设置生物识别认证时发生错误。 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 331 + 340 @@ -6678,7 +6718,7 @@ 另类 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 108 + 114 @@ -6686,7 +6726,7 @@ 应用 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 109 + 115 @@ -6754,7 +6794,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 110 + 116 @@ -6778,7 +6818,7 @@ 投资者 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 113 + 119 @@ -6790,7 +6830,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 114 + 120 @@ -6802,7 +6842,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 116 + 122 @@ -6810,7 +6850,7 @@ 隐私 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 118 + 124 @@ -6818,7 +6858,7 @@ 软件 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 119 + 125 @@ -6826,7 +6866,7 @@ 工具 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 120 + 126 @@ -6834,7 +6874,7 @@ 用户体验 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 121 + 127 @@ -6842,7 +6882,7 @@ 财富 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 122 + 128 @@ -7130,7 +7170,7 @@ has been copied to the clipboard apps/client/src/app/components/admin-overview/admin-overview.component.ts - 382 + 388 libs/ui/src/lib/value/value.component.ts @@ -7508,7 +7548,7 @@ Ghostfolio Premium 数据提供者 API 密钥 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 154 + 152 @@ -7516,7 +7556,7 @@ 您确定要生成新的 API 密钥吗? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 159 + 157 @@ -7872,7 +7912,7 @@ 安全令牌 apps/client/src/app/components/admin-users/admin-users.component.ts - 258 + 264 apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -7884,7 +7924,7 @@ 您确定要为此用户生成新的安全令牌吗? apps/client/src/app/components/admin-users/admin-users.component.ts - 263 + 269 @@ -8094,7 +8134,7 @@ 演示用户账户已同步。 apps/client/src/app/components/admin-overview/admin-overview.component.ts - 307 + 313 diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index f9dcd52cf..42aec19ac 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -1,10 +1,10 @@ import { NumberParser } from '@internationalized/number'; import { Type as ActivityType, + AssetProfileOverrides, MarketData, Prisma, - SymbolProfile, - SymbolProfileOverrides + SymbolProfile } from '@prisma/client'; import { Big } from 'big.js'; import { isISO4217CurrencyCode } from 'class-validator'; @@ -56,7 +56,7 @@ export const DATE_FORMAT_YEARLY = 'yyyy'; export function applyAssetProfileOverrides>( assetProfile: T, - assetProfileOverrides: SymbolProfileOverrides | null + assetProfileOverrides: AssetProfileOverrides | null ): T { if (!assetProfileOverrides) { return assetProfile; diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts index f9cb19562..428de1788 100644 --- a/libs/common/src/lib/permissions.ts +++ b/libs/common/src/lib/permissions.ts @@ -50,6 +50,7 @@ export const permissions = { readTags: 'readTags', readWatchlist: 'readWatchlist', reportDataGlitch: 'reportDataGlitch', + requestOwnUserDeletion: 'requestOwnUserDeletion', syncDemoUserAccount: 'syncDemoUserAccount', toggleReadOnlyMode: 'toggleReadOnlyMode', updateAccount: 'updateAccount', diff --git a/libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html b/libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html index f690a8e5d..f09389680 100644 --- a/libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html +++ b/libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html @@ -8,7 +8,7 @@
} @if (copyValue) { -
{{ copyValue }}
+
{{ copyValue }}
} } diff --git a/package-lock.json b/package-lock.json index 9373f382a..30467139c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "3.21.0", + "version": "3.22.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "3.21.0", + "version": "3.22.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 626899f75..2de43ba7a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "3.21.0", + "version": "3.22.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 233a63688..733399506 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -90,6 +90,21 @@ model ApiKey { @@index([userId]) } +model AssetProfileOverrides { + assetClass AssetClass? + assetSubClass AssetSubClass? + countries Json? @default("[]") + holdings Json? @default("[]") + name String? + sectors Json? @default("[]") + symbolProfile SymbolProfile @relation(fields: [symbolProfileId], onDelete: Cascade, references: [id]) + symbolProfileId String @id + updatedAt DateTime @updatedAt + url String? + + @@map("SymbolProfileOverrides") +} + model AssetProfileResolution { createdAt DateTime @default(now()) currency String @@ -187,32 +202,32 @@ model Settings { model SymbolProfile { activities Order[] assetClass AssetClass? + assetProfileOverrides AssetProfileOverrides? assetSubClass AssetSubClass? comment String? countries Json? - createdAt DateTime @default(now()) + createdAt DateTime @default(now()) currency String cusip String? - dataGatheringFrequency DataGatheringFrequency @default(DAILY) + dataGatheringFrequency DataGatheringFrequency @default(DAILY) dataSource DataSource figi String? figiComposite String? figiShareClass String? - holdings Json? @default("[]") - id String @id @default(uuid()) - isActive Boolean @default(true) + holdings Json? @default("[]") + id String @id @default(uuid()) + isActive Boolean @default(true) isin String? name String? - updatedAt DateTime @updatedAt scraperConfiguration Json? sectors Json? symbol String symbolMapping Json? + updatedAt DateTime @updatedAt url String? - user User? @relation(fields: [userId], onDelete: Cascade, references: [id]) + user User? @relation(fields: [userId], onDelete: Cascade, references: [id]) userId String? - watchedBy User[] @relation("UserWatchlist") - SymbolProfileOverrides SymbolProfileOverrides? + watchedBy User[] @relation("UserWatchlist") @@unique([dataSource, symbol]) @@index([assetClass]) @@ -226,19 +241,6 @@ model SymbolProfile { @@index([symbol]) } -model SymbolProfileOverrides { - assetClass AssetClass? - assetSubClass AssetSubClass? - countries Json? @default("[]") - holdings Json? @default("[]") - name String? - sectors Json? @default("[]") - symbolProfileId String @id - updatedAt DateTime @updatedAt - url String? - SymbolProfile SymbolProfile @relation(fields: [symbolProfileId], onDelete: Cascade, references: [id]) -} - model Subscription { createdAt DateTime @default(now()) expiresAt DateTime diff --git a/skills-lock.json b/skills-lock.json index 0ecf51f96..06bf64189 100644 --- a/skills-lock.json +++ b/skills-lock.json @@ -7,6 +7,12 @@ "skillPath": "angular-developer/SKILL.md", "computedHash": "28eb592b92e5a24c4e3a1c0229a854069f0b8c49bed7b8d2bf6b852812dbe214" }, + "karpathy-guidelines": { + "source": "multica-ai/andrej-karpathy-skills", + "sourceType": "github", + "skillPath": "skills/karpathy-guidelines/SKILL.md", + "computedHash": "41e8ca055bbde13d240776a14a076a59614057200340c243130a76ba4e64cac8" + }, "nestjs-best-practices": { "source": "kadajett/agent-nestjs-skills", "sourceType": "github",