Adds new components for service employees and addons Introduces detailed views with selectable employees and add-ons Updates localization translations for new sections Implements time range slider functionality for availability
74 lines
2.8 KiB
Text
74 lines
2.8 KiB
Text
@model PlanTempus.Application.Features.Services.Components.ServiceDetailViewViewModel
|
|
|
|
<swp-service-detail-view id="service-detail-view" data-service="@Model.ServiceKey">
|
|
<!-- Sticky Header (generic from page.css) -->
|
|
<swp-sticky-header>
|
|
<swp-header-content>
|
|
<!-- Page Header with Back Button -->
|
|
<swp-page-header>
|
|
<swp-page-title>
|
|
<swp-back-link data-service-back>
|
|
<i class="ph ph-arrow-left"></i>
|
|
@Model.BackText
|
|
</swp-back-link>
|
|
</swp-page-title>
|
|
<swp-page-actions>
|
|
<swp-btn class="primary">
|
|
<i class="ph ph-floppy-disk"></i>
|
|
@Model.SaveButtonText
|
|
</swp-btn>
|
|
</swp-page-actions>
|
|
</swp-page-header>
|
|
|
|
<!-- Service Header -->
|
|
@await Component.InvokeAsync("ServiceDetailHeader", Model.ServiceKey)
|
|
</swp-header-content>
|
|
|
|
<!-- Tabs (outside header-content, inside sticky-header) -->
|
|
<swp-tab-bar>
|
|
<swp-tab class="active" data-tab="general">@Model.TabGeneral</swp-tab>
|
|
<swp-tab data-tab="prices">@Model.TabPrices</swp-tab>
|
|
<swp-tab data-tab="duration">@Model.TabDuration</swp-tab>
|
|
<swp-tab data-tab="employees">@Model.TabEmployees</swp-tab>
|
|
<swp-tab data-tab="addons">@Model.TabAddons</swp-tab>
|
|
<swp-tab data-tab="rules">@Model.TabRules</swp-tab>
|
|
</swp-tab-bar>
|
|
</swp-sticky-header>
|
|
|
|
<!-- Tab Contents -->
|
|
<swp-tab-content data-tab="general" class="active">
|
|
<swp-page-container>
|
|
@await Component.InvokeAsync("ServiceDetailGeneral", Model.ServiceKey)
|
|
</swp-page-container>
|
|
</swp-tab-content>
|
|
|
|
<swp-tab-content data-tab="prices">
|
|
<swp-page-container>
|
|
@await Component.InvokeAsync("ServiceDetailPrices", Model.ServiceKey)
|
|
</swp-page-container>
|
|
</swp-tab-content>
|
|
|
|
<swp-tab-content data-tab="duration">
|
|
<swp-page-container>
|
|
@await Component.InvokeAsync("ServiceDetailDuration", Model.ServiceKey)
|
|
</swp-page-container>
|
|
</swp-tab-content>
|
|
|
|
<swp-tab-content data-tab="employees">
|
|
<swp-page-container>
|
|
@await Component.InvokeAsync("ServiceDetailEmployees", Model.ServiceKey)
|
|
</swp-page-container>
|
|
</swp-tab-content>
|
|
|
|
<swp-tab-content data-tab="addons">
|
|
<swp-page-container>
|
|
@await Component.InvokeAsync("ServiceDetailAddons", Model.ServiceKey)
|
|
</swp-page-container>
|
|
</swp-tab-content>
|
|
|
|
<swp-tab-content data-tab="rules">
|
|
<swp-page-container>
|
|
@await Component.InvokeAsync("ServiceDetailRules", Model.ServiceKey)
|
|
</swp-page-container>
|
|
</swp-tab-content>
|
|
</swp-service-detail-view>
|