Да, можно правильно обновить страницу после перемещения товара в черновик. Для этого вам потребуется использовать AJAX-запросы или WebSocket, чтобы отправить запрос на сервер без перезагрузки страницы и обновить информацию о товаре после перемещения его в черновик.
Вот пример кода для создания кнопки "Draft product" в административной панели:
HTML:
```html
<button id="draft-btn">Draft product</button>
```
JavaScript:
```javascript
document.getElementById('draft-btn').addEventListener('click', function() {
var productId = 123; // Замените 123 на фактический идентификатор товара
// Отправить AJAX-запрос на сервер
var xhr = new XMLHttpRequest();
xhr.open('POST', '/move-to-draft', true);
xhr.setRequestHeader('Content-type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// Обновить страницу или её часть
var updatedProduct = JSON.parse(xhr.responseText);
// Внести изменения на страницу товара, например, изменить его статус на "Черновик"
document.getElementById('product-status').textContent = 'Draft';
}
};
xhr.send(JSON.stringify({ productId: productId }));
});
```
На серверной стороне (например, с использованием Node.js и Express) вы можете создать маршрут `/move-to-draft` для обработки запроса на перемещение товара в черновик. Вот пример обработчика запроса:
```javascript
app.post('/move-to-draft', function(req, res) {
var productId = req.body.productId; // Получить идентификатор товара из запроса
// Выполнить действия для перемещения товара в черновик
// Например, обновить запись о товаре в базе данных
var updatedProduct = {
id: productId,
status: 'draft'
};
res.send(updatedProduct);
});
```
Не забудьте настроить маршрут `/move-to-draft` и обновить код для работы с вашей базой данных и логикой перемещения товара в черновик.