Browse Source

Adapt offering to new license (#13)

* Adapt offering to new license

* Update changelog

* Add license to about page

* Adapt offering to new license
pull/8/head
Thomas 4 years ago
committed by GitHub
parent
commit
ead7ce942e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      CHANGELOG.md
  2. 5
      angular.json
  3. 2
      apps/api/src/app/user/interfaces/user.interface.ts
  4. 2
      apps/api/src/app/user/user.service.ts
  5. 5
      apps/client/src/app/app.component.html
  6. 1
      apps/client/src/app/app.component.ts
  7. 11
      apps/client/src/app/components/header/header.component.html
  8. 80
      apps/client/src/app/pages/about/about-page.html
  9. 6
      apps/client/src/app/pages/account/account-page.html
  10. 7
      apps/client/src/app/pages/analysis/analysis-page.html
  11. 4
      apps/client/src/app/pages/login/login-page.html
  12. 5
      apps/client/src/app/pages/report/report-page.html

10
CHANGELOG.md

@ -5,6 +5,16 @@ 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/), 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). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### Added
- Added the license to the about page
### Changed
- Changed the about page for the new license
## 0.85.0 - 16.04.2021 ## 0.85.0 - 16.04.2021
### Changed ### Changed

5
angular.json

@ -99,6 +99,11 @@
"input": "", "input": "",
"output": "./" "output": "./"
}, },
{
"glob": "LICENSE",
"input": "",
"output": "./"
},
{ {
"glob": "sitemap.xml", "glob": "sitemap.xml",
"input": "apps/client/src/assets", "input": "apps/client/src/assets",

2
apps/api/src/app/user/interfaces/user.interface.ts

@ -10,7 +10,7 @@ export interface User {
settings: UserSettings; settings: UserSettings;
subscription: { subscription: {
expiresAt: Date; expiresAt: Date;
type: 'Diamond'; type: 'Trial';
}; };
} }

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

@ -46,7 +46,7 @@ export class UserService {
}, },
subscription: { subscription: {
expiresAt: resetHours(add(new Date(), { days: 7 })), expiresAt: resetHours(add(new Date(), { days: 7 })),
type: 'Diamond' type: 'Trial'
} }
}; };
} }

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

@ -26,7 +26,10 @@
<footer class="footer d-flex justify-content-center position-absolute w-100"> <footer class="footer d-flex justify-content-center position-absolute w-100">
<div class="container text-center"> <div class="container text-center">
<div>Ghostfolio {{ version }}</div> <div>
© {{ currentYear }} <a href="https://ghostfol.io">Ghostfolio</a>
{{ version }}
</div>
<div class="py-2 text-muted"> <div class="py-2 text-muted">
<small i18n <small i18n
>The risk of loss in trading can be substantial. It is not advisable to >The risk of loss in trading can be substantial. It is not advisable to

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

