---

kanban-plugin: board

---

## backLog



## bugs

- [ ] Перезаполнять имя на offline, если клиент отключился


## feature client Unity

- [ ] перетащить наименования хинтов в XML и забирать из оттуда при старте


## feature client QT



## feature server



## NOW



## Complete

- [ ] увеличить размер текста в окне обновлений
- [ ] Делить по группам траэйнисы и инструкторы
- [ ] Проверить Максимальный объем пересылаемых позже сообщений 4 тысячи знаков
- [ ] Unity client: после отправки сообщения выделять Input field
- [ ] UnityCient: У схем Viewer отрегулировать прокрутку на Scroll
- [ ] QT client: после удаления версии сбрасывать текст в описании
- [ ] Нужен ли дополнительный выбор для загрузки с мат моделью или нет?
- [ ] QT client: sig fault если не выбрана версия
- [ ] добавить цифры при инициализации
- [ ] QT клиент не отключается updateFrame при отмене изменений
- [ ] не включается кнопка запуска при обнвление завершено
- [ ] Unity: Восстановление файлов
- [ ] Unity: Отправка файлов
- [ ] Сервер: Неправильный порядок отправки оффлайн сообщений
- [ ] убрать clientMap из serverLMS Widget в мультитред сервер
- [ ] Различать, загружен клиент из Unity или нет, для возможности отправлять сообщения только Unity
- [ ] в ГУИ научится определять тип клиента при приеме сообщения
- [ ] Если клиент не isUnity отправлять сообщение на позднюю отправку
- [ ] свести позицию виджетов (что то не по центру) notify в оффлайн режиме смещен
- [ ] ПЕРЕВЕСТИ все действия под операции и формировать процент ПРИ загрузке из них
- [ ] При нажатии на кнопку обновить, менять надпись на Загрузка
- [ ] Добавить новую иконку
- [ ] Если staticData не найдена, грузится как оффлайн, проверять просто иконки билда
- [ ] Unity Layout в мессенджере пересчитывать
- [ ] Переверстать верхушку Messenger
- [ ] Идентификация имени внизу для отладки
- [ ] добавить тестово логины в строку контактов
- [ ] верстка окна
- [ ] сортировать по онлайну
- [ ] Написать Аркадию для подготовки иконки
- [ ] FIM проверять на null задачу
- [ ] Добавить - фильтрацию trainees или instructor
- [ ] выбор версии на один клик
- [ ] сделать header полупрозрачным прозрачным
- [ ] на старте все мониторы должны быть активны
- [ ] QT Client: При измененных файлах на клиенте и логине под инструктором не появляется окно обновления версии на сервере
- [ ] QT CLIENT: отображение разрешения мониторов
- [ ] QT SERVER: создается по какой то причине папка none
- [ ] Прибратся скриптах вьюхи для таск системы
- [ ] блокировать выгрузку под инструктором, если режим версия base
- [ ] Ускорить раздачу клиенту
- [ ] FIM разграничить кнопку и статус задачи
- [ ] АММ - убрать возможность отмены
- [ ] сохранение не отправленных задач
- [ ] Unity: неправильно обновляется статус задачи
- [ ] окошко с выбором перенести в GUI
- [ ] Клиент НЕ СМОЖЕТ ВЫБИРАТЬ ВЕРСИИ
- [ ] qt клиент сервера, запрет на ввод латиницей и запрещенные знаки
- [ ] после выгрузки бесконечное обновление
- [ ] Уведомление о том, что версия сервера неизменяемая и инструкция, что нужно переключить версию сервера, подтянуть изменяемую версию и перекинуть файлы + путь
- [ ] Qt ClientЖ отключать виджет версии при разьединении
- [ ] Отображать версию на сервере
- [ ] При удалении с клиента не удаляется папка на сервере
- [ ] убрать функционал смены версии с клиента
- [ ] добавить информацию Авторе и изменяемая версия или нет
- [ ] отправлять сигнал на пересчет хэша с саб частью
- [ ] GUI server: при неподключенном сервере, отключать попытку изменить версию
- [ ] добавить автоматическое выключение после создания копии
- [ ] sendSystem::sendXmlAnswer новый вариант отпарвки XML пакетов
- [ ] выписать все варианты взаимодействия между всеми клиентами и сервером
- [ ] QT клиента: Не показывает блокировка, если версия удаляется
- [ ] рефакторинг
- [ ] Прибраться в Server
- [ ] не работает восстановление файлов
- [ ] запрет на удаление base
- [ ] None hash
- [ ] сверстать окно создания новой версии
- [ ] не работает переключения языка
- [ ] УСТАНОВЛЕНА ПОСЛЕДНЯЯ ВЕРСИЯ , ОБНОВИТЬ НЕ ПРОПАДАЕТ
- [ ] QTServer: хранение версий + информации о них
- [ ] избавится от доп окна на панели при открытии выгрузки
- [ ] проверять является ли версия данных изменяемой, если да. то функционал изменения доступен
- [ ] Прочитать версию
- [ ] как сделать ожидание от сервера
- [ ] Для создания изменяемой версии в streaming assets для добавления каких либо данных
	НА КЛИЕНТЕ СЕРВЕРА
