В данной статье будут рассмотрены только внесенные изменения в основной клиент draw.io.
Библиотеки загружаются с помощью CDN jsDelivr (см. файл
index.jsp).
Данная панель создана на основе панели Format (класс Format в файле app.min.js) уже реализованной в интерфейсе.
Вызов панели происходит при инициализации интерфейса, а также по нажатию кнопки Server response в правом верхнем углу (аналогично по реализации кнопке Format).

Сама панель состоит из трех блоков (каждый элемент которых является элементом объекта vueWidget класса Vue):
a и b объекта vueWidget)<textarea>, содержащий получаемое с сервера задание.
c и d объекта vueWidget)<textarea>, содержащий получаемый с сервера комментарий к выполненной схеме.
e и f объекта vueWidget)/submit (реализация в методе submit объекта vueWidget).reset объекта vueWidget с использованием EditorUI.setGraphXml()).
clibs — измененный параметр из оригинального draw.io для загрузки внешних библиотек объектов схемы.https://draw.miem.hse.ru/?clibs=Ua, где a может быть URL библиотеки или численным идентификатором библиотеки в базе данных библиотек.https://draw.miem.hse.ru/?clibs=Uhttps%3A%2F%2Fraw.githubusercontent.com%2Fjgraph%2Fdrawio-libs%2Fmaster%2Flibs%2Ffont-awesome.xmlИспользование
Uперед URL или идентификатором в параметреclibsобязательно!
g — новый параметр для загрузки изначальной схемы.https://draw.miem.hse.ru/?g=a, где a может быть URL схемы или численным идентификатором схемы в базе данных схем.https://draw.miem.hse.ru/?g=https%3A%2F%2Fraw.githubusercontent.com%2Fjgraph%2Fdrawio-diagrams%2Fmaster%2Fdiagrams%2Fmath.xmlt — новый параметр для сохранения идентификатора задания.https://draw.miem.hse.ru/?t=a, где a — идентификатор задания. Если параметр не указан, то идентификатор задания принимается за undefined.https://draw.miem.hse.ru/?t=1234u — новый параметр для сохранения email студента.https://draw.miem.hse.ru/?u=a, где a — email студента. Если параметр не указан, то идентификатор задания принимается за undefined.https://draw.miem.hse.ru/?u=ameliseenko%40miem.hse.ruТакже возможно применение сразу нескольких параметров разделенных символом
&. Пример:https://draw.miem.hse.ru/?t=1234&u=ameliseenko%40miem.hse.ru&clibs=Uhttps%3A%2F%2Fjgraph.github.io%2Fdrawio-libs%2Flibs%2Ftemplates.xml
Динамическая отправка схем на сервер реализовано в методе fileChanged класса DrawioFile. Запросы отправляются на контроллер /test.
Помимо заполнения поля Response изменненного интерфейса при получении ответа от сервера производится изменение цвета соединительных стрелочек (зеленый — верное соединение, красный — неверное) с использованием ui.editor.graph.setCellStyles().