Большое обновление GUI интерфейс
Большое обновление GUI интерфейс - Добавлен фраемворr Walles - Удалена консольная версия - Проработан интерфейс и дизайн - Добавлено кеширование для быстрой реакции. - Сделан .ps1 сборщик для удобной сборки проекта. - Обновлён Readme
This commit is contained in:
143
Backend/admin/frontend/assets/js/api/wails.js
Normal file
143
Backend/admin/frontend/assets/js/api/wails.js
Normal file
@@ -0,0 +1,143 @@
|
||||
/* ============================================
|
||||
Wails API Wrapper
|
||||
Обёртка над Wails API
|
||||
============================================ */
|
||||
|
||||
import { isWailsAvailable, log } from '../utils/helpers.js';
|
||||
|
||||
/**
|
||||
* Базовый класс для работы с Wails API
|
||||
*/
|
||||
class WailsAPI {
|
||||
constructor() {
|
||||
this.available = isWailsAvailable();
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверка доступности API
|
||||
*/
|
||||
checkAvailability() {
|
||||
if (!this.available) {
|
||||
log('Wails API недоступен', 'warn');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить статус всех сервисов
|
||||
*/
|
||||
async getAllServicesStatus() {
|
||||
if (!this.checkAvailability()) return null;
|
||||
try {
|
||||
return await window.go.admin.App.GetAllServicesStatus();
|
||||
} catch (error) {
|
||||
log(`Ошибка получения статуса сервисов: ${error.message}`, 'error');
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список сайтов
|
||||
*/
|
||||
async getSitesList() {
|
||||
if (!this.checkAvailability()) return [];
|
||||
try {
|
||||
return await window.go.admin.App.GetSitesList();
|
||||
} catch (error) {
|
||||
log(`Ошибка получения списка сайтов: ${error.message}`, 'error');
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список прокси
|
||||
*/
|
||||
async getProxyList() {
|
||||
if (!this.checkAvailability()) return [];
|
||||
try {
|
||||
return await window.go.admin.App.GetProxyList();
|
||||
} catch (error) {
|
||||
log(`Ошибка получения списка прокси: ${error.message}`, 'error');
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить правила vAccess
|
||||
*/
|
||||
async getVAccessRules(host, isProxy) {
|
||||
if (!this.checkAvailability()) return { rules: [] };
|
||||
try {
|
||||
return await window.go.admin.App.GetVAccessRules(host, isProxy);
|
||||
} catch (error) {
|
||||
log(`Ошибка получения правил vAccess: ${error.message}`, 'error');
|
||||
return { rules: [] };
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Сохранить правила vAccess
|
||||
*/
|
||||
async saveVAccessRules(host, isProxy, configJSON) {
|
||||
if (!this.checkAvailability()) return 'Error: API недоступен';
|
||||
try {
|
||||
return await window.go.admin.App.SaveVAccessRules(host, isProxy, configJSON);
|
||||
} catch (error) {
|
||||
log(`Ошибка сохранения правил vAccess: ${error.message}`, 'error');
|
||||
return `Error: ${error.message}`;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Запустить сервер
|
||||
*/
|
||||
async startServer() {
|
||||
if (!this.checkAvailability()) return;
|
||||
try {
|
||||
await window.go.admin.App.StartServer();
|
||||
} catch (error) {
|
||||
log(`Ошибка запуска сервера: ${error.message}`, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Остановить сервер
|
||||
*/
|
||||
async stopServer() {
|
||||
if (!this.checkAvailability()) return;
|
||||
try {
|
||||
await window.go.admin.App.StopServer();
|
||||
} catch (error) {
|
||||
log(`Ошибка остановки сервера: ${error.message}`, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверить готовность сервисов
|
||||
*/
|
||||
async checkServicesReady() {
|
||||
if (!this.checkAvailability()) return false;
|
||||
try {
|
||||
return await window.go.admin.App.CheckServicesReady();
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Открыть папку сайта
|
||||
*/
|
||||
async openSiteFolder(host) {
|
||||
if (!this.checkAvailability()) return;
|
||||
try {
|
||||
await window.go.admin.App.OpenSiteFolder(host);
|
||||
} catch (error) {
|
||||
log(`Ошибка открытия папки: ${error.message}`, 'error');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Экспортируем единственный экземпляр
|
||||
export const api = new WailsAPI();
|
||||
|
||||
Reference in New Issue
Block a user