- [ ] текущая версия sharedData сохраняется в Settings
- [ ] Создание экземпляра версии даты НА КЛИЕНТЕ СЕРВЕРА
- [ ] Показывать версию клиента и сервера у I
- [ ] показывать версию сервера у O
- [ ] неверный логин не возвращает логин окно
- [ ] ДОБАВИТЬ УВЕДОМЛЕНИЕ О УДАЛЕНИИ
- [ ] сформировать путь для сервера в зависимости от выбранной версии
- [ ] При подключении и если версия данных изменена, все удаляется и загружается то, что нужно
- [ ] Версионирование Streaming assets
- [ ] При создании изменяемой версии создается копия Эталона, присваивается имя - ключ
	НА КЛИЕНТЕ СЕРВЕРА
- [ ] На КЛИЕНТЕ КЛИЕНТА указывать текущую версию данных
- [ ] разделить билд и проект в гите
- [ ] QTServer: разделить загрузку streamingAssets и основного билда
- [ ] придумать, когда вызывать streaming hash
- [ ] QTClient: отображение доступных версий с указанием информации(тип, название создателя, дата?)
- [ ] QT Server: очистка хэша при каждом запуске сервер
- [ ] QTServer: выдача доступных версий streamingAssets
- [ ] QTClient: запрос доступных версий на сервере
- [ ] крутилку во время загрузки
- [ ] Разделить билд и проект в гите
- [ ] QT Client: кнопка изменить версию
- [ ] Криво работает восстановление из файла
- [ ] Криво работает отправка
- [ ] Баг с отображением слайдера в самом начале
- [ ] ИЗМЕНИТЬ С CONTAINS НА EQUAL ПРОВЕРКА НА ПАПКУ TEMP
- [ ] Должен быть запуск в изоляции (запуск с неавторизованным пользователем)
- [ ] добавить галку на монитов в выбранном состоянии
- [ ] слайдер заменяем на кнопку обновить или запуск или слайдер в зависимости от состояния
- [ ] при потери соединения не отключается кнопка запуск
- [ ] Не работает анимации загрузки
- [ ] сделать рамку для фона списка действий
- [ ] Увеличить текст заголовка
- [ ] иконка запуска всегда в правом нижнем углу
- [ ] список сделать светлее
- [ ] Изменить текст на выгрузить изменения
- [ ] Крестик выхода сделать побольше
- [ ] На основном окне должен быть только крест
- [ ] исправить ссылка на список в скобках
- [ ] 3 кнопки Загрузить на сервер,  Отменить изменения, запустить с Текущими изменениями
- [ ] При нажатии на загрузить на сервер, появляется стандартный слайдер + кнопка запуск
- [ ] При наличии инструкторских файлов:
	* Вывести текст с возможными операциями: "Есть изменения в локальных файлах ( тут надпись Список файл  с гиперссылкой на диалоговое окно)
	* Также в этом тексте указать: " Возможные действия 1. Загрузить изменения на сервер 2. Отменить изменения с загрузкой версии с сервера 3. Запустить с текущими изменениями"
- [ ] Если нет соединения, убираем поле для входа
- [ ] При различных операциях блокировать кнопку запуск
- [ ] Запуск в автономном режиме всегда
- [ ] При отсутствии соединения с сервером показывать сообщение: "Связь с сервером не установлена проверьте настройки или запустите в автономном режиме"
- [ ] Кнопка запуска в автономном режиме, чтобы была возможность при наличии подключения входить без логина
- [ ] Кнопка настройки в шестеренку убрать
- [ ] Кнопка соединиться - не нужна
- [ ] Выбор монитора должен быть всегда
- [ ] Кнопки обновление и автозапуск убираем, если нет обновлений
- [ ] Полоску покрасить в общий стиль приложения
- [ ] Возможность выбора языка только до логина
- [ ] Картинка - не прямоугольник, а изображения монитора
- [ ] Сделать мониторы поменьше и их должно вмещаться до 5 штук
- [ ] подсмотреть стили из проекта Linker
- [ ] При нажатии на Enter и заполненных полях должен происходить вход
- [ ] Уменьшить дистанцию от наименования, расстояния
- [ ] Изменить Язык на Язык/Language
- [ ] Фон из RRJ в Unity
- [ ] Прибратся в Unity проекте
- [ ] Написать Апи к Unity функциям по отправке файлов и различных пакетов
- [ ] клиент Unity должен уметь отправлять все обновления из streaming assets?
- [ ] обсервер файлов которые были изменены
- [ ] Загрузчик файлов друг за другом
- [ ] Загрузчик папок
- [ ] Рандомный создатель папок
- [ ] Добавить рандомный номер для файла который рандомно создается
- [ ] таск переименовать в ClientTask и проверить
- [ ] Список созданных файлов
- [ ] слайдер прогресса загрузки?
- [ ] доп диалоговое окно после окончания загрузки
- [ ] Показывать дополнительно окно с файлами для обновления
- [ ] отправлять файлы на сервер
- [ ] Показывать окно обновления если залогинился инструктор
- [ ] после загрузки новой версии на сервер, обновление прилетает только со второго раза
- [ ] серверхэш не обновился после загрузки новых файлов
- [ ] вернуть реакцию на заблокированный сервер
- [ ] SEND FILE BLOCK неверный адрес
- [ ] hash вернуть в темп и именовать по разному. client и server
- [ ] Сравнение серверного и локального хэша
- [ ] Запрос файла на сервере
- [ ] решить startTransaction
- [ ] проверить нужен ли connected client
- [ ] перенести UpdateController в отдельный тред
- [ ] Вытащить всевозможные логи в логгер
- [ ] Иногда при отключении клиента, выключается сервер
- [ ] иногда пропадает логгер при отключении клиента
- [ ] выводить в логгер имя отправляемого файла
- [ ] ГДЕ ТО ТАЙМЕР ЗАКРАЛСЯ НЕ В ПОТОКЕ
- [ ] При перезагрузке сервера нужно научится определять какой тип клиента подключен
- [ ] QT Клиент: пофиксить another thread
- [ ] При спаме выполнения задачи происходит вылет
- [ ] сервер после загрузки на него чего либо, не обновляет хэш
- [ ] QT Клиент: разобраться с генерацией файла пути
- [ ] Проверить работоспособность при остановке сервера через кнопку
- [ ] при выключении сервера выкидывать на окно логина с ошибкой соединения
- [ ] Клиент после обновления не пересчитывает кэш
- [ ] Показывать только дельту файлов - клиент - сервер
- [ ] Многопоточная загрузка
- [ ] Сервер отправить в отдельный поток
- [ ] Сервер отправляет callback о отключении
- [ ] Unity: после отправки файла заново не входит под логином
- [ ] Ломается загрузка окон после включения старых окон
- [ ] Выделить систему логгирования в сервис
- [ ] полный перевод функционала в LMS
- [ ] не читает хэш
- [ ] Unity: проверять подключение после загрузки файлов
- [ ] рефакторинг
- [ ] удалять временный xml файл при каждом выходе из Unity взаимодействии
- [ ] вынести пути в tools
- [ ] Слишком долгая загрузка после переподключения
- [ ] вынести пути в tools
- [ ] попробовать упаковать последнюю версию с автозагрузчиком
- [ ] рефакторинг
- [ ] Упаковать на сервер клиент сырец с загрузчиком файлов
- [ ] не переподключается Unity клиент после отправки файла
- [ ] неверно считается путь silentLoader
- [ ] Добавить сохранение выбранных настроек: язык + автозапуск
- [ ] подсмотреть перевод с сервера
- [ ] механика смены языка
- [ ] QT: при нажатии на кнопку выхода отправлять уведомление о отключении
- [ ] сообщение под полоской загрузки менять на успешно обновлено после окончания загрузки
- [ ] выбор монитора после login
- [ ] Галка с языком
- [ ] обновление автоматом после login
- [ ] QT: галка автозапуск после обновления
- [ ] Клиент: повторное подключение при нажатии сохранить, если подключен, не коннектить
- [ ] НУЛЕВОЕ ОБНОВЛЕНИЕ
- [ ] переключение на юнити режим и нет для клиентов
- [ ] Научится принимать QDataStream с QT на c#
- [ ] Добавить количество файлов для обновления
- [ ] Переделать на килобайты
- [ ] Неправильно работает анимация загрузки
- [ ] CalculateHash надписи дублируются
- [ ] Обновление с клиента на сервер
- [ ] протестировать: первичная закачка, докачка с Unity, обновление
- [ ] не показывет количество байтов для обновления
- [ ] enum  в байткод
- [ ] сервер должен присылать callback в стандартном формате
- [ ] CLIENT: проверить восстановление файлов, кажется что то работает не так
- [ ] Кнопка запуска, выключает текущее приложение и открывает основное
- [ ] CLIENT: Запрет на выключение нулевого монитора
- [ ] CLIENT: Display должен генерироваться при первой инициализации
- [ ] Запуск с второй сцены и логином
- [ ] уведомление о том, что нет подключение с появление кнопки соединится
- [ ] генерация кнопок в виде мониторов
- [ ] понять какие данные нужны для мониторов
- [ ] Окно с настройкой подключения к серверу
- [ ] Таймер на отключение уведомления о неверном логине
- [ ] обновление и запуск доступны только после успешного входа
- [ ] количество байтов для загрузки формируется после проверки недостающих файлов
- [ ] Вывод количества байт для обновления
- [ ] Отправка количества байт для обновления, вместне с NeedUpdates
- [ ] добавить текстовую анимацию о том, что происходит
- [ ] сброс отправки в случае, если сокет отключился
- [ ] записать все необходимые данные для запуска в единый xml файл
- [ ] Клиент должен как то передавать информацию о подключении (ЛОГИН, ПАРОЛЬ, СЕРВЕР, ПОРТ)
- [ ] кто-то имеет дополнительный доступ к потоку данных
- [ ] найти способ сброса потока и сокета, если сервер внезапно выключился
- [ ] чекать количество мониторов
- [ ] при досрочном выключении сервера все зависает
- [ ] при нажатии на сохранить после подключение все зависает
- [ ] вывести загрузку в отдельный поток
- [ ] Callback если сервер вырубился во время обновления
- [ ] Добавить View UI от QT
- [ ] Кнопка запуска
- [ ] Поробовать запустить программу из "Клиента"
- [ ] СЕРВЕР повторная проверка после обновления работает не корректно
- [ ] слайдер обновления
- [ ] Окно с вводом логина и пароля
- [ ] Кнопка обновление
- [ ] Вынести пути и наименования файлов в константы
- [ ] добавить обсчет хэша больших файлов
- [ ] Убраться в коде клиента, сделать схожие схемы подключения и парсинга
- [ ] Вынести пути и наименования файлов в константы
- [ ] КЛИЕНТ повторная проверка после обновления работает не корректно
- [ ] хэш большого количеств записей не видится
- [ ] КЛИЕНТ После обновления обновлять хэш
- [ ] waitReadyToRead делает слишком долгое ожидание
- [ ] СЕРВЕР Прибраться в коде
- [ ] Удаление папок, которых нет на сервере
- [ ] Попробовать собрать сервер как библиотеку
- [ ] обсчет хэша по команде
- [ ] Восстановление по кэшу
- [ ] копирование вместе с директориями
- [ ] При повторном запросе на update предыдущий список не обновляется
- [ ] перед копирование сформировать необходимые директории
- [ ] скрыть все лишние логи
- [ ] Не обновлять те файлы, которые уже есть
- [ ] Разобраться с хранением данных о текущих файлах
- [ ] отправлять клиенту расхождения
- [ ] Удаление файлов, схожих с тем что уже есть
- [ ] сравнить суммы и локальные позиции
- [ ] при ответе с файлами, заменить/добавить необходимые файлы
- [ ] разделение принимаемах байтов по пакетам
- [ ] разделение принимаемых байтов по пакетам
- [ ] выслать недостащие файлы побайтово
- [ ] Дать ответ с расхождениями
- [ ] определить где хранить файлы внутри сервера
- [ ] определить, где хранить файлы внутри клиента
- [ ] при отправке check следом отправляется список хэшсум с файлами клиента
- [ ] дважды присылается путь до папки
- [ ] Распарсить ответ от клиента
- [ ] не читаются объекты из XML


