Убрать затемненные сервисы

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
Elrengil
OTRS Новобранец
Сообщения: 104
Зарегистрирован: 18 июл 2012, 13:29

Убрать затемненные сервисы

Сообщение Elrengil » 29 мар 2013, 14:45

Добрый день, коллеги!
Возникла необходимость, чтобы при выборе выборе определенного типа была возможность выбрать только определенный сервис.
Сделал два 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

Elrengil
OTRS Новобранец
Сообщения: 104
Зарегистрирован: 18 июл 2012, 13:29

Re: Убрать затемненные сервисы

Сообщение Elrengil » 29 мар 2013, 15:25

сделал тоже самое на тестовой машине, на тестовой машине сервисы, затемненные сервисы не видны. Мистика какая-то
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Убрать затемненные сервисы

Сообщение alexus » 30 мар 2013, 14:41

Первый раз такое вижу. Может у Вас кастом какой-то мешается.
С уважением,
Алексей Юсов

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? Спросите меня как!

Elrengil
OTRS Новобранец
Сообщения: 104
Зарегистрирован: 18 июл 2012, 13:29

Re: Убрать затемненные сервисы

Сообщение Elrengil » 30 мар 2013, 21:26

Отдельных кастомов не делал. Функционал преимущественно настроен через админку. Попробую сравнить dtl файлы рабочего и тестового сервера.
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Убрать затемненные сервисы

Сообщение alexus » 31 мар 2013, 18:04

Изменение 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? Спросите меня как!

Elrengil
OTRS Новобранец
Сообщения: 104
Зарегистрирован: 18 июл 2012, 13:29

Re: Убрать затемненные сервисы

Сообщение Elrengil » 02 апр 2013, 12:15

Похоже что проблема в том что у меня OTRS 3.1.2, а на тестовых машинах версия выше. Нашел решение на буржуйском форуме http://forums.otterhub.org/viewtopic.ph ... ide#p58243. Но еще не попробовал.
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL

Elrengil
OTRS Новобранец
Сообщения: 104
Зарегистрирован: 18 июл 2012, 13:29

Re: Убрать затемненные сервисы

Сообщение Elrengil » 03 апр 2013, 10:48

попробовал добавить option[disabled=disabled] {display: none;} как пишут буржуи. В клиентском интерфейсе начало показывать сервисы так как надо, во всех браузерах показывает как надо, НО в проклятом Explorerе НИЧЕГО не изменилось. А это наш корпоративный браузер :evil:
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL

Creative
OTRS Новобранец
Сообщения: 132
Зарегистрирован: 22 июн 2011, 14:33
Откуда: Татарстан, Альметьевск

Re: Убрать затемненные сервисы

Сообщение Creative » 03 апр 2013, 15:04

У меня была задача немножко другого типа, но похожего поведения.
Есть структурированные сервисы. С несколькими уровнями вложенности. И ряду клиентов назначены начальные и конечные по вложенности сервисы.
При работе в интерфейсе агента лишнего не показывается, а вот при работе в интерфейсе клиента эти промежуточные уровни в сервисах всё равно были видны. Было не совсем удобно.

Нашёл в 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
Андрей Ананьев

Elrengil
OTRS Новобранец
Сообщения: 104
Зарегистрирован: 18 июл 2012, 13:29

Re: Убрать затемненные сервисы

Сообщение Elrengil » 03 апр 2013, 16:59

спасибо попробую отпишусь. ACL при совпадании делает disable
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Убрать затемненные сервисы

Сообщение alexus » 03 апр 2013, 17:21

Вообще уже вышел 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? Спросите меня как!

Elrengil
OTRS Новобранец
Сообщения: 104
Зарегистрирован: 18 июл 2012, 13:29

Re: Убрать затемненные сервисы

Сообщение Elrengil » 04 апр 2013, 10:44

К сожалению, обновлять должны админы сервера. А так как правки делались в файлах дефолта, вместо создания кастома, теперь проблема найти изменения. Да и админов весьма проблематично сдвинуть с места.
OTRS ITSM 4.09 Apache/2.4.6 (CentOS) MySQL

Elrengil
OTRS Новобранец
Сообщения: 104
Зарегистрирован: 18 июл 2012, 13:29

Re: Убрать затемненные сервисы

Сообщение Elrengil » 05 апр 2013, 14:32

Проблема решена! исправлением файлов AgentTicketPhone.pm и CustomerTicketMessage.pm Открываем каждый из них.
Затем ищем # check if service is disabled и вставляем else и { в места показаные ниже. И все начинает отображаться нормально во всех браузерах :geek:

# 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

Ответить