Commit Graph

73 Commits

Author SHA1 Message Date
3f10c49ddc Объединены кнопки Экспорт CSV и Бэкап в одну кнопку Экспорт
- Единый диалог с вкладками: CSV таблицы и Бэкап БД
- Удалена отдельная кнопка Бэкап
- Удалён дублирующий код showExportModal

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:32:44 +03:00
07b27a6514 Изменён формат имён скачиваемых файлов: YYYY-MM-DD-filename
- Бэкапы: 2026-01-23-backup_all.sql.gz, 2026-01-23-dbname.sql.gz
- CSV экспорт: 2026-01-23-tablename.csv

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:28:17 +03:00
666a24c971 Исправлено подключение mysqldump - убраны --host/--port
mysqldump теперь использует Unix сокет по умолчанию вместо TCP.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:25:51 +03:00
978f6b3cd8 Исправлен битый архив бэкапа - использование временного файла
shell_exec некорректно работает с бинарными данными.
Теперь mysqldump пишет во временный файл, который потом стримится клиенту.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:24:11 +03:00
cf275bba9c Исправлена ошибка: получение списка БД через API
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:22:12 +03:00
b76402694a Добавлен функционал резервного копирования баз данных
- Кнопка "Бэкап" в toolbar открывает диалог выбора БД
- Можно скачать дамп одной БД или всех сразу
- Дамп создаётся через mysqldump и сразу стримится пользователю (gzip)
- Без сохранения на сервере

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:20:32 +03:00
3cd138cd2d Убрано ложное окрашивание строк при начале редактирования
Строка теперь окрашивается в жёлтый только при реальном изменении значения,
а не при клике на ячейку для редактирования.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:08:38 +03:00
f7c90aca76 Исправлено сравнение значений для выпадающих списков и форматирование чисел
- Унифицировано сравнение через normalizeValue() для всех типов ячеек
- Intl.NumberFormat с сохранением исходного количества знаков после запятой

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:06:04 +03:00
1f9183f04e Добавлено форматирование чисел с разделителем тысяч и запятой
Числовые колонки теперь отображаются в русской локализации:
- Пробел как разделитель тысяч (90217 → 90 217)
- Запятая для дробной части (90217.4 → 90 217,4)

Fixes #5

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:01:34 +03:00
b9ce7c6d04 Исправлено сравнение типов при проверке изменений ячейки
Добавлена проверка для случая, когда oldValue - число, а newValue - строка
(например, 90217.4 vs "90217.4"), что вызывало ложное срабатывание сохранения.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 21:59:13 +03:00
5eee3bbf70 Исправлено ложное срабатывание сохранения при выборе того же значения
- Добавлена проверка изменения значения в cellEdited (oldValue vs newValue)
- Добавлен обработчик cellEditCancelled для сброса подсветки при отмене
- Устранена отправка запросов в БД без реальных изменений

Fixes #4

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 21:47:49 +03:00
9da765de77 Delete .vscode/launch.json 2026-01-23 18:48:01 +03:00
Mikhail Chusavitin
c001aed149 Исправлена работа чекбоксов и пагинации в таблице
- Чекбоксы теперь работают только при клике на сам чекбокс (не на строку)
- Повторный клик на чекбокс снимает выделение
- Множественное выделение строк работает корректно
- Исправлен выбор количества записей на странице (сервер читает параметр 'size')

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 15:17:46 +03:00
Mikhail Chusavitin
0700fcd584 Улучшена обработка ошибок API
Бэкенд:
- Добавлен try-catch для insert, update, delete, delete-batch
- Ошибки возвращаются как JSON с полем message

Фронтенд:
- Улучшена функция api() для парсинга JSON ошибок
- Извлечение понятного сообщения из ответа сервера

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 11:41:39 +03:00
Mikhail Chusavitin
23e557d792 Фильтр FK колонок: заменён dropdown на ввод с автоподстановкой
- autocomplete: true - показывает подсказки при вводе
- freetext: true - разрешает свободный ввод
- filterFunc - фильтрация по вхождению подстроки
- clearable: true - кнопка очистки

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 11:23:40 +03:00
Mikhail Chusavitin
9ac52afb8b Удалена ошибочная ссылка на $logFile 2026-01-22 11:21:47 +03:00
Mikhail Chusavitin
fcfd785b04 Исправлена сортировка: обработка массива sort от Tabulator
Tabulator отправляет sort как массив [{"field":..., "dir":...}],
а код ожидал объект {"field":..., "dir":...}. Добавлена конвертация.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 11:18:16 +03:00
Mikhail Chusavitin
d5602ae398 Логирование в файл debug.log 2026-01-22 11:17:06 +03:00
Mikhail Chusavitin
1d4bb980c0 Добавлено логирование сортировки для отладки 2026-01-22 11:14:46 +03:00
Mikhail Chusavitin
198571ecf5 Исправление сортировки: явное включение headerSort и sorter
- Добавлен headerSort: true для каждой колонки
- Добавлен sorter на основе типа данных (string/number/datetime)
- Добавлены обработчики событий dataSorting/dataSorted для отладки

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 11:12:34 +03:00
Mikhail Chusavitin
d0605c722e Добавлен функционал множественного редактирования записей
1. Добавлена кнопка "Изменить" в toolbar
2. Модальное окно редактирования:
   - Для одной записи: все поля доступны для редактирования
   - Для нескольких записей: галочки для выбора изменяемых полей
   - Поля с одинаковыми значениями показывают текущее значение
   - Поля с разными значениями отображаются пустыми с пометкой
