Убрать затемненные сервисы
Модератор: ykolesnikov
Убрать затемненные сервисы
Добрый день, коллеги!
Возникла необходимость, чтобы при выборе выборе определенного типа была возможность выбрать только определенный сервис.
Сделал два ACL для агентского и пользовательского интерфеса, которые при выборе определенного типа дают выбрать только определенный сервис. Выбор сервиса стал выглядеть так как на скринах. Нельзя ли просто убрать ненужные сервисы из списка, а не делать их неактивными?
В агентском интерфейсе
В клиентском интерфейсе
ACL выглядят так:
$Self->{TicketAcl}->{'ACL-CustomerAXY'} =
{
# these are the properties used for matching ticket etc.
# match properties
Properties => {Frontend => {Action => ['CustomerTicketMessage'] }},
# match property = all customer tickets
Properties => {
# current type match properties
Ticket=> {
Type => [decode_utf8('АХУ')]}},
# return possible options (white list)
Possible => {
# possible ticket options (white list)
Ticket =>
{
Service => [decode_utf8('АХУ')],
Queue => [decode_utf8('АХУ')],
},
},
};
# ticket acl
$Self->{TicketAcl}->{'ACL-AgentAXY'} = {
# match properties
Properties => {
# current type match properties
Ticket => {
Type => [decode_utf8('АХУ')]}},
# return possible options (white list)
Possible => {
# possible ticket options (white list)
Ticket =>
{
Queue => [decode_utf8('АХУ')],
Service => [decode_utf8('АХУ')],
},
},
};
Возникла необходимость, чтобы при выборе выборе определенного типа была возможность выбрать только определенный сервис.
Сделал два ACL для агентского и пользовательского интерфеса, которые при выборе определенного типа дают выбрать только определенный сервис. Выбор сервиса стал выглядеть так как на скринах. Нельзя ли просто убрать ненужные сервисы из списка, а не делать их неактивными?
В агентском интерфейсе
В клиентском интерфейсе
ACL выглядят так:
$Self->{TicketAcl}->{'ACL-CustomerAXY'} =
{
# these are the properties used for matching ticket etc.
# match properties
Properties => {Frontend => {Action => ['CustomerTicketMessage'] }},
# match property = all customer tickets
Properties => {
# current type match properties
Ticket=> {
Type => [decode_utf8('АХУ')]}},
# return possible options (white list)
Possible => {
# possible ticket options (white list)
Ticket =>
{
Service => [decode_utf8('АХУ')],
Queue => [decode_utf8('АХУ')],
},
},
};
# ticket acl
$Self->{TicketAcl}->{'ACL-AgentAXY'} = {
# match properties
Properties => {
# current type match properties
Ticket => {
Type => [decode_utf8('АХУ')]}},
# return possible options (white list)
Possible => {
# possible ticket options (white list)
Ticket =>
{
Queue => [decode_utf8('АХУ')],
Service => [decode_utf8('АХУ')],
},
},
};
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL
Re: Убрать затемненные сервисы
сделал тоже самое на тестовой машине, на тестовой машине сервисы, затемненные сервисы не видны. Мистика какая-то
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Убрать затемненные сервисы
Первый раз такое вижу. Может у Вас кастом какой-то мешается.
С уважением,
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Re: Убрать затемненные сервисы
Отдельных кастомов не делал. Функционал преимущественно настроен через админку. Попробую сравнить dtl файлы рабочего и тестового сервера.
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Убрать затемненные сервисы
Изменение DTL - тоже кастом
С уважением,
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Re: Убрать затемненные сервисы
Похоже что проблема в том что у меня OTRS 3.1.2, а на тестовых машинах версия выше. Нашел решение на буржуйском форуме http://forums.otterhub.org/viewtopic.ph ... ide#p58243. Но еще не попробовал.
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL
Re: Убрать затемненные сервисы
попробовал добавить option[disabled=disabled] {display: none;} как пишут буржуи. В клиентском интерфейсе начало показывать сервисы так как надо, во всех браузерах показывает как надо, НО в проклятом Explorerе НИЧЕГО не изменилось. А это наш корпоративный браузер
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL
-
- OTRS Новобранец
- Сообщения: 132
- Зарегистрирован: 22 июн 2011, 14:33
- Откуда: Татарстан, Альметьевск
Re: Убрать затемненные сервисы
У меня была задача немножко другого типа, но похожего поведения.
Есть структурированные сервисы. С несколькими уровнями вложенности. И ряду клиентов назначены начальные и конечные по вложенности сервисы.
При работе в интерфейсе агента лишнего не показывается, а вот при работе в интерфейсе клиента эти промежуточные уровни в сервисах всё равно были видны. Было не совсем удобно.
Нашёл в CustomerTicketMessage.pm такой блок
И решил закомментить.
В итоге... "Фараону помогло" - (с) Роман Трахтенберг.
Попробуй действовать по аналогии.
Чуть пониже есть такой блок
Вот в нём то видимо и стоит покопаться.
А если решишь для клиентского интерфейса, то и в агентском можно применять такое же решение. Как правило подходы и в тех и в других модулях одинаковые.
Правда это полагаю может сработать только в случае, если механизм ACL обрабатывая элементы при совпадении как бы "превращает" их в задизабленные.
А решение со стилями тоже живучее, но требует особенного подхода к ослику, он животное капризное.
Есть структурированные сервисы. С несколькими уровнями вложенности. И ряду клиентов назначены начальные и конечные по вложенности сервисы.
При работе в интерфейсе агента лишнего не показывается, а вот при работе в интерфейсе клиента эти промежуточные уровни в сервисах всё равно были видны. Было не совсем удобно.
Нашёл в CustomerTicketMessage.pm такой блок
Код: Выделить всё
# create a new register for each parent as disabled
my %ParentServiceRegister = (
Key => $ServiceID,
Value => $ServiceParent->{Name},
Selected => 0,
Disabled => 1,
);
push @ServiceList, \%ParentServiceRegister;
В итоге... "Фараону помогло" - (с) Роман Трахтенберг.
Попробуй действовать по аналогии.
Чуть пониже есть такой блок
Код: Выделить всё
# check if service is selected
if ( $Param{ServiceID} && $Param{ServiceID} eq $ServiceKey ) {
$ServiceRegister{Selected} = 1;
}
# check if service is disabled
if ( !$Service{$ServiceKey} ) {
$ServiceRegister{Disabled} = 1;
}
push @ServiceList, \%ServiceRegister;
А если решишь для клиентского интерфейса, то и в агентском можно применять такое же решение. Как правило подходы и в тех и в других модулях одинаковые.
Правда это полагаю может сработать только в случае, если механизм ACL обрабатывая элементы при совпадении как бы "превращает" их в задизабленные.
А решение со стилями тоже живучее, но требует особенного подхода к ослику, он животное капризное.
Мозг человека обычно загружен лишь на 10% своей мощности, остальное - резерв для операционной системы.
OTRS 3.1.4; ITSM 3.1.6; Ubuntu Server 12.04 LTS
Андрей Ананьев
OTRS 3.1.4; ITSM 3.1.6; Ubuntu Server 12.04 LTS
Андрей Ананьев
Re: Убрать затемненные сервисы
спасибо попробую отпишусь. ACL при совпадании делает disable
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Убрать затемненные сервисы
Вообще уже вышел 3.1.14. В чем проблема обновиться?
С уважением,
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Re: Убрать затемненные сервисы
К сожалению, обновлять должны админы сервера. А так как правки делались в файлах дефолта, вместо создания кастома, теперь проблема найти изменения. Да и админов весьма проблематично сдвинуть с места.
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL
Re: Убрать затемненные сервисы
Проблема решена! исправлением файлов AgentTicketPhone.pm и CustomerTicketMessage.pm Открываем каждый из них.
Затем ищем # check if service is disabled и вставляем else и { в места показаные ниже. И все начинает отображаться нормально во всех браузерах
# check if service is disabled
if ( !$Service{$ServiceKey} ) {
$ServiceRegister{Disabled} = 1;
}
else {
push @ServiceList, \%ServiceRegister;
}
# set service as printed
$AddedServices{$ServiceKey} = 1;
Затем ищем # check if service is disabled и вставляем else и { в места показаные ниже. И все начинает отображаться нормально во всех браузерах
# check if service is disabled
if ( !$Service{$ServiceKey} ) {
$ServiceRegister{Disabled} = 1;
}
else {
push @ServiceList, \%ServiceRegister;
}
# set service as printed
$AddedServices{$ServiceKey} = 1;
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL