| | | 1 | | @model IReadOnlyList<OzonOrdersWeb.Areas.Admin.Models.DataScopeTemplate> |
| | | 2 | | |
| | | 3 | | <section class="admin-hero"> |
| | | 4 | | <h1>Шаблоны наборов данных</h1> |
| | | 5 | | <p class="subtitle">Быстрое создание ограничений по справочникам и диапазонам.</p> |
| | | 6 | | <p class="subtitle-help">Для нетиповых кейсов доступно ручное выражение Dynamic LINQ.</p> |
| | | 7 | | </section> |
| | | 8 | | |
| | | 9 | | <nav class="admin-quick-links"> |
| | | 10 | | <a asp-area="Admin" asp-controller="DataScopes" asp-action="Index"><i class="bi bi-funnel"></i>К реестру наборов</a> |
| | | 11 | | <a asp-area="Admin" asp-controller="DataScopes" asp-action="Create"><i class="bi bi-plus-lg"></i>Создать вручную</a> |
| | | 12 | | <a asp-area="Admin" asp-controller="Roles" asp-action="Index"><i class="bi bi-person-badge"></i>Роли</a> |
| | | 13 | | </nav> |
| | | 14 | | |
| | | 15 | | <div class="d-flex justify-content-between align-items-center mb-3"> |
| | | 16 | | <div> |
| | | 17 | | <h5 class="mb-0">Готовые источники данных</h5> |
| | | 18 | | <div class="text-muted small">Связь со справочником (чекбоксы) или числовой диапазон по полю заказа (цена, колич |
| | | 19 | | </div> |
| | | 20 | | <a asp-action="Index" class="btn btn-outline-secondary"><i class="bi bi-arrow-left"></i> К списку</a> |
| | | 21 | | </div> |
| | | 22 | | |
| | | 23 | | <div class="row g-3"> |
| | 0 | 24 | | @foreach (var t in Model) |
| | | 25 | | { |
| | | 26 | | <div class="col-md-6 col-lg-4"> |
| | 0 | 27 | | <a asp-action="FromTemplate" asp-route-key="@t.Key" |
| | | 28 | | class="card h-100 text-decoration-none template-card"> |
| | | 29 | | <div class="card-body"> |
| | | 30 | | <div class="d-flex align-items-start gap-3"> |
| | | 31 | | <div class="template-icon"> |
| | | 32 | | <i class="bi @t.Icon"></i> |
| | | 33 | | </div> |
| | | 34 | | <div> |
| | 0 | 35 | | <div class="fw-semibold">@t.DisplayName</div> |
| | 0 | 36 | | <div class="text-muted small mt-1">@t.Description</div> |
| | | 37 | | <div class="mt-2"> |
| | 0 | 38 | | <span class="bsx-tone bsx-tone--muted">@t.EntityName</span> |
| | 0 | 39 | | @if (t.Kind == DataScopeTemplateKind.Range) |
| | | 40 | | { |
| | | 41 | | <span class="bsx-tone bsx-tone--info">диапазон</span> |
| | | 42 | | } |
| | 0 | 43 | | <span class="bsx-tone bsx-tone--muted">@t.FkField</span> |
| | | 44 | | </div> |
| | | 45 | | </div> |
| | | 46 | | </div> |
| | | 47 | | </div> |
| | | 48 | | </a> |
| | | 49 | | </div> |
| | | 50 | | } |
| | | 51 | | </div> |
| | | 52 | | |
| | | 53 | | <div class="card mt-4"> |
| | | 54 | | <div class="card-body"> |
| | | 55 | | <div class="d-flex align-items-start gap-3"> |
| | | 56 | | <i class="bi bi-code-slash fs-3 bsx-muted"></i> |
| | | 57 | | <div class="flex-grow-1"> |
| | | 58 | | <div class="fw-semibold">Нужен произвольный фильтр?</div> |
| | | 59 | | <div class="text-muted small">Если готовые шаблоны не подходят — создайте набор с собственным Dynamic LI |
| | | 60 | | </div> |
| | | 61 | | <a asp-action="Create" class="btn btn-outline-primary"><i class="bi bi-plus-lg"></i> Создать вручную</a> |
| | | 62 | | </div> |
| | | 63 | | </div> |
| | | 64 | | </div> |
| | | 65 | | |