Merge branch 'main' of gitea.suda.codes:giteauser/ghostfolio-mirror
This commit is contained in:
commit
5deeb8861e
@ -9,6 +9,11 @@
|
||||
> <strong>{{ product2.name }}</strong>
|
||||
</h1>
|
||||
</div>
|
||||
@if (product2.isArchived) {
|
||||
<div class="info-container my-4 p-2 rounded text-center text-muted">
|
||||
<ng-container i18n>This page has been archived.</ng-container>
|
||||
</div>
|
||||
}
|
||||
<section class="mb-4">
|
||||
<p i18n>
|
||||
Are you looking for an open source alternative to
|
||||
@ -128,16 +133,36 @@
|
||||
</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@if (product1.isOpenSource) {
|
||||
<ng-container i18n>✅ Yes</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product1.name }} is Open Source Software"
|
||||
>✅ Yes</span
|
||||
>
|
||||
} @else {
|
||||
<ng-container i18n>❌ No</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product1.name }} is not Open Source Software"
|
||||
>❌ No</span
|
||||
>
|
||||
}
|
||||
</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@if (product2.isOpenSource) {
|
||||
<ng-container i18n>✅ Yes</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product2.name }} is Open Source Software"
|
||||
>✅ Yes</span
|
||||
>
|
||||
} @else {
|
||||
<ng-container i18n>❌ No </ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product2.name }} is not Open Source Software"
|
||||
>❌ No</span
|
||||
>
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
@ -147,16 +172,36 @@
|
||||
</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@if (product1.hasSelfHostingAbility === true) {
|
||||
<ng-container i18n>✅ Yes</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product1.name }} can be self-hosted"
|
||||
>✅ Yes</span
|
||||
>
|
||||
} @else if (product1.hasSelfHostingAbility === false) {
|
||||
<ng-container i18n>❌ No</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product1.name }} cannot be self-hosted"
|
||||
>❌ No</span
|
||||
>
|
||||
}
|
||||
</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@if (product2.hasSelfHostingAbility === true) {
|
||||
<ng-container i18n>✅ Yes</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product2.name }} can be self-hosted"
|
||||
>✅ Yes</span
|
||||
>
|
||||
} @else if (product2.hasSelfHostingAbility === false) {
|
||||
<ng-container i18n>❌ No</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product2.name }} cannot be self-hosted"
|
||||
>❌ No</span
|
||||
>
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
@ -166,16 +211,36 @@
|
||||
</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@if (product1.useAnonymously === true) {
|
||||
<ng-container i18n>✅ Yes</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product1.name }} can be used anonymously"
|
||||
>✅ Yes</span
|
||||
>
|
||||
} @else if (product1.useAnonymously === false) {
|
||||
<ng-container i18n>❌ No</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product1.name }} cannot be used anonymously"
|
||||
>❌ No</span
|
||||
>
|
||||
}
|
||||
</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@if (product2.useAnonymously === true) {
|
||||
<ng-container i18n>✅ Yes</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product2.name }} can be used anonymously"
|
||||
>✅ Yes</span
|
||||
>
|
||||
} @else if (product2.useAnonymously === false) {
|
||||
<ng-container i18n>❌ No</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product2.name }} cannot be used anonymously"
|
||||
>❌ No</span
|
||||
>
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
@ -185,16 +250,36 @@
|
||||
</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@if (product1.hasFreePlan === true) {
|
||||
<ng-container i18n>✅ Yes</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product1.name }} offers a free plan"
|
||||
>✅ Yes</span
|
||||
>
|
||||
} @else if (product1.hasFreePlan === false) {
|
||||
<ng-container i18n>❌ No</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product1.name }} does not offer a free plan"
|
||||
>❌ No</span
|
||||
>
|
||||
}
|
||||
</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@if (product2.hasFreePlan === true) {
|
||||
<ng-container i18n>✅ Yes</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product2.name }} offers a free plan"
|
||||
>✅ Yes</span
|
||||
>
|
||||
} @else if (product2.hasFreePlan === false) {
|
||||
<ng-container i18n>❌ No</ng-container>
|
||||
<span
|
||||
i18n
|
||||
i18n-title
|
||||
title="{{ product2.name }} does not offer a free plan"
|
||||
>❌ No</span
|
||||
>
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -11,7 +11,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
.call-to-action {
|
||||
.call-to-action,
|
||||
.info-container {
|
||||
background-color: rgba(var(--palette-foreground-text), 0.02);
|
||||
}
|
||||
}
|
||||
@ -19,7 +20,8 @@
|
||||
:host-context(.theme-dark) {
|
||||
color: rgb(var(--light-primary-text));
|
||||
|
||||
.call-to-action {
|
||||
.call-to-action,
|
||||
.info-container {
|
||||
background-color: rgba(var(--palette-foreground-text-dark), 0.02);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ export interface Product {
|
||||
founded?: number;
|
||||
hasFreePlan?: boolean;
|
||||
hasSelfHostingAbility?: boolean;
|
||||
isArchived?: boolean;
|
||||
isOpenSource?: boolean;
|
||||
key: string;
|
||||
languages?: string[];
|
||||
|
@ -369,6 +369,7 @@ export const personalFinanceTools: Product[] = [
|
||||
{
|
||||
founded: 2021,
|
||||
hasSelfHostingAbility: false,
|
||||
isArchived: true,
|
||||
key: 'maybe-finance',
|
||||
languages: ['English'],
|
||||
name: 'Maybe Finance',
|
||||
@ -678,10 +679,13 @@ export const personalFinanceTools: Product[] = [
|
||||
slogan: 'Make Smarter Investments'
|
||||
},
|
||||
{
|
||||
founded: 2024,
|
||||
hasSelfHostingAbility: true,
|
||||
isArchived: true,
|
||||
key: 'wealthfolio',
|
||||
languages: ['English'],
|
||||
name: 'Wealthfolio',
|
||||
origin: 'Canada',
|
||||
slogan: 'Desktop Investment Tracker'
|
||||
},
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user