Browse Source

Merge branch 'main' into feature/extend-variations-of-subscription-interstitials

pull/5486/head
Thomas Kaul 2 months ago
committed by GitHub
parent
commit
313b5f6d9e
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 4
      CHANGELOG.md
  2. 19
      apps/client/src/app/components/rule/rule.component.ts
  3. 22
      apps/client/src/app/components/rule/rule.module.ts
  4. 11
      apps/client/src/app/components/rules/rules.component.ts
  5. 16
      apps/client/src/app/components/rules/rules.module.ts
  6. 10
      apps/client/src/app/pages/about/overview/about-overview-page.html
  7. 4
      apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts

4
CHANGELOG.md

@ -9,8 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Refactored the header component to standalone
- Extended the variations of the interstitials for the subscription - Extended the variations of the interstitials for the subscription
- Refactored the header component to standalone
- Refactored the rule component to standalone
- Refactored the rules component to standalone
## 2.197.0 - 2025-09-07 ## 2.197.0 - 2025-09-07

19
apps/client/src/app/components/rule/rule.component.ts

@ -5,6 +5,7 @@ import {
XRayRulesSettings XRayRulesSettings
} from '@ghostfolio/common/interfaces'; } from '@ghostfolio/common/interfaces';
import { CommonModule } from '@angular/common';
import { import {
ChangeDetectionStrategy, ChangeDetectionStrategy,
Component, Component,
@ -13,7 +14,10 @@ import {
OnInit, OnInit,
Output Output
} from '@angular/core'; } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { MatMenuModule } from '@angular/material/menu';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons'; import { addIcons } from 'ionicons';
import { import {
addCircleOutline, addCircleOutline,
@ -24,19 +28,26 @@ import {
warningOutline warningOutline
} from 'ionicons/icons'; } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector'; import { DeviceDetectorService } from 'ngx-device-detector';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
import { Subject, takeUntil } from 'rxjs'; import { Subject, takeUntil } from 'rxjs';
import { IRuleSettingsDialogParams } from './rule-settings-dialog/interfaces/interfaces'; import { IRuleSettingsDialogParams } from './rule-settings-dialog/interfaces/interfaces';
import { GfRuleSettingsDialogComponent } from './rule-settings-dialog/rule-settings-dialog.component'; import { GfRuleSettingsDialogComponent } from './rule-settings-dialog/rule-settings-dialog.component';
@Component({ @Component({
selector: 'gf-rule',
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
templateUrl: './rule.component.html', imports: [
CommonModule,
IonIcon,
MatButtonModule,
MatMenuModule,
NgxSkeletonLoaderModule
],
selector: 'gf-rule',
styleUrls: ['./rule.component.scss'], styleUrls: ['./rule.component.scss'],
standalone: false templateUrl: './rule.component.html'
}) })
export class RuleComponent implements OnInit { export class GfRuleComponent implements OnInit {
@Input() categoryName: string; @Input() categoryName: string;
@Input() hasPermissionToUpdateUserSettings: boolean; @Input() hasPermissionToUpdateUserSettings: boolean;
@Input() isLoading: boolean; @Input() isLoading: boolean;

22
apps/client/src/app/components/rule/rule.module.ts

@ -1,22 +0,0 @@
import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatMenuModule } from '@angular/material/menu';
import { IonIcon } from '@ionic/angular/standalone';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
import { RuleComponent } from './rule.component';
@NgModule({
declarations: [RuleComponent],
exports: [RuleComponent],
imports: [
CommonModule,
IonIcon,
MatButtonModule,
MatMenuModule,
NgxSkeletonLoaderModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class GfRuleModule {}

11
apps/client/src/app/components/rules/rules.component.ts

@ -1,4 +1,5 @@
import { UpdateUserSettingDto } from '@ghostfolio/api/app/user/update-user-setting.dto'; import { UpdateUserSettingDto } from '@ghostfolio/api/app/user/update-user-setting.dto';
import { GfRuleComponent } from '@ghostfolio/client/components/rule/rule.component';
import { import {
PortfolioReportRule, PortfolioReportRule,
XRayRulesSettings XRayRulesSettings
@ -11,15 +12,17 @@ import {
Input, Input,
Output Output
} from '@angular/core'; } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
@Component({ @Component({
selector: 'gf-rules',
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
templateUrl: './rules.component.html', imports: [GfRuleComponent, MatButtonModule, MatCardModule],
selector: 'gf-rules',
styleUrls: ['./rules.component.scss'], styleUrls: ['./rules.component.scss'],
standalone: false templateUrl: './rules.component.html'
}) })
export class RulesComponent { export class GfRulesComponent {
@Input() categoryName: string; @Input() categoryName: string;
@Input() hasPermissionToUpdateUserSettings: boolean; @Input() hasPermissionToUpdateUserSettings: boolean;
@Input() isLoading: boolean; @Input() isLoading: boolean;

16
apps/client/src/app/components/rules/rules.module.ts

@ -1,16 +0,0 @@
import { GfRuleModule } from '@ghostfolio/client/components/rule/rule.module';
import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { RulesComponent } from './rules.component';
@NgModule({
declarations: [RulesComponent],
exports: [RulesComponent],
imports: [CommonModule, GfRuleModule, MatButtonModule, MatCardModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class GfRulesModule {}

10
apps/client/src/app/pages/about/overview/about-overview-page.html

@ -11,8 +11,9 @@
individuals to keep track of stocks, ETFs or cryptocurrencies and individuals to keep track of stocks, ETFs or cryptocurrencies and
make solid, data-driven investment decisions.</ng-container make solid, data-driven investment decisions.</ng-container
> >
<ng-container i18n> <ng-container>&nbsp;</ng-container>
The source code is fully available as <ng-container i18n
>The source code is fully available as
<a <a
href="https://github.com/ghostfolio/ghostfolio" href="https://github.com/ghostfolio/ghostfolio"
title="Find Ghostfolio on GitHub" title="Find Ghostfolio on GitHub"
@ -26,8 +27,9 @@
></ng-container ></ng-container
> >
@if (hasPermissionForStatistics) { @if (hasPermissionForStatistics) {
<ng-container i18n> <ng-container>&nbsp;</ng-container>
and we share aggregated <ng-container i18n
>and we share aggregated
<a title="Open Startup" [routerLink]="routerLinkOpenStartup" <a title="Open Startup" [routerLink]="routerLinkOpenStartup"
>key metrics</a >key metrics</a
> >

4
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts

@ -1,5 +1,5 @@
import { UpdateUserSettingDto } from '@ghostfolio/api/app/user/update-user-setting.dto'; import { UpdateUserSettingDto } from '@ghostfolio/api/app/user/update-user-setting.dto';
import { GfRulesModule } from '@ghostfolio/client/components/rules/rules.module'; import { GfRulesComponent } from '@ghostfolio/client/components/rules/rules.component';
import { DataService } from '@ghostfolio/client/services/data.service'; import { DataService } from '@ghostfolio/client/services/data.service';
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';
@ -26,7 +26,7 @@ import { Subject, takeUntil } from 'rxjs';
@Component({ @Component({
imports: [ imports: [
GfPremiumIndicatorComponent, GfPremiumIndicatorComponent,
GfRulesModule, GfRulesComponent,
IonIcon, IonIcon,
NgClass, NgClass,
NgxSkeletonLoaderModule NgxSkeletonLoaderModule

Loading…
Cancel
Save