Поиск в интерфейсе клиента
Модератор: ykolesnikov
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Поиск в интерфейсе клиента
Добрый день, коллеги!
Можно ли в состав аргументов поиска заявок у клиента включить атрибуты клиента из MAP в Config.pm?
Мне нужен поиск заявок клиентом по отделу. Компания используется в качестве CustomerID.
P.S. Замечено, что несмотря на отключение показа заявок компании ( пункта меню для показа нет), при поиске - отображаются все заявки компании, удовлетворяющие условию поиска. Видимо надо еще где-то подкрутить.
Можно ли в состав аргументов поиска заявок у клиента включить атрибуты клиента из MAP в Config.pm?
Мне нужен поиск заявок клиентом по отделу. Компания используется в качестве CustomerID.
P.S. Замечено, что несмотря на отключение показа заявок компании ( пункта меню для показа нет), при поиске - отображаются все заявки компании, удовлетворяющие условию поиска. Видимо надо еще где-то подкрутить.
С уважением Юрий Колесников
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 тестовая
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Поиск в интерфейсе клиента
У нас есть модуль, который импортирует параметры клиенты из Map в динамические поля тикета. Далее - просто поиск по дин полям.
С уважением,
Алексей Юсов
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.3.1, ITSM 3.3.1, SUSE 12, MySQL5
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Поиск в интерфейсе клиента
Возник еще вопрос!
Можно ли ограничить поиск клиентом заявок - только его заявок?
Т.е. при обычном поиске, если клиент не указан - отображаются все заявки компании (CustomerID - компания клиента), удовлетворяющие критерию поиска и клиент может делать с ними, что хочет - писать ответы и т.д., что не есть хорошо!
Можно ли ограничить поиск клиентом заявок - только его заявок?
Т.е. при обычном поиске, если клиент не указан - отображаются все заявки компании (CustomerID - компания клиента), удовлетворяющие критерию поиска и клиент может делать с ними, что хочет - писать ответы и т.д., что не есть хорошо!
С уважением Юрий Колесников
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 тестовая
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Поиск в интерфейсе клиента
Надо подправить CustomerTicketSearch.pm
С уважением,
Алексей Юсов
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? Спросите меня как!
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Поиск в интерфейсе клиента
Спасибо, Алексей!
Посмотрел модуль, но, видимо моих представлений не хватает, чтобы идентифицировать место изменения.
Вижу раздел
и там
ну и
Больше CustomerID не встречается явно нигде. Да и здесь непонятно что править.
Если только убрать CustomerID из последнего набора считываемых параметров, но, не понимая синтаксиса, можно все "сдвинуть"
Посмотрел модуль, но, видимо моих представлений не хватает, чтобы идентифицировать место изменения.
Вижу раздел
Код: Выделить всё
# perform ticket search
Код: Выделить всё
CustomerUserID => $Self->{UserID},
Код: Выделить всё
# get search string params (get submitted params)
else {
for my $Key (
qw(TicketNumber From To Cc Subject Body CustomerID ResultForm TimeSearchType StateType
SearchInArchive
TicketCreateTimePointFormat TicketCreateTimePoint
TicketCreateTimePointStart
TicketCreateTimeStart TicketCreateTimeStartDay TicketCreateTimeStartMonth
TicketCreateTimeStartYear
TicketCreateTimeStop TicketCreateTimeStopDay TicketCreateTimeStopMonth
TicketCreateTimeStopYear
)
)
Если только убрать CustomerID из последнего набора считываемых параметров, но, не понимая синтаксиса, можно все "сдвинуть"
С уважением Юрий Колесников
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 тестовая
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Поиск в интерфейсе клиента
В Kernel/Modules/CustomerTicketSearch.pm добавить новый параметр NoCompanySearch
а в Kernel/System/TicketSearch.pm его обрабатывать
Код: Выделить всё
# perform ticket search
my @ViewableTicketIDs = $Self->{TicketObject}->TicketSearch(
Result => 'ARRAY',
SortBy => $Self->{SortBy},
OrderBy => $Self->{Order},
Limit => $Self->{SearchLimit},
CustomerUserID => $Self->{UserID},
NoCompanySearch => 1,
ConditionInline => $Self->{Config}->{ExtendedSearchCondition},
ContentSearchPrefix => '*',
ContentSearchSuffix => '*',
FullTextIndex => 1,
%GetParam,
%DynamicFieldSearchParameters,
);
Код: Выделить всё
# get all customer ids
$SQLExt .= ' AND (';
unless ( $Param{NoCompanySearch} ) {
my @CustomerIDs = $Self->{CustomerUserObject}->CustomerIDs(
User => $Param{CustomerUserID},
);
if (@CustomerIDs) {
my $Lower = '';
if ( !$Self->{DBObject}->GetDatabaseFunction('CaseInsensitive') ) {
$Lower = 'LOWER';
}
$SQLExt .= "$Lower(st.customer_id) IN (";
my $Exists = 0;
for (@CustomerIDs) {
if ($Exists) {
$SQLExt .= ', ';
}
else {
$Exists = 1;
}
$SQLExt .= "$Lower('" . $Self->{DBObject}->Quote($_) . "')";
}
$SQLExt .= ') OR ';
}
}
# get all own tickets
my $CustomerUserIDQuoted = $Self->{DBObject}->Quote( $Param{CustomerUserID} );
$SQLExt .= "st.customer_user_id = '$CustomerUserIDQuoted') ";
Последний раз редактировалось merkushov 22 май 2013, 09:45, всего редактировалось 2 раза.
Меркушов Виктор, perl программист
Re: Поиск в интерфейсе клиента
Большое спасибо, Виктор!
Завтра попробую.
Завтра попробую.
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
-
- OTRS Новобранец
- Сообщения: 56
- Зарегистрирован: 12 апр 2011, 17:51
- Откуда: UA, Kiev
- Контактная информация:
Re: Поиск в интерфейсе клиента
Добрый день.
Подскажите, пожалуйста, как в интерфейсе клиента в поиске добавить - выбирать по "Тип заявки"?
Пытался добавить блок из меню "приоритет" в /live/customer.pl?Action=CustomerTicketSearch
в /opt/otrs/Kernel/Output/HTML - но к сожалению не отображается.
В Frontend::Customer::Ticket::ViewSearch - функция например Ticket::Frontend::AgentTicketPriority###TicketType - отсутствует.
Спасибо.
ОТРС 3.0
Подскажите, пожалуйста, как в интерфейсе клиента в поиске добавить - выбирать по "Тип заявки"?
Пытался добавить блок из меню "приоритет" в /live/customer.pl?Action=CustomerTicketSearch
в /opt/otrs/Kernel/Output/HTML - но к сожалению не отображается.
В Frontend::Customer::Ticket::ViewSearch - функция например Ticket::Frontend::AgentTicketPriority###TicketType - отсутствует.
Спасибо.
ОТРС 3.0
С уважением,
Сергей
OTRS 3.0, ITSM 3.0.5, CentOS, PostgreSQL
Сергей
OTRS 3.0, ITSM 3.0.5, CentOS, PostgreSQL
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Поиск в интерфейсе клиента
Там будет немного изменений в Kernel/Modules/CustomerTicketSearch.pm и Kernel/Output/HTML/Standard/CustomerTicketSearch.dtlspartak писал(а):Подскажите, пожалуйста, как в интерфейсе клиента в поиске добавить - выбирать по "Тип заявки"?
Вам придётся самому в этом разобраться.
Меркушов Виктор, perl программист
-
- OTRS Новобранец
- Сообщения: 56
- Зарегистрирован: 12 апр 2011, 17:51
- Откуда: UA, Kiev
- Контактная информация:
Re: Поиск в интерфейсе клиента
Виктор,
я могу использовать блок c:
/opt/otrs/Kernel/Output/HTML/Standard/CustomerTicketMessage.dtl
и поместить его в Kernel/Output/HTML/Standard/CustomerTicketSearch.dtl
я могу использовать блок c:
/opt/otrs/Kernel/Output/HTML/Standard/CustomerTicketMessage.dtl
Код: Выделить всё
<!-- dtl:block:TicketType -->
<div>
<!--<label for="TicketNumber">$Config{"Ticket::Hook"}</label>
<input title="Ticket#" type="text" name="TicketNumber" size="30" value="$QData{"TicketNumber"}" />-->
<label for="TypeID" class="Mandatory">
<span class="Marker">*</span>
$Text{"Type"}:
</label>
$Data{"TypeStrg"}
<div id="TypeIDError" class="TooltipErrorMessage" ><p>$Text{"This field is required."}</p></div>
<div id="TypeIDServerError" class="TooltipErrorMessage NoJavaScriptMessage$QData{"TypeIDInvalid"}" ><p>$Text{"This field is required."}</p></div>
<div class="Clear"></div>
</div>
<!--dtl:js_on_document_complete-->
<script type="text/javascript">//<![CDATA[
$('#TypeID').bind('change', function (Event) {
// make sure the ticket is not yet created on queue change
$('input#Expand').val(1);
Core.Form.Validate.DisableValidation($(this).closest('form'));
$(this).closest('form').submit();
});
//]]></script>
<!--dtl:js_on_document_complete-->
<!-- dtl:block:TicketType -->
С уважением,
Сергей
OTRS 3.0, ITSM 3.0.5, CentOS, PostgreSQL
Сергей
OTRS 3.0, ITSM 3.0.5, CentOS, PostgreSQL
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Поиск в интерфейсе клиента
Хорошо.
А теперь нужно из Kernel/Modules/CustomerTicketMessage.pm перенести в Kernel/Modules/CustomerTicketSearch.pm логику заполнения данными (отрисовку) этого блока и обработку выбранного в форме значения для формирования правильного поискового запроса.
А теперь нужно из Kernel/Modules/CustomerTicketMessage.pm перенести в Kernel/Modules/CustomerTicketSearch.pm логику заполнения данными (отрисовку) этого блока и обработку выбранного в форме значения для формирования правильного поискового запроса.
Меркушов Виктор, perl программист
Re: Поиск в интерфейсе клиента
Получилось не завтра, но, главное, получилось!yuri0001 писал(а):Большое спасибо, Виктор!
Завтра попробую.
А потому, еще раз спасибо, Виктор! Работает
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5