Adds Online Booking configuration and preview components

Introduces comprehensive online booking feature with:
- Localization support for booking settings
- ViewComponents for booking URL, settings, company info, hours, and preview
- Responsive preview with device toggle functionality
- Integrated with settings page and translation files

Enhances application's online booking configuration interface
This commit is contained in:
Janus C. H. Knudsen 2026-01-28 20:17:54 +01:00
parent eba6bd646d
commit 435d9f11b7
17 changed files with 891 additions and 25 deletions

View file

@ -0,0 +1,93 @@
<swp-card>
<swp-card-header>
<swp-card-title>
<i class="ph ph-clock"></i>
<span localize="onlineBooking.hours.title">Åbningstider</span>
</swp-card-title>
<swp-section-action href="/indstillinger" localize="onlineBooking.hours.edit">Rediger</swp-section-action>
</swp-card-header>
<swp-card-content>
<swp-hours-table>
<swp-hours-row>
<swp-hours-day localize="employees.detail.hours.monday">Mandag</swp-hours-day>
<swp-toggle-slider data-value="yes">
<swp-toggle-option>Ja</swp-toggle-option>
<swp-toggle-option>Nej</swp-toggle-option>
</swp-toggle-slider>
<swp-hours-time>
<input type="time" value="09:00">
<span>-</span>
<input type="time" value="17:00">
</swp-hours-time>
</swp-hours-row>
<swp-hours-row>
<swp-hours-day localize="employees.detail.hours.tuesday">Tirsdag</swp-hours-day>
<swp-toggle-slider data-value="yes">
<swp-toggle-option>Ja</swp-toggle-option>
<swp-toggle-option>Nej</swp-toggle-option>
</swp-toggle-slider>
<swp-hours-time>
<input type="time" value="09:00">
<span>-</span>
<input type="time" value="17:00">
</swp-hours-time>
</swp-hours-row>
<swp-hours-row>
<swp-hours-day localize="employees.detail.hours.wednesday">Onsdag</swp-hours-day>
<swp-toggle-slider data-value="yes">
<swp-toggle-option>Ja</swp-toggle-option>
<swp-toggle-option>Nej</swp-toggle-option>
</swp-toggle-slider>
<swp-hours-time>
<input type="time" value="09:00">
<span>-</span>
<input type="time" value="17:00">
</swp-hours-time>
</swp-hours-row>
<swp-hours-row>
<swp-hours-day localize="employees.detail.hours.thursday">Torsdag</swp-hours-day>
<swp-toggle-slider data-value="yes">
<swp-toggle-option>Ja</swp-toggle-option>
<swp-toggle-option>Nej</swp-toggle-option>
</swp-toggle-slider>
<swp-hours-time>
<input type="time" value="09:00">
<span>-</span>
<input type="time" value="19:00">
</swp-hours-time>
</swp-hours-row>
<swp-hours-row>
<swp-hours-day localize="employees.detail.hours.friday">Fredag</swp-hours-day>
<swp-toggle-slider data-value="yes">
<swp-toggle-option>Ja</swp-toggle-option>
<swp-toggle-option>Nej</swp-toggle-option>
</swp-toggle-slider>
<swp-hours-time>
<input type="time" value="09:00">
<span>-</span>
<input type="time" value="17:00">
</swp-hours-time>
</swp-hours-row>
<swp-hours-row>
<swp-hours-day localize="employees.detail.hours.saturday">Lørdag</swp-hours-day>
<swp-toggle-slider data-value="yes">
<swp-toggle-option>Ja</swp-toggle-option>
<swp-toggle-option>Nej</swp-toggle-option>
</swp-toggle-slider>
<swp-hours-time>
<input type="time" value="10:00">
<span>-</span>
<input type="time" value="14:00">
</swp-hours-time>
</swp-hours-row>
<swp-hours-row>
<swp-hours-day localize="employees.detail.hours.sunday">Søndag</swp-hours-day>
<swp-toggle-slider data-value="no">
<swp-toggle-option>Ja</swp-toggle-option>
<swp-toggle-option>Nej</swp-toggle-option>
</swp-toggle-slider>
<swp-hours-closed localize="onlineBooking.hours.closed">Lukket</swp-hours-closed>
</swp-hours-row>
</swp-hours-table>
</swp-card-content>
</swp-card>

View file

@ -0,0 +1,14 @@
using Microsoft.AspNetCore.Mvc;
namespace PlanTempus.Application.Features.OnlineBooking.Components;
/// <summary>
/// ViewComponent for displaying opening hours used in booking.
/// </summary>
public class OnlineBookingHoursViewComponent : ViewComponent
{
public IViewComponentResult Invoke()
{
return View();
}
}