| | | 1 | | @using OzonOrdersWeb.Areas.Studio2.ViewModels.Grid |
| | | 2 | | @using OzonOrdersWeb.WebServices.ApiSettingsGrid |
| | | 3 | | @model ApiMappingGrid |
| | | 4 | | @* |
| | | 5 | | Связи склада Studio2 со значениями API-поставщика на AG Grid (вместо <table> со <select> в строках). |
| | | 6 | | Значения уходят обычным POST формы страницы (скрытые поля подставляет api-mappings-grid.js). |
| | | 7 | | *@ |
| | 0 | 8 | | @if (!string.IsNullOrWhiteSpace(Model.LoadError)) |
| | | 9 | | { |
| | 0 | 10 | | <div class="alert alert-warning mt-4 mb-0"><i class="fas fa-triangle-exclamation me-1"></i>@Model.LoadError</div> |
| | | 11 | | } |
| | | 12 | | <div class="aps-wh-head"> |
| | | 13 | | <div> |
| | 0 | 14 | | <div class="aps-mappings__eyebrow"><i class="fas fa-route" aria-hidden="true"></i> @Model.Eyebrow</div> |
| | 0 | 15 | | <h2>@Model.Title</h2> |
| | 0 | 16 | | <p>@Model.Description</p> |
| | | 17 | | </div> |
| | | 18 | | <div class="aps-wh-actions" aria-live="polite"> |
| | | 19 | | <span class="bsx-dir-stat">Связано <b id="apsMapLinked">0</b></span> |
| | 0 | 20 | | <span class="bsx-dir-stat">Всего <b>@Model.Rows.Count</b></span> |
| | | 21 | | </div> |
| | | 22 | | </div> |
| | 0 | 23 | | @await Html.PartialAsync("_BsxDirectoryGrid", new BsxDirectoryGridViewModel("apsMap", "Склады", "fa-link", "Поиск склада |
| | | 24 | | <script src="~/js/Studio2/Grid/bsx-directory.js" asp-append-version="true"></script> |
| | | 25 | | <script src="~/js/Studio2/ApiSupplierSettings/api-mappings-grid.js" asp-append-version="true"></script> |
| | | 26 | | <script> |
| | | 27 | | (function () { |
| | | 28 | | var form = document.currentScript.closest('form'); |
| | | 29 | | // AG Grid подключается в _Layout после тела страницы — гриды создаём, когда всё загружено. |
| | | 30 | | document.addEventListener('DOMContentLoaded', function () { |
| | 0 | 31 | | ApsMappingsGrid.mount({ form: form, grid: @Json.Serialize(Model) }); |
| | | 32 | | }); |
| | | 33 | | })(); |
| | | 34 | | </script> |