Оптимизация

- Оптимизация JS файлов
- FIX: Исправил Crash, если не было папки logs
- Удалил скомпилированный EXE файл с репозитория исходников.
This commit is contained in:
2025-11-15 23:33:57 +07:00
parent 7c77afabed
commit c1a781a0f5
20 changed files with 411 additions and 736 deletions

View File

@@ -5,9 +5,7 @@
import { $ } from '../utils/dom.js';
/**
* Инициализация всех кастомных select'ов на странице
*/
// Инициализация всех кастомных select'ов на странице
export function initCustomSelects() {
const selects = document.querySelectorAll('select.form-input');
selects.forEach(select => {
@@ -17,9 +15,7 @@ export function initCustomSelects() {
});
}
/**
* Создать кастомный select из нативного
*/
// Создать кастомный select из нативного
function createCustomSelect(selectElement) {
// Помечаем как обработанный
selectElement.dataset.customized = 'true';
@@ -88,9 +84,7 @@ function createCustomSelect(selectElement) {
});
}
/**
* Открыть/закрыть dropdown
*/
// Открыть/закрыть dropdown
function toggleDropdown(wrapper) {
const isOpen = wrapper.classList.contains('open');
@@ -104,16 +98,12 @@ function toggleDropdown(wrapper) {
}
}
/**
* Закрыть dropdown
*/
// Закрыть dropdown
function closeDropdown(wrapper) {
wrapper.classList.remove('open');
}
/**
* Выбрать опцию
*/
// Выбрать опцию
function selectOption(selectElement, wrapper, optionElement, index) {
// Обновляем оригинальный select
selectElement.selectedIndex = index;

View File

@@ -5,9 +5,7 @@
import { $, addClass, removeClass } from '../utils/dom.js';
/**
* Класс для управления модальными окнами
*/
// Класс для управления модальными окнами
export class Modal {
constructor() {
this.overlay = $('modalOverlay');
@@ -46,39 +44,26 @@ export class Modal {
}
}
/**
* Открыть модальное окно
* @param {string} title - Заголовок
* @param {string} htmlContent - HTML контент
*/
// Открыть модальное окно
open(title, htmlContent) {
if (this.title) this.title.textContent = title;
if (this.content) this.content.innerHTML = htmlContent;
if (this.overlay) addClass(this.overlay, 'show');
}
/**
* Закрыть модальное окно
*/
// Закрыть модальное окно
close() {
if (this.overlay) removeClass(this.overlay, 'show');
}
/**
* Установить обработчик сохранения
* @param {Function} callback - Функция обратного вызова
*/
// Установить обработчик сохранения
onSave(callback) {
if (this.saveBtn) {
this.saveBtn.onclick = callback;
}
}
/**
* Открыть редактор поля
* @param {string} title - Заголовок
* @param {string} htmlContent - HTML контент
*/
// Открыть редактор поля
openFieldEditor(title, htmlContent) {
const fieldTitle = $('fieldEditorTitle');
const fieldContent = $('fieldEditorContent');
@@ -88,9 +73,7 @@ export class Modal {
if (this.fieldEditorOverlay) addClass(this.fieldEditorOverlay, 'show');
}
/**
* Закрыть редактор поля
*/
// Закрыть редактор поля
closeFieldEditor() {
if (this.fieldEditorOverlay) removeClass(this.fieldEditorOverlay, 'show');
}

View File

@@ -5,9 +5,7 @@
import { $, $$, hide, show, removeClass, addClass } from '../utils/dom.js';
/**
* Класс для управления навигацией
*/
// Класс для управления навигацией
export class Navigation {
constructor() {
this.navItems = $$('.nav-item');

View File

@@ -5,21 +5,14 @@
import { $, addClass, removeClass } from '../utils/dom.js';
/**
* Класс для управления уведомлениями
*/
// Класс для управления уведомлениями
export class NotificationManager {
constructor() {
this.container = $('notification');
this.loader = $('appLoader');
}
/**
* Показать уведомление
* @param {string} message - Текст сообщения
* @param {string} type - Тип (success, error)
* @param {number} duration - Длительность показа (мс)
*/
// Показать уведомление
show(message, type = 'success', duration = 1000) {
if (!this.container) return;
@@ -41,27 +34,17 @@ export class NotificationManager {
}, duration);
}
/**
* Показать успешное уведомление
* @param {string} message - Текст сообщения
* @param {number} duration - Длительность
*/
// Показать успешное уведомление
success(message, duration = 1000) {
this.show(message, 'success', duration);
}
/**
* Показать уведомление об ошибке
* @param {string} message - Текст сообщения
* @param {number} duration - Длительность
*/
// Показать уведомление об ошибке
error(message, duration = 2000) {
this.show(message, 'error', duration);
}
/**
* Скрыть загрузчик приложения
*/
// Скрыть загрузчик приложения
hideLoader() {
if (!this.loader) return;

View File

@@ -5,9 +5,7 @@
import { $, addClass } from '../utils/dom.js';
/**
* Класс для управления окном
*/
// Класс для управления окном
export class WindowControls {
constructor() {
this.minimizeBtn = $('minimizeBtn');