Adds comprehensive Settings page with multiple configuration tabs

Introduces a new Settings page with configurable modules:
- General company information
- Calendar and booking settings
- Billing and payment configurations
- Tracking and analytics integrations

Implements modular ViewComponents for each settings section
Enhances user experience with toggle switches and detailed configuration options
This commit is contained in:
Janus C. H. Knudsen 2026-01-18 22:50:33 +01:00
parent 7643a6ab82
commit 33c338345e
31 changed files with 3167 additions and 21 deletions

View file

@ -0,0 +1,97 @@
<swp-info-box>
<i class="ph ph-info"></i>
<p>Din booking-side er tilgængelig for kunder. Del linket på din hjemmeside, sociale medier eller i din email-signatur.</p>
</swp-info-box>
<swp-two-column-grid>
<!-- Booking-indstillinger -->
<swp-card>
<swp-card-header>
<swp-card-title>
<i class="ph ph-sliders"></i>
Booking-indstillinger
</swp-card-title>
</swp-card-header>
<swp-card-content>
<swp-toggle-row>
<swp-toggle-info>
<swp-toggle-label>Aktivér online booking</swp-toggle-label>
<swp-toggle-desc>Tillad kunder at booke tider online</swp-toggle-desc>
</swp-toggle-info>
<swp-toggle-slider data-value="yes">
<swp-toggle-option>Ja</swp-toggle-option>
<swp-toggle-option>Nej</swp-toggle-option>
</swp-toggle-slider>
</swp-toggle-row>
<swp-toggle-row>
<swp-toggle-info>
<swp-toggle-label>Tillad online aflysning</swp-toggle-label>
<swp-toggle-desc>Kunder kan selv aflyse deres booking</swp-toggle-desc>
</swp-toggle-info>
<swp-toggle-slider data-value="yes">
<swp-toggle-option>Ja</swp-toggle-option>
<swp-toggle-option>Nej</swp-toggle-option>
</swp-toggle-slider>
</swp-toggle-row>
<swp-section-divider></swp-section-divider>
<swp-edit-section>
<swp-edit-row class="wide-label">
<swp-edit-label>Book frem i tiden</swp-edit-label>
<swp-edit-select>
<select>
<option value="7">7 dage</option>
<option value="14">14 dage</option>
<option value="30" selected>30 dage</option>
<option value="60">60 dage</option>
<option value="90">90 dage</option>
</select>
</swp-edit-select>
</swp-edit-row>
<swp-edit-row class="wide-label">
<swp-edit-label>Minimum tid før booking</swp-edit-label>
<swp-edit-select>
<select>
<option value="0">Ingen begrænsning</option>
<option value="1">1 time</option>
<option value="2" selected>2 timer</option>
<option value="4">4 timer</option>
<option value="24">24 timer</option>
</select>
</swp-edit-select>
</swp-edit-row>
<swp-edit-row class="wide-label">
<swp-edit-label>Aflysningsfrist</swp-edit-label>
<swp-edit-select>
<select>
<option value="0">Ingen frist</option>
<option value="2">2 timer før</option>
<option value="4">4 timer før</option>
<option value="24" selected>24 timer før</option>
<option value="48">48 timer før</option>
</select>
</swp-edit-select>
</swp-edit-row>
</swp-edit-section>
</swp-card-content>
</swp-card>
<!-- Booking URL -->
<swp-card>
<swp-card-header>
<swp-card-title>
<i class="ph ph-link"></i>
Booking URL
</swp-card-title>
</swp-card-header>
<swp-card-content>
<swp-url-field>
<input type="text" value="https://book.plantempus.dk/salonbeauty" readonly>
<swp-url-copy title="Kopier link">
<i class="ph ph-copy"></i>
</swp-url-copy>
</swp-url-field>
</swp-card-content>
</swp-card>
</swp-two-column-grid>

View file

@ -0,0 +1,15 @@
using Microsoft.AspNetCore.Mvc;
namespace PlanTempus.Application.Features.Settings.Components;
/// <summary>
/// ViewComponent for the online booking settings tab.
/// Handles booking rules, customer restrictions, and checkout options.
/// </summary>
public class SettingsBookingViewComponent : ViewComponent
{
public IViewComponentResult Invoke()
{
return View();
}
}