Browse Source

Merge branch 'main' into feature/improve-usability-of-no-activities-info

pull/4382/head
Thomas Kaul 6 months ago
committed by GitHub
parent
commit
0db335f65a
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 7
      CHANGELOG.md
  2. 13
      apps/api/src/app/portfolio/portfolio.service.ts
  3. 9
      apps/client/src/app/app.component.html
  4. 20
      apps/client/src/app/pages/about/overview/about-overview-page.html
  5. 2
      libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
  6. 2
      libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
  7. 99
      package-lock.json
  8. 3
      package.json

7
CHANGELOG.md

@ -7,11 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
### Added
- Added the Ghostfolio _LinkedIn_ page to the about page
- Added the Ghostfolio _LinkedIn_ page to the footer
### Changed
- Optimized the asynchronous operations using `Promise.all()` in the portfolio service (`getPerformance`)
- Improved the symbol lookup in the _Trackinsight_ data enhancer for asset profile data
- Removed the no transactions info component from the holdings table on the home page
- Refactored the show condition of the step by step introduction for new users using the activities count
- Upgraded `color` from version `4.2.3` to `5.0.0`
### Fixed

13
apps/api/src/app/portfolio/portfolio.service.ts

@ -1081,19 +1081,18 @@ export class PortfolioService {
const user = await this.userService.user({ id: userId });
const userCurrency = this.getUserCurrency(user);
const accountBalanceItems =
await this.accountBalanceService.getAccountBalanceItems({
const [accountBalanceItems, { activities }] = await Promise.all([
this.accountBalanceService.getAccountBalanceItems({
filters,
userId,
userCurrency
});
const { activities } =
await this.orderService.getOrdersForPortfolioCalculator({
}),
this.orderService.getOrdersForPortfolioCalculator({
filters,
userCurrency,
userId
});
})
]);
if (accountBalanceItems.length === 0 && activities.length === 0) {
return {

9
apps/client/src/app/app.component.html

@ -129,6 +129,15 @@
>GitHub<ion-icon class="ml-1" name="open-outline"
/></a>
</li>
<li>
<a
class="align-items-baseline d-flex"
href="https://linkedin.com/company/ghostfolio"
target="_blank"
title="Follow Ghostfolio on LinkedIn"
>LinkedIn<ion-icon class="ml-1" name="open-outline"
/></a>
</li>
<li>
<a
class="align-items-baseline d-flex"

20
apps/client/src/app/pages/about/overview/about-overview-page.html

@ -73,6 +73,14 @@
>.
</p>
<p class="align-items-center d-flex justify-content-center">
<a
class="mx-2"
href="https://join.slack.com/t/ghostfolio/shared_invite/zt-vsaan64h-F_I0fEo5M0P88lP9ibCxFg"
mat-icon-button
title="Join the Ghostfolio Slack community"
>
<ion-icon name="logo-slack" />
</a>
<a
class="mx-2"
href="https://x.com/ghostfolio_"
@ -93,19 +101,19 @@
}
<a
class="mx-2"
href="https://join.slack.com/t/ghostfolio/shared_invite/zt-vsaan64h-F_I0fEo5M0P88lP9ibCxFg"
href="https://github.com/ghostfolio/ghostfolio"
mat-icon-button
title="Join the Ghostfolio Slack community"
title="Find Ghostfolio on GitHub"
>
<ion-icon name="logo-slack" />
<ion-icon name="logo-github" />
</a>
<a
class="mx-2"
href="https://github.com/ghostfolio/ghostfolio"
href="https://linkedin.com/company/ghostfolio"
mat-icon-button
title="Find Ghostfolio on GitHub"
title="Follow Ghostfolio on LinkedIn"
>
<ion-icon name="logo-github" />
<ion-icon name="logo-linkedin" />
</a>
</p>
@if (hasPermissionForSubscription) {

2
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts

@ -41,7 +41,7 @@ import {
Tooltip
} from 'chart.js';
import 'chartjs-adapter-date-fns';
import * as Color from 'color';
import Color from 'color';
import {
add,
addYears,

2
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts

@ -29,7 +29,7 @@ import { ArcElement } from 'chart.js';
import { DoughnutController } from 'chart.js';
import { Chart } from 'chart.js';
import ChartDataLabels from 'chartjs-plugin-datalabels';
import * as Color from 'color';
import Color from 'color';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
const {

99
package-lock.json

@ -58,7 +58,7 @@
"cheerio": "1.0.0",
"class-transformer": "0.5.1",
"class-validator": "0.14.1",
"color": "4.2.3",
"color": "5.0.0",
"countries-and-timezones": "3.7.2",
"countries-list": "3.1.1",
"countup.js": "2.8.0",
@ -128,7 +128,6 @@
"@trivago/prettier-plugin-sort-imports": "5.2.2",
"@types/big.js": "6.2.2",
"@types/cache-manager": "4.0.6",
"@types/color": "4.2.0",
"@types/google-spreadsheet": "3.1.5",
"@types/jest": "29.5.13",
"@types/lodash": "4.17.7",
@ -10705,33 +10704,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/color": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@types/color/-/color-4.2.0.tgz",
"integrity": "sha512-6+xrIRImMtGAL2X3qYkd02Mgs+gFGs+WsK0b7VVMaO4mYRISwyTjcqNrO0mNSmYEoq++rSLDB2F5HDNmqfOe+A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/color-convert": "*"
}
},
"node_modules/@types/color-convert": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.4.tgz",
"integrity": "sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/color-name": "^1.1.0"
}
},
"node_modules/@types/color-name": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.5.tgz",
"integrity": "sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/connect": {
"version": "3.4.38",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
@ -14304,16 +14276,16 @@
"license": "MIT"
},
"node_modules/color": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/color/-/color-5.0.0.tgz",
"integrity": "sha512-16BlyiuyLq3MLxpRWyOTiWsO3ii/eLQLJUQXBSNcxMBBSnyt1ee9YUdaozQp03ifwm5woztEZGDbk9RGVuCsdw==",
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1",
"color-string": "^1.9.0"
"color-convert": "^3.0.1",
"color-string": "^2.0.0"
},
"engines": {
"node": ">=12.5.0"
"node": ">=18"
}
},
"node_modules/color-convert": {
@ -14335,13 +14307,45 @@
"license": "MIT"
},
"node_modules/color-string": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-2.0.1.tgz",
"integrity": "sha512-5z9FbYTZPAo8iKsNEqRNv+OlpBbDcoE+SY9GjLfDUHEfcNNV7tS9eSAlFHEaub/r5tBL9LtskAeq1l9SaoZ5tQ==",
"license": "MIT",
"dependencies": {
"color-name": "^2.0.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/color-string/node_modules/color-name": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.0.tgz",
"integrity": "sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==",
"license": "MIT",
"engines": {
"node": ">=12.20"
}
},
"node_modules/color/node_modules/color-convert": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.0.1.tgz",
"integrity": "sha512-5kQah2eolfQV7HCrxtsBBArPfT5dwaKYMCXeMQsdRO7ihTO/cuNLGjd50ITCDn+ZU/YbS0Go64SjP9154eopxg==",
"license": "MIT",
"dependencies": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
"color-name": "^2.0.0"
},
"engines": {
"node": ">=14.6"
}
},
"node_modules/color/node_modules/color-name": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.0.tgz",
"integrity": "sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==",
"license": "MIT",
"engines": {
"node": ">=12.20"
}
},
"node_modules/colord": {
@ -28927,21 +28931,6 @@
"integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==",
"license": "ISC"
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"license": "MIT",
"dependencies": {
"is-arrayish": "^0.3.1"
}
},
"node_modules/simple-swizzle/node_modules/is-arrayish": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
"license": "MIT"
},
"node_modules/sirv": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",

3
package.json

@ -104,7 +104,7 @@
"cheerio": "1.0.0",
"class-transformer": "0.5.1",
"class-validator": "0.14.1",
"color": "4.2.3",
"color": "5.0.0",
"countries-and-timezones": "3.7.2",
"countries-list": "3.1.1",
"countup.js": "2.8.0",
@ -174,7 +174,6 @@
"@trivago/prettier-plugin-sort-imports": "5.2.2",
"@types/big.js": "6.2.2",
"@types/cache-manager": "4.0.6",
"@types/color": "4.2.0",
"@types/google-spreadsheet": "3.1.5",
"@types/jest": "29.5.13",
"@types/lodash": "4.17.7",

Loading…
Cancel
Save