Mutation Observer для полей ITSM таблиц

Для таблицы ITSM Tasks (itsm_task) и её дочерних таблиц реализован фунционал Mutation Observer для текстовых полей. Он позволяет отслеживать изменения в выбранных полях и, в случае потери данных, восстанавливать значения. Также данные поля будут растягиваться по горизонтали для удобства ввода большого количества текста.

  • Свойство itsm.observer.fields
  • Клиентский скрипт Mutation Observer - Init
  • Перегруженная кнопка Save
  • Переводы сообщений

Для работы Mutation Observer необходимо отредактировать свойство itsm.observer.fields. Конфигурация представляет собой пары “название_таблицы”: [“массив”, “названий”, “полей”, “таблицы”], перечисленные через запятую. Выглядит как JSON, но без фигурных скобок в начале и конце. Пример рабочей конфигурации находится ниже.

"itsm_change_request": [
    "preparation",
    "core_activities",
    "validation",
    "backout"
],
"itsm_request": [
    "description"
]

Узнать, что Mutation Observer заработал, можно по отображению информационных сообщений “This field is observed” (“Поле под наблюдением”) под выбранными полями формы записи нужной таблицы. При изменении значений этих полей, происходит сохранение этих изменений в Local Storage.

При перезагрузке/вылете страницы и последующей загрузке будет выведено Confirm-сообщение “Do you want restore unsaved data?” (“Вы хотите восстановить несохранённые данные?”). При нажатии кнопки “OK” будут восстановлены последние сохраненные значения выбранных полей данной записи. Также под полями с восстановленными значениями будут отображаться предупреждающие сообщения “Field data was restored” (“Данные поля были восстановлены”).

При нажатии кнопки “Save” (“Сохранить”) на форме записи, текущие данные будут помечены как сохраненные и при последующей перезагрузке страницы не будут предложены к восстановлению.

Примечание
Данный функционал испытан на полях String и Text. На полях остальных типов данных используйте на свой страх и риск.

5 лайков

[ITSM] - Mutation Observer_2023-08-28 13 58 35.sop (3,2 КБ)

3 лайка

Спасибо за помощь с вложением.

1 лайк

Коллеги, приятная фича, уже протестил

2 лайка