## BUGFIX Complete

- [ ] notification message скидывается у всех при проверке
- [ ] сбрасывается выделение кнопки текущего клиента в мессенджере
- [ ] при создании копии переключение сервера и переключения клиента
- [ ] QT сервер Найти причину двойного вызова проверки при логине инструктором
- [ ] QT клиент: device not open после прерывания загрузки
- [ ] QT сервер При изменении версии правильный списке с файлами прилетает со второго раза
- [ ] QT клиент, если обновление в режиме инструктора доступно, кнопку запуск отключать
- [ ] QT сервер замерзает после выхода пользователя во время скачивания
- [ ] Клиент QT выводить инфу если клиент не подключен
- [ ] Клиент QT не подключатся повторно, если соединение уже установлено
- [ ] Клиент QT Неправильное отображение количества загруженных файлов
- [ ] Неверный путь отправления папок
- [ ] Вываливается при отключении клиента во время загрузки обновления
- [ ] неправильно считается хэш, так как наслаиваются файлы
- [ ] не работает полоска обновления при докачивании
- [ ] Не работает нотификация о том, что сервер не работает при первичном подключении клиента
- [ ] сервер начал замерзать при загрузке файлов
- [ ] долгий Callback после соединения
- [ ] не работает получение заданий
- [ ] Не работает отправка сообщений
- [ ] протестировать перезапуск клиента во время скачивания
- [ ] протестировать перезапуск клиента
- [ ] Протестировать перезапуск сервера
- [ ] Не показываются клиенты, которые залогинились
- [ ] SILENT НЕ ЗАВЕРШАЕТСЯ НА САМОМ ДЕЛЕ
- [ ] криво работает переподключение клиентов после отправки файла
- [ ] QT клиент - залогинился, вышел, залоинился снова, обновление списка обновления не работает


