Browse Source

Merge branch 'main' into fix/remove-invalid-each-true

pull/7165/head
Thomas Kaul 2 weeks ago
committed by GitHub
parent
commit
a9cdaca99d
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 5
      CHANGELOG.md
  2. 2
      apps/client/src/app/components/admin-users/admin-users.component.ts
  3. 8
      apps/client/src/app/components/admin-users/admin-users.html
  4. 3
      apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
  5. 7
      apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
  6. 1022
      apps/client/src/locales/messages.ja.xlf
  7. 67
      package-lock.json
  8. 10
      package.json

5
CHANGELOG.md

@ -11,6 +11,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added support for routing outgoing requests through a per-domain proxy via the `PROXY_ROUTES` setting in the `FetchService`
### Changed
- Improved the language localization for Japanese (`ja`)
- Upgraded `nestjs` from version `11.1.21` to `11.1.27`
### Fixed
- Fixed a recurring issue where single-value fields were incorrectly validated as arrays in various endpoints

2
apps/client/src/app/components/admin-users/admin-users.component.ts

@ -8,6 +8,7 @@ import { UserService } from '@ghostfolio/client/services/user/user.service';
import { DEFAULT_LOCALE, DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import {
getCountryName,
getDateFnsLocale,
getDateFormatString,
getEmojiFlag
@ -88,6 +89,7 @@ export class GfAdminUsersComponent implements OnInit {
>();
protected defaultDateFormat: string;
protected displayedColumns: string[] = [];
protected readonly getCountryName = getCountryName;
protected readonly getEmojiFlag = getEmojiFlag;
protected hasPermissionForSubscription: boolean;
protected hasPermissionToImpersonateAllUsers: boolean;

8
apps/client/src/app/components/admin-users/admin-users.html

@ -60,9 +60,11 @@
class="mat-mdc-cell px-1 py-2"
mat-cell
>
<span class="h5" [title]="element.country">{{
getEmojiFlag(element.country)
}}</span>
<span
class="h5"
[title]="getCountryName({ code: element.country })"
>{{ getEmojiFlag(element.country) }}</span
>
</td>
</ng-container>
}

3
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts

@ -1,4 +1,4 @@
import { getSum } from '@ghostfolio/common/helper';
import { getCountryName, getSum } from '@ghostfolio/common/helper';
import { AdminUserResponse } from '@ghostfolio/common/interfaces';
import { AdminService, DataService } from '@ghostfolio/ui/services';
import { GfValueComponent } from '@ghostfolio/ui/value';
@ -50,6 +50,7 @@ import {
})
export class GfUserDetailDialogComponent implements OnInit {
public baseCurrency: string;
public readonly getCountryName = getCountryName;
public subscriptionsDataSource = new MatTableDataSource<Subscription>();
public subscriptionsDisplayedColumns = [
'createdAt',

7
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html

@ -74,7 +74,12 @@
>
</div>
<div class="col-6 mb-3">
<gf-value i18n size="medium" [value]="user?.country"
<gf-value
i18n
size="medium"
[value]="
user?.country ? getCountryName({ code: user.country }) : '-'
"
>Country</gf-value
>
</div>

1022
apps/client/src/locales/messages.ja.xlf

File diff suppressed because it is too large

67
package-lock.json

@ -30,14 +30,14 @@
"@ionic/angular": "8.8.5",
"@keyv/redis": "5.1.6",
"@nestjs/bull": "11.0.4",
"@nestjs/cache-manager": "3.1.2",
"@nestjs/common": "11.1.21",
"@nestjs/cache-manager": "3.1.3",
"@nestjs/common": "11.1.27",
"@nestjs/config": "4.0.4",
"@nestjs/core": "11.1.21",
"@nestjs/core": "11.1.27",
"@nestjs/event-emitter": "3.1.0",
"@nestjs/jwt": "11.0.2",
"@nestjs/passport": "11.0.5",
"@nestjs/platform-express": "11.1.21",
"@nestjs/platform-express": "11.1.27",
"@nestjs/schedule": "6.1.3",
"@nestjs/serve-static": "5.0.5",
"@openrouter/ai-sdk-provider": "2.9.1",
@ -114,7 +114,7 @@
"@eslint/eslintrc": "3.3.1",
"@eslint/js": "9.35.0",
"@nestjs/schematics": "11.1.0",
"@nestjs/testing": "11.1.21",
"@nestjs/testing": "11.1.27",
"@nx/angular": "23.0.1",
"@nx/eslint-plugin": "23.0.1",
"@nx/jest": "23.0.1",
@ -6983,9 +6983,9 @@
}
},
"node_modules/@nestjs/cache-manager": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@nestjs/cache-manager/-/cache-manager-3.1.2.tgz",
"integrity": "sha512-Eglt8lUzC3Q3OZ2hFt4vLZ190M94YSJXUiKo67K/zlUgZQGtvxL0AYeKbG96x8+1gJTF7QhFpYw/RkQ28416Mw==",
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/@nestjs/cache-manager/-/cache-manager-3.1.3.tgz",
"integrity": "sha512-HMtiOfHz75NZX7mJn1VnZGLSachVI04TnUc5wvEogIaKwk5BDQHgtP5htxreizjv7oxKalJbuTyxtiF6bE+bgQ==",
"license": "MIT",
"peerDependencies": {
"@nestjs/common": "^9.0.0 || ^10.0.0 || ^11.0.0",
@ -6996,9 +6996,9 @@
}
},
"node_modules/@nestjs/common": {
"version": "11.1.21",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.21.tgz",
"integrity": "sha512-YV1HYDGsm2rnR0vrLKidtrG6jYX5yqiIjeur1j8++dKGqhhsJ6cjMs0RfQRSTUH7IjgDemA59/znQ8nRrE0D9g==",
"version": "11.1.27",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.27.tgz",
"integrity": "sha512-kEGSzqM2lWr4whh4Ubflw+oPZSEzxvRMu9WL+LveZploJWTjec5bBlCiRVlVzTPg2kIwBiLwWSvCCW7Wnin1gg==",
"license": "MIT",
"dependencies": {
"file-type": "21.3.4",
@ -7054,13 +7054,11 @@
}
},
"node_modules/@nestjs/core": {
"version": "11.1.21",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.21.tgz",
"integrity": "sha512-fqo0BHgny3MOuAL8GSfG3ZUKFVVBaBQD/0iyibnwTONT5vPexjQxJzu+945iloVvBDmrnAaRWxC1gqCDEs/AXQ==",
"hasInstallScript": true,
"version": "11.1.27",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.27.tgz",
"integrity": "sha512-K6DX7hcqmZdeXkv7tsPakKBRCgqL19a4mtbX4FluY0hWtFdtPKp6lbe+lb8gWPfvLdbOWr/CPScn7BSjBX+Ecg==",
"license": "MIT",
"dependencies": {
"@nuxt/opencollective": "0.4.1",
"fast-safe-stringify": "2.1.1",
"iterare": "1.2.1",
"path-to-regexp": "8.4.2",
@ -7131,9 +7129,9 @@
}
},
"node_modules/@nestjs/platform-express": {
"version": "11.1.21",
"resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-11.1.21.tgz",
"integrity": "sha512-lA3ViycOnz4Df3EstIKpuAVFhqxQixTnjAVk0M+LRyNBlGM6VSCaNJaAIrb9Pcry39T4hTHpNVbRqGLSvhL8gA==",
"version": "11.1.27",
"resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-11.1.27.tgz",
"integrity": "sha512-0ZFhz6H6EdGh4xQVbUNwjoAwBuz73P7FvUAl67h9CTdMqQlJDaQYJApBv8pKfVZ1fGjMCbl0m9DcC6pXaZPWSQ==",
"license": "MIT",
"dependencies": {
"cors": "2.8.6",
@ -7414,9 +7412,9 @@
}
},
"node_modules/@nestjs/testing": {
"version": "11.1.21",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-11.1.21.tgz",
"integrity": "sha512-RhzaUFxr6/bpXWjKIzr7p2eHKMFMLwPgsxJNFcCf2CkkT3UEjW+KRGb7E2JY+fh+ck3zAdvQJrzATDnSsVlFZw==",
"version": "11.1.27",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-11.1.27.tgz",
"integrity": "sha512-I35po13UHZZeGenLWJ3QYwh77RsLau5RcFKWBZ4waVHeARpwjtC7v7n7lGh98swLQdGmZgTnbvKaZ0B5dsUIKA==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -7788,22 +7786,6 @@
"node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/@nuxt/opencollective": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.4.1.tgz",
"integrity": "sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==",
"license": "MIT",
"dependencies": {
"consola": "^3.2.3"
},
"bin": {
"opencollective": "bin/opencollective.js"
},
"engines": {
"node": "^14.18.0 || >=16.10.0",
"npm": ">=5.10.0"
}
},
"node_modules/@nx/angular": {
"version": "23.0.1",
"resolved": "https://registry.npmjs.org/@nx/angular/-/angular-23.0.1.tgz",
@ -16813,15 +16795,6 @@
"node": ">=0.8"
}
},
"node_modules/consola": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
"integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
"license": "MIT",
"engines": {
"node": "^14.18.0 || >=16.10.0"
}
},
"node_modules/content-disposition": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",

