< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Studio2_Views_ClientStatus_Edit
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/ClientStatus/Edit.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 5
Coverable lines: 5
Total lines: 180
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 4
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%2040%
<ExecuteAsync()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/ClientStatus/Edit.cshtml

#LineLine coverage
 1@model OzonDomains.Models.ClientStatus
 2@using OzonDomains
 3
 4@{
 05    var model = Model!;
 06    ViewData["Title"] = $"Редактирование статуса клиента - {model.Name ?? model.Id.ToString()}";
 07    Layout = "~/Views/Shared/_Layout.cshtml";
 8}
 9
 10<style>
 11    .card {
 12        border: none;
 13        box-shadow: 0 0.125rem 0.25rem rgba(var(--og-shadow-rgb), 0.075);
 14        border-radius: 0.5rem;
 15    }
 16
 17    .card-header {
 18        background-color: var(--og-surface-2);
 19        border-bottom: 1px solid var(--og-surface-3);
 20        padding: 1.25rem 1.5rem;
 21        display: flex;
 22        justify-content: space-between;
 23        align-items: center;
 24    }
 25
 26    .card-body {
 27        padding: 1.5rem;
 28    }
 29
 30    .form-group {
 31        margin-bottom: 1.5rem;
 32    }
 33
 34    .form-label {
 35        font-weight: 600;
 36        color: var(--og-text-2);
 37        margin-bottom: 0.5rem;
 38    }
 39
 40    .alert-danger {
 41        border-radius: 0.25rem;
 42        padding: 1rem;
 43        margin-bottom: 1.5rem;
 44    }
 45
 46    .client-type-preview {
 47        margin-top: 0.5rem;
 48        display: inline-flex;
 49        align-items: center;
 50        gap: 0.5rem;
 51    }
 52
 53    .client-type-badge {
 54        font-size: 0.75rem;
 55        padding: 0.25rem 0.5rem;
 56    }
 57</style>
 58
 059@await Html.PartialAsync("_BsxGridShell")
 60
 61<div class="container bsx-surface">
 62    <div class="row">
 63        <div>
 64            <div class="card">
 65                <div class="card-header" style="display: flex; justify-content: space-between; align-items: center;">
 66                    <div>
 67                        <h2>Редактирование статуса клиента</h2>
 68                        <p class="mb-0 text-muted" style="font-size: 0.9rem;">Измените данные статуса</p>
 69                    </div>
 70                </div>
 71
 72                <div class="card-body">
 73                    <div class="row justify-content-center">
 74                        <div class="col-md-8 col-lg-6">
 75                            <form asp-area="Studio2" asp-controller="ClientStatus" asp-action="Edit" method="post">
 76                                <div asp-validation-summary="ModelOnly" class="alert alert-danger"></div>
 77                                <input type="hidden" asp-for="Id"/>
 78
 79                                <div class="form-group">
 80                                    <label asp-for="Name" class="form-label">Название статуса</label>
 81                                    <input asp-for="Name" class="form-control"
 82                                           placeholder="Введите название статуса"/>
 83                                    <span asp-validation-for="Name" class="text-danger small"></span>
 84                                    <small class="form-text text-muted">Например: Доставлен, Отменён, В
 85                                        обработке</small>
 86                                </div>
 87
 88                                <div class="form-group">
 89                                    <label asp-for="ClientTypeId" class="form-label">Тип клиента</label>
 90                                    <select asp-for="ClientTypeId" class="form-control" id="ClientTypeSelect"
 91                                            onchange="handleClientTypeChange()">
 92                                        <option value="">Не указан</option>
 93                                        <option value="1">Ozon</option>
 94                                        <option value="2">Yandex</option>
 95                                    </select>
 96                                    <span asp-validation-for="ClientTypeId" class="text-danger small"></span>
 97                                    <div id="clientTypePreview" class="client-type-preview" style="display: none;">
 98                                        <span>Выбранный тип:</span>
 99                                        <span id="clientTypeBadge" class="badge"></span>
 100                                    </div>
 101                                </div>
 102
 103                                <div class="form-group mt-3">
 104                                    <div class="form-check">
 105                                        <input asp-for="IsFinal" class="form-check-input"/>
 106                                        <label asp-for="IsFinal" class="form-check-label">
 107                                            Конечный статус
 108                                        </label>
 109                                    </div>
 110                                    <small class="form-text text-muted">
 111                                        Отметьте, если данный статус является конечным
 112                                        (по заказу больше не выполняются стандартные операции).
 113                                        <br/>
 114                                        Примеры: «Отменён», «Доставлен», «Возврат покупателя».
 115                                    </small>
 116                                </div>
 117
 118                                <div class="form-group mt-4">
 119                                    <div class="d-flex gap-2">
 120                                        <button type="submit" class="btn btn-primary">
 121                                            <i class="fas fa-save"></i> Сохранить
 122                                        </button>
 123                                        <a asp-action="Index" class="btn btn-outline-secondary">
 124                                            <i class="fas fa-times"></i> Отмена
 125                                        </a>
 126                                    </div>
 127                                </div>
 128                            </form>
 129                        </div>
 130                    </div>
 131                </div>
 132            </div>
 133        </div>
 134    </div>
 135</div>
 136
 137@section Scripts {
 138    <script>
 139        function handleClientTypeChange() {
 140            var clientTypeSelect = document.getElementById("ClientTypeSelect");
 141            var clientType = clientTypeSelect.value;
 142            var preview = document.getElementById("clientTypePreview");
 143            var badge = document.getElementById("clientTypeBadge");
 144
 145            // Обновляем превью типа клиента
 146            if (clientType && clientType !== "") {
 147                preview.style.display = "inline-flex";
 148                var selectedOption = clientTypeSelect.options[clientTypeSelect.selectedIndex];
 149                var typeName = selectedOption.text;
 150
 151                badge.textContent = typeName;
 152                badge.className = "badge client-type-badge";
 153
 154                if (clientType === "1") {
 155                    badge.classList.add("bg-primary");
 156                    badge.innerHTML = '<i class="fas fa-shopping-bag me-1"></i>' + typeName;
 157                } else if (clientType === "2") {
 158                    badge.classList.add("bg-danger");
 159                    badge.innerHTML = '<i class="fas fa-shopping-cart me-1"></i>' + typeName;
 160                } else if (clientType === "3") {
 161                    badge.classList.add("bg-warning", "text-dark");
 162                    badge.innerHTML = '<i class="fas fa-box me-1"></i>' + typeName;
 163                } else {
 164                    badge.classList.add("bg-secondary");
 165                    badge.innerHTML = '<i class="fas fa-question-circle me-1"></i>' + typeName;
 166                }
 167            } else {
 168                preview.style.display = "none";
 169            }
 170        }
 171
 172        // Инициализация при загрузке страницы
 173        document.addEventListener('DOMContentLoaded', function () {
 174            handleClientTypeChange();
 175        });
 176    </script>
 177    @{
 0178        await Html.RenderPartialAsync("_ValidationScriptsPartial");
 179    }
 180}

Methods/Properties

ExecuteAsync()
<ExecuteAsync()