profileShare

rasmusjy / splitapp-backend-microservices

Read-only snapshot

No repository description.

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