10
package.json

@ -74,14 +74,14 @@
"@ionic/angular": "8.8.5",
"@keyv/redis": "5.1.6",
"@nestjs/bull": "11.0.4",
"@nestjs/cache-manager": "3.1.2",
"@nestjs/common": "11.1.21",
"@nestjs/cache-manager": "3.1.3",
"@nestjs/common": "11.1.27",
"@nestjs/config": "4.0.4",
"@nestjs/core": "11.1.21",
"@nestjs/core": "11.1.27",
"@nestjs/event-emitter": "3.1.0",
"@nestjs/jwt": "11.0.2",
"@nestjs/passport": "11.0.5",
"@nestjs/platform-express": "11.1.21",
"@nestjs/platform-express": "11.1.27",
"@nestjs/schedule": "6.1.3",
"@nestjs/serve-static": "5.0.5",
"@openrouter/ai-sdk-provider": "2.9.1",
@ -158,7 +158,7 @@
"@eslint/eslintrc": "3.3.1",
"@eslint/js": "9.35.0",
"@nestjs/schematics": "11.1.0",
"@nestjs/testing": "11.1.21",
"@nestjs/testing": "11.1.27",
"@nx/angular": "23.0.1",
"@nx/eslint-plugin": "23.0.1",
"@nx/jest": "23.0.1",

Loading…
Cancel
Save