@ -27,6 +27,7 @@ import { TokenStorageService } from './services/token-storage.service';
export class AppComponent implements OnDestroy, OnInit { export class AppComponent implements OnDestroy, OnInit {
public canCreateAccount: boolean; public canCreateAccount: boolean;
public currentRoute: string; public currentRoute: string;
public currentYear = new Date().getFullYear();
public isLoggedIn = false; public isLoggedIn = false;
public lastDataGathering: string; public lastDataGathering: string;
public user: User; public user: User;

11
apps/client/src/app/components/header/header.component.html

@ -147,9 +147,8 @@
i18n i18n
mat-menu-item mat-menu-item
[ngClass]="{ 'font-weight-bold': currentRoute === 'account' }" [ngClass]="{ 'font-weight-bold': currentRoute === 'account' }"
><span>Account</span >Account</a
><ion-icon class="ml-1 text-muted" name="diamond-outline"></ion-icon >
></a>
<a <a
*ngIf="canAccessAdminAccessControl" *ngIf="canAccessAdminAccessControl"
class="d-block d-sm-none" class="d-block d-sm-none"
@ -198,6 +197,12 @@
[color]="currentRoute === 'about' ? 'primary' : null" [color]="currentRoute === 'about' ? 'primary' : null"
>About</a >About</a
> >
<a
class="d-none d-sm-block mx-1"
href="https://github.com/ghostfolio/ghostfolio"
mat-flat-button
>GitHub</a
>
<button i18n mat-flat-button (click)="openLoginDialog()">Sign in</button> <button i18n mat-flat-button (click)="openLoginDialog()">Sign in</button>
</ng-container> </ng-container>
</mat-toolbar> </mat-toolbar>

80
apps/client/src/app/pages/about/about-page.html

@ -5,33 +5,54 @@
<mat-card class="mb-3"> <mat-card class="mb-3">
<mat-card-content> <mat-card-content>
<p> <p>
Ghostfolio is a side project by <strong>Ghostfolio</strong> ({{ version }}) is open source software
which empowers busy folks to have a sharp look of their financial
assets and to make solid, data-driven investment decisions by
evaluating automated static portfolio analysis rules. The project
has been initiated by
<a href="https://dotsilver.ch">Thomas Kaul</a>. <a href="https://dotsilver.ch">Thomas Kaul</a>.
</p>
<p>
This is <strong>Ghostfolio {{ version }}</strong>
<ng-container *ngIf="lastPublish"> <ng-container *ngIf="lastPublish">
and was last published on {{ lastPublish }}</ng-container This instance has been last published on {{ lastPublish
>. }}</ng-container
>
</p> </p>
<p> <p>
If you encounter a bug or would like to suggest an improvement or a If you encounter a bug or would like to suggest an improvement or a
new feature, please send an e-mail to new feature, please open an issue at
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> or tweet to <a href="https://github.com/ghostfolio/ghostfolio">GitHub</a>, tweet
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a>. to <a href="https://twitter.com/ghostfolio_">@ghostfolio_</a> or
send an e-mail to
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a>.
</p> </p>
<p class="text-center"> <p class="text-center">
<a <a
class="mx-2"
href="https://github.com/ghostfolio/ghostfolio"
mat-icon-button
title="Find Ghostfolio on GitHub"
>
<ion-icon name="logo-github" size="large"></ion-icon>
</a>
<a
class="mx-2"
href="https://twitter.com/ghostfolio_" href="https://twitter.com/ghostfolio_"
mat-icon-button mat-icon-button
title="Follow Ghostfolio on Twitter" title="Follow Ghostfolio on Twitter"
> >
<ion-icon name="logo-twitter" size="large"></ion-icon> <ion-icon name="logo-twitter" size="large"></ion-icon>
</a> </a>
<a
class="mx-2"
href="mailto:hi@ghostfol.io"
mat-icon-button
title="Send an e-mail"
>
<ion-icon name="mail" size="large"></ion-icon>
</a>
</p> </p>
<div class="d-flex justify-content-center"> <div class="d-flex justify-content-center">
<div <div
class="independent-and-bootstrapped-logo" class="independent-and-bootstrapped-logo mb-2"
title="Ghostfolio is an independent & bootstrapped business" title="Ghostfolio is an independent & bootstrapped business"
></div> ></div>
</div> </div>
@ -46,11 +67,8 @@
<div class="row"> <div class="row">
<div class="col-xs-12 col-md-6"> <div class="col-xs-12 col-md-6">
<mat-card class="mb-3"> <mat-card class="mb-3">
<h4 i18n>Basic</h4> <h4 i18n>Open Source</h4>
<p> <p>Host your <strong>Ghostfolio</strong> instance by yourself.</p>
The starting point for tracking your goals and adopting your
personal investment strategy.
</p>
<ul class="list-unstyled mb-3"> <ul class="list-unstyled mb-3">
<li class="align-items-center d-flex mb-1"> <li class="align-items-center d-flex mb-1">
<ion-icon <ion-icon
@ -73,7 +91,13 @@
></ion-icon> ></ion-icon>
<span>Unlimited Transactions</span> <span>Unlimited Transactions</span>
</li> </li>
<li class="d-none d-sm-block mb-1">&#8203;</li> <li class="align-items-center d-flex mb-1">
<ion-icon
class="mr-1 text-muted"
name="checkmark-circle-outline"
></ion-icon>
<span>Advanced Insights</span>
</li>
</ul> </ul>
<p class="h5 text-right"> <p class="h5 text-right">
<span>Free</span> <span>Free</span>
@ -83,7 +107,7 @@
<div class="col-xs-12 col-md-6"> <div class="col-xs-12 col-md-6">
<mat-card <mat-card
class="mb-3" class="mb-3"
[ngClass]="{ 'active': user?.subscription?.type === 'Diamond' }" [ngClass]="{ 'active': user?.subscription?.type === 'Trial' }"
> >
<h4 class="align-items-center d-flex" i18n> <h4 class="align-items-center d-flex" i18n>
Diamond Diamond
@ -92,10 +116,7 @@
name="diamond-outline" name="diamond-outline"
></ion-icon> ></ion-icon>
</h4> </h4>
<p> <p>Get a managed <strong>Ghostfolio</strong> cloud offering.</p>
Get a bird's-eye view of your financial assets for making
sustainable investment decisions.
</p>
<ul class="list-unstyled mb-3"> <ul class="list-unstyled mb-3">
<li class="align-items-center d-flex mb-1"> <li class="align-items-center d-flex mb-1">
<ion-icon <ion-icon
@ -129,8 +150,8 @@
<p class="h5 text-right"> <p class="h5 text-right">
<span class="font-weight-normal" <span class="font-weight-normal"
>{{ user?.settings.baseCurrency || baseCurrency }} >{{ user?.settings.baseCurrency || baseCurrency }}
<strong>3.99</strong> <strong>2.99</strong>
<del class="ml-1 text-muted">4.99</del> / Month</span <del class="ml-1 text-muted">3.99</del> / Month</span
> >
</p> </p>
</mat-card> </mat-card>
@ -139,7 +160,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="mb-5 row">
<div class="col"> <div class="col">
<h3 class="mb-3 text-center" i18n>Changelog</h3> <h3 class="mb-3 text-center" i18n>Changelog</h3>
<mat-card class="changelog mb-3"> <mat-card class="changelog mb-3">
@ -149,4 +170,15 @@
</mat-card> </mat-card>
</div> </div>
</div> </div>
<div class="row">
<div class="col">
<h3 class="mb-3 text-center" i18n>License</h3>
<mat-card class="mb-3">
<mat-card-content>
<markdown [src]="'LICENSE'"></markdown>
</mat-card-content>
</mat-card>
</div>
</div>
</div> </div>

6
apps/client/src/app/pages/account/account-page.html

@ -19,11 +19,7 @@
<div class="w-50" i18n>Membership</div> <div class="w-50" i18n>Membership</div>
<div class="w-50"> <div class="w-50">
<div class="align-items-center d-flex mb-1"> <div class="align-items-center d-flex mb-1">
<span>{{ user?.subscription?.type }}</span> {{ user?.subscription?.type }}
<ion-icon
class="ml-1 text-muted"
name="diamond-outline"
></ion-icon>
</div> </div>
<div> <div>
Valid until {{ user.subscription.expiresAt | date: Valid until {{ user.subscription.expiresAt | date:

7
apps/client/src/app/pages/analysis/analysis-page.html

@ -168,10 +168,9 @@
<div class="col-lg"> <div class="col-lg">
<mat-card class="mb-3"> <mat-card class="mb-3">
<mat-card-header> <mat-card-header>
<mat-card-title class="align-items-center d-flex" <mat-card-title class="align-items-center d-flex" i18n
><span i18n>Investment</span >Investment</mat-card-title
><ion-icon class="ml-1 text-muted" name="diamond-outline"></ion-icon >
></mat-card-title>
</mat-card-header> </mat-card-header>
<mat-card-content> <mat-card-content>
<!--<gf-positions-chart <!--<gf-positions-chart

4
apps/client/src/app/pages/login/login-page.html

@ -4,7 +4,7 @@
class="align-items-center d-flex flex-column justify-content-center mb-4 w-100" class="align-items-center d-flex flex-column justify-content-center mb-4 w-100"
> >
<gf-logo size="large"></gf-logo> <gf-logo size="large"></gf-logo>
<p class="lead m-0">Privacy-first Portfolio Tracker</p> <p class="lead m-0">Open Source Portfolio Tracker</p>
</div> </div>
</div> </div>
@ -132,7 +132,7 @@
<div class="col-md-6 offset-md-3"> <div class="col-md-6 offset-md-3">
<h2 class="h4 mb-1 text-center">Are <strong>you</strong> ready?</h2> <h2 class="h4 mb-1 text-center">Are <strong>you</strong> ready?</h2>
<p class="lead mb-3 text-center"> <p class="lead mb-3 text-center">
Join for free now or check out the example account Join now or check out the example account
</p> </p>
<div class="py-2 text-center"> <div class="py-2 text-center">
<button <button

5
apps/client/src/app/pages/report/report-page.html

@ -1,9 +1,8 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<h3 class="align-items-center d-flex justify-content-center mb-3"> <h3 class="align-items-center d-flex justify-content-center mb-3" i18n>
<span i18n>X-ray</span X-ray
><ion-icon class="ml-2 text-muted" name="diamond-outline"></ion-icon>
</h3> </h3>
<p class="mb-4" i18n> <p class="mb-4" i18n>
Ghostfolio X-ray uses static analysis to identify potential issues and Ghostfolio X-ray uses static analysis to identify potential issues and

Loading…
Cancel
Save