profileShare

rasmusjy / splitapp-backend-clean-onion

Read-only snapshot

No repository description.

main default branch 429 files Expires Sep 13, 2026, 9:06 AM
Index.cshtml 2,812 bytes
1 @model AdminInvitationIndexViewModel
2 @using App.Domain
3
4 <div class="admin-page-header">
5 <div>
6 <h1><i class="bi bi-envelope me-2"></i>@Localizer["Invitations"]</h1>
7 <p class="lead">@Localizer["Review invitation tokens and statuses"]</p>
8 </div>
9 </div>
10
11 <div class="admin-card mb-3">
12 <div class="admin-card-body">
13 <form method="get" class="row g-2 align-items-end">
14 <div class="col-auto">
15 <input type="text" name="search" value="@Model.CurrentSearch" class="form-control" placeholder="@Localizer["Search..."]" />
16 </div>
17 <div class="col-auto">
18 <button type="submit" class="btn btn-outline-primary"><i class="bi bi-search me-1"></i>@Localizer["Search"]</button>
19 </div>
20 </form>
21 </div>
22 </div>
23
24 <div class="admin-card">
25 <div class="admin-card-body p-0">
26 @if (Model.Items.Any())
27 {
28 <table class="table admin-table mb-0">
29 <thead>
30 <tr>
31 <th>@Localizer["Token"]</th>
32 <th>@Localizer["Trip"]</th>
33 <th>@Localizer["InvitedBy"]</th>
34 <th>@Localizer["ExpiresAt"]</th>
35 <th>@Localizer["Status"]</th>
36 <th class="text-end">@Localizer["Actions"]</th>
37 </tr>
38 </thead>
39 <tbody>
40 @foreach (var item in Model.Items)
41 {
42 <tr>
43 <td><code>@(item.Token.Length > 16 ? item.Token[..16] + "..." : item.Token)</code></td>
44 <td>@item.Trip?.Name</td>
45 <td>@item.InvitedByUser?.Email</td>
46 <td>@item.ExpiresAt.ToString("g")</td>
47 <td><span class="badge status-@item.Status.ToString().ToLower()">@WebApp.Helpers.EnumHelper.GetDisplayName(item.Status)</span></td>
48 <td class="text-end">
49 <div class="admin-action-group">
50 <a asp-action="Details" asp-route-id="@item.Id" class="btn btn-outline-secondary btn-sm" title="@Localizer["Details"]"><i class="bi bi-eye"></i></a>
51 <a asp-action="Delete" asp-route-id="@item.Id" class="btn btn-outline-danger btn-sm" title="@Localizer["Delete"]"><i class="bi bi-trash"></i></a>
52 </div>
53 </td>
54 </tr>
55 }
56 </tbody>
57 </table>
58 }
59 else
60 {
61 <div class="admin-empty">
62 <i class="bi bi-inbox"></i>
63 <div>@Localizer["No items yet"]</div>
64 </div>
65 }
66 </div>
67 </div>
68