From 5fe07cb85f1e6552e537ab626f9f09a141874ad2 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 26 Jul 2023 20:05:26 +0200 Subject: [PATCH 1/7] Bugfix/fix value in holdings table (#2182) * Fix missing value * Update changelog --- CHANGELOG.md | 6 ++++++ .../ui/src/lib/holdings-table/holdings-table.component.html | 4 ++-- libs/ui/src/lib/holdings-table/holdings-table.component.ts | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1be362416..a98558fc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +### Fixed + +- Fixed the missing values in the holdings table + ## 1.292.0 - 2023-07-24 ### Added diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.html b/libs/ui/src/lib/holdings-table/holdings-table.component.html index 5be58e663..29e3eeb1f 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.html +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -61,7 +61,7 @@ - + diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.ts b/libs/ui/src/lib/holdings-table/holdings-table.component.ts index a4aee7710..e11cf69d4 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.ts +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.ts @@ -55,7 +55,7 @@ export class HoldingsTableComponent implements OnChanges, OnDestroy, OnInit { this.displayedColumns = ['icon', 'nameWithSymbol', 'dateOfFirstActivity']; if (this.hasPermissionToShowValues) { - this.displayedColumns.push('value'); + this.displayedColumns.push('valueInBaseCurrency'); } this.displayedColumns.push('allocationInPercentage'); From d9ced885e12ded1758ee19f569ee95c4a7657f2e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 26 Jul 2023 20:30:32 +0200 Subject: [PATCH 2/7] Feature/add error handling for redis connections (#2179) * Add error handling * Update changelog --- CHANGELOG.md | 4 ++++ .../interfaces/redis-cache.interface.ts | 7 +++++++ .../interfaces/redis-store.interface.ts | 8 ++++++++ .../src/app/redis-cache/redis-cache.service.ts | 15 +++++++++++---- 4 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 apps/api/src/app/redis-cache/interfaces/redis-cache.interface.ts create mode 100644 apps/api/src/app/redis-cache/interfaces/redis-store.interface.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index a98558fc9..60dd52304 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added error handling for the _Redis_ connections to keep the app running if the connection fails + ### Fixed - Fixed the missing values in the holdings table diff --git a/apps/api/src/app/redis-cache/interfaces/redis-cache.interface.ts b/apps/api/src/app/redis-cache/interfaces/redis-cache.interface.ts new file mode 100644 index 000000000..194da0bc8 --- /dev/null +++ b/apps/api/src/app/redis-cache/interfaces/redis-cache.interface.ts @@ -0,0 +1,7 @@ +import { Cache } from 'cache-manager'; + +import type { RedisStore } from './redis-store.interface'; + +export interface RedisCache extends Cache { + store: RedisStore; +} diff --git a/apps/api/src/app/redis-cache/interfaces/redis-store.interface.ts b/apps/api/src/app/redis-cache/interfaces/redis-store.interface.ts new file mode 100644 index 000000000..83c20eeb0 --- /dev/null +++ b/apps/api/src/app/redis-cache/interfaces/redis-store.interface.ts @@ -0,0 +1,8 @@ +import { Store } from 'cache-manager'; +import Redis from 'redis'; + +export interface RedisStore extends Store { + getClient: () => Redis.RedisClient; + isCacheableValue: (value: any) => boolean; + name: 'redis'; +} diff --git a/apps/api/src/app/redis-cache/redis-cache.service.ts b/apps/api/src/app/redis-cache/redis-cache.service.ts index fb75460ed..865a23aea 100644 --- a/apps/api/src/app/redis-cache/redis-cache.service.ts +++ b/apps/api/src/app/redis-cache/redis-cache.service.ts @@ -1,14 +1,21 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { UniqueAsset } from '@ghostfolio/common/interfaces'; -import { CACHE_MANAGER, Inject, Injectable } from '@nestjs/common'; -import { Cache } from 'cache-manager'; +import { CACHE_MANAGER, Inject, Injectable, Logger } from '@nestjs/common'; + +import type { RedisCache } from './interfaces/redis-cache.interface'; @Injectable() export class RedisCacheService { public constructor( - @Inject(CACHE_MANAGER) private readonly cache: Cache, + @Inject(CACHE_MANAGER) private readonly cache: RedisCache, private readonly configurationService: ConfigurationService - ) {} + ) { + const client = cache.store.getClient(); + + client.on('error', (error) => { + Logger.error(error, 'RedisCacheService'); + }); + } public async get(key: string): Promise { return await this.cache.get(key); From efd9e7a5c78916285ed8a5ea63c28b5a33c3b81f Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 26 Jul 2023 20:36:34 +0200 Subject: [PATCH 3/7] Fix RedisClient import (#2183) --- .../src/app/redis-cache/interfaces/redis-store.interface.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/api/src/app/redis-cache/interfaces/redis-store.interface.ts b/apps/api/src/app/redis-cache/interfaces/redis-store.interface.ts index 83c20eeb0..eb35a577f 100644 --- a/apps/api/src/app/redis-cache/interfaces/redis-store.interface.ts +++ b/apps/api/src/app/redis-cache/interfaces/redis-store.interface.ts @@ -1,8 +1,8 @@ import { Store } from 'cache-manager'; -import Redis from 'redis'; +import { RedisClient } from 'redis'; export interface RedisStore extends Store { - getClient: () => Redis.RedisClient; + getClient: () => RedisClient; isCacheableValue: (value: any) => boolean; name: 'redis'; } From 77e9791e0360f774441474b0f447227fcace9381 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 26 Jul 2023 21:08:38 +0200 Subject: [PATCH 4/7] Feature/set lastmod dates of sitemap.xml dynamically (#2170) * Setup template with interpolation for sitemap.xml * Update changelog --- CHANGELOG.md | 4 + apps/api/src/app/frontend.middleware.ts | 16 +- apps/{client => api}/src/assets/sitemap.xml | 250 ++++++++++---------- 3 files changed, 143 insertions(+), 127 deletions(-) rename apps/{client => api}/src/assets/sitemap.xml (60%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60dd52304..721281c05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added error handling for the _Redis_ connections to keep the app running if the connection fails +### Changed + +- Set the `lastmod` dates of `sitemap.xml` dynamically + ### Fixed - Fixed the missing values in the holdings table diff --git a/apps/api/src/app/frontend.middleware.ts b/apps/api/src/app/frontend.middleware.ts index baf1953b0..8e867c371 100644 --- a/apps/api/src/app/frontend.middleware.ts +++ b/apps/api/src/app/frontend.middleware.ts @@ -4,7 +4,7 @@ import * as path from 'path'; import { environment } from '@ghostfolio/api/environments/environment'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { DEFAULT_LANGUAGE_CODE } from '@ghostfolio/common/config'; -import { DATE_FORMAT } from '@ghostfolio/common/helper'; +import { DATE_FORMAT, getYesterday } from '@ghostfolio/common/helper'; import { Injectable, NestMiddleware } from '@nestjs/common'; import { format } from 'date-fns'; import { NextFunction, Request, Response } from 'express'; @@ -18,6 +18,7 @@ export class FrontendMiddleware implements NestMiddleware { public indexHtmlIt = ''; public indexHtmlNl = ''; public indexHtmlPt = ''; + public sitemapXml = ''; private static readonly DEFAULT_DESCRIPTION = 'Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms.'; @@ -54,6 +55,10 @@ export class FrontendMiddleware implements NestMiddleware { this.getPathOfIndexHtmlFile('pt'), 'utf8' ); + this.sitemapXml = fs.readFileSync( + path.join(__dirname, 'assets', 'sitemap.xml'), + 'utf8' + ); } catch {} } @@ -118,6 +123,13 @@ export class FrontendMiddleware implements NestMiddleware { ) { // Skip next(); + } else if (request.path === '/sitemap.xml') { + response.setHeader('content-type', 'application/xml'); + response.send( + this.interpolate(this.sitemapXml, { + currentDate: format(getYesterday(), DATE_FORMAT) + }) + ); } else if (request.path === '/de' || request.path.startsWith('/de/')) { response.send( this.interpolate(this.indexHtmlDe, { @@ -228,7 +240,7 @@ export class FrontendMiddleware implements NestMiddleware { private isFileRequest(filename: string) { if (filename === '/assets/LICENSE') { return true; - } else if (filename.includes('auth/ey')) { + } else if (filename === '/sitemap.xml' || filename.includes('auth/ey')) { return false; } diff --git a/apps/client/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml similarity index 60% rename from apps/client/src/assets/sitemap.xml rename to apps/api/src/assets/sitemap.xml index cfc44a814..cd4c9f3fb 100644 --- a/apps/client/src/assets/sitemap.xml +++ b/apps/api/src/assets/sitemap.xml @@ -6,514 +6,514 @@ http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> https://ghostfol.io/de - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/blog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/blog/2021/07/hallo-ghostfolio - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/features - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/haeufig-gestellte-fragen - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/maerkte daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/open daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/preise - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/registrierung - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/ressourcen - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/ueber-uns - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/ueber-uns/changelog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/ueber-uns/datenschutzbestimmungen - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/de/ueber-uns/lizenz - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/about - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/about/changelog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/about/license - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2021/07/hello-ghostfolio - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2022/01/ghostfolio-first-months-in-open-source - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2022/07/ghostfolio-meets-internet-identity - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2022/07/how-do-i-get-my-finances-in-order - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2022/08/500-stars-on-github - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2022/10/hacktoberfest-2022 - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2022/11/black-friday-2022 - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2022/12/the-importance-of-tracking-your-personal-finances - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2023/02/ghostfolio-meets-umbrel - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2023/03/ghostfolio-reaches-1000-stars-on-github - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2023/05/unlock-your-financial-potential-with-ghostfolio - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/blog/2023/07/exploring-the-path-to-fire - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/faq - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/features - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/markets daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/open daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/pricing - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/register - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-altoo - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-copilot-money - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-delta - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-divvydiary - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-exirio - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-folishare - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-getquin - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-gospatz - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-justetf - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-kubera - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-markets.sh - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-maybe-finance - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-monse - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-parqet - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-plannix - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-portfolio-dividend-tracker - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-portseido - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-projectionlab - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-seeking-alpha - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-sharesight - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-simple-portfolio - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-snowball-analytics - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-sumio - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-utluna - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-yeekatee - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/funcionalidades - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/mercados daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/open daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/precios - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/preguntas-mas-frecuentes - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/recursos - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/registro - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/sobre - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/sobre/changelog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/sobre/licencia - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/es/sobre/politica-de-privacidad - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/a-propos - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/a-propos/changelog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/a-propos/licence - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/a-propos/politique-de-confidentialite - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/enregistrement - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/fonctionnalites - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/foire-aux-questions - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/marches daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/open daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/prix - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/fr/ressources - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/domande-piu-frequenti - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/funzionalita - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/informazioni-su - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/informazioni-su/changelog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/informazioni-su/licenza - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/informazioni-su/informativa-sulla-privacy - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/iscrizione - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/mercati daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/open daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/prezzi - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/it/risorse - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/bronnen - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/kenmerken - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/markten daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/open daily - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/over - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/over/changelog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/over/licentie - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/over/privacybeleid - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/prijzen - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/registratie - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/nl/vaak-gestelde-vragen - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/blog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/funcionalidades - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/mercados - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/open - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/perguntas-mais-frequentes - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/precos - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/recursos - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/registo - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/sobre - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/sobre/changelog - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/sobre/licenca - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 https://ghostfol.io/pt/sobre/politica-de-privacidade - 2023-07-10T00:00:00+00:00 + ${currentDate}T00:00:00+00:00 From fb1a5c93ef12e271cff256616b47eb79336bb901 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 26 Jul 2023 21:26:05 +0200 Subject: [PATCH 5/7] Bugfix/fix no such file or directory error caused by missing favicon.ico (#2185) * Add instructions to copy favicon.ico * Update changelog --- CHANGELOG.md | 1 + apps/client/project.json | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 721281c05..d0dd84a95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed the missing values in the holdings table +- Fixed the `no such file or directory` error caused by the missing `favicon.ico` file ## 1.292.0 - 2023-07-24 diff --git a/apps/client/project.json b/apps/client/project.json index a4c8830a7..df369a298 100644 --- a/apps/client/project.json +++ b/apps/client/project.json @@ -29,6 +29,11 @@ "input": "", "output": "./../assets" }, + { + "glob": "favicon.ico", + "input": "apps/client/src/assets", + "output": "./../" + }, { "glob": "LICENSE", "input": "", From 2a11977001ca94bee3fdb716506a06c5fc80378d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 26 Jul 2023 21:32:35 +0200 Subject: [PATCH 6/7] Release 1.293.0 (#2186) --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0dd84a95..1f13cc6b7 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 +## 1.293.0 - 2023-07-26 ### Added diff --git a/package.json b/package.json index eea40d16d..f25235a0a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "1.292.0", + "version": "1.293.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "scripts": { From ca05397dcd5cb98244b3dab09ca788912440af2f Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 27 Jul 2023 17:39:29 +0200 Subject: [PATCH 7/7] Extend Community Projects section (#2188) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3872caac6..d7ce11b12 100644 --- a/README.md +++ b/README.md @@ -263,7 +263,9 @@ Deprecated: `GET http://localhost:3333/api/v1/auth/anonymous/