В данной статье будут рассмотрены только внесенные изменения в основной клиент 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.xml
t
— новый параметр для сохранения идентификатора задания.https://draw.miem.hse.ru/?t=a
, где a
— идентификатор задания. Если параметр не указан, то идентификатор задания принимается за undefined
.https://draw.miem.hse.ru/?t=1234
u
— новый параметр для сохранения 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()
.