Система тестирования INDIGO 4.0
Рады Вам сообщить о выходе системы тестирования INDIGO 4.0:
Это самое крупное и значимое обновление системы за последние годы. Оно включает в себя полностью переработанный адаптивный web-интерфейс, значительно повышенную стабильность и отказоустойчивость системы, особенно при работе в нестабильных сетях. Кроме того, был проведен масштабный аудит безопасности, в результате которого было устранено более 30 уязвимостей. Мы проделали огромную работу, чтобы сделать вашу ежедневную работу еще комфортнее и безопаснее.
1. Новый дизайн web-интерфейса
1.1. Ключевые улучшения
1.2. Внешний вид на персональных компьютерах (до и после)
1.3. Внешний вид на мобильных устройствах (до и после)
1.4. Улучшение пользовательского опыта
1.5. Улучшения в форматировании и отображении контента
1.6. Улучшения информационного модуля
9. Ссылки на скачивание1.1. Ключевые улучшения
1.2. Внешний вид на персональных компьютерах (до и после)
1.3. Внешний вид на мобильных устройствах (до и после)
1.4. Улучшение пользовательского опыта
1.5. Улучшения в форматировании и отображении контента
1.6. Улучшения информационного модуля
1. Новый дизайн web-интерфейса
1.1. Ключевые улучшения1. Современный дизайн
Мы полностью обновили внешний вид системы, придав ей современный минималистичный стиль. Из интерфейса убраны устаревшие элементы, такие как градиенты и растровые изображения, а ключевые элементы стали крупнее и выразительнее.2. Адаптивность
Система получила новый адаптивный интерфейс, который идеально подстраивается под экраны любых устройств — от больших мониторов до компактных смартфонов, обеспечивая максимальное удобство для всех пользователей.3. Векторная графика
Новый интерфейс переведен на векторную графику, что обеспечивает четкое отображение элементов интерфейса и рисунков на всех устройствах. Безупречное качество сохраняется на экранах с любым разрешением и масштабированием изображения.4. Крупные шрифты
Размер шрифтов в интерфейсе увеличен. Теперь текст по умолчанию стал крупнее как на компьютерах, так и на мобильных устройствах, что делает работу с системой еще более удобной.5. Новые элементы управления
Мы разработали собственную библиотеку элементов управления — переключателей, флажков, полей ввода текста и выпадающих списков. Все элементы построены на векторной графике и выглядят одинаково на всех устройствах, независимо от браузера и операционной системы.6. Масштабирование пользовательского контента
Реализованы алгоритмы, которые автоматически увеличивают шрифты, отступы, изображения и таблицы в тестах и учебных материалах. Это обеспечивает максимально комфортное чтение и восприятие информации на всех типах устройств.1.2. Внешний вид на персональных компьютерах (до и после)
1. Авторизация
2. Регистрация
3. Список тестов
4. Запуск тестирования
5. Сообщение
6. Выбор одного варианта ответа
7. Выбор нескольких вариантов ответа
8. Ввод ответа с клавиатуры
9. Установка соответствия
10. Расстановка в нужном порядке
11. Эссе с файлами вложений
12. Воспроизведение видео
13. Воспроизведение аудио и скачивание вложенных файлов
14. Выдача вопросов группы в виде списка
15. Выдача предварительного результата до проверки Эссе
16. Просмотр ответа Эссе
17. Просмотр ошибок
18. Журнал результатов
19. Просмотр результата
20. Информационный модуль
21. Редактирование профиля
1. Авторизация
2. Регистрация
3. Список тестов
4. Запуск тестирования
5. Сообщение
6. Выбор одного варианта ответа
7. Выбор нескольких вариантов ответа
8. Ввод ответа с клавиатуры
9. Установка соответствия
10. Расстановка в нужном порядке
11. Эссе с файлами вложений
12. Воспроизведение видео
13. Воспроизведение аудио и скачивание вложенных файлов
14. Выдача вопросов группы в виде списка
15. Выдача предварительного результата до проверки Эссе
16. Просмотр ответа Эссе
17. Просмотр ошибок
18. Журнал результатов
19. Просмотр результата
20. Информационный модуль
21. Редактирование профиля
1.4. Улучшение пользовательского опыта
1. Переработан механизм запуска тестов: внедрено новое информационное окно
Мы полностью заменили старую выдвижную панель в списке тестов на современное и адаптивное диалоговое окно. Это комплексное изменение решает сразу несколько давних проблем. Во-первых, оно кардинально улучшает работу на мобильных устройствах, так как старая панель занимала много места, а новое окно всегда держит кнопку «Запустить» в поле зрения. Во-вторых, исправлена неприятная ошибка, из-за которой кнопка запуска для последнего теста в списке могла «прятаться» за пределами экрана. И наконец, новое окно стало более информативным: теперь в нем дополнительно отображается группа теста (чтобы избежать ошибки выбора) и автоматически показывается длительность теста. Это позволяет пользователям заранее оценить необходимое время, а администраторам — не вписывать эту информацию вручную.2. Улучшена адаптивность и удобство диалоговых окон
Мы переработали все всплывающие окна в системе, сделав их поведение более логичным и предсказуемым. Ширина окон теперь автоматически подстраивается под содержимое, а для мобильных устройств увеличены шрифты и кнопки, при этом сами окна становятся «резиновыми». Кроме того, решена проблема с большим объемом контента: если окно не помещается на экране, оно аккуратно растягивается на всю его высоту, и внутри появляется прокрутка, оставляя кнопки управления всегда видимыми.3. Улучшен контроль масштабирования на мобильных устройствах
Мы устранили несколько раздражающих особенностей, связанных с автоматическим масштабированием (зумом) на смартфонах, чтобы сделать работу с интерфейсом более плавной и предсказуемой. Во-первых, убрано приближение по двойному нажатию пальцем, которое часто происходило случайно. При этом возможность сознательно увеличить масштаб двумя пальцами, как и раньше, полностью сохранена. Во-вторых, исправлена характерная для iPhone проблема, когда страница автоматически приближалась при нажатии на любое поле для ввода текста (например, в формах авторизации, регистрации или при вводе ответа с клавиатуры). Теперь интерфейс всегда остается в заданном масштабе, а управление увеличением полностью находится в руках пользователя.4. Улучшены элементы управления переключателей и флажков
Мы разработали и внедрили новые векторные элементы для переключателей и флажков, что улучшило их визуальное отображение на экранах с любой плотностью пикселей. Одновременно мы решили проблему юзабилити, устранив некликабельный промежуток между элементом выбора и его текстовым описанием. Теперь вся область, занимаемая вариантом ответа, является интерактивной, что гарантирует срабатывание при клике по любой ее части.5. Улучшены поля ввода текста
Мы переработали дизайн полей для ввода текста, сделав их более четкими и современными. Теперь дизайн полей в формах авторизации, регистрации и в процессе тестирования унифицирован. Мы убрали устаревшие градиенты и тени, заменив их на чистый белый фон и контрастную рамку, которая появляется для подсветки активного поля. Это обеспечивает единый и аккуратный внешний вид на всех операционных системах.6. Улучшены выпадающие списки
Выпадающие списки получили единый, современный дизайн и теперь корректно работают на всех устройствах. Мы устранили проблему, когда список мог «проваливаться» под другие панели, и исправили критическую ошибку, мешавшую прокручивать длинные списки на мобильных устройствах. Теперь все варианты всегда доступны для выбора.7. Обновлен дизайн визуальных элементов в контенте
Для придания интерфейсу более современного и мягкого вида все визуальные элементы в контенте, включая изображения, видеоплееры, встроенный контент (фреймы) и блоки для скачивания файлов, теперь имеют аккуратные скругленные углы.8. Добавлены индикаторы загрузки элементов контента
Раньше во время загрузки изображений или фреймов на их месте была просто пустота. Теперь на этом месте сразу появляется фон-заглушка, которая резервирует место и дает пользователю понять, что контент подгружается.9. Улучшен вид уведомления о переподключении к серверу
Раньше это сообщение занимало всю область панели тестирования, скрывая элементы управления, что могло дезориентировать пользователя. Теперь уведомление отображается в виде компактной панели непосредственно в области контента. Благодаря этому основной интерфейс остается видимым, что сохраняет контекст и делает ожидание восстановления связи менее тревожным и более понятным.10. Улучшен адаптивный дизайн панели вопросов
Раньше рамка, обрамляющая вопрос, скрывалась только в тот момент, когда почти касалась краев основной панели. На практике это все равно создавало некрасивый эффект «рамки в рамке» и ощущение визуальной тесноты. Мы переработали этот механизм. Теперь рамка вопроса скрывается заблаговременно, как только расстояние до краев становится небольшим. Это обеспечивает дополнительный «воздух» в дизайне и гарантирует, что интерфейс на узких экранах всегда выглядит чисто, минималистично и не кажется «зажатым».11. Внедрены новые индикаторы загрузки для фоновых операций (прелоадеры)
Для улучшения обратной связи и предсказуемости интерфейса мы унифицировали индикаторы загрузки. Теперь при выполнении фоновых операций — будь то обновление таблиц, запуск тестирования или открытие страниц информационного модуля — появляется аккуратный анимированный индикатор. Это позволяет четко видеть, что идет процесс обработки.1.5. Улучшения в форматировании и отображении контента
1. Устранена проблема с «ломающими» верстку длинными словами
Ранее очень длинные слова или ссылки без пробелов могли «ломать» дизайн интерфейса — они не переносились на новую строку, а выходили за пределы своих блоков. Это создавало нежелательную горизонтальную прокрутку и особенно сильно проявлялось на мобильных устройствах в портретном режиме. Мы внедрили механизм автоматического переноса во всех элементах интерфейса, где отображается пользовательский контент. Теперь любой текст, независимо от его содержания, всегда будет аккуратно вписываться в отведенные ему рамки. Это гарантирует целостность и предсказуемость верстки на любых устройствах.2. Автоматическое удаление пустых строк в конце контента
Раньше, особенно после копирования текста из других источников, в конце текстовых блоков (в вопросах, инструкциях и т.д.) могли оставаться лишние пустые абзацы. Это создавало некрасивые отступы, визуально «искривляя» интерфейс. Теперь мы внедрили алгоритм, который автоматически обнаруживает и удаляет пустые строки. Это гарантирует, что контент всегда выглядит аккуратно и профессионально, без лишних пустот.3. Улучшена обработка текста, скопированного из Word
Иногда при копировании текста из Microsoft Word или других редакторов в систему переносились скрытые стили. Например, отступ «красной строки», примененный к картинкам или таблицам, заставлял их смещаться вправо и выходить за пределы экрана на мобильных устройствах, создавая нежелательную горизонтальную прокрутку. Мы внедрили фильтр, который автоматически обнаруживает и удаляет некорректные отступы для изображений и таблиц. Теперь контент, вставленный из внешних источников, всегда будет отображаться ровно и предсказуемо, без «уезжающей» верстки.4. Улучшено отображение вложенных файлов для скачивания
Мы устранили ряд неприятных ошибок, из-за которых блоки с прикрепленными файлами могли отображаться некорректно. Во-первых, решена проблема с длинными названиями файлов, которые раньше обрезались на мобильных устройствах — теперь они всегда переносятся и выводятся полностью. Во-вторых, исправлена ошибка, при которой файлы, вставленные в таблицу, «ломали» ее верстку и создавали горизонтальную прокрутку; теперь они корректно адаптируются под размер ячейки. И, наконец, устранены проблемы с форматированием: если файл был прикреплен в тексте с особым стилем (например, в заголовке), блок для скачивания больше не будет «наследовать» чужое оформление и всегда сохранит свой стандартный внешний вид.5. Повышена плавность отображения медиаконтента (плееров и фреймов)
Раньше при переключении между вопросами или изменении размера окна медиаконтент (видеоплееры, встроенный контент) мог «дергаться» и «мерцать», прежде чем занять свое финальное положение. Мы переработали логику отрисовки: теперь для таких элементов сначала появляется фон-заглушка, который мгновенно резервирует место. Сам контент загружается уже в подготовленную область, что обеспечивает плавное отображение без каких-либо визуальных скачков.6. Устранено «мерцание» верстки при загрузке изображений в таблицах
Ранее, при загрузке страницы с большими, еще не закэшированными изображениями внутри таблиц, мог возникать неприятный визуальный эффект. Изображение сначала пыталось загрузиться в своем полном размере, «ломая» верстку и вызывая кратковременное появление полос прокрутки, а затем «ужималось» до нужных размеров. Это создавало эффект «дерганья» и «мерцания» контента. Мы полностью исправили это. Теперь для изображений заранее резервируется необходимое пространство. Это гарантирует, что страница сразу отображается в своем финальном, стабильном виде, без каких-либо визуальных «прыжков» во время загрузки контента.7. Улучшено форматирование интерактивных элементов при печати результатов
Устранена проблема, из-за которой блоки для скачивания файлов и встроенный контент (фреймы) некорректно отображались в печатной версии отчетов. Раньше они могли выглядеть как пустые прямоугольники или нефункциональные объекты. Теперь, при отправке на печать, эти элементы автоматически заменяются на текстовую информацию. Это делает распечатки более чистыми и избавляет от бесполезных артефактов.8. Исправлена верстка таблиц, вставленных внутрь других таблиц
Устранена проблема, из-за которой ширина вложенных таблиц, заданная в процентах, игнорировалась. Это приводило к тому, что вложенные таблицы отображались слишком узкими. Теперь все таблицы корректно растягиваются на заданную им ширину.1.6. Улучшения информационного модуля
1. Переработан дизайн дерева для удобства и наглядности
Мы полностью обновили внешний вид дерева навигации. Устаревшие иконки папок и страниц заменены на современные векторные, которые четко отображаются на любых экранах. Кроме того, убрана пунктирная сетка, что сделало интерфейс более чистым и минималистичным. Решена и давняя проблема с длинными названиями: теперь они больше не создают неудобную горизонтальную прокрутку, а аккуратно переносятся на новую строку, всегда оставаясь в поле зрения.2. Внедрена динамическая адаптивная верстка
Раньше на мобильных устройствах в портретном режиме интерфейс был «зажат»: дерево навигации и контент располагались рядом, что создавало острую нехватку места по ширине. Мы полностью переработали этот механизм. Теперь на узких экранах интерфейс автоматически перестраивается в вертикальный вид: дерево навигации располагается сверху, а основной контент — под ним, что делает работу гораздо удобнее. При повороте устройства в ландшафтную (горизонтальную) ориентацию интерфейс плавно возвращается к классическому виду с деревом слева. При этом сохраняется возможность ручной настройки размеров блоков с помощью разделителя (сплиттера), который также автоматически меняет свою ориентацию с горизонтальной на вертикальную, подстраиваясь под текущий режим.3. Добавлена контекстная панель с заголовком страницы
Над областью контента теперь всегда отображается панель с названием активной страницы, что значительно улучшает удобство навигации. Это позволяет мгновенно понять, какая страница открыта, не отвлекаясь на поиск выделенного элемента в дереве. Более того, эта панель интерактивна: клик по заголовку автоматически прокручивает дерево навигации к текущему активному элементу. Эта функция особенно полезна, когда активный элемент скрывается из вида после прокрутки дерева, избавляя от необходимости ручного поиска.4. Сделана плавная анимация прокрутки
Раньше переходы по ссылкам на другие страницы были резкими. Мы заменили их на плавную анимацию прокрутки, которая теперь сопровождает все навигационные действия. Это относится как к улучшенным переходам по ссылкам, так и к навигации через новую панель заголовка. В результате исчезает ощущение «дерганья», а работа с контентом становится более комфортной.5. Улучшена логика отображения пустых папок
Раньше пустые папки выглядели так же, как и папки с содержимым, что могло вводить пользователей в заблуждение, заставляя их совершать лишние клики. Теперь, для большей наглядности и интуитивности, пустые папки отображаются иконкой страницы. Это сразу дает понять, что внутри нет вложенных элементов и дальнейшая навигация по этой ветке невозможна.2. Исправления проблем в работе интерфейса
1. Повышена надежность тестов с ограничением по времени
Раньше, если время на компьютере или мобильном устройстве переводилось вперед, тест мог завершиться раньше времени. Это могло произойти как случайно (например, из-за другой программы, которая меняет системное время), так и умышленно. Мы исправили эту проблему. Теперь тесты будут идти ровно столько, сколько положено, и на них больше не влияют изменения системного времени.2. Реализован механизм гарантированного обновления интерфейса после изменения настроек
Ранее, после обновления версии системы, замены базы данных или изменения других важных системных настроек, не было гарантии, что интерфейс у всех активных пользователей немедленно обновится. Особенно это касалось неактивных («замороженных») вкладок браузера, что могло приводить к рассинхронизации, когда пользователь продолжал работать в устаревшем окружении. Мы внедрили новый, независимый механизм, который принудительно перезагружает страницу у пользователя после любого критического изменения на сервере. Это касается как глобальных операций, таких как обновление системы или замена базы данных, так и любых изменений в настройках интерфейса, например, загрузки лицензионного ключа, конфигурации параметров авторизации или полей регистрации, а также подключения внешних модулей (систем прокторинга, бесшовной авторизации AD SSO). Кроме того, перезагрузка срабатывает и при модификации внешнего вида, будь то смена логотипа, копирайта или языковых настроек. Этот новый механизм гарантирует, что все пользователи всегда работают с самой актуальной версией интерфейса и его настроек, исключая любые возможные сбои из-за рассинхронизации.3. Улучшена синхронизация интерфейса при ошибках сохранения ответа
Ранее, если при отправке ответа на сервер возникала ошибка, пользователь видел уведомление, но сам интерфейс не обновлялся до актуального состояния. Это создавало опасную рассинхронизацию между отображаемыми данными и их реальным состоянием в базе данных. Теперь после подтверждения любой ошибки сохранения ответа страница принудительно перезагружается. Это гарантирует, что пользователь всегда видит актуальное, сохраненное состояние своего теста и однозначно понимает, что его последнее действие не было зафиксировано.4. Исправлен ряд проблем с восстановлением актуального состояния после потери связи
Раньше, если у пользователя пропадала связь с сервером тестирования, и в этот момент он пытался выполнить некоторые действия (например, открыть или закрыть «Пояснение»), то могла возникнуть неприятная ситуация. Появлялась панель переподключения, которая не исчезала сама, даже когда связь восстанавливалась. Она могла «висеть» на экране до бесконечности, и единственным выходом было обновить всю страницу вручную. Мы полностью исправили подобные сбои. Теперь, как только связь восстановится, панель переподключения автоматически исчезнет, а вместо нее корректно отобразится нужное содержимое.5. Улучшены сообщения об ошибках при потере связи с сервером
Раньше, при временной потере связи с сервером, система могла выводить неинформативные и технические сообщения «Ошибка» или «AJAX ERROR. Свяжитесь с разработчиками». Это вводило пользователей в заблуждение, так как проблема заключалась в отсутствии соединения, а не в сбое самой программы. Мы исправили это поведение. Теперь во всех подобных ситуациях система будет отображать ясное и понятное пользователю уведомление: «Нет связи с сервером!». Это поможет сразу понять источник проблемы и попытаться самостоятельно ее разрешить.6. Усилен контроль сессий удаленных и заблокированных пользователей
Ранее существовала техническая проблема, позволявшая удаленным или заблокированным пользователям продолжать работу в системе. Если администратор удалял или блокировал пользователя в тот момент, когда тот временно отсутствовал (например, из-за потери связи), его сессия не завершалась мгновенно. При восстановлении подключения этот «фантомный» пользователь мог продолжать выполнять большинство действий: проходить и завершать тесты, смотреть результаты и даже изменять данные профиля, до тех пор, пока он не обновлял страницу вручную. Мы внедрили механизм безопасности, который полностью исключает эту проблему. Теперь перед выполнением любого действия в системе (от запуска теста до ответа на вопрос) происходит проверка статуса пользователя непосредственно в базе данных. Это гарантирует, что если пользователь был удален или заблокирован, любые его дальнейшие действия будут немедленно пресечены. Вместо старых, некрасивых ошибок или пустого экрана он увидит информационное сообщение о том, что его учетная запись была удалена или заблокирована, после чего страница корректно перезагрузится, завершая сеанс его работы. Этот механизм работает гарантированно и не зависит от задержек в очистке пользовательских сессий.7. Улучшена обработка истекших сессий
Исправлена проблема, которая приводила к выдаче сообщений об ошибках или задержкам, если сеанс работы истек, а пользователь при этом пытался выполнить какое-либо действие. Раньше в такой ситуации могли отобразиться технические ошибки или пустой фон страницы, прежде чем страница перезагружалась для повторного входа. Теперь система выдает информативные сообщения об истечении сеанса работы и корректно перенаправляет на страницу авторизации, обеспечивая более плавную и предсказуемую работу интерфейса.8. Устранена ошибка, приводившая к сбоям, если тестирование пользователя было удалено администратором
Раньше мог возникнуть следующий сценарий: пользователь проходил тест, но из-за обрыва связи его сессия временно переходила в статус «Прервано». В этот момент администратор удалял данный результат. Когда связь у пользователя восстанавливалась, он сталкивался с критическими сбоями: могли пропасть варианты ответов, или тест отображался как пустая страница, что делало невозможным его продолжение. Мы полностью исправили это. Теперь система постоянно проверяет, существует ли результат теста в базе данных. Если он удален, сеанс тестирования корректно завершается. Пользователю выводится информационное сообщение о том, что тестирование было удалено, после чего страница автоматически перезагружается.9. Улучшена обработка сессии при просмотре удаленного результата
Исправлена проблема, при которой сессия просмотра результата и протокола тестирования не завершалась, если сам результат удалялся администратором. Это приводило к тому, что интерфейс пользователя оставался в контексте несуществующего результата, и при каждом обновлении страницы повторялось сообщение об ошибке. Теперь при любом действии на странице просмотра выполняется проверка существования результата. При его отсутствии сессия просмотра принудительно очищается, а пользователь перенаправляется на страницу со списком актуальных результатов.10. Исправлено отображение протокола для тестов, не содержащих ошибок после пересчета баллов за эссе
Устранена ошибка, возникавшая в специфическом случае: если единственным неверным ответом в тесте было эссе, которое затем было оценено на максимальный балл, тест фактически переставал содержать ошибки. Однако попытка просмотра его протокола приводила к отображению пустой панели, что сбивало с толку. Мы полностью исправили это. Теперь, вместо пустой страницы, система обрабатывает этот случай более логично. При попытке открыть протокол у теста, в котором больше нет ошибок, будет выведено информационное сообщение. Кроме того, если пользователь обновит страницу уже открытого протокола, который стал неактуальным, его автоматически перенаправит на основную страницу результатов.11. Убрана пустая страница отключенного пользовательского соглашения
Если в настройках системы тестирования было отключено отображение пользовательского соглашения в форме регистрации, то при попытке доступа к тексту соглашения по прямой ссылке открывалась пустая страница. Это могло сбивать с толку. Мы это исправили. Теперь в такой ситуации будет появляться понятное сообщение «Ресурс не найден».12. Исправлена проблема сортировки в таблице результатов
Устранена ошибка, из-за которой в таблице результатов не работала сортировка по столбцу «№». Это не позволяло изменить стандартный обратный порядок отображения данных (от новых к старым). Теперь сортировка работает корректно, позволяя выводить результаты как в прямом, так и в обратном порядке.13. Исправлена верстка баллов в вопросах на расстановку в нужном порядке (упорядочивание)
В режиме просмотра правильного ответа, когда за каждую позицию начислялся свой балл, возникали проблемы с версткой. Если текст варианта ответа занимал несколько строк, баллы «слипались» вверху, теряя привязку к своему варианту. Если же балл состоял из нескольких цифр, его значение не помещалось в отведенную область и выходило за ее пределы. Мы переработали верстку этого блока. Теперь баллы всегда корректно выровнены по вертикали относительно своего варианта ответа и аккуратно вписываются в ячейку, независимо от количества текста или величины балла.14. Исправлено некорректное появление панели автодополнения на странице входа
Раньше, если пользователь начинал вводить логин, а затем, не дожидаясь появления подсказок, переключался на вкладку регистрации, панель с найденными вариантами могла появиться в некорректном месте — поверх интерфейса регистрации. Мы переработали логику этого компонента. Теперь система отслеживает актуальность запроса, и если пользователь покинул поле ввода, панель с подсказками просто не будет показана.15. Исправлена ошибка при выборе удаленных значений в выпадающих списках
Раньше, если пользователь выбирал в форме регистрации или редактирования профиля значение, которое администратор только что удалил в настройках, система выдавала техническую ошибку. Теперь подобная ситуация обрабатывается корректно: вместо сбоя выводится понятное сообщение с предложением выбрать актуальный вариант из списка.16. Устранена скрытая ошибка при клике на заглушки в пустых таблицах
Раньше, если в таблицах тестов или результатов не было данных, клик по информационным заглушкам («Тестов нет», «Результатов нет») вызывал внутреннюю JavaScript-ошибку. Хотя ошибка была невидима для пользователя, она влияла на общую стабильность работы страницы. Мы исправили это: теперь эти сообщения корректно отображаются как неинтерактивный текст, и клик по ним больше не приводит к ошибкам.17. Повышена надежность переключения между вопросами в протоколе тестирования
Раньше при быстрой навигации между вопросами в режиме просмотра ошибок после тестирования (например, если пользователь кликал сначала на один вопрос, а затем, не дожидаясь загрузки, на другой) система могла не успеть обработать запросы в правильном порядке. Это иногда приводило к тому, что отображалось содержимое не последнего выбранного вопроса, а предыдущего. Мы внедрили механизм, который обрабатывает все клики в строгой последовательности, один за другим. Теперь, независимо от скорости нажатий и скорости загрузки, будут отображаться данные именно того вопроса, на который кликнули последним.18. Улучшено отображение ответов в вопросах на сопоставление
Раньше ответы для этого типа вопросов отображались в неактивных выпадающих списках, что приводило к критической проблеме: длинный текст ответа обрезался, а если несколько вариантов начинались одинаково, было невозможно различить данный и правильный ответы. Теперь эта проблема решена — ответы выводятся в виде обычного текста в ячейках таблицы, что гарантирует их полное и однозначное отображение. Улучшение работает как в режиме просмотра ошибок после теста, так и при проверке ответов в режиме обучения.19. Прекращена поддержка устаревших версий Internet Explorer
Начиная с этого обновления, прекращена поддержка Internet Explorer 8-10. Это решение связано с их несоответствием современным веб-стандартам и требованиям безопасности, а также с техническими ограничениями, которые препятствуют внедрению новых функций. При попытке входа из этих браузеров будет отображаться блокирующее уведомление. Для пользователей Internet Explorer 11 (включая Microsoft Edge в режиме совместимости с IE, который эмулирует поведение старого браузера) будет выводиться рекомендательное сообщение, что использование данного браузера не рекомендуется. Поддержка IE 11 пока сохраняется, однако в будущем может быть прекращена, если дальнейшее сопровождение этих версий станет технически нецелесообразным. Отказ от поддержки устаревших версий является общепринятой практикой и соответствует политике самой Microsoft, которая официально прекратила поддержку Internet Explorer 15 июня 2022 года и принудительно переводит пользователей на Microsoft Edge.20. Улучшена локализация интерфейса
Проведены множественные улучшения и исправления в переводах интерфейса для всех языков. В частности, были устранены неточности в различных надписях (например, скорректирован перевод вкладки «Профиль» для киргизского и монгольского языков). Дополнительно, для оптимизации отображения текста на узбекском языке, все символы обратной кавычки (`) были заменены на стандартный прямой апостроф ('). Это обеспечивает более компактное и корректное отображение строк в элементах интерфейса.3. Исправления технических проблем в работе системы «под капотом»
1. Реализованы новые алгоритмы клиент-серверного взаимодействия
Исправлены критические проблемы, связанные с дублирующимися запросами при нестабильном сетевом соединении. Если из-за проблем на каналах связи браузер не получает от сервера подтверждение выполнения своего запроса, он делает повторный запрос. Из-за этого может возникнуть ситуация, когда на сервер поступит запрос, который уже был выполнен, но браузер об этом не был уведомлен. Такие ситуации могли приводить к нарушению логики процесса тестирования и рассинхронизации состояния между браузером и сервером (что могло привести, например, к автоматическому пропуску вопросов или фиксации неактуальных ответов). Были разработаны и внедрены новые надежные алгоритмы, которые предотвращают обработку устаревших запросов и обеспечивают синхронизацию актуального состояния между браузером и сервером. Это максимально повышает стабильность и надежность системы при работе в условиях нестабильного сетевого соединения.2. Проведена оптимизация управления памятью для повышения производительности и стабильности
Была выявлена утечка памяти, из-за которой принудительное завершение сеансов пользователей (например, при двойной авторизации или блокировании администратором) приводило к накоплению «мусорных» данных в оперативной памяти. Важно, что эти данные не очищались даже после перезапуска системы, что со временем приводило к постепенному замедлению работы. Данная проблема была полностью устранена. Одновременно с этим была переработана логика работы кэша для предотвращения подобных проблем в будущем. В частности, был увеличен объем кэша для лучшего запаса производительности и добавлен другой, более эффективный алгоритм его очистки. Этот новый алгоритм, в отличие от старого, при нехватке места эффективно удаляет наименее используемые данные, включая «мусорные» записи, что обеспечивает встроенный механизм самоочистки. Эти изменения гарантируют более стабильную и быструю работу системы в долгосрочной перспективе.3. Внедрена защита от переполнения диска лог-файлами
Устранена потенциальная опасность неконтролируемого разрастания лог-файлов (например, при циклических системных ошибках или целенаправленной атаке на сервер), которое могло привести к заполнению всего свободного места на диске и, как следствие, к сбоям в работе операционной системы. Мы внедрили механизм ротации логов. Теперь система тестирования автоматически проверяет размер лог-файлов, и если один из них превышает заданный порог, то запускается защитная процедура. Сначала переполненный файл копируется на временное хранение для дальнейшего анализа, после чего активный лог-файл немедленно очищается, освобождая место на диске. Одновременно с этим администратору через IndigoInformer выводится предупреждение о необходимости проверить причину аномального роста логов. Эта мера надежно защищает систему от отказа из-за нехватки дискового пространства и позволяет своевременно реагировать на потенциальные проблемы или атаки.4. Оптимизирована производительность под высокими нагрузками
Некоторые администраторы могли замечать в логах базы данных предупреждения о том, что система слишком часто выполняет операции сохранения на диск (checkpoints are occurring too frequently). Это происходило в моменты пиковой активности и могло приводить к кратковременному снижению производительности. Мы провели дополнительное нагрузочное тестирование и оптимизировали параметры конфигурации базы данных, отвечающие за частоту этих операций. Это изменение позволит системе более плавно справляться с высокими нагрузками, уменьшит интенсивность операций ввода-вывода и значительно сократит количество подобных предупреждений в логах.5. Улучшена надёжность обмена данными
Чтобы исключить любые возможные проблемы, связанные с кэшированием данных на стороне сетевого оборудования (например, из-за его неправильной настройки), мы внедрили механизм, который добавляет уникальные идентификаторы в каждый запрос. Это гарантирует, что каждый запрос будет обработан сервером индивидуально, а также улучшает нашу систему отслеживания дублирующихся операций.6. Реализована защита служебных файлов веб-интерфейса от прямого доступа
Внедрено ограничение на прямой доступ к внутренним файлам веб-интерфейса для блокировки нецелевых запросов от поисковых роботов (краулеров), ботов и сторонних браузерных плагинов. Механизм защиты основан на проверке наличия в запросе специальных служебных параметров, которые добавляются при штатной работе JavaScript-приложения. Если такие параметры отсутствуют, сервер блокирует запрос и возвращает корректный HTTP-ответ «403. Доступ запрещен». Это не только предотвращает прямой доступ к файлам, но и корректно информирует автоматизированные системы о запрете доступа, что снижает лишнюю нагрузку и останавливает попытки сканирования служебных URL.7. Оптимизирована отправка данных из форм регистрации и редактирования профиля
Формы регистрации и редактирования профиля теперь отправляют на сервер только те поля, которые отображены в интерфейсе, вместо полного набора всех данных. Это делает API более предсказуемым и логичным для интеграторов. При этом серверная часть теперь игнорирует любые неожидаемые поля в запросе, что гарантирует полную обратную совместимость с ранее созданными кастомными формами. Отсутствие обязательных полей в запросе корректно обрабатывается как ошибка валидации.8. Добавлен механизм аварийного завершения сеанса
Реализован превентивный механизм принудительного завершения сеанса, предназначенный для самостоятельного восстановления работоспособности веб-интерфейса в случае возникновения непредвиденных проблем. Если работа пользователя будет заблокирована из-за гипотетического сбоя, который не устраняется стандартным обновлением страницы (например, циклическое обновление, зависшее диалоговое окно или неактивные элементы управления), можно добавить к текущему URL-адресу параметр /?command=restart и нажать Enter. Это действие немедленно завершит сеанс, что позволяет быстро решить проблему без необходимости очистки кэша и cookie-файлов браузера.9. Восстановлена совместимость системы тестирования с Windows XP
Проблема, появившаяся в версии 3.10, была вызвана новой функцией, добавленной для поддержки отечественных ОС на базе Linux. Эта функция оказалась несовместимой с Windows XP, что блокировало запуск службы IndigoController.exe. Механизм инициализации был изменен, и теперь совместимость с Windows XP полностью восстановлена без ущерба для функциональности на Linux-системах.10. Улучшена диагностика системных проблем
Для более быстрой и точной идентификации причин сбоев мы внедрили расширенное логирование системных ошибок и инцидентов. Теперь в технических лог-файлах содержится больше информации, что позволяет администраторам и службе поддержки значительно быстрее находить и устранять источники технических проблем.4. Исправления в отчетах и журнале событий
1. Исправлена ошибка с исчезновением данных в шаблоне результатов
При выставлении баллов за вопросы типа «Эссе» происходит пересчет результатов теста и обновление данных в шаблоне результатов. Если в шаблоне встречались подстановки дополнительных полей пользовательских данных (E-mail, Телефон, Должность и т.п.), то эти данные оставались незаполненными. Мы нашли и устранили причину проблемы. Теперь при пересчете баллов вся информация в шаблоне результатов будет отображаться корректно.2. Повышена безопасность и добавлен контроль входа
Теперь система записывает в «Журнал событий» все неудачные попытки входа пользователей в веб-интерфейс (когда кто-то вводит неправильный логин или пароль). Это поможет отслеживать подозрительную активность.3. Повышена точность и информативность журнала событий
Раньше в журнал могли попадать лишние технические записи или дубликаты одних и тех же событий, что затрудняло анализ. Мы исправили выявленные проблемы. В результате журнал стал значительно чище, а данные в нем — достовернее.4. Уменьшено количество уведомлений о временной потере связи
Мы увеличили время ожидания отклика от браузеров. Это сократит число записей «Отключен в результате длительного ожидания» и «Восстановление подключения» в Журнале событий, что существенно уменьшит количество «шумовых» записей и позволит администраторам фокусироваться на важных записях.5. Улучшения в программе администратора
1. Расширены настройки оптимизации базы данных
В разделе Сервер > Настройки системы тестирования > «Оптимизация» функция оптимизации базы данных теперь разделена на две отдельные операции:- Дефрагментировать базу данных — уменьшает физический размер базы данных и ускоряет её работу.
- Переиндексировать таблицы базы данных — оптимизирует индексы для ускорения выполнения запросов.

2. Улучшена диагностика ошибок при оптимизации базы данных
Раньше при сбое оптимизации система сообщала лишь общую ошибку, без указания причин. Теперь при возникновении проблемы выводится детальная информация: на каком этапе она произошла и в чём именно заключается сбой. Это позволяет администратору быстрее диагностировать и устранять неисправности.3. Добавлена индикация процесса оптимизации базы данных
Ранее процесс оптимизации выполнялся без какого-либо визуального сопровождения. Отсутствие обратной связи могло создать ложное впечатление, что программа зависла, и спровоцировать администратора на преждевременное завершение процесса через Диспетчер задач. Теперь во время выполнения операции отображается анимированный индикатор выполнения. Он наглядно демонстрирует, что система активна и обрабатывает данные, предотвращая случайное прерывание важного процесса.4. Блокировка интерфейса на время оптимизации базы данных
Раньше во время оптимизации элементы управления в окне настроек оставались активными (например, можно было переключаться по пунктам меню и менять настройки в других разделах). Теперь на время выполнения оптимизации интерфейс настроек становится неактивным, чтобы предотвратить случайные клики, которые ранее могли привести к сбою операции.5. Устранено мерцание при навигации по настройкам
Раньше при переключении между разделами настроек интерфейс мог кратковременно мерцать. Мы оптимизировали его отрисовку, блокируя промежуточные обновления. Теперь переход между разделами происходит мгновенно, без визуальных артефактов, что делает работу с настройками более комфортной.6. Оптимизирован запуск программы при подключении через RDP
При подключении через удаленный рабочий стол (RDP) стандартная анимация плавного появления главного окна могла вызывать задержки и приводить к визуальным артефактам (например, мерцанию или некорректной отрисовке). Чтобы обеспечить стабильную и быструю загрузку интерфейса в таких условиях, эта анимация теперь автоматически отключается при RDP-подключении. В результате окно программы появляется мгновенно и без искажений.7. Исправлена валидация длины значений для выпадающих списков
Раньше редактор полей позволял администратору создавать значения для выпадающих списков длиной более 100 символов. Это системное ограничение не проверялось на этапе создания. В результате, когда пользователь или администратор пытались выбрать такое «длинное» значение при регистрации или редактировании профиля, срабатывала ошибка валидации, и сохранить данные было невозможно. Теперь в редактор полей добавлена проверка на длину строки. Система больше не позволит сохранить вариант длиннее 100 символов, что гарантирует корректную работу всех созданных значений и исключает подобные ошибки в будущем.8. Исправлена критическая ошибка обновления ссылок на изображения при импорте/экспорте тестов
Раньше в редких, но критических случаях при импорте или экспорте тестов мог происходить сбой в механизме обновления ссылок на изображения. Это приводило к тому, что в контенте с несколькими картинками (например, в одном вопросе или инструкции) нарушался их порядок, и изображения отображались не на своих местах. Проблема была вызвана некорректным сопоставлением идентификаторов изображений при переносе теста между разными базами данных. Механизм обновления ссылок был полностью переработан. Теперь целостность всех ссылок на изображения гарантируется как при экспорте, так и при импорте тестов, что полностью исключает подобные ошибки.6. Представлен новый инсталлятор программы администратора
Раньше программа администратора поставлялась в виде самораспаковывающегося WinRAR-архива, что часто вызывало трудности: от ложных срабатываний антивирусов до ошибок запуска (в старых ОС). Для повышения надежности и удобства мы разработали собственный инсталлятор, который стабильно работает в том числе и в отечественных ОС. В версии 4.0 он был значительно доработан и теперь обладает ключевым преимуществом: при обновлении он автоматически сохраняет все ваши настройки, включая параметры подключения и масштабирования интерфейса. Администраторам больше не потребуется вводить данные для входа повторно.

Стоит отметить, что этот инсталлятор был впервые выпущен для версии 3.10 в качестве оперативного решения (уже после основного релиза), поэтому ранее не анонсировался. Теперь же, после всех доработок, мы представляем его как основной и рекомендуемый способ установки программы администратора.
7. Добавлены Callback-функции для выполнения собственного JS-кода
Для администраторов и разработчиков, желающих глубже интегрировать свои решения или модифицировать поведение интерфейса, добавлена поддержка пользовательских Callback-функций. Этот механизм позволяет выполнять собственный JavaScript-код в ключевые моменты работы веб-интерфейса. Настроить функции можно в разделе: Сервер > Настройки системы тестирования > Оформление > Встроить произвольный код на языке JavaScript.
Список доступных функций:
Список доступных функций:
AfterInitStartTabs() — вызывается после инициализации стартовых вкладок (до входа). AfterInitAuthForm() — после инициализации формы авторизации. AfterInitRegForm() — после инициализации формы регистрации. AfterChangeStartTabs() — при переключении стартовых вкладок. AfterAuth() — сразу после успешной авторизации пользователя. AfterInitUserTabs() — после инициализации вкладок в личном кабинете. AfterShowProfile() — при открытии формы редактирования профиля. AfterChangeUserTabs() — при переключении вкладок в личном кабинете. AfterClose() — после выхода из системы. AfterResize() — при изменении размеров окна браузера или смене ориентации устройства. AfterOpenDialog() — после открытия любого диалогового окна.
Пример использования
Чтобы показать приветственное сообщение после входа пользователя в личный кабинет, можно добавить следующий код:
function AfterAuth()
{
// этот код выполнится сразу после успешного входа
UI.DialogAlert('Добро пожаловать в личный кабинет системы тестирования!');
}
8. Исправление уязвимостей и усиление безопасности
Проведен аудит безопасности, в ходе которого было выявлено и устранено более 30 уязвимостей, связанных с недостаточным контролем доступа и проверкой входящих данных. Это приводило к возможности получения доступа к закрытой информации и обхода логики процессов тестирования. Мы внедрили комплексную систему проверок на стороне сервера, которая исключает возможность подтвержденных и потенциальных несанкционированных действий, а также ведет логирование подозрительной активности и попыток несанкционированного доступа. Подробности об устраненных уязвимостях в целях безопасности публиковаться не будут.



Тема закрыта


