Класс TaskSuite

«Класс-обертка» для страницы заданий, создает экземпляры классов заданий. Вы можете переопределить этот класс, например, чтобы отобразить общий элемент на странице с заданиями или получить больший контроль над заданиями (нестандартные горячие клавиши или т.п.).

Основная задача класса TaskSuite — отрисовать задания на странице ( render() ). Через него также происходит сбор ответов ( getSolutions() ), валидация ( validate(solutions) ) и управление горячими клавишами ( focusNextTask() , onKey(key) и т.д.).

Базовый класс для TaskSuite доступен в глобальной переменной window.TolokaTaskSuite.

Методы:

constructor(options)
Констуктор базового класса страницы заданий. Параметры:
  • options.task — массив моделей задания Task.
  • options.specs — параметры входных и выходных данных, интерфейса заданий. См. формат объекта task_spec .
  • options.assignmentId — идентификаторы заданий на странице.
  • options.workspaceOptions — параметры инициализации песочницы {{isReadOnly: boolean}}
  • options.TaskClass — массив классов создаваемых заданий.
  • options.solutions — массив ответов Solution . Может быть пуст.
getOptions()

Возвращает параметры, переданные методу constructor().

getWorkspaceOptions()

Возвращает параметры инициализации песочницы, переданные методу constructor().

getTasks()

Возвращает массив инициализированных моделей задания Task .

getTasksIndexed()
Возвращает задания, индексированные по идентификаторам: "<taskId>": Task, …
getSolutions()

Возвращает массив ответов Solution .

getProxyUrl(path)
Возвращает полный URL для доступа к данным на прокси-сервере. Параметр:
  • path — относительный путь к файлу.
getDOMElement()

Возвращает DOM-элемент стилей страницы.

getStyleDOMElement()

Возвращает DOM-элемент страницы (до отрисовки пустой, после — инициализированный, содержащий интерфейс).

validate(solutions)
Валидирует ответы согласно параметрам выходных данных. Возращает промис с массивом ошибок SolutionValidationError , если ответы некорректные, или null. Параметр:
  • solutions — массив ответ исполнителя на задания. Если не передан, то используются текущие ( getSolutions() ).
initHotkeys()
Инициализатор обработчиков горячих клавиш:
  • Устанавливает фокус на предыдущее задание по стрелке влево/вверх.
  • Устанавливает фокус на следующее задание по стрелке вправо/вниз.
  • Передает нажимаемые клавиши активному заданию.
  • Устанавливает фокус на первое задание.
focusTask(index)
Устанавливает фокус на задание по индексу. Параметр:
  • index — индекс задания на странице.
focusNextTask()
Устанавливает фокус на следующее задание.
focusPreviousTask()
Устанавливает фокус на предыдущее задание.
onKey(key)
Передает нажатую клавишу активному заданию.
render()

Формирует DOM-представление страницы заданий: отрисовывает все задания на странице — вызывает render() класса Task для каждого задания. Вызывает onRender() . Возвращает this.

destroy()
Уничтожает все задания страницы. Освобождает занятые в глобальном пространстве ресурсы, сервисы, обработчики событий. Вызывает onDestroy() .
onRender()
Вызывается после отрисовки страницы ( render() ). Все манипуляции с DOM-элементом задания следует производить здесь.
onDestroy()
Вызывается после уничтожения страницы ( destroy() ). Наиболее подходящий метод для очистки занятой памяти, удаления глобальных обработчиков событий, DOM-элементов и т. п.
onValidationFail(errors)
Вызывается после неудачной валидации с описанием ошибок в параметре. Параметр: