Добрый день.
Появилась задача, создания динамического поля типа dropdown и повесить событие на действие клиента при выборе конкретного пункта в выпадающем списке. Можно так сказвать, создание каскада или дерева динамических полей.
Например, создано динамическое поле Service в выпадающем списке dropdown 3 значения: компьютер, принтер, интернет.
Нужно: при выборе клиента конкретного пункта из списка отображать от 0 до 10 дополнительных динамических полей. Клиент выбрал в DD поле принтер внизу поля появились 3 дополнительных динамических поля: производитель, модель, дата. Клиент выбрал интернет и ничего не поменялось никаких доп. полей не появилось. Клиент выбрал компьютер внизу поля соответственно отобразились 7 дополнительных полей.
Возможно ли как-то настроить данное действие с помощью Event trigger в Ticket -> Core::TicketDynamicFieldDefault ???
Не смог найти главу в документации Please check the developer manual (http://doc.otrs.org/), chapter "Ticket Event Module".
Видел похожую тему http://forums.otterhub.org/viewtopic.php?f=53&t=14531 но не совсем понял как данный функционал был настроен. Подскажите кто-нибудь осуществлял данную настройку для клиентского интерфейса?
динамические поля dropdown и ticket event module
Модератор: ykolesnikov
Re: динамические поля dropdown и ticket event module
Добрый вечер!
То что вы читали на английском форуме есть и на нашем, поищите по словуACL.
Но здесь речь шла о фиксированом количестве динамических полей, но по значению поля первого уровня выводится список допустимых значений для этого поля в списк второго уровня.
На английском форуме есть тема похожая на Ваш вопрос, ищите, там не используется ACL, а правится код модулей
Попробуйте посмотреть здесь:
http://forums.otterhub.org/viewtopic.php?f=60&t=8032
То что вы читали на английском форуме есть и на нашем, поищите по словуACL.
Но здесь речь шла о фиксированом количестве динамических полей, но по значению поля первого уровня выводится список допустимых значений для этого поля в списк второго уровня.
На английском форуме есть тема похожая на Ваш вопрос, ищите, там не используется ACL, а правится код модулей
Попробуйте посмотреть здесь:
http://forums.otterhub.org/viewtopic.php?f=60&t=8032
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
Re: динамические поля dropdown и ticket event module
Хотелось бы увидеть вообще хоть 1 пример когда по значению поля первого уровня выводится список допустимых значений для этого поля в списк второго уровня. На нашем форруме так и не нашел.yuri0001 писал(а):Добрый вечер!
То что вы читали на английском форуме есть и на нашем, поищите по словуACL.
Но здесь речь шла о фиксированом количестве динамических полей, но по значению поля первого уровня выводится список допустимых значений для этого поля в списк второго уровня.
На английском форуме есть тема похожая на Ваш вопрос, ищите, там не используется ACL, а правится код модулей
Попробуйте посмотреть здесь:
http://forums.otterhub.org/viewtopic.php?f=60&t=8032
Что касается forums.otterhub.org/viewtopic.php?f=60&t=8032 так там используется TicketFreeText а мне нужно настроить через динамические поля.
И еще может, все же кто-нибудь подскажет где можно подробно с примерами почитать об Ticket -> Core::TicketDynamicFieldDefault для чего нужна эта настройка. В документации на http://doc.otrs.org/ очень скудное описалово.
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: динамические поля dropdown и ticket event module
Доброе утро!
Посмотрите эту тему - viewtopic.php?f=2&t=847 там есть полезные вещи по ACL.
Во вложении пример ACL. Там значения динамического поля ограничивается в зависимости от типа заявки. Для ограничений в зависимости от другого динамического поля, в принципе делается так же. Ну и посмотрите закомментированный кусок в конце, там пробный пример в вашу тему. Это все про ACL. Event module не смотрел.
Посмотрите эту тему - viewtopic.php?f=2&t=847 там есть полезные вещи по ACL.
Во вложении пример ACL. Там значения динамического поля ограничивается в зависимости от типа заявки. Для ограничений в зависимости от другого динамического поля, в принципе делается так же. Ну и посмотрите закомментированный кусок в конце, там пробный пример в вашу тему. Это все про ACL. Event module не смотрел.
- Вложения
-
- Config.rar
- (3.55 КБ) 251 скачивание
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
Re: динамические поля dropdown и ticket event module
Большое спасибо за пример.ykolesnikov писал(а):Доброе утро!
Посмотрите эту тему - viewtopic.php?f=2&t=847 там есть полезные вещи по ACL.
Во вложении пример ACL. Там значения динамического поля ограничивается в зависимости от типа заявки. Для ограничений в зависимости от другого динамического поля, в принципе делается так же. Ну и посмотрите закомментированный кусок в конце, там пробный пример в вашу тему. Это все про ACL. Event module не смотрел.
Но, хотелось бы прояснить некоторые моменты с синтаксисом ACL, т.к. я не силен в данном вопросе.
Код: Выделить всё
# $Self->{TicketAcl}->{'600 - Category --> ProjectName_1'} = { \\ это название и код команды ACL, которые я буду использовать для клиентов и агентов?
\\Т.е.подскажите, что означает 600 - Category --> ProjectName_1 ?
#
# Properties => {
# DynamicField => { \\это тип поля на которое будем вешать событие, условие ?
# # keys must be in DynamicField_<field_name> format
# DynamicField_CategoryName => ['015'], \\ это непосредственно название подключенного динамического поля в интерфейсе клиента? 015 - ключ значения например в dropdown поле?
# },#
# },
# Possible => {
# Ticket => {
# DynamicField_ProjectName => ['02 Cartrige', '04 DrumUnit'], \\ отображение клиенту необходимого нам динамического поля, если просто текстовые динамические поля без вбитых в них значений Multiselect, тогда написать просто Ticket => { DynamicField_ProjectName, без => ['02 Cartrige', '04 DrumUnit'] ?
# },
# },
# };
# $Self->{TicketAcl}->{'610 - Category --> ProjectName_2'} = {
# Properties => {
# DynamicField => {
# # keys must be in DynamicField_<field_name> format
# DynamicField_CategoryName => ['001'],
# },
# },
# Possible => {
# Ticket => {
# DynamicField_ProjectName => ['01 Toner', '03 Fuser'],
# },
# },
# };
Re: динамические поля dropdown и ticket event module
Что касается названия секции ACL, то просто спопугайничал с примеров из документации - Число еще вроде имеет какой-то смысл (где-то встречал, сейчас уже не помню, что число д.б. по нарастающей, но м.б. и неправда это, остальной текст просто название, мое (должно быть уникальным, но не проверял ).
У меня в примере все поля типа dropdown, другие не использую, так что пробуйте. Все мои познания из документации, лучше на английском по 3.1 (chapter 18). Там хорошие примеры и список, неполный возможных команд и их параметров. И дальше пробовал и обсуждал в форуме - весь путь познания в той ссылке, что я привел. Анна очень помогла.
Где будет использоваться ACL - задается в Properties -> Action (смотрите в моем примере с начала файла и примерах в мануале).
Выполняются они последовательно.
У меня в примере, динамические поля в конфигурации имеют пустое значение и набор моих значений. В зависимости от типа заявки, выбранной клиентом - в выпадающем списке для поля Категория - доступны только перечисленные в соответствующей секции ACL значения. Отдельно набор секций для клиентской заявки и отдельно набор секций для телефонной заявки, которую может создавать агент. Соответственно Action у этих секций разный.
Обращаю внимание, что здесь только ограничение доступных для ввода значений, а не выбор разных полей в зависимости от значения предыдущего. Эта задача сложнее. Она обсуждалась на английском форуме (там для FreeText полей, но, по сути, должно работать и для динамических) и с помощью ACL ее не решить.
Конечно, пример не претендует на полноту, но уж чем богаты...
Еще раз рекомендую посмотреть тщательно примеры в мануале, они практически разъясняют почти все.
У меня в примере все поля типа dropdown, другие не использую, так что пробуйте. Все мои познания из документации, лучше на английском по 3.1 (chapter 18). Там хорошие примеры и список, неполный возможных команд и их параметров. И дальше пробовал и обсуждал в форуме - весь путь познания в той ссылке, что я привел. Анна очень помогла.
Где будет использоваться ACL - задается в Properties -> Action (смотрите в моем примере с начала файла и примерах в мануале).
Выполняются они последовательно.
У меня в примере, динамические поля в конфигурации имеют пустое значение и набор моих значений. В зависимости от типа заявки, выбранной клиентом - в выпадающем списке для поля Категория - доступны только перечисленные в соответствующей секции ACL значения. Отдельно набор секций для клиентской заявки и отдельно набор секций для телефонной заявки, которую может создавать агент. Соответственно Action у этих секций разный.
Обращаю внимание, что здесь только ограничение доступных для ввода значений, а не выбор разных полей в зависимости от значения предыдущего. Эта задача сложнее. Она обсуждалась на английском форуме (там для FreeText полей, но, по сути, должно работать и для динамических) и с помощью ACL ее не решить.
Конечно, пример не претендует на полноту, но уж чем богаты...
Еще раз рекомендую посмотреть тщательно примеры в мануале, они практически разъясняют почти все.
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5