From 43afb168082c0a97596ec6a4b2105e6de22aad69 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 16 Jul 2024 20:51:49 +0200 Subject: [PATCH 1/2] Feature/introduce isUsedByUsersWithSubscription flag (#3573) --- apps/api/src/app/admin/admin.service.ts | 236 +++++++++++------- .../admin-market-data.component.ts | 52 ++-- .../admin-market-data/admin-market-data.html | 9 + .../admin-market-data.module.ts | 2 + .../interfaces/admin-market-data.interface.ts | 1 + 5 files changed, 198 insertions(+), 102 deletions(-) diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 3d81435ab..b15c3efc3 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -27,12 +27,13 @@ import { } from '@ghostfolio/common/interfaces'; import { MarketDataPreset } from '@ghostfolio/common/types'; -import { BadRequestException, Injectable } from '@nestjs/common'; +import { BadRequestException, Injectable, Logger } from '@nestjs/common'; import { AssetClass, AssetSubClass, DataSource, Prisma, + PrismaClient, Property, SymbolProfile } from '@prisma/client'; @@ -212,98 +213,113 @@ export class AdminService { } } - let [assetProfiles, count] = await Promise.all([ - this.prismaService.symbolProfile.findMany({ - orderBy, - skip, - take, - where, - select: { - _count: { - select: { Order: true } - }, - assetClass: true, - assetSubClass: true, - comment: true, - countries: true, - currency: true, - dataSource: true, - id: true, - name: true, - Order: { - orderBy: [{ date: 'asc' }], - select: { date: true }, - take: 1 - }, - scraperConfiguration: true, - sectors: true, - symbol: true - } - }), - this.prismaService.symbolProfile.count({ where }) - ]); + const extendedPrismaClient = this.getExtendedPrismaClient(); - let marketData: AdminMarketDataItem[] = assetProfiles.map( - ({ - _count, - assetClass, - assetSubClass, - comment, - countries, - currency, - dataSource, - id, - name, - Order, - sectors, - symbol - }) => { - const countriesCount = countries ? Object.keys(countries).length : 0; - const marketDataItemCount = - marketDataItems.find((marketDataItem) => { - return ( - marketDataItem.dataSource === dataSource && - marketDataItem.symbol === symbol - ); - })?._count ?? 0; - const sectorsCount = sectors ? Object.keys(sectors).length : 0; + try { + let [assetProfiles, count] = await Promise.all([ + extendedPrismaClient.symbolProfile.findMany({ + orderBy, + skip, + take, + where, + select: { + _count: { + select: { Order: true } + }, + assetClass: true, + assetSubClass: true, + comment: true, + countries: true, + currency: true, + dataSource: true, + id: true, + isUsedByUsersWithSubscription: true, + name: true, + Order: { + orderBy: [{ date: 'asc' }], + select: { date: true }, + take: 1 + }, + scraperConfiguration: true, + sectors: true, + symbol: true + } + }), + this.prismaService.symbolProfile.count({ where }) + ]); - return { - assetClass, - assetSubClass, - comment, - currency, - countriesCount, - dataSource, - id, - name, - symbol, - marketDataItemCount, - sectorsCount, - activitiesCount: _count.Order, - date: Order?.[0]?.date - }; - } - ); + let marketData: AdminMarketDataItem[] = await Promise.all( + assetProfiles.map( + async ({ + _count, + assetClass, + assetSubClass, + comment, + countries, + currency, + dataSource, + id, + isUsedByUsersWithSubscription, + name, + Order, + sectors, + symbol + }) => { + const countriesCount = countries + ? Object.keys(countries).length + : 0; + const marketDataItemCount = + marketDataItems.find((marketDataItem) => { + return ( + marketDataItem.dataSource === dataSource && + marketDataItem.symbol === symbol + ); + })?._count ?? 0; + const sectorsCount = sectors ? Object.keys(sectors).length : 0; + + return { + assetClass, + assetSubClass, + comment, + currency, + countriesCount, + dataSource, + id, + name, + symbol, + marketDataItemCount, + sectorsCount, + activitiesCount: _count.Order, + date: Order?.[0]?.date, + isUsedByUsersWithSubscription: await isUsedByUsersWithSubscription + }; + } + ) + ); - if (presetId) { - if (presetId === 'ETF_WITHOUT_COUNTRIES') { - marketData = marketData.filter(({ countriesCount }) => { - return countriesCount === 0; - }); - } else if (presetId === 'ETF_WITHOUT_SECTORS') { - marketData = marketData.filter(({ sectorsCount }) => { - return sectorsCount === 0; - }); + if (presetId) { + if (presetId === 'ETF_WITHOUT_COUNTRIES') { + marketData = marketData.filter(({ countriesCount }) => { + return countriesCount === 0; + }); + } else if (presetId === 'ETF_WITHOUT_SECTORS') { + marketData = marketData.filter(({ sectorsCount }) => { + return sectorsCount === 0; + }); + } + + count = marketData.length; } - count = marketData.length; - } + return { + count, + marketData + }; + } finally { + await extendedPrismaClient.$disconnect(); - return { - count, - marketData - }; + Logger.debug('Disconnect extended prisma client', 'AdminService'); + } } public async getMarketDataBySymbol({ @@ -431,6 +447,52 @@ export class AdminService { return response; } + private getExtendedPrismaClient() { + Logger.debug('Connect extended prisma client', 'AdminService'); + + const symbolProfileExtension = Prisma.defineExtension((client) => { + return client.$extends({ + result: { + symbolProfile: { + isUsedByUsersWithSubscription: { + compute: async ({ id }) => { + const { _count } = + await this.prismaService.symbolProfile.findUnique({ + select: { + _count: { + select: { + Order: { + where: { + User: { + Subscription: { + some: { + expiresAt: { + gt: new Date() + } + } + } + } + } + } + } + } + }, + where: { + id + } + }); + + return _count.Order > 0; + } + } + } + } + }); + }); + + return new PrismaClient().$extends(symbolProfileExtension); + } + private async getMarketDataForCurrencies(): Promise { const marketDataItems = await this.prismaService.marketData.groupBy({ _count: true, 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 5494e6842..e27283517 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 @@ -6,8 +6,14 @@ import { ghostfolioScraperApiSymbolPrefix } from '@ghostfolio/common/config'; import { getDateFormatString } from '@ghostfolio/common/helper'; -import { Filter, UniqueAsset, User } from '@ghostfolio/common/interfaces'; +import { + Filter, + InfoItem, + UniqueAsset, + User +} from '@ghostfolio/common/interfaces'; import { AdminMarketDataItem } from '@ghostfolio/common/interfaces/admin-market-data.interface'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { translate } from '@ghostfolio/ui/i18n'; import { SelectionModel } from '@angular/cdk/collections'; @@ -97,22 +103,11 @@ export class AdminMarketDataComponent new MatTableDataSource(); public defaultDateFormat: string; public deviceType: string; - public displayedColumns = [ - 'select', - 'nameWithSymbol', - 'dataSource', - 'assetClass', - 'assetSubClass', - 'date', - 'activitiesCount', - 'marketDataItemCount', - 'sectorsCount', - 'countriesCount', - 'comment', - 'actions' - ]; + public displayedColumns: string[] = []; public filters$ = new Subject(); public ghostfolioScraperApiSymbolPrefix = ghostfolioScraperApiSymbolPrefix; + public hasPermissionForSubscription: boolean; + public info: InfoItem; public isLoading = false; public isUUID = isUUID; public placeholder = ''; @@ -134,6 +129,33 @@ export class AdminMarketDataComponent private router: Router, private userService: UserService ) { + this.info = this.dataService.fetchInfo(); + + this.hasPermissionForSubscription = hasPermission( + this.info?.globalPermissions, + permissions.enableSubscription + ); + + this.displayedColumns = [ + 'select', + 'nameWithSymbol', + 'dataSource', + 'assetClass', + 'assetSubClass', + 'date', + 'activitiesCount', + 'marketDataItemCount', + 'sectorsCount', + 'countriesCount' + ]; + + if (this.hasPermissionForSubscription) { + this.displayedColumns.push('isUsedByUsersWithSubscription'); + } + + this.displayedColumns.push('comment'); + this.displayedColumns.push('actions'); + this.route.queryParams .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((params) => { 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 3dc3dd5a9..f3b2d8ddd 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 @@ -144,6 +144,15 @@ + + + + @if (element.isUsedByUsersWithSubscription) { + + } + + + diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.module.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.module.ts index 87562460a..224e3506b 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.module.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.module.ts @@ -1,5 +1,6 @@ import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { GfActivitiesFilterComponent } from '@ghostfolio/ui/activities-filter'; +import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; @@ -24,6 +25,7 @@ import { GfCreateAssetProfileDialogModule } from './create-asset-profile-dialog/ GfActivitiesFilterComponent, GfAssetProfileDialogModule, GfCreateAssetProfileDialogModule, + GfPremiumIndicatorComponent, GfSymbolModule, MatButtonModule, MatCheckboxModule, diff --git a/libs/common/src/lib/interfaces/admin-market-data.interface.ts b/libs/common/src/lib/interfaces/admin-market-data.interface.ts index d52ac03b9..420bde826 100644 --- a/libs/common/src/lib/interfaces/admin-market-data.interface.ts +++ b/libs/common/src/lib/interfaces/admin-market-data.interface.ts @@ -15,6 +15,7 @@ export interface AdminMarketDataItem { date: Date; id: string; isBenchmark?: boolean; + isUsedByUsersWithSubscription?: boolean; marketDataItemCount: number; name: string; sectorsCount: number; From b5317a7f951b0034aa9111f8640022b99cdc9077 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 17 Jul 2024 17:37:56 +0200 Subject: [PATCH 2/2] Feature/improve language localization for de 20240715 (#3574) * Update translations * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.de.xlf | 38 ++++++++++++++++------- apps/client/src/locales/messages.es.xlf | 40 +++++++++++++++++-------- apps/client/src/locales/messages.fr.xlf | 40 +++++++++++++++++-------- apps/client/src/locales/messages.it.xlf | 40 +++++++++++++++++-------- apps/client/src/locales/messages.nl.xlf | 40 +++++++++++++++++-------- apps/client/src/locales/messages.pl.xlf | 40 +++++++++++++++++-------- apps/client/src/locales/messages.pt.xlf | 40 +++++++++++++++++-------- apps/client/src/locales/messages.tr.xlf | 40 +++++++++++++++++-------- apps/client/src/locales/messages.xlf | 38 +++++++++++++++-------- apps/client/src/locales/messages.zh.xlf | 40 +++++++++++++++++-------- 11 files changed, 278 insertions(+), 119 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f466e093..3fab44b68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Optimized the 7d data gathering by prioritizing the currencies +- Improved the language localization for German (`de`) ### Fixed diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 4a4462405..604ab0e1c 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -1042,7 +1042,7 @@ Aktivitäten verwalten apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -1070,7 +1070,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1778,7 +1778,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 @@ -2866,7 +2866,7 @@ Experimentelle Funktionen apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 @@ -3461,12 +3461,12 @@ 168 - + Sneak peek at upcoming functionality Vorschau auf kommende Funktionalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -4790,7 +4790,7 @@ Daten exportieren apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -6454,7 +6454,7 @@ Aktiv apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -6462,7 +6462,7 @@ Abgeschlossen apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 @@ -6574,7 +6574,7 @@ Gefahrenzone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6582,7 +6582,7 @@ Konto schliessen apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -6657,6 +6657,22 @@ 45 + + Table + Tabelle + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + + + Chart + Diagramm + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 4bd27a6b2..5a406f802 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -1043,7 +1043,7 @@ Gestión de las operaciones apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -1071,7 +1071,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1779,7 +1779,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 @@ -2867,7 +2867,7 @@ Funcionalidades experimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 @@ -3462,12 +3462,12 @@ 168 - + Sneak peek at upcoming functionality Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -4791,7 +4791,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -6455,7 +6455,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -6463,7 +6463,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 @@ -6575,7 +6575,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6583,7 +6583,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -6658,6 +6658,22 @@ 45 + + Table + Table + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + + + Chart + Chart + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 00223d1cf..3f999fabb 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -1354,7 +1354,7 @@ Gérer les Activités apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -1422,7 +1422,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2122,7 +2122,7 @@ Fonctionnalités expérimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 @@ -2134,7 +2134,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 @@ -3461,12 +3461,12 @@ 168 - + Sneak peek at upcoming functionality Avant-première de fonctionnalités futures apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -4790,7 +4790,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -6454,7 +6454,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -6462,7 +6462,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 @@ -6574,7 +6574,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6582,7 +6582,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -6657,6 +6657,22 @@ 45 + + Table + Table + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + + + Chart + Chart + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index ab80e4d20..3fd1214e0 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -1043,7 +1043,7 @@ Gestione delle attività apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -1071,7 +1071,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1779,7 +1779,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 @@ -2867,7 +2867,7 @@ Funzionalità sperimentali apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 @@ -3462,12 +3462,12 @@ 168 - + Sneak peek at upcoming functionality Un'anteprima delle funzionalità in arrivo apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -4791,7 +4791,7 @@ Esporta dati apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -6455,7 +6455,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -6463,7 +6463,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 @@ -6575,7 +6575,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6583,7 +6583,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -6658,6 +6658,22 @@ 45 + + Table + Table + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + + + Chart + Chart + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 0f8f443e6..ba16658bf 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -1042,7 +1042,7 @@ Activiteiten beheren apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -1070,7 +1070,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -1778,7 +1778,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 @@ -2866,7 +2866,7 @@ Experimentele functies apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 @@ -3461,12 +3461,12 @@ 168 - + Sneak peek at upcoming functionality Voorproefje van nieuwe functionaliteit apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -4790,7 +4790,7 @@ Exporteer Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -6454,7 +6454,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -6462,7 +6462,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 @@ -6574,7 +6574,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6582,7 +6582,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -6657,6 +6657,22 @@ 45 + + Table + Table + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + + + Chart + Chart + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index c248f0832..0d06efef0 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -2238,7 +2238,7 @@ Manage Activities apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -2390,7 +2390,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -3162,15 +3162,15 @@ Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 - + Sneak peek at upcoming functionality Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -3182,7 +3182,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 @@ -3190,7 +3190,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -6454,7 +6454,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -6462,7 +6462,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 @@ -6574,7 +6574,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6582,7 +6582,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -6657,6 +6657,22 @@ 45 + + Table + Table + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + + + Chart + Chart + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 692bdc6c6..3848e6601 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -1222,7 +1222,7 @@ Gerir Atividades apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -1298,7 +1298,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2070,7 +2070,7 @@ Funcionalidades Experimentais apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 @@ -2082,7 +2082,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 @@ -3461,12 +3461,12 @@ 168 - + Sneak peek at upcoming functionality Acesso antecipado a funcionalidades futuras apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -4790,7 +4790,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -6454,7 +6454,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -6462,7 +6462,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 @@ -6574,7 +6574,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6582,7 +6582,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -6657,6 +6657,22 @@ 45 + + Table + Table + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + + + Chart + Chart + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index f7a174eef..47894e15a 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -2090,7 +2090,7 @@ İşlemleri Yönet apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -2242,7 +2242,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -5030,15 +5030,15 @@ Deneysel Özellikler apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 - + Sneak peek at upcoming functionality Gelecek özelliklere göz atın apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -5050,7 +5050,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 @@ -5058,7 +5058,7 @@ Verileri Dışa Aktar apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -6454,7 +6454,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -6462,7 +6462,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 @@ -6574,7 +6574,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6582,7 +6582,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -6657,6 +6657,22 @@ 45 + + Table + Table + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + + + Chart + Chart + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 302d21794..6cab5978c 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -2106,7 +2106,7 @@ Manage Activities apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -2241,7 +2241,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2937,14 +2937,14 @@ Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 - + Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -2955,14 +2955,14 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -5854,14 +5854,14 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -5952,7 +5952,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -5966,7 +5966,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6032,6 +6032,20 @@ 74 + + Chart + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + + + Table + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 056f6f40d..10e6f8a88 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -2255,7 +2255,7 @@ 管理活动 apps/client/src/app/components/home-holdings/home-holdings.html - 32 + 60 @@ -2407,7 +2407,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 247 + 245 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -3179,15 +3179,15 @@ 实验性功能 apps/client/src/app/components/user-account-settings/user-account-settings.html - 202 + 201 - + Sneak peek at upcoming functionality 预览即将推出的功能 apps/client/src/app/components/user-account-settings/user-account-settings.html - 203 + 202 @@ -3199,7 +3199,7 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 220 + 218 @@ -3207,7 +3207,7 @@ 导出数据 apps/client/src/app/components/user-account-settings/user-account-settings.html - 228 + 226 @@ -6455,7 +6455,7 @@ 关闭 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 26 + 37 @@ -6463,7 +6463,7 @@ 积极的 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 25 + 36 @@ -6575,7 +6575,7 @@ Danger Zone apps/client/src/app/components/user-account-settings/user-account-settings.html - 240 + 238 @@ -6583,7 +6583,7 @@ Close Account apps/client/src/app/components/user-account-settings/user-account-settings.html - 275 + 273 @@ -6658,6 +6658,22 @@ 45 + + Table + Table + + apps/client/src/app/components/home-holdings/home-holdings.html + 17 + + + + Chart + Chart + + apps/client/src/app/components/home-holdings/home-holdings.html + 20 + + - \ No newline at end of file +