- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integration/sender/gridpanel.php
- Класс: Bitrix\Crm\Integration\Sender\GridPanel
- Вызов: GridPanel::getActionAddLetter
static function getActionAddLetter(array $applyButton, $gridManagerID)
{
self::includeJsLibs();
if (!Sender\Integration\Bitrix24\Service::isMailingsAvailable())
{
Sender\Integration\Bitrix24\Service::initLicensePopup();
}
$id = 'sender_letter_add';
$letterTypes = array_map(
function ($message)
{
/** @var Sender\Message\iBase $message */
return ['NAME' => $message->getName(), 'VALUE' => $message->getCode()];
},
array_filter(
Sender\Message\Factory::getMailingMessages(),
function ($message)
{
/** @var Sender\Message\iBase $message */
return $message->getCode() !== Sender\Message\iBase::CODE_IM;
}
)
);
sort($letterTypes);
return [
'NAME' => Loc::getMessage('CRM_INTEGRATION_SENDER_GRID_PANEL_ACTION_LETTER_ADD'),
'VALUE' => $id,
'ONCHANGE' => [
[
'ACTION' => Grid\Panel\Actions::CREATE,
'DATA' => [
[
'TYPE' => Grid\Panel\Types::DROPDOWN,
'ID' => 'sender_letter_code',
'NAME' => 'SENDER_LETTER_CODE',
'ITEMS' => $letterTypes
],
[
'TYPE' => Grid\Panel\Types::HIDDEN,
'ID' => 'sender_letter_available_codes',
'NAME' => 'SENDER_LETTER_AVAILABLE_CODES',
'VALUE' => implode(',', Sender\Integration\Bitrix24\Service::getAvailableMailingCodes()),
],
[
'TYPE' => Grid\Panel\Types::HIDDEN,
'ID' => 'sender_path_to_letter_add',
'NAME' => 'SENDER_PATH_TO_LETTER_ADD',
'VALUE' => self::getPathToAddLetter(),
],
$applyButton
]
],
[
'ACTION' => Grid\Panel\Actions::CALLBACK,
'DATA' => [['JS' => "BX.CrmUIGridExtension.processActionChange('{$gridManagerID}', '{$id}')"]]
]
]
];
}