Browse Source

Extend markets

pull/5076/head
Thomas Kaul 2 months ago
parent
commit
c496851ecb
  1. 1
      apps/api/src/app/user/user.service.ts
  2. 1
      apps/client/src/app/components/markets/markets.component.ts
  3. 4
      apps/client/src/app/pages/home/home-page-routing.module.ts
  4. 25
      apps/client/src/app/pages/home/home-page.component.ts
  5. 1
      libs/common/src/lib/permissions.ts
  6. 5
      libs/common/src/lib/routes/routes.ts

1
apps/api/src/app/user/user.service.ts

@ -419,6 +419,7 @@ export class UserService {
if (!hasRole(user, Role.DEMO)) { if (!hasRole(user, Role.DEMO)) {
currentPermissions.push(permissions.createApiKey); currentPermissions.push(permissions.createApiKey);
currentPermissions.push(permissions.enableDataProviderGhostfolio); currentPermissions.push(permissions.enableDataProviderGhostfolio);
currentPermissions.push(permissions.readMarketDataOfMarkets);
currentPermissions.push(permissions.reportDataGlitch); currentPermissions.push(permissions.reportDataGlitch);
} }

1
apps/client/src/app/components/markets/markets.component.ts

@ -125,7 +125,6 @@ export class MarketsComponent implements OnDestroy, OnInit {
]; ];
} }
// TODO
public onChangeFearAndGreedIndexMode( public onChangeFearAndGreedIndexMode(
aFearAndGreedIndexMode: FearAndGreedIndexMode aFearAndGreedIndexMode: FearAndGreedIndexMode
) { ) {

4
apps/client/src/app/pages/home/home-page-routing.module.ts

@ -36,9 +36,9 @@ const routes: Routes = [
title: internalRoutes.home.subRoutes.markets.title title: internalRoutes.home.subRoutes.markets.title
}, },
{ {
path: internalRoutes.home.subRoutes.markets.path + '-new', // TODO path: internalRoutes.home.subRoutes.marketsPremium.path,
component: MarketsComponent, component: MarketsComponent,
title: internalRoutes.home.subRoutes.markets.title title: internalRoutes.home.subRoutes.marketsPremium.title
}, },
{ {
path: internalRoutes.home.subRoutes.watchlist.path, path: internalRoutes.home.subRoutes.watchlist.path,

25
apps/client/src/app/pages/home/home-page.component.ts

@ -1,6 +1,7 @@
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service'; import { UserService } from '@ghostfolio/client/services/user/user.service';
import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { internalRoutes } from '@ghostfolio/common/routes/routes'; import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
@ -33,6 +34,8 @@ export class HomePageComponent implements OnDestroy, OnInit {
.pipe(takeUntil(this.unsubscribeSubject)) .pipe(takeUntil(this.unsubscribeSubject))
.subscribe((state) => { .subscribe((state) => {
if (state?.user) { if (state?.user) {
this.user = state.user;
this.tabs = [ this.tabs = [
{ {
iconName: 'analytics-outline', iconName: 'analytics-outline',
@ -56,18 +59,22 @@ export class HomePageComponent implements OnDestroy, OnInit {
}, },
{ {
iconName: 'newspaper-outline', iconName: 'newspaper-outline',
label: internalRoutes.home.subRoutes.markets.title, label: hasPermission(
routerLink: internalRoutes.home.subRoutes.markets.routerLink this.user?.permissions,
}, permissions.readMarketDataOfMarkets
{ )
iconName: 'newspaper-outline', ? internalRoutes.home.subRoutes.marketsPremium.title
label: internalRoutes.home.subRoutes.markets.title + ' (new)', : internalRoutes.home.subRoutes.markets.title,
routerLink: ['/home', 'markets-new'] // TODO
routerLink: hasPermission(
this.user?.permissions,
permissions.readMarketDataOfMarkets
)
? internalRoutes.home.subRoutes.marketsPremium.routerLink
: internalRoutes.home.subRoutes.markets.routerLink
} }
]; ];
this.user = state.user;
this.changeDetectorRef.markForCheck(); this.changeDetectorRef.markForCheck();
} }
}); });

1
libs/common/src/lib/permissions.ts

@ -88,7 +88,6 @@ export function getPermissions(aRole: Role): string[] {
permissions.deleteUser, permissions.deleteUser,
permissions.readAiPrompt, permissions.readAiPrompt,
permissions.readMarketData, permissions.readMarketData,
permissions.readMarketDataOfMarkets,
permissions.readMarketDataOfOwnAssetProfile, permissions.readMarketDataOfOwnAssetProfile,
permissions.readPlatforms, permissions.readPlatforms,
permissions.readTags, permissions.readTags,

5
libs/common/src/lib/routes/routes.ts

@ -94,6 +94,11 @@ export const internalRoutes: Record<string, InternalRoute> = {
routerLink: ['/home', 'markets'], routerLink: ['/home', 'markets'],
title: $localize`Markets` title: $localize`Markets`
}, },
marketsPremium: {
path: 'markets-premium',
routerLink: ['/home', 'markets-premium'],
title: $localize`Markets`
},
summary: { summary: {
path: 'summary', path: 'summary',
routerLink: ['/home', 'summary'], routerLink: ['/home', 'summary'],

Loading…
Cancel
Save