feat(shop): добавление/редактирование товара в модальном окне
Инлайн-панель формы внизу страницы заменена на модалку через LS.modal: - shopAdminCreateItem/EditItem открывают окно openItemModal (create/edit) - валидация: обязательное название + проверка JSON в поле «Данные» - блокировка кнопки на время сохранения, ошибки через m.setError - удалены инлайн-форма из admin.html и неактуальные shopAdminSaveItem/shopAdminCancelForm/showShopForm + стейт Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1337,56 +1337,6 @@
|
||||
<tbody id="shop-items-body"><tr><td colspan="7"><div class="spinner"></div></td></tr></tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="adm-panel" id="shop-item-form" style="display:none">
|
||||
<div class="adm-panel-title" id="shop-form-title">Добавить товар</div>
|
||||
<div class="adm-form-row">
|
||||
<div class="adm-form-group" style="flex:1">
|
||||
<label>Название</label>
|
||||
<input type="text" id="shop-f-name" placeholder="Название товара" />
|
||||
</div>
|
||||
<div class="adm-form-group" style="flex:1">
|
||||
<label>Тип</label>
|
||||
<select id="shop-f-type">
|
||||
<option value="frame">Рамка</option>
|
||||
<option value="title">Титул</option>
|
||||
<option value="background">Фон</option>
|
||||
<option value="effect">Эффект</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="adm-form-group" style="width:100px">
|
||||
<label>Цена</label>
|
||||
<input type="number" id="shop-f-price" min="0" value="100" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="adm-form-row">
|
||||
<div class="adm-form-group" style="flex:1">
|
||||
<label>Описание</label>
|
||||
<textarea id="shop-f-desc" rows="2" placeholder="Описание товара"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="adm-form-row">
|
||||
<div class="adm-form-group" style="flex:1">
|
||||
<label>Иконка (emoji/код)</label>
|
||||
<input type="text" id="shop-f-icon" placeholder="SVG-код или эмодзи" />
|
||||
</div>
|
||||
<div class="adm-form-group" style="flex:1">
|
||||
<label>Данные (JSON)</label>
|
||||
<input type="text" id="shop-f-data" placeholder='{"key":"value"}' />
|
||||
</div>
|
||||
<div class="adm-form-group">
|
||||
<label>Активен</label>
|
||||
<label class="adm-toggle">
|
||||
<input type="checkbox" id="shop-f-active" checked />
|
||||
<span class="track"></span><span class="thumb"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display:flex;gap:10px">
|
||||
<button class="adm-btn adm-btn-primary" onclick="shopAdminSaveItem()">Сохранить</button>
|
||||
<button class="adm-btn" style="background:var(--border-h);color:var(--text-3)" onclick="shopAdminCancelForm()">Отмена</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ── Геймификация ── -->
|
||||
|
||||
Reference in New Issue
Block a user