< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Admin_Views_Fields_Index
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Admin/Views/Fields/Index.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 7
Coverable lines: 7
Total lines: 65
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 18
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ExecuteAsync()0%342180%
<ExecuteAsync()100%210%
<ExecuteAsync()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Admin/Views/Fields/Index.cshtml

#LineLine coverage
 1@model List<FieldListItemVm>
 2@{
 03    var showCreate = (bool)(ViewBag.ShowCreate ?? false);
 04    var json = new System.Text.Json.JsonSerializerOptions(System.Text.Json.JsonSerializerDefaults.Web);
 5}
 6
 7<section class="admin-hero">
 8    <h1>Колонки заказов</h1>
 9    <p class="subtitle">Управление реестром полей списков и их доступностью.</p>
 10    <p class="subtitle-help">Изменения влияют на матрицу прав ролей и пользовательские оверрайды.</p>
 11</section>
 12
 13<nav class="admin-quick-links">
 14    <a asp-area="Admin" asp-controller="Roles" asp-action="Index"><i class="bi bi-person-badge"></i>Роли</a>
 15    <a asp-area="Admin" asp-controller="Pages" asp-action="Index"><i class="bi bi-window-stack"></i>Страницы</a>
 16    <a asp-area="Studio2" asp-controller="Orders" asp-action="Index"><i class="bi bi-box-seam"></i>Заказы</a>
 17</nav>
 18
 19<section class="admin-intro">
 20    <i class="bi bi-info-circle"></i>
 21    <div>Сущность <code>OrderList</code>: колонки главной таблицы заказов, транзакций и журнала в едином формате.</div>
 22</section>
 23
 24<div class="admin-toolbar admin-surface">
 25    <form asp-action="SyncOrderListRegistry" method="post" class="d-flex gap-2 align-items-center">
 026        @Html.AntiForgeryToken()
 27        <button type="submit" class="btn btn-outline-success btn-sm"><i class="bi bi-arrow-repeat"></i> Синхронизировать
 28    </form>
 029    @if (showCreate)
 30    {
 31        <a asp-action="Create" class="btn btn-primary btn-sm"><i class="bi bi-plus-lg"></i> Добавить колонку</a>
 32    }
 33</div>
 34
 035@await Html.PartialAsync("~/Areas/Studio2/Views/Shared/_BsxDirectoryGrid.cshtml", new BsxDirectoryGridViewModel("admFiel
 036<script type="application/json" id="admFieldsData">@Html.Raw(System.Text.Json.JsonSerializer.Serialize(Model, json))</sc
 37
 38@section Scripts {
 39    <script>
 40        (function () {
 41            const A = window.AdminGrid, D = window.BsxDirectory;
 042            const url = (action, id) => '@Url.Action("Index")'.replace(/\/Index$/, '') + '/' + action + '/' + id;
 43            A.grid({
 44                key: 'admFields', prefix: 'admFields', rows: A.data('admFieldsData'),
 45                rowUrl: r => url('Edit', r.id),
 46                columnDefs: [
 47                    A.code({ colId: 'fieldName', field: 'fieldName', headerName: 'Код (поле)' }),
 48                    { colId: 'displayName', field: 'displayName', headerName: 'Подпись', minWidth: 200, flex: 2 },
 49                    D.setCol({ colId: 'entityName', field: 'entityName', headerName: 'Сущность', width: 140 }),
 50                    D.setCol({ colId: 'fieldTypeName', field: 'fieldTypeName', headerName: 'Тип', width: 130, cellRender
 51                    D.setCol({ colId: 'pageCode', field: 'pageCode', headerName: 'Страница (опц.)', minWidth: 160, flex:
 52                    D.numCol({ colId: 'sortOrder', field: 'sortOrder', headerName: 'Порядок', width: 110, sort: 'asc' })
 53                    A.check({ colId: 'isActive', field: 'isActive', headerName: 'Активно' }),
 54                    D.actionsCol(r => [
 55                        { icon: 'fa-pen', title: 'Изменить', kind: 'edit', href: url('Edit', r.id) },
 56                        r.isRegistryColumn ? null : {
 57                            icon: 'fa-trash', title: 'Удалить (только записи вне фиксированного реестра)', kind: 'danger
 58                            onClick: row => A.confirmPost(url('Delete', row.id), {}, { title: 'Удалить колонку', message
 59                        }
 60                    ], { width: 110 })
 61                ]
 62            });
 63        })();
 64    </script>
 65}