3. Исправлена сортировка: добавлен headerSort: true в columnDefaults

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 11:09:57 +03:00
Mikhail Chusavitin
10cd6e36df Исправлена фильтрация и сортировка таблицы
- Исправлен ajaxParams: использование this вместо глобальной переменной
- Добавлен headerFilterFunc для всех колонок для серверной фильтрации
- Исправлены параметры headerFilter для FK колонок

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 11:02:17 +03:00
Mikhail Chusavitin
d23a5dd829 Исправления таблицы: сортировка, фильтры FK, экспорт CSV, выделение строк
1. Исправлена сортировка по дате - заменён ajaxParams на ajaxRequestFunc
   для корректной передачи параметров сортировки на сервер

2. Добавлен dropdown фильтр для FK колонок - теперь в заголовке таблицы
   для колонок с внешними ключами отображается выпадающий список
   со всеми допустимыми значениями

3. Добавлено модальное окно экспорта CSV с опциями:
   - Экспорт всех строк / только выделенных / шаблона (только заголовки)
   - Выбор отдельных столбцов для экспорта
   - Кнопки "Выбрать все" / "Снять все" для столбцов

4. Исправлено множественное выделение строк:
   - Включён selectableRows: true
   - Добавлен selectableRowsRangeMode: "click" для выбора нескольких строк
   - Убран конфликтующий cellClick обработчик

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 10:51:47 +03:00
edf2bdbcce Теперь заголовок и ячейки столбца с чекбоксами должны иметь одинаковую ширину (40px) и одинаковый padding (4px), что устраняет несоответствие. 2026-01-21 22:18:22 +03:00
05c62440b3 Упростил код, убрав лишние правила, которые ломали макет. 2026-01-21 22:15:51 +03:00
03f7b08f25 Упростил код, убрав лишние правила, которые ломали макет 2026-01-21 22:15:30 +03:00
5f52a3ad8e another column size fix atempt 2026-01-21 22:12:34 +03:00
ba5a11c6c2 Enhance table header cell styling with consistent padding and box-sizing 2026-01-21 22:06:47 +03:00
19905cef4e fix duplicate styles 2026-01-21 22:03:15 +03:00
Mikhail Chusavitin
71e6b3f271 one more resize fix 2026-01-21 19:15:18 +03:00
Mikhail Chusavitin
0d9436977e check box table fi 2026-01-21 19:13:19 +03:00
Mikhail Chusavitin
74ebea7077 fix uneven row size 2026-01-21 19:09:11 +03:00
Mikhail Chusavitin
698a99afc5 Pretier rows 2026-01-21 19:05:10 +03:00
Mikhail Chusavitin
2f3ec82424 comment for optional fields 2026-01-21 18:54:20 +03:00
Mikhail Chusavitin
f727d6c742 typo fix 2026-01-21 18:53:14 +03:00
Mikhail Chusavitin
cce71a095c SQL comments for rows used now in tolltips 2026-01-21 18:52:17 +03:00
Mikhail Chusavitin
5c917c5d7c dynamic dropdown menus 2026-01-21 18:37:35 +03:00
Mikhail Chusavitin
2f7a180543 add dropdown menu for FK values 2026-01-21 18:32:53 +03:00
Mikhail Chusavitin
44ad6785a8 v 2.0 2026-01-21 18:08:09 +03:00
Mikhail Chusavitin
b3edd03b3e больше логирования! 2026-01-21 18:00:47 +03:00
Mikhail Chusavitin
179d17259a select talbe fix and additional loging 2026-01-21 17:57:39 +03:00
Mikhail Chusavitin
a6362d6116 select table with double click 2026-01-21 17:55:13 +03:00
Mikhail Chusavitin
f93bfebd5a updatetable with logs 2026-01-21 17:52:19 +03:00
Mikhail Chusavitin
5a2bc4cd88 fix SelectTable 2026-01-21 17:50:27 +03:00
Mikhail Chusavitin
5b205742dc new save system 2026-01-21 17:47:18 +03:00
Mikhail Chusavitin
227d2c3442 add table edit feature with auto saving on focus loose 2026-01-21 15:47:01 +03:00
Mikhail Chusavitin
ee02d4cc28 add csv analysis option 2026-01-21 12:42:28 +03:00
Mikhail Chusavitin
d21da6d49e add isNumericType() и convertNumericFormat() 2026-01-21 12:36:37 +03:00
Mikhail Chusavitin
4573a8c56f fix for required fields in new line creation 2026-01-21 12:33:41 +03:00
Mikhail Chusavitin
cc0695bf36 fix unicode csv import 2026-01-21 12:24:31 +03:00