Итак, друзья мои, обещанный
autocompete поля
"Вышестоящая организация" в купе с
autocomplete'ом поля
"id клиента", а также кнопочкой
"Добавить нового клиента от этой организации" при редактировании сведений о компании.
Для начала уберем излишний код. Из файла
Custom/Kernel/Modules/AdminCustomerCompany.pm удаляем следующие строки:
Код: Выделить всё
elsif ( $Entry->[0] =~ /^CustomerCompanyParent/i ) {
my $OptionRequired = '';
if ( $Entry->[4] ) {
$OptionRequired = 'Validate_Required';
}
$Block = 'Option';
$Param{Option} = $Self->{LayoutObject}->BuildSelection(
Data => { $Self->{CustomerCompanyObject}->CustomerCompanyList(), },
Name => $Entry->[0],
Class => $OptionRequired . ' ' .
( $Param{Errors}->{ $Entry->[0] . 'Invalid' } || '' ),
SelectedID => defined( $Param{ $Entry->[0] } ) ? $Param{ $Entry->[0] } : 1,
);
}
Данный код генерировал ниспадающий список полю
"Вышестоящая организация". Теперь он нам не нужен.
Далее на скрепке плагин, который необходимо установить. Распаковываем и через
"управление плагинами" панели администратора устанавливаем.
Данный плагин взят здесь:
http://complemento.net.br/en/products-p ... e-on-otrs/
Он рассчитан на OTRS версии 3.0.х и 3.1.х, поэтому если будете качать с сайта, то после необходимо открыть его в блокноте и добавить строчку:
после строк
Код: Выделить всё
<Framework>3.0.x</Framework>
<Framework>3.1.x</Framework>
Как я уже писал, данный плагин не рассчитан под OTRS 3.2.x, поэтому подправим его. Копируем файл
Kernel/Output/HTML/Standart/CustomerCompanyExtensions.dtl в
Custom/Kernel/Output/HTML/Standart/. В скопированном файле ищем строку:
Код: Выделить всё
$(".ActionList .Last").before('<li><a class="CallForAction" href="index.pl?Action=AdminCustomerUser;Source=CustomerUser;Subaction=AddAction;UserCustomerID='+$("input[name=CustomerCompanyID]").val()+'"><span>$QData{"ActionText"}</span></a></li>');
Заменяем на:
Код: Выделить всё
$(".ActionList .Last").before('<li><a class="CallForAction" href="index.pl?Action=AdminCustomerUser;Source=CustomerUser;Subaction=Add;UserCustomerID='+$("input[name=CustomerCompanyID]").val()+'"><span>$QData{"ActionText"}</span></a></li>');
Плагин добавляет кнопку для создания клиента на странице редактирования компании, но не русифицирует ее. Исправим и это. В файле
Kernel/Language/re_Custom.pm после строки
Вставляем строку
Код: Выделить всё
$Self->{Translation}->{'Add new Contact of this Company'} = 'Добавить нового клиента от этой организации';
Плохо то, что при нажатии на кнопку
"Добавить клиента от этой организации", в открывшейся странице автоматом не вбита организация. Возможно, покапавшись, в дальнейшем я это исправлю.
На данный момент у Вас добавилась вышеупомянутая кнопка и autocompete в поле
"id клиента" на странице создания/редактирования клиента.
Теперь добавим autocompete к полю
"Вышестоящая организация" на странице создания/редактирования компании. В том же файле ищем строки:
Код: Выделить всё
if(Core.Config.Get('Action')!="AdminCustomerCompany"){
startCompanySearch('UserCustomerID');
startCompanySearch('CustomerID');
};
Заменяем на
Код: Выделить всё
if(Core.Config.Get('Action')!="AdminCustomerCompany"){
startCompanySearch('UserCustomerID');
startCompanySearch('CustomerID');
} else if (Core.Config.Get('Action')=="AdminCustomerCompany") {
startCompanySearch('CustomerCompanyParent');
};
Готово!