Restructure project shared files and update layout paths

Rename '_Shared' directory to 'Shared' to improve project structure
Update layout and view location references accordingly
Clean up unnecessary files and standardize project organization
This commit is contained in:
Janus C. H. Knudsen 2026-02-03 19:13:03 +01:00
parent ea3ecdfb68
commit dcd6ddcdeb
14 changed files with 20 additions and 249 deletions

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="da">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewData["Title"] - PlanTempus</title>
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@@phosphor-icons/web@@2.1.2/src/regular/style.css" />
<!-- Design System -->
<link rel="stylesheet" href="~/css/design-tokens.css">
<link rel="stylesheet" href="~/css/design-system.css">
<link rel="stylesheet" href="~/css/base.css">
<!-- Auth Styles -->
<link rel="stylesheet" href="~/css/auth.css">
@await RenderSectionAsync("Styles", required: false)
</head>
<body>
@RenderBody()
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>

View file

@ -0,0 +1,76 @@
<!DOCTYPE html>
<html lang="da">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewData["Title"] - Salon OS</title>
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@@phosphor-icons/web@@2.1.2/src/regular/style.css" />
<!-- Design System -->
<link rel="stylesheet" href="~/css/design-tokens.css">
<link rel="stylesheet" href="~/css/design-system.css">
<link rel="stylesheet" href="~/css/base.css">
<link rel="stylesheet" href="~/css/utilities.css">
<!-- Shared UI Components -->
<link rel="stylesheet" href="~/css/components.css">
<!-- Layout Components -->
<link rel="stylesheet" href="~/css/app-layout.css">
<link rel="stylesheet" href="~/css/sidebar.css">
<link rel="stylesheet" href="~/css/topbar.css">
<link rel="stylesheet" href="~/css/drawers.css">
<link rel="stylesheet" href="~/css/demo-banner.css">
<!-- Page Components -->
<link rel="stylesheet" href="~/css/page.css">
<link rel="stylesheet" href="~/css/stats.css">
<link rel="stylesheet" href="~/css/bookings.css">
<link rel="stylesheet" href="~/css/notifications.css">
<link rel="stylesheet" href="~/css/attentions.css">
<link rel="stylesheet" href="~/css/waitlist.css">
<link rel="stylesheet" href="~/css/tabs.css">
<link rel="stylesheet" href="~/css/controls.css">
<link rel="stylesheet" href="~/css/accordion.css">
<link rel="stylesheet" href="~/css/cash.css">
<link rel="stylesheet" href="~/css/auth.css">
<link rel="stylesheet" href="~/css/account.css">
<link rel="stylesheet" href="~/css/employees.css">
<link rel="stylesheet" href="~/css/services.css">
<link rel="stylesheet" href="~/css/customers.css">
<link rel="stylesheet" href="~/css/suppliers.css">
<link rel="stylesheet" href="~/css/settings.css">
<link rel="stylesheet" href="~/css/online-booking.css">
<link rel="stylesheet" href="~/css/reports.css">
@await RenderSectionAsync("Styles", required: false)
</head>
<body class="has-demo-banner">
<!-- Demo Mode Banner -->
<swp-demo-banner>
<swp-demo-banner-text>
<i class="ph ph-info"></i>
<span>Du ser en <strong>demo</strong> af PlanTempus.</span>
</swp-demo-banner-text>
<swp-demo-banner-cta>
<a href="/pricing">
<span>Opret konto</span>
<i class="ph ph-arrow-right"></i>
</a>
</swp-demo-banner-cta>
</swp-demo-banner>
<swp-app-layout id="appLayout">
@await Component.InvokeAsync("SideMenu")
<partial name="_TopBar" />
<swp-main-content>
@RenderBody()
</swp-main-content>
</swp-app-layout>
<partial name="_ProfileDrawer" />
<partial name="_TodoDrawer" />
<partial name="_NewTodoDrawer" />
<swp-drawer-overlay id="drawerOverlay"></swp-drawer-overlay>
<script type="module" src="~/js/app.js"></script>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>

View file

@ -0,0 +1,4 @@
@using PlanTempus.Application
@namespace PlanTempus.Application.Features
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, PlanTempus.Application

View file

@ -0,0 +1,3 @@
@{
Layout = "/Features/Shared/Pages/_Layout.cshtml";
}

View file

@ -0,0 +1,28 @@
using Microsoft.AspNetCore.Razor.TagHelpers;
using PlanTempus.Application.Features.Localization.Services;
namespace PlanTempus.Application.Features.Shared.TagHelpers;
[HtmlTargetElement(Attributes = "localize")]
public class LocalizeTagHelper : TagHelper
{
private readonly ILocalizationService _localize;
public LocalizeTagHelper(ILocalizationService localize)
{
_localize = localize;
}
[HtmlAttributeName("localize")]
public string Key { get; set; } = string.Empty;
public override void Process(TagHelperContext context, TagHelperOutput output)
{
var translated = _localize.Get(Key);
if (!string.IsNullOrEmpty(translated) && translated != Key)
output.Content.SetContent(translated);
output.Attributes.RemoveAll("localize");
}
}