Меню
Меню
    Меню

    Исключение неожиданного появления в Moodle 4.5.0 сообщения о возможной потере изменений

    Дата создания информации: 01.12.2024

    Частью чего является?

    Исключение неожиданного появления в Moodle 4.5.0 сообщения о возможной потере изменений является частью изменения Moodle 4.5.0.

    Как выполняется?

    В Moodle 4.5.0 для изменения ответов на вопросы используются формы.

    В формах используются функции для отслеживания изменений в ответах на вопросы, чтобы не потерять эти изменения.

    Функции для отслеживания изменений в ответах на вопросы представлены в файле lib\form\amd\src\changechecker.js.

    Эти функции появились для изменения ответов на вопросы с использованием одной формы.

    Позднее эти же функции стали использоваться и для изменения ответов на вопросы с использованием нескольких форм.

    Несколько форм могут использоваться, например, для создания курса.

    Основная форма – для создания курса. Она представлена в файле course/edit_form.php.

    Основная форма для создания курса в Moodle 4.5.0

    В основной форме есть поле для описания курса. В этом поле можно использовать редактор Atto, в котором есть кнопка для открытия окна для управления файлами.

    Кнопка для открытия окна для управления файлами в редакторе Atto в основной форме для создания курса в Moodle 4.5.0

    В этом окне используется ещё одна форма – для управления файлами. Эта форма представлена в файле lib\editor\atto\plugins\managefiles\manage_form.php.

    Окно для управления файлами в Moodle 4.5.0

    Если при создании курса в этом окне добавить файлы, закрыть его и нажать на кнопку для сохранения курса, то появляется сообщение о возможной потере изменений.

    Сообщение в Moodle 4.5.0 о возможной потере изменений

    Появление этого сообщения является неожиданным, потому что при сохранении курса ожидается, что никакие данные для создания курса не будут потеряны.

    Причина неожиданного появления сообщения о возможной потере изменений заключается в том, что функции для отслеживания изменений в основной форме и в форме для управления файлами работают несогласованно: при сохранении курса признак наличия изменений в основной форме сбрасывается, а в форме для управления файлами – нет.

    Из-за этого на странице для создания курса остаётся признак наличия изменений и при закрытии (выгрузке) документа (обработке события beforeunload) появляется сообщение о возможной потере изменений.

    Указанное поведение наблюдается во всех версиях Moodle, начиная как минимум с версии 3.1.2.

    Для исключения неожиданного появления сообщения о возможной потере изменений необходимо обеспечить отслеживание изменений во всех формах, которые используются для изменения ответов на вопросы в Moodle.

    Для реализации такого поведения необходимо время, чтобы изменить отслеживание изменений в формах для всех ситуаций, когда изменяются ответы на вопросы с использованием форм.

    В качестве временного решения, позволяющего получать меньше неожиданных результатов при изменении ответов на вопросы, предлагается отключение в форме для управления файлами функций для отслеживания изменений.

    Для этого необходимо в файле lib\editor\atto\plugins\managefiles\manage_form.php в функции atto_managefiles_manage_form::definition после выполнения функции $mform->setDisableShortforms(true) добавить отключение функций для отслеживания изменений: $mform->disable_form_change_checker().

    Меню
    Меню
    На экране представлено веб-приложение «Аделантер».
    Скрыть