## Cancel

- [ ] Протестировать и обновить версию на testPC СХЕМЫ
- [ ] Делить по группам номер группы
- [ ] Добавить обновление инструктора, если он перелогинился
- [ ] добавить в settings адрес и булку мат модели
- [ ] Иерархия проекта - папка application, папка updater и линк на основной экзешник
- [ ] добавить подключение без DB
- [ ] При старт стопе не сканится шэред дата
- [ ] разделения на серверное и GUI приложение
- [ ] gui thread должен жить один
- [ ] подготовить фасад для ui сервера
- [ ] Написать Апи к Сервер функция
- [ ] Как отлавливать жесткий FAULT с выключением [решение](https://forum.qt.io/topic/106354/how-to-catch-segmentation-fault)
- [ ] Скейлить окно относительно разрешения
- [ ] Перенести кэшер в отдельный поток
- [ ] нотификация о входе как в Unity
- [ ] Попробовать в многопоточку коннектить клиентов
- [ ] Sender попробовать соединить для клиента и сервера
- [ ] Recognize system сделать одинаковым как для клиента так и для сервера. Функционал соединить




%% kanban:settings
```
{"kanban-plugin":"board","list-collapse":[false,false,false,false,false,false,false,false,false],"lane-width":200,"date-colors":[]}
```
%%