1.3.3. Выпадающий список с мультивыбором (etTagLookUp)

1.3.3.1. Способ организации иерархии тегов

Пример на Support в списке и карточке ДП и задач.

GST должен отдавать плоский список тегов, вообщем как и не в неирархическом режиме. Но необходимо использовать новое поле.

Кроме существуещего “Атрибут отображаемых значений” надо будет поле “Атрибут отображаемых значений в выпадающих список”.

В “Атрибут отображаемых значений” - имя тег без namespace’ов. Будет использовано для отображения выбранных тегов в самом редакторе.

В “Атрибут отображаемых значений в выпадающих список” - должны быть именя тегов с namespace разделенными “/”. Если в имени теге встречается символ “/”, тогда его надо будет экранировать дублирование “/”. (Это свойство будет добавлено системным отделом)

Пример:

  • SysDev/TaskType/ - тега нет, только namespace
  • SysDev/TaskType/feature - где  тег feature, а namespace SysDev→TaskType
  • SysDev/TaskType/bug - где  тег bug, а namespace SysDev→TaskType
  • SysDev/TaskType/bug//feature - где тег bug/feature, а namespace SysDev→TaskType

При вводе символов в редактор будет также отрабатывать фильтр. Если Enter нажать, когда выделенная запись является тегом, то должна быть произведена вставка тега; если выделенная запись является namespace’ом, то будет произведена вставка текста в редактор. Для этого добавим у редактора новое событие “Операция “Выбор значения из выпадающего списка””

А дальше пользователь может довбить имя тега или дозаводить namespace. В операцию  “Операция “Выбор значения из выпадающего списка”” передается выбранное значение(id, “Полное имя тега”). Операция должна возвращать действие и имя тега или текста для вставки в область ввода.

Решение о том, какой тег заводить, приниматься будет также в операции “Операция “добавить новое значение””. Соответственно надо будет определить namespace и имя тега. Все что оканчивается на / является неймспейсом. // является заэкранированным символов / не являющимся признаком namespace’ов.

1.3.3.2. Раскраска тегов

При настройке редактора в настройке TagLookup.AttrTagStyle можно задать атрибут, в котром хранится стиль раскраски тегов.

Для применения стиля тегов вне редактора (например, для отображения тегов в колонке грида без входа в режим редактирования) необходимо в GST для такого поля сформировать значение вида ИмяТага|”Стиль”. Грид сам разберёт такую строку и применит заданную строку тиля при отрисовке тега.