Commit Graph

11 Commits

Author SHA1 Message Date
Arne Moerman 9f3ae1051c Refactor currency handling and UI updates
Updated currency handling to use dynamic symbols, defaulting to "€". Adjusted UI components to reflect these changes. Introduced `GetCurrencySymbol` and `NormalizeCurrencySymbol` methods for consistency. Reintroduced QR code parsing/serialization methods. Updated models and services to align with the new currency symbol logic.
2026-05-19 22:05:10 +02:00
Arne Moerman 89c439f80b Enhance purchase and contribution management
Build and Push Docker Image / build-and-push (push) Successful in 41s
Refactored UI to consolidate purchase and contribution actions into dynamic buttons. Added modals for managing purchases and contributions with admin-specific functionality. Introduced new properties and methods in `RegistryPublic.razor.cs` for state management and user filtering.

Updated `RegistryService` with methods for handling contributions and purchases, including admin-specific logic, validation, and logging. Improved database operations for robust handling of item totals and user actions. Added utility methods for generating unique codes and managing admin invites.

Refactored user filtering and display logic for admin actions, ensuring dynamic population of selectable users. Optimized handling of user actions and logs for consistency.
2026-05-19 18:18:02 +02:00
Arne Moerman 09349cb7b7 Add support for item categories in registries
Introduced `RegistryItemCategory` entity for grouping and ordering items within registries. Updated `RegistryItem` and `Registry` entities to support categorization. Added database migrations for `RegistryItemCategories` and updated `RegistryItems` with `CategoryId` and `SortOrder`.

Implemented drag-and-drop functionality for reordering categories and items using JavaScript and Blazor. Enhanced `RegistryAdmin` and `RegistryPublic` components to manage and display categories with collapsible sections.

Updated `RegistryService` to handle category operations, including adding, renaming, removing, and reordering. Added new view models and updated CSS for category styling. Refactored logic to ensure proper ordering and fallback for unassigned items.
2026-05-19 17:02:31 +02:00
Arne Moerman fa704ab996 Add user profile fields and completion prompt
Build and Push Docker Image / build-and-push (push) Successful in 23s
Added `FirstName`, `LastName`, and `Address` fields to `ApplicationUser` for extended user profiles. Updated `Index.razor` to include these fields in the profile form with validation. Introduced `ProfileCompletionService` to check profile completeness and added a prompt in `TopBar.razor` for incomplete profiles.

Created migration `20260518213355_AddUserProfileFields` to update the database schema. Updated `RegistryService` to use new fields for user display names. Registered `ProfileCompletionService` and `DbContextFactory` in `Program.cs`. Styled the profile completion banner in `TopBar.razor.css`.
2026-05-18 23:56:28 +02:00
Arne Moerman c36e04029b Add contribution payment options to registries
- Added support for single and amount-specific QR codes.
- Updated `RegistrySettings` model and database schema.
- Enhanced `RegistryAdmin` to configure payment options.
- Introduced `RegistryContributionAmount` for partial fulfillment.
- Updated `RegistryPublic` to display contribution progress.
- Added new models for payment methods and QR code handling.
- Improved privacy by limiting contributor visibility.
2026-05-18 23:33:06 +02:00
Arne Moerman 7dd7b0342f Enable authentication, authorization, and HTTPS
Build and Push Docker Image / build-and-push (push) Successful in 22s
Added middleware for authentication and authorization to secure
the application pipeline. Enforced HTTPS redirection for improved
security. Adjusted middleware order to ensure proper handling of
static files and antiforgery tokens.
2026-05-18 17:24:17 +02:00
Arne Moerman 55415ba968 Add PublicUrl support for reverse proxy handling
Build and Push Docker Image / build-and-push (push) Successful in 20s
Introduced a `PUBLIC_URL` environment variable to configure the
public URL for OAuth callbacks and reverse proxy scenarios. Updated
`Program.cs` to rewrite request scheme and host based on `PublicUrl`.
Replaced `Microsoft.AspNetCore.Components.Authorization` with
`Microsoft.AspNetCore.Components.Authentication`. Added `PublicUrl`
to `appsettings.json` with a default empty value.
2026-05-17 22:14:18 +02:00
Arne Moerman 2bf0295508 Add UserActionLog and enhance registry features
Build and Push Docker Image / build-and-push (push) Successful in 1m59s
- Introduced `UserActionLog` entity to track user actions.
- Replaced `CanBeSecondHand` with `PreferSecondHand` property.
- Added `ShowBankAccountName` to `RegistrySettings`.
- Updated models and migrations for new properties.
- Enhanced `RegistryService` with user action logging and item details.
- Redesigned `Home.razor` with a grid layout and modal for registries.
- Added `RegistryActionLog.razor` for admin action logs.
- Improved `RegistryPublic.razor` with purchaser/contributor details.
- Replaced sidebar with `TopBar.razor` for responsive navigation.
- Updated CSS for new components and improved responsiveness.
2026-05-17 21:46:31 +02:00
Arne Moerman 6b593828d7 Enhance external login and proxy compatibility
Build and Push Docker Image / build-and-push (push) Successful in 22s
- Updated `ExternalLoginPicker.razor` to add Google and Microsoft login buttons with SVG icons and improved styling.
- Added new styles in `ExternalLoginPicker.razor.css` for layout and accessibility.
- Configured `ForwardedHeadersOptions` and enabled `UseForwardedHeaders` middleware in `Program.cs` for reverse proxy support.
- Added `AddCascadingAuthenticationState` for better authentication state management.
- Included `microsoft-identity-association.json` for Microsoft app association.
- Added `google-signin.svg` and `microsoft-signin.svg` assets for login buttons.
2026-05-17 14:49:52 +02:00
Arne Moerman b46269bfc0 Enhance admin listing & metadata extraction, update healthchecks
Build and Push Docker Image / build-and-push (push) Successful in 19s
- Show current admins in RegistryAdmin using new RegistryAdminDisplayModel and backend support
- Improve RegistryMetadataService: better normalization, Amazon-specific extraction for images/prices, and URL normalization
- Use normalized product URLs and improved metadata logic in RegistryAdmin
- Add error handling for Blazored.TextEditor interop issues
- Switch healthchecks in portainer-stack.yml to process checks (pidof)
- Remove appsettings.Development.json contents from source control
- Add RegistryAdminDisplayModel and NormalizedUrl to models
2026-05-14 14:05:18 +02:00
Arne Moerman c1b11603e8 Initial Blazor birth registry app, theming, and services
Build and Push Docker Image / build-and-push (push) Successful in 1m14s
Implemented a Blazor Web App (.NET 8) for a public-by-link birth registry platform, following project guidelines. Added domain entities, EF Core context, and Blazor components for authentication, registry management, and public views. Introduced core services for registries, theming, user context, platform owner bootstrapping, and SMTP email. Included static assets (Bootstrap, favicon), launch settings, Dockerfile, CI workflow, and deployment configs. Added bootstrap.min.css.map for improved CSS debugging.
2026-05-14 11:49:47 +02:00