profileShare

rasmusjy / splitapp-backend-clean-onion

Read-only snapshot

No repository description.

main default branch 429 files Expires Sep 13, 2026, 9:06 AM
CreateCategory.cshtml 3,703 bytes
1 @model App.BLL.DTO.BudgetCategoryBllDto
2
3 @{
4 ViewData["Title"] = Localizer["Add Budget Category"];
5 var tripId = (Guid)ViewData["TripId"]!;
6 }
7
8 <div class="row justify-content-center">
9 <div class="col-md-8 col-lg-6">
10 <div class="sa-card-static sa-card-accent sa-card-accent-secondary">
11 <div class="sa-card-body" style="padding: var(--sa-space-8);">
12 <div class="text-center mb-4">
13 <div style="font-size: 2rem; color: var(--sa-success); margin-bottom: var(--sa-space-2);">
14 <i class="bi bi-wallet2"></i>
15 </div>
16 <h1 style="font-size: 1.5rem; margin-bottom: 4px;">@Localizer["Add Budget Category"]</h1>
17 </div>
18
19 <form asp-action="CreateCategory" data-sa-loading>
20 <div asp-validation-summary="ModelOnly" class="text-danger"></div>
21 <input type="hidden" asp-for="TripId" />
22
23 <div class="mb-3">
24 <label for="name" class="form-label">@Localizer["Category Name"]</label>
25 <input type="text" id="name" name="name" class="form-control" placeholder="e.g. Food, Transport, Activities" required />
26 <span asp-validation-for="Name" class="text-danger"></span>
27 </div>
28
29 <div class="mb-3">
30 <label class="form-label">@Localizer["Icon"]</label>
31 <input type="hidden" asp-for="IconName" id="iconNameInput" />
32 <div class="sa-icon-picker">
33 @{
34 var icons = new[] { "airplane", "house", "cart", "cup-hot", "film", "music-note-beamed", "cash-stack", "ticket-perforated", "bus-front", "fuel-pump", "gift", "heart-fill", "camera-fill", "egg-fried", "bed", "bicycle", "shop", "palette", "binoculars", "lightning" };
35 }
36 @foreach (var icon in icons)
37 {
38 <div class="sa-icon-option @(Model.IconName == icon ? "active" : "")" data-icon="@icon" title="@icon">
39 <i class="bi bi-@icon"></i>
40 </div>
41 }
42 </div>
43 </div>
44
45 <div class="mb-3">
46 <label asp-for="PlannedAmount" class="form-label">@Localizer["Planned Amount"]</label>
47 <input asp-for="PlannedAmount" type="number" step="0.01" min="0" class="form-control" placeholder="0.00" />
48 <span asp-validation-for="PlannedAmount" class="text-danger"></span>
49 </div>
50
51 <div class="mb-4">
52 <label asp-for="DisplayOrder" class="form-label">@Localizer["Display Order"]</label>
53 <input asp-for="DisplayOrder" type="number" class="form-control" />
54 <span asp-validation-for="DisplayOrder" class="text-danger"></span>
55 </div>
56
57 <div class="d-flex gap-3">
58 <button type="submit" class="sa-btn sa-btn-secondary flex-grow-1">
59 <i class="bi bi-check-lg"></i> @Localizer["Create"]
60 </button>
61 <a asp-action="Index" asp-route-tripId="@tripId" class="sa-btn sa-btn-ghost">@Localizer["Cancel"]</a>
62 </div>
63 </form>
64 </div>
65 </div>
66 </div>
67 </div>
68
69 @section Scripts {
70 <partial name="_ValidationScriptsPartial" />
71 }
72