diff --git a/Backend/admin/frontend/assets/js/main.js b/Backend/admin/frontend/assets/js/main.js
index c0828ad..4c36c09 100644
--- a/Backend/admin/frontend/assets/js/main.js
+++ b/Backend/admin/frontend/assets/js/main.js
@@ -217,6 +217,7 @@ class App {
removeAliasTag: (btn) => btn.parentElement.remove(),
saveModalData: async () => await this.saveModalData(),
deleteSiteConfirm: async () => await this.deleteSiteConfirm(),
+ deleteProxyConfirm: async () => await this.deleteProxyConfirm(),
// Тестовые функции
editTestSite: (i) => {
@@ -402,7 +403,7 @@ class App {
});
}, 50);
- this.removeDeleteButtonFromModal();
+ this.addDeleteButtonToModal();
}
// Установить статус в модальном окне
@@ -527,15 +528,20 @@ class App {
const oldDeleteBtn = footer.querySelector('#modalDeleteBtn');
if (oldDeleteBtn) oldDeleteBtn.remove();
+ // Определяем текст и обработчик в зависимости от типа редактирования
+ const isProxy = window.currentEditType === 'proxy';
+ const buttonText = isProxy ? 'Удалить прокси' : 'Удалить сайт';
+ const onClickHandler = isProxy ? () => this.deleteProxyConfirm() : () => this.deleteSiteConfirm();
+
// Создаём кнопку удаления
const deleteBtn = document.createElement('button');
deleteBtn.className = 'action-btn delete-btn';
deleteBtn.id = 'modalDeleteBtn';
deleteBtn.innerHTML = `
- Удалить сайт
+ ${buttonText}
`;
- deleteBtn.onclick = () => this.deleteSiteConfirm();
+ deleteBtn.onclick = onClickHandler;
// Вставляем перед кнопкой "Отмена"
const cancelBtn = footer.querySelector('#modalCancelBtn');
@@ -592,6 +598,49 @@ class App {
}
}
+ // Подтверждение удаления прокси
+ async deleteProxyConfirm() {
+ const index = window.currentEditIndex;
+ const proxy = this.proxyManager.proxiesData[index];
+ if (!proxy) return;
+
+ const confirmed = confirm(
+ `⚠️ ВНИМАНИЕ!\n\n` +
+ `Вы действительно хотите удалить прокси "${proxy.external_domain}"?\n\n` +
+ `Будет удалена запись в конфигурации.\n\n` +
+ `Это действие НЕОБРАТИМО!`
+ );
+
+ if (!confirmed) return;
+
+ try {
+ notification.show('Удаление прокси...', 'info', 1000);
+
+ const config = await configAPI.getConfig();
+
+ if (config.Proxy_Service && config.Proxy_Service.length > index) {
+ config.Proxy_Service.splice(index, 1);
+ }
+
+ const result = await configAPI.saveConfig(JSON.stringify(config, null, 4));
+
+ if (result.startsWith('Error')) {
+ notification.error(result, 3000);
+ return;
+ }
+
+ notification.success('✅ Прокси успешно удалён!', 1500);
+ await this.restartHttpServices();
+ notification.success('🚀 Серверы перезапущены!', 1000);
+
+ modal.close();
+ await this.proxyManager.load();
+
+ } catch (error) {
+ notification.error('Ошибка: ' + error.message, 3000);
+ }
+ }
+
// ====== Cert Manager ======
certManagerHost = null;