diff --git a/CHANGELOG.md b/CHANGELOG.md index eb0017d04..700bfaa87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,14 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Changed + +- Upgraded `papaparse` from version `5.3.1` to `5.5.3` +- Upgraded `stripe` from version `20.4.1` to `21.0.1` + +## 3.1.0 - 2026-04-29 + ### Added +- Added the _EuroAlternative_ logo to the logo carousel on the landing page - Integrated a theme switcher into _Storybook_ to support toggling between the light and dark mode ### Changed - Modernized the layout of the overview tab in the admin control panel -- Upgraded `papaparse` from version `5.3.1` to `5.5.3` +- Improved the styling of the paginator across various table components +- Improved the language localization for German (`de`) ### Fixed diff --git a/apps/api/src/app/subscription/subscription.service.ts b/apps/api/src/app/subscription/subscription.service.ts index 877ea0ee4..07795d0d1 100644 --- a/apps/api/src/app/subscription/subscription.service.ts +++ b/apps/api/src/app/subscription/subscription.service.ts @@ -35,7 +35,7 @@ export class SubscriptionService { this.stripe = new Stripe( this.configurationService.get('STRIPE_SECRET_KEY'), { - apiVersion: '2026-02-25.clover' + apiVersion: '2026-03-25.dahlia' } ); } diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index dbe616dac..0a9be3a75 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -67,7 +67,7 @@ export class GfAppComponent implements OnInit { private readonly changeDetectorRef = inject(ChangeDetectorRef); private readonly dataService = inject(DataService); private readonly destroyRef = inject(DestroyRef); - private readonly deviceService = inject(DeviceDetectorService); + private readonly deviceDetectorService = inject(DeviceDetectorService); private readonly dialog = inject(MatDialog); private readonly document = inject(DOCUMENT); private readonly impersonationStorageService = inject( @@ -104,7 +104,7 @@ export class GfAppComponent implements OnInit { } public ngOnInit() { - this.deviceType = this.deviceService.getDeviceInfo().deviceType; + this.deviceType = this.deviceDetectorService.getDeviceInfo().deviceType; this.info = this.dataService.fetchInfo(); this.impersonationStorageService diff --git a/apps/client/src/app/components/access-table/access-table.component.html b/apps/client/src/app/components/access-table/access-table.component.html index 4283d7860..8ba906e0f 100644 --- a/apps/client/src/app/components/access-table/access-table.component.html +++ b/apps/client/src/app/components/access-table/access-table.component.html @@ -53,9 +53,9 @@ - + - + - - - - - }
Housekeeping
@@ -228,4 +139,135 @@
+ + @if (hasPermissionForSubscription) { +
+
+ + + Coupons + + +
+ + + + + + + + + + + + + + + + + + +
+ Code + + + + Duration + + {{ formatStringValue(element.duration) }} + + + + + +
+
+
+ +
+ + + {{ + formatStringValue('7 days') + }} + {{ + formatStringValue('14 days') + }} + {{ + formatStringValue('30 days') + }} + {{ + formatStringValue('90 days') + }} + {{ + formatStringValue('180 days') + }} + {{ + formatStringValue('1 year') + }} + + + +
+
+
+
+
+ } diff --git a/apps/client/src/app/components/admin-platform/admin-platform.component.ts b/apps/client/src/app/components/admin-platform/admin-platform.component.ts index b8f2af789..1c117b983 100644 --- a/apps/client/src/app/components/admin-platform/admin-platform.component.ts +++ b/apps/client/src/app/components/admin-platform/admin-platform.component.ts @@ -68,7 +68,7 @@ export class GfAdminPlatformComponent implements OnInit { private changeDetectorRef: ChangeDetectorRef, private dataService: DataService, private destroyRef: DestroyRef, - private deviceService: DeviceDetectorService, + private deviceDetectorService: DeviceDetectorService, private dialog: MatDialog, private notificationService: NotificationService, private route: ActivatedRoute, @@ -97,7 +97,7 @@ export class GfAdminPlatformComponent implements OnInit { } public ngOnInit() { - this.deviceType = this.deviceService.getDeviceInfo().deviceType; + this.deviceType = this.deviceDetectorService.getDeviceInfo().deviceType; this.fetchPlatforms(); } diff --git a/apps/client/src/app/components/admin-tag/admin-tag.component.ts b/apps/client/src/app/components/admin-tag/admin-tag.component.ts index 506736156..56544f784 100644 --- a/apps/client/src/app/components/admin-tag/admin-tag.component.ts +++ b/apps/client/src/app/components/admin-tag/admin-tag.component.ts @@ -65,7 +65,7 @@ export class GfAdminTagComponent implements OnInit { private changeDetectorRef: ChangeDetectorRef, private dataService: DataService, private destroyRef: DestroyRef, - private deviceService: DeviceDetectorService, + private deviceDetectorService: DeviceDetectorService, private dialog: MatDialog, private notificationService: NotificationService, private route: ActivatedRoute, @@ -94,7 +94,7 @@ export class GfAdminTagComponent implements OnInit { } public ngOnInit() { - this.deviceType = this.deviceService.getDeviceInfo().deviceType; + this.deviceType = this.deviceDetectorService.getDeviceInfo().deviceType; this.fetchTags(); } diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts index 874bbc1db..fa9d58956 100644 --- a/apps/client/src/app/components/admin-users/admin-users.component.ts +++ b/apps/client/src/app/components/admin-users/admin-users.component.ts @@ -98,7 +98,7 @@ export class GfAdminUsersComponent implements OnInit { private changeDetectorRef: ChangeDetectorRef, private dataService: DataService, private destroyRef: DestroyRef, - private deviceService: DeviceDetectorService, + private deviceDetectorService: DeviceDetectorService, private dialog: MatDialog, private impersonationStorageService: ImpersonationStorageService, private notificationService: NotificationService, @@ -106,7 +106,7 @@ export class GfAdminUsersComponent implements OnInit { private router: Router, private userService: UserService ) { - this.deviceType = this.deviceService.getDeviceInfo().deviceType; + this.deviceType = this.deviceDetectorService.getDeviceInfo().deviceType; this.info = this.dataService.fetchInfo(); this.hasPermissionForSubscription = hasPermission( diff --git a/apps/client/src/app/components/admin-users/admin-users.html b/apps/client/src/app/components/admin-users/admin-users.html index 0f9789feb..3d07eb852 100644 --- a/apps/client/src/app/components/admin-users/admin-users.html +++ b/apps/client/src/app/components/admin-users/admin-users.html @@ -198,12 +198,12 @@