%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/mail.client.message.list/templates/.default/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/mail.client.message.list/templates/.default/template.php |
<?php use Bitrix\Main; use Bitrix\Main\Localization\Loc; if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); Main\UI\Extension::load('ui.buttons'); Main\UI\Extension::load('ui.buttons.icons'); Main\Page\Asset::getInstance()->addJS('/bitrix/components/bitrix/mail.client.message.list/templates/.default/user-interface-manager.js'); $bodyClass = $APPLICATION->getPageProperty('BodyClass', false); $APPLICATION->setPageProperty('BodyClass', trim(sprintf('%s %s', $bodyClass, 'pagetitle-toolbar-field-view pagetitle-mail-view'))); $filterOptions = [ 'FILTER_ID' => $arResult['FILTER_ID'], 'GRID_ID' => $arResult['GRID_ID'], 'ENABLE_LABEL' => true, 'FILTER' => $arResult['FILTER'], 'FILTER_PRESETS' => $arResult['FILTER_PRESETS'], 'RESET_TO_DEFAULT_MODE' => true, 'VALUE_REQUIRED' => true, ]; $unseenCount = 0; $mailboxMenu = array(); foreach ($arResult['MAILBOXES'] as $mailboxId => $item) { $unseenCount += $item['__unseen']; $mailboxMenu[] = array( 'text' => sprintf( '<span class="main-buttons-item-text">%s</span> %s', htmlspecialcharsbx($item['NAME']), sprintf('<span class="main-buttons-item-counter %s">%u</span>', $item['__unseen'] > 0 ? 'js-unseen-mailbox' : 'main-ui-hide', $item['__unseen'] ) ), 'dataset' => ['mailboxId' => $mailboxId, 'unseen' => $item['__unseen']], 'className' => $item['ID'] == $arResult['MAILBOX']['ID'] ? 'menu-popup-item-take' : 'dummy', 'href' => \CComponentEngine::makePathFromTemplate( $arParams['PATH_TO_MAIL_MSG_LIST'], array('id' => $item['ID']) ), ); } $addMailboxMenuItem = array( 'text' => Loc::getMessage('MAIL_CLIENT_MAILBOX_ADD'), 'className' => 'dummy', 'href' => \CComponentEngine::makePathFromTemplate( $arParams['PATH_TO_MAIL_CONFIG'], array('act' => '') ), ); $userMailboxesLimit = $arResult['MAX_ALLOWED_CONNECTED_MAILBOXES']; if ($userMailboxesLimit >= 0 && $arResult['USER_OWNED_MAILBOXES_COUNT'] >= $userMailboxesLimit) { if (\CModule::includeModule('bitrix24')) { \CBitrix24::initLicenseInfoPopupJS(); $licenseConnectedMailboxesInfo = Loc::getMessage('MAIL_MAILBOX_LICENSE_CONNECTED_MAILBOXES_LIMIT_BODY', array('#LIMIT#' => $userMailboxesLimit)); $addMailboxMenuItem = array( 'text' => '<div onclick="' . "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].showLicensePopup('connectedMailboxes')\">" . '<span class="mail-connect-lock-text">' . Loc::getMessage('MAIL_CLIENT_MAILBOX_ADD') . '</span>' . '<span class="mail-connect-lock-icon"></span>' . '</div>', 'className' => 'dummy', ); } } $mailboxMenu[] = array( 'delimiter' => true, ); $mailboxMenu[] = $addMailboxMenuItem; $configPath = \CHTTP::urlAddParams( \CComponentEngine::makePathFromTemplate( $arParams['PATH_TO_MAIL_CONFIG'], array('act' => 'edit') ), array('id' => $arResult['MAILBOX']['ID']) ); $createPath = \CHTTP::urlAddParams( $arParams['PATH_TO_MAIL_MSG_NEW'], array('id' => $arResult['MAILBOX']['ID']) ); $blacklistPath = \CHTTP::urlAddParams( $arParams['PATH_TO_MAIL_BLACKLIST'], array('IFRAME' => 'Y') ); $signaturePath = new Main\Web\Uri($arParams['PATH_TO_MAIL_SIGNATURES']); $signaturePath->addParams(['IFRAME' => 'Y']); $settingsMenu = [ [ 'text' => Loc::getMessage('MAIL_MESSAGE_LIST_SETTINGS_LINK'), 'className' => '', 'href' => htmlspecialcharsbx($configPath), 'disabled' => $USER->getId() != $arResult['MAILBOX']['USER_ID'] && !$USER->isAdmin() && !$USER->canDoOperation('bitrix24_config'), ], [ 'text' => Loc::getMessage('MAIL_MESSAGE_LIST_SIGNATURE_LINK'), 'href' => htmlspecialcharsbx($signaturePath->getLocator()), ], [ 'text' => Loc::getMessage('MAIL_MESSAGE_LIST_BLACKLIST_LINK'), 'className' => '', 'href' => htmlspecialcharsbx($blacklistPath), ], ]; $this->setViewTarget('mail-msg-counter'); ?> <? $isVisibleCounters = ($arResult['UNBIND'] > 0 || $arResult['UNSEEN'] > 0); ?> <div class="mail-msg-counter-title"> <span class="mail-msg-counter-name"><?=Loc::getMessage('MAIL_MESSAGE_LIST_COUNTERS_TITLE') ?>:</span> <span class="mail-msg-counter-container <?= $arResult['UNBIND'] == 0 ? 'main-ui-hide' : ''; ?>" data-role="unbindCounter" onclick="BX.Mail.Client.Message.List['<?=CUtil::JSEscape($component->getComponentId())?>'].onUnbindCounterClick()"> <span class="mail-msg-counter-inner" id="mail_msg_unbind_counter"> <span class="mail-msg-counter-number" data-role="unbind-counter-number"><?=intval($arResult['UNBIND']) ?></span> <span class="mail-msg-counter-text"><?=Loc::getMessage('MAIL_MESSAGE_LIST_COUNTERS_UNBIND') ?></span> </span> </span> <span class="mail-msg-counter-container <?= $arResult['UNSEEN'] == 0 ? 'main-ui-hide' : ''; ?>" data-role="unreadCounter" onclick="BX.Mail.Client.Message.List['<?=CUtil::JSEscape($component->getComponentId())?>'].onUnreadCounterClick()"> <span class="mail-msg-counter-inner" id="mail_msg_unseen_counter"> <span class="mail-msg-counter-number" data-role="unread-counter-number" style="color: #ad9050; "><?=intval($arResult['UNSEEN']) ?></span> <span class="mail-msg-counter-text"><?=Loc::getMessage('MAIL_MESSAGE_LIST_COUNTERS_UNSEEN') ?></span> </span> </span> <span class="mail-msg-counter-empty <?=($isVisibleCounters ? 'main-ui-hide' : '') ?>" data-role="emptyCountersTitle"> <?=Loc::getMessage('MAIL_MESSAGE_LIST_COUNTERS_EMPTY') ?> </span> </div> <? $this->endViewTarget(); if (SITE_TEMPLATE_ID == 'bitrix24') { $this->setViewTarget('inside_pagetitle'); ?> <div class="pagetitle-container mail-pagetitle-flexible-space"> <? $APPLICATION->includeComponent( 'bitrix:main.ui.filter', '', $filterOptions ); ?> <a class="ui-btn ui-btn-themes ui-btn-light-border ui-btn-dropdown" data-role="mailbox-current-title" data-mailbox-id="<?=intval($arResult['MAILBOX']['ID']) ?>"> <span style="display: inline-block; width: 100%; overflow: hidden; text-overflow: ellipsis; "> <?=($arResult['MAILBOX']['NAME']) ?> <i class="ui-btn-counter <?= $unseenCount > 0 ? '' : 'main-ui-hide'; ?>" data-role="unseen-total"><?=intval($unseenCount) ?></i> </span> </a> </div> <button class="ui-btn" type="button" style="display: none; "></button> <button class="ui-btn ui-btn-themes ui-btn-light-border ui-btn-icon-business" type="button" id="mail-msg-sync-button" style="min-width: 39px; min-width: var(--ui-btn-size-height); " onclick="BXMailMailbox.sync(this, BX('mail-msg-sync-stepper'), '<?= CUtil::jsEscape($arResult['GRID_ID']) ?>'); "></button> <div class="ui-btn ui-btn-themes ui-btn-light-border ui-btn-icon-setting" style="min-width: 39px; min-width: var(--ui-btn-size-height); " data-role="mail-list-settings-menu-popup-toggle"></div> <a class="ui-btn ui-btn-primary" href="<?=htmlspecialcharsbx($createPath) ?>" style="margin-right: 20px; overflow: hidden; text-overflow: ellipsis; "> <?=Loc::getMessage('MAIL_MESSAGE_NEW_BTN') ?> </a> <? $this->endViewTarget(); $this->setViewTarget('below_pagetitle'); ?> <div class="mail-msg-counter" id="mail-msg-counter-title"> <?=$APPLICATION->getViewContent('mail-msg-counter') ?> </div> <? if (!empty($arResult['MAILBOX']['LINK'])): ?> <div style="float: right; margin-right: 20px; "> <a class="ui-btn ui-btn-themes ui-btn-xs ui-btn-light-border ui-btn-round" style="text-transform: none; " href="<?=htmlspecialcharsbx($arResult['MAILBOX']['LINK']) ?>" target="_blank"><?=Loc::getMessage('MAIL_MESSAGE_LIST_LINK') ?></a> </div> <? endif ?> <? $this->endViewTarget(); } else { ?> <div style="display: flex; margin: 0 10px; "> <? $APPLICATION->includeComponent( 'bitrix:main.ui.filter', '', $filterOptions ); ?> </div> <div style="display: flex; margin: 0 10px; "> <a class="ui-btn ui-btn-light-border ui-btn-dropdown" data-role="mailbox-name-title" data-mailbox-id="<?= intval($arResult['MAILBOX']['ID']); ?>" onclick="BX.PopupMenu.show('mail-msg-list-mailbox-menu', this, <?=htmlspecialcharsbx(Main\Web\Json::encode($mailboxMenu)) ?>);"> <?=($arResult['MAILBOX']['NAME']) ?> <? if ($unseenCount > 0): ?> <i class="ui-btn-counter"><?=intval($unseenCount) ?></i> <? endif ?> </a> <button class="ui-btn" type="button" style="display: none; "></button> <button class="ui-btn ui-btn-light-border ui-btn-icon-business" type="button" id="mail-msg-sync-button" onclick="BXMailMailbox.sync(this, BX('mail-msg-sync-stepper'), '<?= CUtil::jsEscape($arResult['GRID_ID']) ?>'); "></button> <a class="ui-btn ui-btn-light-border ui-btn-icon-setting" href="<?=htmlspecialcharsbx($configPath) ?>"></a> <a class="ui-btn ui-btn-primary" href="<?=htmlspecialcharsbx($createPath) ?>" style="margin-right: 20px; "> <?=Loc::getMessage('MAIL_MESSAGE_NEW_BTN') ?> </a> </div> <? } $this->setViewTarget('mail-msg-counter-script'); ?> <script type="text/javascript"> BX('mail-msg-counter-title').innerHTML = '<?=\CUtil::jsEscape($APPLICATION->getViewContent('mail-msg-counter')) ?>'; </script> <? $this->endViewTarget(); addEventHandler('main', 'onAfterAjaxResponse', function () { global $APPLICATION; return $APPLICATION->getViewContent('mail-msg-counter-script'); }); if (Main\Loader::includeModule('pull')) { global $USER; \CPullWatch::add($USER->getId(), 'mail_mailbox_' . $arResult['MAILBOX']['ID']); } $showStepper = 0 == $arResult['MAILBOX']['SYNC_LOCK']; if ($arResult['MAILBOX']['SYNC_LOCK'] > 0) { $showStepper = time() - $arResult['MAILBOX']['SYNC_LOCK'] > 20; } \CJsCore::init(array('update_stepper')); ?> <div class="mail-msg-list-stepper-wrapper"> <div id="mail-msg-sync-stepper" class="main-stepper main-stepper-show" <? if (!$showStepper): ?> style=" display: none; "<? endif ?>> <div class="main-stepper-info"><?=Loc::getMessage('MAIL_CLIENT_MAILBOX_SYNC_BAR') ?></div> <div class="main-stepper-inner"> <div class="main-stepper-bar"> <div class="main-stepper-bar-line" style="width: 0%;"></div> </div> <div class="main-stepper-steps"></div> </div> </div> <?=Main\Update\Stepper::getHtml( array( 'mail' => array( 'Bitrix\Mail\Helper\MessageIndexStepper', 'Bitrix\Mail\Helper\ContactsStepper', 'Bitrix\Mail\Helper\MessageClosureStepper', ), ), Loc::getMessage('MAIL_CLIENT_MAILBOX_INDEX_BAR') ) ?> </div> <? $snippet = new Main\Grid\Panel\Snippet(); $actionPanelActionButtons = [ [ 'TYPE' => \Bitrix\Main\Grid\Panel\Types::BUTTON, 'ID' => $arResult['gridActionsData']['read']['id'], 'ICON' => $arResult['gridActionsData']['read']['icon'], 'TEXT' => '<span data-role="read-action">' . $arResult['gridActionsData']['read']['text'] . '</span>', 'ONCHANGE' => [ [ 'ACTION' => \Bitrix\Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onReadClick()", ], ], ], ], ], [ 'TYPE' => \Bitrix\Main\Grid\Panel\Types::BUTTON, 'ID' => $arResult['gridActionsData']['notRead']['id'], 'ICON' => $arResult['gridActionsData']['notRead']['icon'], 'TEXT' => '<span data-role="not-read-action">' . $arResult['gridActionsData']['notRead']['text'] . '</span>', 'ONCHANGE' => [ [ 'ACTION' => \Bitrix\Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onReadClick()", ], ], ], ], ], [ 'TYPE' => Main\Grid\Panel\Types::BUTTON, 'ID' => $arResult['gridActionsData']['delete']['id'], 'ICON' => $arResult['gridActionsData']['delete']['icon'], 'TEXT' => $arResult['gridActionsData']['delete']['text'], 'ONCHANGE' => [ [ 'ACTION' => Main\Grid\Panel\Actions::CALLBACK, 'CONFIRM' => true, 'CONFIRM_APPLY_BUTTON' => 'CONFIRM_APPLY_BUTTON', 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onDeleteClick()", ], ], ], ], ], [ 'TYPE' => Main\Grid\Panel\Types::BUTTON, 'ID' => $arResult['gridActionsData']['spam']['id'], 'ICON' => $arResult['gridActionsData']['spam']['icon'], 'TEXT' => '<span data-role="spam-action">' . $arResult['gridActionsData']['spam']['text'] . '</span>', 'ONCHANGE' => [ [ 'ACTION' => Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onSpamClick()", ], ], ], ], ], [ 'TYPE' => Main\Grid\Panel\Types::BUTTON, 'ICON' => $arResult['gridActionsData']['notSpam']['icon'], 'ID' => $arResult['gridActionsData']['notSpam']['id'], 'TEXT' => '<span data-role="not-spam-action">' . $arResult['gridActionsData']['notSpam']['text'] . '</span>', 'ONCHANGE' => [ [ 'ACTION' => Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onSpamClick()", ], ], ], ], ], [ 'TYPE' => Main\Grid\Panel\Types::DROPDOWN, 'ID' => $arResult['gridActionsData']['move']['id'], 'ICON' => $arResult['gridActionsData']['move']['icon'], 'TEXT' => $arResult['gridActionsData']['move']['text'], 'ITEMS' => $arResult['foldersItems'], ], [ 'TYPE' => Main\Grid\Panel\Types::BUTTON, 'ID' => $arResult['gridActionsData']['task']['id'], 'ICON' => $arResult['gridActionsData']['task']['icon'], 'TEXT' => $arResult['gridActionsData']['task']['text'], 'DISABLED' => true, 'ONCHANGE' => [ [ 'ACTION' => \Bitrix\Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onDisabledGroupActionClick()", ], ], ], ], ] ]; if ($arResult['userHasCrmActivityPermission']) { $actionPanelActionButtons = array_merge($actionPanelActionButtons, [ [ 'TYPE' => Main\Grid\Panel\Types::BUTTON, 'ID' => $arResult['gridActionsData']['addToCrm']['id'], 'ICON' => $arResult['gridActionsData']['addToCrm']['icon'], 'TEXT' => '<span data-role="crm-action">' . $arResult['gridActionsData']['addToCrm']['text'] . '</span>', 'DISABLED' => true, 'ONCHANGE' => [ [ 'ACTION' => \Bitrix\Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onDisabledGroupActionClick()", ], ], ], ], ], [ 'TYPE' => Main\Grid\Panel\Types::BUTTON, 'ICON' => $arResult['gridActionsData']['excludeFromCrm']['icon'], 'ID' => $arResult['gridActionsData']['excludeFromCrm']['id'], 'TEXT' => '<span data-role="not-crm-action">' . $arResult['gridActionsData']['excludeFromCrm']['text'] . '</span>', 'DISABLED' => true, 'ONCHANGE' => [ [ 'ACTION' => \Bitrix\Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onDisabledGroupActionClick()", ], ], ], ], ], ]); } $actionPanelActionButtons = array_merge($actionPanelActionButtons, [ [ 'TYPE' => Main\Grid\Panel\Types::BUTTON, 'ICON' => $arResult['gridActionsData']['liveFeed']['icon'], 'ID' => $arResult['gridActionsData']['liveFeed']['id'], 'TEXT' => $arResult['gridActionsData']['liveFeed']['text'], 'DISABLED' => true, 'ONCHANGE' => [ [ 'ACTION' => \Bitrix\Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onDisabledGroupActionClick()", ], ], ], ], ], [ 'TYPE' => Main\Grid\Panel\Types::BUTTON, 'ID' => $arResult['gridActionsData']['discuss']['id'], 'ICON' => $arResult['gridActionsData']['discuss']['icon'], 'TEXT' => $arResult['gridActionsData']['discuss']['text'], 'DISABLED' => true, 'ONCHANGE' => [ [ 'ACTION' => \Bitrix\Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onDisabledGroupActionClick()", ], ], ], ], ], [ 'TYPE' => Main\Grid\Panel\Types::BUTTON, 'ICON' => $arResult['gridActionsData']['event']['icon'], 'ID' => $arResult['gridActionsData']['event']['id'], 'TEXT' => $arResult['gridActionsData']['event']['text'], 'DISABLED' => true, 'ONCHANGE' => [ [ 'ACTION' => \Bitrix\Main\Grid\Panel\Actions::CALLBACK, 'DATA' => [ [ 'JS' => "BX.Mail.Client.Message.List['" . CUtil::JSEscape($component->getComponentId()) . "'].onDisabledGroupActionClick()", ], ], ], ], ], ]); ?> <div class="mail-msg-list-grid"> <? $APPLICATION->includeComponent( 'bitrix:main.ui.grid', '', array( 'GRID_ID' => $arResult['GRID_ID'], 'MESSAGES' => $arResult['MESSAGES'], 'AJAX_MODE' => 'Y', 'AJAX_OPTION_HISTORY' => 'N', 'AJAX_OPTION_JUMP' => 'N', 'AJAX_OPTION_STYLE' => 'N', 'TOP_ACTION_PANEL_RENDER_TO' => '.main-grid-header', 'SHOW_ACTION_PANEL' => false, 'TOP_ACTION_PANEL_PINNED_MODE' => true, 'HEADERS' => array( array('id' => 'ID', 'name' => 'ID', 'default' => false, 'editable' => false), array('id' => 'FROM', 'name' => Loc::getMessage('MAIL_MESSAGE_LIST_COLUMN_FROM'), 'default' => true, 'editable' => false), array('id' => 'SUBJECT', 'name' => Loc::getMessage('MAIL_MESSAGE_LIST_COLUMN_SUBJECT'), 'default' => true, 'editable' => false), array('id' => 'DATE', 'name' => Loc::getMessage('MAIL_MESSAGE_LIST_COLUMN_DATE'), 'default' => true, 'editable' => false), array('id' => 'BIND', 'name' => Loc::getMessage('MAIL_MESSAGE_LIST_COLUMN_BIND'), 'default' => true, 'editable' => false), ), 'ROWS' => $arResult['ROWS'], 'SHOW_GRID_SETTINGS_MENU' => false, 'ALLOW_COLUMNS_SORT' => false, 'ALLOW_ROWS_SORT' => false, 'SHOW_NAVIGATION_PANEL' => false, 'SHOW_MORE_BUTTON' => true, 'ENABLE_NEXT_PAGE' => !empty($arResult['ENABLE_NEXT_PAGE']), 'NAV_PARAM_NAME' => $arResult['NAV_OBJECT']->getId(), 'CURRENT_PAGE' => $arResult['NAV_OBJECT']->getCurrentPage(), 'ACTION_PANEL' => array( 'GROUPS' => array( array('ITEMS' => $actionPanelActionButtons), ), ), 'SHOW_CHECK_ALL_CHECKBOXES' => true, ) ); ?> </div> <script type="text/javascript"> BX.ready(function() { new BX.Mail.Client.Message.List({ id: '<?= CUtil::JSEscape($component->getComponentId())?>', gridId: '<?= CUtil::JSEscape($arResult['GRID_ID'])?>', mailboxId: <?= intval($arResult['MAILBOX']['ID']) ?>, taskViewUrlTemplate: '<?= CUtil::JSEscape($arResult['taskViewUrlTemplate']) ?>', taskViewUrlIdForReplacement: '<?= CUtil::JSEscape($arResult['taskViewUrlIdForReplacement']) ?>', mailboxMenu: <?= Main\Web\Json::encode($mailboxMenu) ?>, settingsMenu: <?= Main\Web\Json::encode($settingsMenu) ?>, canDelete: <?= CUtil::PhpToJSObject((bool)$arResult['trashDir']); ?>, canMarkSpam: <?= CUtil::PhpToJSObject((bool)$arResult['spamDir']); ?>, userHasCrmActivityPermission: <?= \CUtil::PhpToJSObject($arResult['userHasCrmActivityPermission'])?>, outcomeDir: '<?= CUtil::JSEscape($arResult['outcomeDir']) ?>', spamDir: '<?= CUtil::JSEscape($arResult['spamDir']) ?>', trashDir: '<?= CUtil::JSEscape($arResult['trashDir']) ?>', connectedMailboxesLicenseInfo: '<?= CUtil::JSEscape($licenseConnectedMailboxesInfo) ?>', ENTITY_TYPE_NO_BIND: '<?= CUtil::JSEscape(\Bitrix\Mail\Internals\MessageAccessTable::ENTITY_TYPE_NO_BIND) ?>', ENTITY_TYPE_CRM_ACTIVITY: '<?= CUtil::JSEscape(\Bitrix\Mail\Internals\MessageAccessTable::ENTITY_TYPE_CRM_ACTIVITY) ?>', ENTITY_TYPE_TASKS_TASK: '<?= CUtil::JSEscape(\Bitrix\Mail\Internals\MessageAccessTable::ENTITY_TYPE_TASKS_TASK) ?>', ERROR_CODE_CAN_NOT_MARK_SPAM: 'MAIL_CLIENT_SPAM_FOLDER_NOT_SELECTED_ERROR', ERROR_CODE_CAN_NOT_DELETE: 'MAIL_CLIENT_TRASH_FOLDER_NOT_SELECTED_ERROR' }); BX.message({ MAIL_MESSAGE_LIST_COLUMN_BIND_TASKS_TASK: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_COLUMN_BIND_TASKS_TASK')) ?>', MAIL_MESSAGE_LIST_COLUMN_BIND_CRM_ACTIVITY: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_COLUMN_BIND_CRM_ACTIVITY')) ?>', MAIL_CLIENT_AJAX_ERROR: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_AJAX_ERROR')) ?>', MAIL_MESSAGE_LIST_BTN_SEEN: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_BTN_SEEN')) ?>', MAIL_MESSAGE_LIST_BTN_UNSEEN: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_BTN_UNSEEN')) ?>', MAIL_MESSAGE_LIST_BTN_DELETE: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_BTN_DELETE')) ?>', MAIL_MESSAGE_LIST_BTN_NOT_SPAM: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_BTN_NOT_SPAM')) ?>', MAIL_MESSAGE_LIST_BTN_SPAM: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_BTN_SPAM')) ?>', MAIL_MESSAGE_LIST_CONFIRM_DELETE: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_CONFIRM_DELETE')) ?>', MAIL_MESSAGE_LIST_CONFIRM_DELETE_BTN: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_CONFIRM_DELETE_BTN')) ?>', MAIL_MESSAGE_LIST_CONFIRM_TITLE: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_CONFIRM_TITLE')) ?>', MAIL_MESSAGE_LIST_NOTIFY_ADDED_TO_CRM: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_NOTIFY_ADDED_TO_CRM')) ?>', MAIL_MESSAGE_LIST_NOTIFY_NOT_ADDED_TO_CRM: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_NOTIFY_NOT_ADDED_TO_CRM')) ?>', MAIL_MESSAGE_LIST_NOTIFY_EXCLUDED_FROM_CRM: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_NOTIFY_EXCLUDED_FROM_CRM')) ?>', MAIL_MESSAGE_LIST_NOTIFY_SUCCESS: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_NOTIFY_SUCCESS')) ?>', MAIL_MESSAGE_LIST_CONFIRM_CANCEL_BTN: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_LIST_CONFIRM_CANCEL_BTN')) ?>', MAIL_MAILBOX_LICENSE_CONNECTED_MAILBOXES_LIMIT_TITLE: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MAILBOX_LICENSE_CONNECTED_MAILBOXES_LIMIT_TITLE')) ?>', MAIL_MESSAGE_SYNC_BTN_HINT: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_SYNC_BTN_HINT')) ?>' }); var mailboxData = <?=Main\Web\Json::encode(array( 'ID' => $arResult['MAILBOX']['ID'], 'EMAIL' => $arResult['MAILBOX']['EMAIL'], 'NAME' => $arResult['MAILBOX']['NAME'], 'USERNAME' => $arResult['MAILBOX']['USERNAME'], 'SERVER' => $arResult['MAILBOX']['SERVER'], 'PORT' => $arResult['MAILBOX']['PORT'], 'USE_TLS' => $arResult['MAILBOX']['USE_TLS'], 'LOGIN' => $arResult['MAILBOX']['LOGIN'], 'LINK' => $arResult['MAILBOX']['LINK'], 'OPTIONS' => array( 'flags' => $arResult['MAILBOX']['OPTIONS']['flags'], 'imap' => $arResult['MAILBOX']['OPTIONS']['imap'], ), )) ?>; // this is to preserve dirs order mailboxData.OPTIONS.imap.dirs = <?=json_encode(array_combine( Main\Text\Encoding::convertEncoding(array_keys($arResult['MAILBOX']['OPTIONS']['imap']['dirs']), SITE_CHARSET, 'UTF-8'), Main\Text\Encoding::convertEncoding(array_values($arResult['MAILBOX']['OPTIONS']['imap']['dirs']), SITE_CHARSET, 'UTF-8') )) ?>; BXMailMailbox.init(mailboxData); BXMailMailbox.sync(BX('mail-msg-sync-button'), BX('mail-msg-sync-stepper'), '<?=\CUtil::jsEscape($arResult['GRID_ID']) ?>'); BX.PULL.extendWatch('mail_mailbox_<?=intval($arResult['MAILBOX']['ID']) ?>'); BX.addCustomEvent( 'onPullEvent-mail', function (command, params) { if ('mailbox_sync_status' == command) { if (<?=intval($arResult['MAILBOX']['ID']) ?> == params.id) { if (params.new > 0) { var gridInstance = BX.Main.gridManager.getInstanceById('<?=\CUtil::jsEscape($arResult['GRID_ID']) ?>'); if (gridInstance.getRows().getCountSelected() == 0) { gridInstance.reload(); } } BXMailMailbox.updateStepper(BX('mail-msg-sync-stepper'), params.complete, params.status); } } } ); BX.addCustomEvent( 'SidePanel.Slider:onMessage', function (event) { var grid = BX.Main.gridManager.getInstanceById('<?=\CUtil::jsEscape($arResult['GRID_ID']) ?>'); if (event.getEventId() == 'mail-mailbox-config-success') { if (event.data.id == <?=intval($arResult['MAILBOX']['ID']) ?>) { if (event.data.changed && event.data.changed.imap_dirs) { grid && grid.tableFade(); window.location.reload(); } else { grid && grid.reload(); } } else { window.location.href = '<?=\CUtil::jsEscape($arParams['PATH_TO_MAIL_MSG_LIST']) ?>'.replace('#id#', event.data.id); top.BX.SidePanel.Instance.closeAll(); } } else if (event.getEventId() == 'mail-mailbox-config-delete') { if (event.data.id == <?=intval($arResult['MAILBOX']['ID']) ?>) { window.location.href = '<?=\CUtil::jsEscape($arParams['PATH_TO_MAIL_HOME']) ?>'; } else { grid && grid.tableFade(); window.location.reload(); } } else if (event.getEventId() === 'mail-message-reload-grid') { grid && grid.reload(); } else if (event.getEventId() == 'mail-message-create-task') { BX.Mail.Client.Message.List['<?=\CUtil::jsEscape($component->getComponentId()) ?>'].onCreateTaskEvent(event); } } ); }); </script>