Перейти к основному содержимому

PageProgressController.js

Передача данных в оболочку осуществляется с помощью функции courseController.page.progress.set. И хранится точное значение от 0 до 100. Данный способ сохранения прогресса не позволяет понять откуда пришел прогресс. Чаще всего прогресс приходит из фреймсетов, и после перезагрузки страницы нужно восстановить прогресс каждого фрейма, чтобы продолжить корректно его отслеживать.

Вот так выглядит интерфейс класса PageProgressController, остальные методы нужны для внутренней работы класса и не должны вызываться извне

class PageProgressController {
static init(){/*...*/}

set(pageId, id, value) {/*...*/}
}
  • PageProgressController.init статический метод, его нужно вызвать при инициализации виджета. Метод определяет глобальную переменную pageProgressController . Повторные вызовы метода не будут изменять глобальную переменную
  • set(pageId, id, value) - добавляет к прогрессу страницы (pageId) прогресс (value) для элемента (id). Элементом может выступить любая уникальная сущность на странице. В данный момент это frameset elearning виджеты, у каждого из которых есть уникальный id

Весь прогресс сохраняется в оболочку, в переменную widgetsPageProgress, она определена в статической переменной PageProgressController.WRAPPER_VARIABLE

Важно! В прогресс всего курса и в прогресс отдельной сущности нельзя передать меньший прогресс чем был установлен ранее, меньшие значения просто будут проигнорированы. Таким образом нельзя уменьшить прогресс курса, возможен только полный restart