profileShare

rasmusjy / splitapp-backend-clean-onion

Read-only snapshot

No repository description.

main default branch 429 files Expires Sep 13, 2026, 9:06 AM
_Layout.cshtml 5,364 bytes
1 @using Microsoft.AspNetCore.Identity
2 @using App.Domain.Identity
3 @inject SignInManager<AppUser> _signInManager
4
5 <!DOCTYPE html>
6 <html lang="@Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName">
7 <head>
8 <meta charset="utf-8" />
9 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
10 <meta name="theme-color" content="#e8604c" />
11 <title>@ViewData["Title"] - SplitApp</title>
12 <script type="importmap"></script>
13
14 <!-- Fonts -->
15 <link rel="preconnect" href="https://fonts.googleapis.com" />
16 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
17 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
18
19 <!-- Icons -->
20 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" />
21
22 <!-- Styles -->
23 <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
24 <link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
25 <link rel="stylesheet" href="~/css/splitapp-design.css" asp-append-version="true" />
26 <link rel="stylesheet" href="~/WebApp.styles.css" asp-append-version="true" />
27 </head>
28 <body>
29 <!-- Toast Container -->
30 <div id="sa-toast-container" class="sa-toast-container"></div>
31
32 <!-- TempData Messages (read by splitapp.js) -->
33 <div id="sa-tempdata-messages" style="display:none"
34 data-success="@TempData["Success"]"
35 data-error="@TempData["Error"]"
36 data-warning="@TempData["Warning"]"></div>
37
38 <!-- Navbar -->
39 <header>
40 <nav class="sa-navbar navbar navbar-expand-md">
41 <div class="container">
42 <a class="sa-navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">
43 <i class="bi bi-airplane-fill"></i>
44 SplitApp
45 </a>
46 <button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#mainNav"
47 aria-controls="mainNav" aria-expanded="false" aria-label="Toggle navigation">
48 <i class="bi bi-list" style="font-size: 1.5rem; color: var(--sa-gray-700);"></i>
49 </button>
50 <div class="navbar-collapse collapse" id="mainNav">
51 <ul class="navbar-nav me-auto">
52 <li class="nav-item">
53 <a class="nav-link" asp-area="" asp-controller="Home" asp-action="Index">
54 <i class="bi bi-house-door me-1"></i>@Localizer["Home"]
55 </a>
56 </li>
57 <li class="nav-item">
58 <a class="nav-link" href="/swagger" target="_blank">
59 <i class="bi bi-braces me-1"></i>API
60 </a>
61 </li>
62 @if (_signInManager.IsSignedIn(User))
63 {
64 <li class="nav-item">
65 <a class="nav-link" asp-area="" asp-controller="Trips" asp-action="Index">
66 <i class="bi bi-luggage me-1"></i>@Localizer["Trips"]
67 </a>
68 </li>
69 @if (User.IsInRole("admin"))
70 {
71 <li class="nav-item">
72 <a class="nav-link" asp-area="Admin" asp-controller="Dashboard" asp-action="Index">
73 <i class="bi bi-speedometer2 me-1"></i>@Localizer["Admin Panel"]
74 </a>
75 </li>
76 }
77 }
78 </ul>
79 <div class="d-flex align-items-center gap-3">
80 <partial name="_LanguageSelection" />
81 <partial name="_LoginPartial" />
82 </div>
83 </div>
84 </div>
85 </nav>
86 </header>
87
88 <!-- Main Content -->
89 <div class="container sa-animate-fade-in" style="padding-top: var(--sa-space-6); padding-bottom: var(--sa-space-8);">
90 <main role="main">
91 @RenderBody()
92 </main>
93 </div>
94
95 <!-- Footer -->
96 <footer class="sa-footer">
97 <div class="container d-flex justify-content-between align-items-center flex-wrap gap-3">
98 <div>
99 <span style="font-weight: 600; color: var(--sa-gray-200);">
100 <i class="bi bi-airplane-fill me-1"></i> SplitApp
101 </span>
102 <span class="ms-2">&copy; 2026 TalTech</span>
103 </div>
104 <div class="d-flex align-items-center gap-2">
105 <span style="font-size: 0.8rem;">@Thread.CurrentThread.CurrentUICulture.Name</span>
106 </div>
107 </div>
108 </footer>
109
110 <script src="~/lib/jquery/dist/jquery.min.js"></script>
111 <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
112 <script src="~/js/splitapp.js" asp-append-version="true"></script>
113 <script src="~/js/site.js" asp-append-version="true"></script>
114 @await RenderSectionAsync("Scripts", required: false)
115 </body>
116 </html>
117