| | | 1 | | @model RoleEditVm |
| | | 2 | | |
| | | 3 | | <section class="admin-hero"> |
| | 0 | 4 | | <h1>@(Model.Id == 0 ? "Новая роль" : "Карточка роли")</h1> |
| | | 5 | | <p class="subtitle">Базовые параметры роли и быстрый переход к матрицам прав.</p> |
| | | 6 | | <p class="subtitle-help">Системные роли защищены от удаления и имеют фиксированные инварианты.</p> |
| | | 7 | | </section> |
| | | 8 | | |
| | | 9 | | <nav class="admin-quick-links"> |
| | | 10 | | <a asp-area="Admin" asp-controller="Roles" asp-action="Index"><i class="bi bi-person-badge"></i>К ролям</a> |
| | | 11 | | <a asp-area="Admin" asp-controller="Pages" asp-action="Index"><i class="bi bi-window-stack"></i>Страницы</a> |
| | | 12 | | <a asp-area="Admin" asp-controller="Fields" asp-action="Index"><i class="bi bi-input-cursor-text"></i>Поля</a> |
| | | 13 | | </nav> |
| | | 14 | | |
| | 0 | 15 | | <form asp-action="@(Model.Id == 0 ? "Create" : "Edit")" asp-route-id="@Model.Id" method="post"> |
| | 0 | 16 | | @Html.AntiForgeryToken() |
| | | 17 | | <input type="hidden" asp-for="Id" /> |
| | | 18 | | <div class="card"> |
| | | 19 | | <div class="card-body"> |
| | | 20 | | <div class="row g-3"> |
| | | 21 | | <div class="col-md-4"> |
| | | 22 | | <label asp-for="Name" class="form-label"></label> |
| | | 23 | | <input asp-for="Name" class="form-control" /> |
| | | 24 | | <span asp-validation-for="Name" class="text-danger"></span> |
| | | 25 | | </div> |
| | | 26 | | <div class="col-md-4"> |
| | | 27 | | <label asp-for="DisplayName" class="form-label"></label> |
| | | 28 | | <input asp-for="DisplayName" class="form-control" /> |
| | | 29 | | <span asp-validation-for="DisplayName" class="text-danger"></span> |
| | | 30 | | </div> |
| | | 31 | | <div class="col-md-4 d-flex align-items-end"> |
| | | 32 | | <div class="form-check me-3"><input asp-for="IsActive" class="form-check-input" /><label class="form |
| | | 33 | | <div class="form-check"><input asp-for="IsSystem" class="form-check-input" disabled="@(Model.Id != 0 |
| | | 34 | | </div> |
| | | 35 | | <div class="col-12"> |
| | | 36 | | <label asp-for="Description" class="form-label"></label> |
| | | 37 | | <textarea asp-for="Description" rows="2" class="form-control"></textarea> |
| | | 38 | | </div> |
| | | 39 | | </div> |
| | | 40 | | </div> |
| | | 41 | | <div class="card-footer d-flex gap-2"> |
| | | 42 | | <button type="submit" class="btn btn-primary"><i class="bi bi-save"></i> Сохранить</button> |
| | | 43 | | <a asp-action="Index" class="btn btn-outline-secondary">Отмена</a> |
| | 0 | 44 | | @if (Model.Id != 0) |
| | | 45 | | { |
| | | 46 | | <div class="ms-auto btn-group"> |
| | 0 | 47 | | <a asp-action="Pages" asp-route-id="@Model.Id" class="btn btn-outline-info"><i class="bi bi-window-s |
| | 0 | 48 | | <a asp-action="Fields" asp-route-id="@Model.Id" class="btn btn-outline-info"><i class="bi bi-input-c |
| | 0 | 49 | | <a asp-action="DataScopes" asp-route-id="@Model.Id" class="btn btn-outline-info"><i class="bi bi-fun |
| | | 50 | | </div> |
| | | 51 | | } |
| | | 52 | | </div> |
| | | 53 | | </div> |
| | | 54 | | </form> |
| | | 55 | | |
| | | 56 | | @section Scripts { |
| | | 57 | | <partial name="_ValidationScriptsPartial" /> |
| | | 58 | | } |