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 7,396 bytes
1 @{
2 var pageTitle = (Model as ITitledViewModel)?.Title;
3 if (string.IsNullOrWhiteSpace(pageTitle)) pageTitle = "Admin";
4 var ctx = ViewContext.RouteData.Values;
5 var currentController = (ctx["controller"] as string ?? "").ToLowerInvariant();
6 bool IsActive(string name) => currentController == name.ToLowerInvariant();
7 }
8
9 <!DOCTYPE html>
10 <html lang="@Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName">
11 <head>
12 <meta charset="utf-8" />
13 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
14 <meta name="theme-color" content="#e8604c" />
15 <title>@pageTitle - SplitApp Admin</title>
16
17 <link rel="preconnect" href="https://fonts.googleapis.com" />
18 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
19 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
20
21 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" />
22 <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
23 <link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
24 <link rel="stylesheet" href="~/css/splitapp-design.css" asp-append-version="true" />
25 <link rel="stylesheet" href="~/css/admin.css" asp-append-version="true" />
26 </head>
27 <body class="admin-body">
28 <div id="sa-toast-container" class="sa-toast-container"></div>
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 <div class="admin-shell">
35 <aside class="admin-sidebar">
36 <div class="admin-sidebar-brand">
37 <i class="bi bi-airplane-fill"></i>
38 <span>SplitApp</span>
39 <small class="admin-sidebar-brand-sub">Admin</small>
40 </div>
41 <nav class="admin-sidebar-nav">
42 <a class="admin-nav-link @(IsActive("Dashboard") ? "active" : "")" asp-area="Admin" asp-controller="Dashboard" asp-action="Index">
43 <i class="bi bi-speedometer2"></i><span>@Localizer["Dashboard"]</span>
44 </a>
45 <div class="admin-nav-section">@Localizer["Core"]</div>
46 <a class="admin-nav-link @(IsActive("Trips") ? "active" : "")" asp-area="Admin" asp-controller="Trips" asp-action="Index">
47 <i class="bi bi-suitcase-lg"></i><span>@Localizer["Trips"]</span>
48 </a>
49 <a class="admin-nav-link @(IsActive("Expenses") ? "active" : "")" asp-area="Admin" asp-controller="Expenses" asp-action="Index">
50 <i class="bi bi-cash-coin"></i><span>@Localizer["Expenses"]</span>
51 </a>
52 <a class="admin-nav-link @(IsActive("BudgetCategories") ? "active" : "")" asp-area="Admin" asp-controller="BudgetCategories" asp-action="Index">
53 <i class="bi bi-tags"></i><span>@Localizer["Budget Categories"]</span>
54 </a>
55 <a class="admin-nav-link @(IsActive("Currencies") ? "active" : "")" asp-area="Admin" asp-controller="Currencies" asp-action="Index">
56 <i class="bi bi-currency-exchange"></i><span>@Localizer["Currencies"]</span>
57 </a>
58 <div class="admin-nav-section">@Localizer["Activity"]</div>
59 <a class="admin-nav-link @(IsActive("Polls") ? "active" : "")" asp-area="Admin" asp-controller="Polls" asp-action="Index">
60 <i class="bi bi-bar-chart"></i><span>@Localizer["Polls"]</span>
61 </a>
62 <a class="admin-nav-link @(IsActive("Wishlist") ? "active" : "")" asp-area="Admin" asp-controller="Wishlist" asp-action="Index">
63 <i class="bi bi-stars"></i><span>@Localizer["Wishlist"]</span>
64 </a>
65 <a class="admin-nav-link @(IsActive("Invitations") ? "active" : "")" asp-area="Admin" asp-controller="Invitations" asp-action="Index">
66 <i class="bi bi-envelope"></i><span>@Localizer["Invitations"]</span>
67 </a>
68 <div class="admin-nav-section">@Localizer["Settlements"]</div>
69 <a class="admin-nav-link @(IsActive("SettlementPlans") ? "active" : "")" asp-area="Admin" asp-controller="SettlementPlans" asp-action="Index">
70 <i class="bi bi-diagram-3"></i><span>@Localizer["Settlement Plans"]</span>
71 </a>
72 <a class="admin-nav-link @(IsActive("SettlementPayments") ? "active" : "")" asp-area="Admin" asp-controller="SettlementPayments" asp-action="Index">
73 <i class="bi bi-credit-card-2-front"></i><span>@Localizer["Settlement Payments"]</span>
74 </a>
75 <a class="admin-nav-link @(IsActive("SplitPresets") ? "active" : "")" asp-area="Admin" asp-controller="SplitPresets" asp-action="Index">
76 <i class="bi bi-pie-chart"></i><span>@Localizer["Split Presets"]</span>
77 </a>
78 <a class="admin-nav-link @(IsActive("TripParticipants") ? "active" : "")" asp-area="Admin" asp-controller="TripParticipants" asp-action="Index">
79 <i class="bi bi-people"></i><span>@Localizer["Trip Participants"]</span>
80 </a>
81 <div class="admin-nav-section">@Localizer["System"]</div>
82 <a class="admin-nav-link @(IsActive("Users") ? "active" : "")" asp-area="Admin" asp-controller="Users" asp-action="Index">
83 <i class="bi bi-person-gear"></i><span>@Localizer["Users"]</span>
84 </a>
85 </nav>
86 <div class="admin-sidebar-footer">
87 <a asp-area="" asp-controller="Home" asp-action="Index" class="admin-back-link">
88 <i class="bi bi-arrow-left"></i>@Localizer["Back to site"]
89 </a>
90 </div>
91 </aside>
92
93 <div class="admin-main">
94 <header class="admin-topbar">
95 <button class="admin-topbar-toggle d-md-none" type="button" onclick="document.body.classList.toggle('admin-sidebar-open')" aria-label="Toggle sidebar">
96 <i class="bi bi-list"></i>
97 </button>
98 <div class="admin-topbar-title">
99 <i class="bi bi-shield-lock"></i> @pageTitle
100 </div>
101 <div class="admin-topbar-actions">
102 <partial name="_LanguageSelection" />
103 <partial name="_LoginPartial" />
104 </div>
105 </header>
106
107 <main role="main" class="admin-content sa-animate-fade-in">
108 @RenderBody()
109 </main>
110
111 <footer class="admin-footer">
112 <span><i class="bi bi-airplane-fill me-1"></i> SplitApp Admin &copy; 2026 SplitApp</span>
113 <span>@Thread.CurrentThread.CurrentUICulture.Name</span>
114 </footer>
115 </div>
116 </div>
117
118 <script src="~/lib/jquery/dist/jquery.min.js"></script>
119 <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
120 <script src="~/js/splitapp.js" asp-append-version="true"></script>
121 <script src="~/js/site.js" asp-append-version="true"></script>
122 @await RenderSectionAsync("Scripts", required: false)
123 </body>
124 </html>
125