Thomas Kaul
11 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with
14 additions and
27 deletions
-
apps/api/src/app/info/info.service.ts
-
apps/api/src/services/configuration/configuration.service.ts
-
apps/api/src/services/interfaces/environment.interface.ts
-
apps/client/src/app/app.component.html
-
apps/client/src/app/app.component.ts
-
apps/client/src/app/pages/about/overview/about-overview-page.component.ts
-
apps/client/src/app/pages/about/overview/about-overview-page.html
-
apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts
-
apps/client/src/app/pages/faq/overview/faq-overview-page.html
|
|
@ -60,10 +60,6 @@ export class InfoService { |
|
|
|
|
|
|
|
const globalPermissions: string[] = []; |
|
|
|
|
|
|
|
if (this.configurationService.get('ENABLE_FEATURE_BLOG')) { |
|
|
|
globalPermissions.push(permissions.enableBlog); |
|
|
|
} |
|
|
|
|
|
|
|
if (this.configurationService.get('ENABLE_FEATURE_FEAR_AND_GREED_INDEX')) { |
|
|
|
if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { |
|
|
|
info.fearAndGreedDataSource = encodeDataSource( |
|
|
|
|
|
@ -27,7 +27,6 @@ export class ConfigurationService { |
|
|
|
DATA_SOURCES: json({ |
|
|
|
default: [DataSource.COINGECKO, DataSource.MANUAL, DataSource.YAHOO] |
|
|
|
}), |
|
|
|
ENABLE_FEATURE_BLOG: bool({ default: false }), |
|
|
|
ENABLE_FEATURE_FEAR_AND_GREED_INDEX: bool({ default: false }), |
|
|
|
ENABLE_FEATURE_READ_ONLY_MODE: bool({ default: false }), |
|
|
|
ENABLE_FEATURE_SOCIAL_LOGIN: bool({ default: false }), |
|
|
|
|
|
@ -15,7 +15,6 @@ export interface Environment extends CleanedEnvAccessors { |
|
|
|
DATA_SOURCE_EXCHANGE_RATES: string; |
|
|
|
DATA_SOURCE_IMPORT: string; |
|
|
|
DATA_SOURCES: string[]; |
|
|
|
ENABLE_FEATURE_BLOG: boolean; |
|
|
|
ENABLE_FEATURE_FEAR_AND_GREED_INDEX: boolean; |
|
|
|
ENABLE_FEATURE_READ_ONLY_MODE: boolean; |
|
|
|
ENABLE_FEATURE_SOCIAL_LOGIN: boolean; |
|
|
|
|
|
@ -64,7 +64,7 @@ |
|
|
|
<div class="h6 mt-2">Ghostfolio</div> |
|
|
|
<ul class="list-unstyled"> |
|
|
|
<li><a i18n [routerLink]="routerLinkAbout">About</a></li> |
|
|
|
<li *ngIf="hasPermissionForBlog"> |
|
|
|
<li *ngIf="hasPermissionForSubscription"> |
|
|
|
<a i18n [routerLink]="['/blog']">Blog</a> |
|
|
|
</li> |
|
|
|
<li> |
|
|
|
|
|
@ -38,7 +38,6 @@ export class AppComponent implements OnDestroy, OnInit { |
|
|
|
public currentYear = new Date().getFullYear(); |
|
|
|
public deviceType: string; |
|
|
|
public hasInfoMessage: boolean; |
|
|
|
public hasPermissionForBlog: boolean; |
|
|
|
public hasPermissionForStatistics: boolean; |
|
|
|
public hasPermissionForSubscription: boolean; |
|
|
|
public hasPermissionToAccessFearAndGreedIndex: boolean; |
|
|
@ -81,11 +80,6 @@ export class AppComponent implements OnDestroy, OnInit { |
|
|
|
this.deviceType = this.deviceService.getDeviceInfo().deviceType; |
|
|
|
this.info = this.dataService.fetchInfo(); |
|
|
|
|
|
|
|
this.hasPermissionForBlog = hasPermission( |
|
|
|
this.info?.globalPermissions, |
|
|
|
permissions.enableBlog |
|
|
|
); |
|
|
|
|
|
|
|
this.hasPermissionForSubscription = hasPermission( |
|
|
|
this.info?.globalPermissions, |
|
|
|
permissions.enableSubscription |
|
|
|
|
|
@ -13,7 +13,6 @@ import { takeUntil } from 'rxjs/operators'; |
|
|
|
templateUrl: './about-overview-page.html' |
|
|
|
}) |
|
|
|
export class AboutOverviewPageComponent implements OnDestroy, OnInit { |
|
|
|
public hasPermissionForBlog: boolean; |
|
|
|
public hasPermissionForStatistics: boolean; |
|
|
|
public hasPermissionForSubscription: boolean; |
|
|
|
public isLoggedIn: boolean; |
|
|
@ -30,11 +29,6 @@ export class AboutOverviewPageComponent implements OnDestroy, OnInit { |
|
|
|
) { |
|
|
|
const { globalPermissions } = this.dataService.fetchInfo(); |
|
|
|
|
|
|
|
this.hasPermissionForBlog = hasPermission( |
|
|
|
globalPermissions, |
|
|
|
permissions.enableBlog |
|
|
|
); |
|
|
|
|
|
|
|
this.hasPermissionForStatistics = hasPermission( |
|
|
|
globalPermissions, |
|
|
|
permissions.enableStatistics |
|
|
|
|
|
@ -133,16 +133,21 @@ |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="row"> |
|
|
|
<div *ngIf="hasPermissionForSubscription" class="col-md-6 col-xs-12 my-2"> |
|
|
|
<div |
|
|
|
class="col-md-6 col-xs-12 my-2" |
|
|
|
[ngClass]="{ 'offset-md-3': hasPermissionForSubscription === false }" |
|
|
|
> |
|
|
|
<a |
|
|
|
class="py-4 w-100" |
|
|
|
color="primary" |
|
|
|
i18n |
|
|
|
mat-flat-button |
|
|
|
[routerLink]="routerLinkFaq" |
|
|
|
>Frequently Asked Questions (FAQ)</a |
|
|
|
> |
|
|
|
</div> |
|
|
|
<div *ngIf="hasPermissionForBlog" class="col-md-6 col-xs-12 my-2"> |
|
|
|
@if (hasPermissionForSubscription) { |
|
|
|
<div class="col-md-6 col-xs-12 my-2"> |
|
|
|
<a |
|
|
|
class="py-4 w-100" |
|
|
|
color="primary" |
|
|
@ -151,5 +156,6 @@ |
|
|
|
>Blog</a |
|
|
|
> |
|
|
|
</div> |
|
|
|
} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
@ -12,7 +12,6 @@ import { Subject, takeUntil } from 'rxjs'; |
|
|
|
}) |
|
|
|
export class FaqOverviewPageComponent implements OnDestroy { |
|
|
|
public routerLinkFeatures = ['/' + $localize`features`]; |
|
|
|
public routerLinkPricing = ['/' + $localize`pricing`]; |
|
|
|
public user: User; |
|
|
|
|
|
|
|
private unsubscribeSubject = new Subject<void>(); |
|
|
|
|
|
@ -65,9 +65,9 @@ |
|
|
|
world. The |
|
|
|
<a href="https://github.com/ghostfolio/ghostfolio">source code</a> is |
|
|
|
fully available as open source software (OSS). Thanks to our generous |
|
|
|
<a [routerLink]="routerLinkPricing">Ghostfolio Premium</a> users and |
|
|
|
<a href="https://www.buymeacoffee.com/ghostfolio">sponsors</a> we have |
|
|
|
the ability to run a free, limited plan for novice |
|
|
|
<a href="https://ghostfol.io/en/pricing">Ghostfolio Premium</a> users |
|
|
|
and <a href="https://www.buymeacoffee.com/ghostfolio">sponsors</a> we |
|
|
|
have the ability to run a free, limited plan for novice |
|
|
|
investors.</mat-card-content |
|
|
|
> |
|
|
|
</mat-card> |
|
|
@ -90,7 +90,7 @@ |
|
|
|
> |
|
|
|
<mat-card-content |
|
|
|
>By offering |
|
|
|
<a [routerLink]="routerLinkPricing">Ghostfolio Premium</a>, a |
|
|
|
<a href="https://ghostfol.io/en/pricing">Ghostfolio Premium</a>, a |
|
|
|
subscription plan with a managed hosting service and enhanced |
|
|
|
features, we fund our business while providing added value to our |
|
|
|
users.</mat-card-content |
|
|
@ -104,7 +104,7 @@ |
|
|
|
</mat-card-header> |
|
|
|
<mat-card-content |
|
|
|
>Any support for Ghostfolio is welcome. Be it with a |
|
|
|
<a [routerLink]="routerLinkPricing">Ghostfolio Premium</a> |
|
|
|
<a href="https://ghostfol.io/en/pricing">Ghostfolio Premium</a> |
|
|
|
subscription to finance the hosting infrastructure, a positive rating |
|
|
|
in the |
|
|
|
<a |
|
|
|