%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/mail.client.config/templates/.default/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/mail.client.config/templates/.default/edit.php |
<?php
use Bitrix\Main;
use Bitrix\Main\Localization\Loc;
use Bitrix\Mail\Helper\LicenseManager;
use Bitrix\Mail\Helper\MessageFolder;
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
if (\CModule::includeModule('bitrix24'))
{
\CBitrix24::initLicenseInfoPopupJS();
}
\Bitrix\Main\UI\Extension::load('ui.buttons');
\Bitrix\Main\Loader::includeModule('socialnetwork');
\CJsCore::init(array('socnetlogdest', 'popup', 'fx'));
$APPLICATION->setAdditionalCSS('/bitrix/components/bitrix/main.post.form/templates/.default/style.css');
$mailbox = $arParams['MAILBOX'];
$settings = $arParams['SERVICE'];
if (!empty($mailbox))
{
if (!is_array($mailbox['OPTIONS']))
{
$mailbox['OPTIONS'] = array();
}
$mailbox['OPTIONS']['flags'] = is_array($mailbox['OPTIONS']['flags'])
? array_values($mailbox['OPTIONS']['flags'])
: array();
if (!is_array($mailbox['OPTIONS']['imap']))
{
$mailbox['OPTIONS']['imap'] = array();
}
if (!is_array($mailbox['OPTIONS']['imap']['dirs']))
{
$mailbox['OPTIONS']['imap']['dirs'] = array();
}
$mailbox['OPTIONS']['imap']['disabled'] = is_array($mailbox['OPTIONS']['imap']['disabled'])
? array_values($mailbox['OPTIONS']['imap']['disabled'])
: array();
$mailbox['OPTIONS']['imap']['ignore'] = is_array($mailbox['OPTIONS']['imap']['ignore'])
? array_values($mailbox['OPTIONS']['imap']['ignore'])
: array();
$mailbox['OPTIONS']['imap'][MessageFolder::INCOME] = is_array($mailbox['OPTIONS']['imap'][MessageFolder::INCOME])
? array_values($mailbox['OPTIONS']['imap'][MessageFolder::INCOME])
: array();
$mailbox['OPTIONS']['imap'][MessageFolder::OUTCOME] = is_array($mailbox['OPTIONS']['imap'][MessageFolder::OUTCOME])
? array_values($mailbox['OPTIONS']['imap'][MessageFolder::OUTCOME])
: array();
$mailbox['OPTIONS']['imap'][MessageFolder::TRASH] = is_array($mailbox['OPTIONS']['imap'][MessageFolder::TRASH])
? array_values($mailbox['OPTIONS']['imap'][MessageFolder::TRASH])
: array();
$mailbox['OPTIONS']['imap'][MessageFolder::SPAM] = is_array($mailbox['OPTIONS']['imap'][MessageFolder::SPAM])
? array_values($mailbox['OPTIONS']['imap'][MessageFolder::SPAM])
: array();
}
$accessList = array();
$accessLast = array();
$accessSelected = array();
foreach ($arParams['ACCESS_LIST'] as $type => $list)
{
foreach ($list as $id => $item)
{
$accessList[$id] = $item;
$accessLast[$id] = $id;
$accessSelected[$id] = $type;
}
}
$crmQueueList = array();
$crmQueueLast = array();
$crmQueueSelected = array();
foreach ($arParams['CRM_QUEUE'] as $item)
{
$id = sprintf('U%u', $item['ID']);
$crmQueueList[$id] = array(
'id' => $id,
'entityId' => $item['ID'],
'name' => \CUser::formatName(\CSite::getNameFormat(), $item, true),
'avatar' => '',
'desc' => $item['WORK_POSITION'] ?: $item['PERSONAL_PROFESSION'] ?: ' '
);
$crmQueueLast[$id] = $id;
$crmQueueSelected[$id] = 'users';
}
$APPLICATION->includeComponent('bitrix:main.mail.confirm', '', array());
?>
<div class="mail-connect mail-connect-slider">
<form id="mail_connect_form" method="POST"
action="/bitrix/services/main/ajax.php?c=<?=rawurlencode($this->getComponent()->getName()) ?>&action=save&mode=class">
<?=bitrix_sessid_post() ?>
<input type="hidden" name="fields[site_id]" value="<?=SITE_ID ?>">
<input type="hidden" name="fields[service_id]" value="<?=$settings['id'] ?>">
<? if (!empty($mailbox)): ?>
<input type="hidden" name="fields[mailbox_id]" value="<?=$mailbox['ID'] ?>">
<input type="hidden" name="fields[pass_placeholder]" value="<?=htmlspecialcharsbx($arParams['PASSWORD_PLACEHOLDER']) ?>">
<? endif ?>
<? if (empty($settings['oauth'])): ?>
<div class="mail-connect-section-block">
<div class="mail-connect-img-block">
<? if ($settings['icon']): ?>
<img class="mail-connect-img" src="<?=$settings['icon'] ?>" alt="<?=htmlspecialcharsbx($settings['name']) ?>">
<? else: ?>
<span class="mail-connect-text <? if (strlen($settings['name']) > 10): ?> mail-connect-text-small"<? endif ?>">
<?=htmlspecialcharsbx($settings['name']) ?>
</span>
<? endif ?>
</div>
</div>
<?endif;?>
<? if (!empty($mailbox)): ?>
<div class="mail-connect-section-block">
<div class="mail-connect-mailbox-block">
<div class="mail-connect-mailbox-name"><?=htmlspecialcharsbx($mailbox['EMAIL'] ?: sprintf('#%u', $mailbox['ID'])) ?></div>
<div class="mail-connect-last-sync-wrapper">
<span class="mail-connect-last-sync-title">
<?= Loc::getMessage('MAIL_CLIENT_CONFIG_LAST_MAIL_CHECK_TITLE', ['#TIME_AGO#' => $arResult['LAST_MAIL_CHECK_DATE']]); ?>
</span>
<? $isSuccessSyncStatus = $arResult['LAST_MAIL_CHECK_STATUS']; ?>
<span class="mail-connect-last-sync-status mail-connect-last-sync-<?= $isSuccessSyncStatus ? 'success' : 'error'; ?>">
<?= Loc::getMessage('MAIL_CLIENT_CONFIG_LAST_MAIL_CHECK_' . ($isSuccessSyncStatus ? 'SUCCESS' : 'ERROR')); ?>
</span>
</div>
</div>
</div>
<? endif ?>
<div class="mail-connect-section-block">
<? if (!empty($settings['oauth'])): ?>
<input type="hidden" name="fields[email]" value="<?=htmlspecialcharsbx($mailbox['EMAIL']) ?>">
<input type="hidden" name="fields[oauth_uid]" value="<?=htmlspecialcharsbx($settings['oauth']->getStoredUid()) ?>">
<input type="hidden" id="mail_connect_mb_oauth_url_field"
value="<?=htmlspecialcharsbx($settings['oauth']->getUrl()) ?>">
<input type="hidden" name="fields[oauth_mode]" id="mail_connect_mb_oauth_field"
value="<?=(empty($settings['oauth_user']) ? 'N' : 'S') ?>">
<div class="mail-connect-inner">
<div class="mail-connect-img-block">
<? if ($settings['icon']): ?>
<img class="mail-connect-img" src="<?=$settings['icon'] ?>" alt="<?=htmlspecialcharsbx($settings['name']) ?>">
<? else: ?>
<span class="mail-connect-text <? if (strlen($settings['name']) > 10): ?> mail-connect-text-small"<? endif ?>">
<?=htmlspecialcharsbx($settings['name']) ?>
</span>
<? endif ?>
</div>
<button class="ui-btn ui-btn-primary" id="mail_connect_mb_oauth_btn" type="button"
<? if (!empty($settings['oauth_user'])): ?> style="display: none; "<? endif ?>><?=Loc::getMessage('MAIL_CLIENT_CONFIG_OAUTH_CONNECT') ?></button>
<div class="mail-connect-email-block" id="mail_connect_mb_oauth_status"
<? if (empty($settings['oauth_user'])): ?> style="display: none; "<? endif ?>>
<div class="mail-connect-email-inner">
<span class="mail-connect-email-img" id="mail_connect_mb_oauth_status_image"></span>
<a class="mail-connect-email-text" id="mail_connect_mb_oauth_status_email">
<? if (!empty($settings['oauth_user'])) echo htmlspecialcharsbx($settings['oauth_user']['email']); ?>
</a>
</div>
<button class="ui-btn ui-btn-md ui-btn-link ui-btn-no-caps mail-connect-email-btn-disable"
type="button" id="mail_connect_mb_oauth_cancel_btn"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_OAUTH_DISCONNECT') ?></button>
</div>
</div>
<? else: ?>
<div class="mail-connect-form-inner">
<? if (empty($mailbox['EMAIL'])): ?>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_email_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_MAILBOX_EMAIL') ?></label>
<input class="mail-connect-form-input" type="text" placeholder="info@example.com"
name="fields[email]" id="mail_connect_mb_email_field">
<div class="mail-connect-form-error"></div>
</div>
<?else:?>
<input type="hidden" name="fields[email]" value="<?=htmlspecialcharsbx($mailbox['EMAIL']) ?>">
<? endif ?>
<? if (empty($settings['server'])): ?>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_server_imap_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_SERVER') ?></label>
<input class="mail-connect-form-input" type="text" placeholder="imap.example.com"
name="fields[server_imap]" id="mail_connect_mb_server_imap_field"
<? if (!empty($mailbox)): ?> value="<?=htmlspecialcharsbx($mailbox['SERVER']) ?>" <? endif ?>>
<div class="mail-connect-form-error"></div>
</div>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_port_imap_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_PORT') ?></label>
<div class="mail-connect-form-item-inner">
<input class="mail-connect-form-input" type="text" placeholder="993"
name="fields[port_imap]" id="mail_connect_mb_port_imap_field"
<? if (!empty($mailbox)): ?> value="<?=htmlspecialcharsbx($mailbox['PORT']) ?>" <? endif ?>>
<div class="mail-connect-option-email">
<input class="mail-connect-form-input mail-connect-form-input-check" type="checkbox"
name="fields[ssl_imap]" id="mail_connect_mb_ssl_imap_field"
<? if (!empty($mailbox) && in_array($mailbox['USE_TLS'], array('Y', 'S'))): ?> value="<?=$mailbox['USE_TLS'] ?>" <? else: ?> value="Y" <? endif ?>
<? if (empty($mailbox) || in_array($mailbox['USE_TLS'], array('Y', 'S'))): ?> checked <? endif ?>>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_ssl_imap_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_SSL') ?></label>
</div>
</div>
<div class="mail-connect-form-error"></div>
</div>
<? endif ?>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_login_imap_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_LOGIN') ?></label>
<input class="mail-connect-form-input" type="text"
name="fields[login_imap]" id="mail_connect_mb_login_imap_field"
onchange="this['__filled'] = this.value.length > 0; "
<? if (!empty($mailbox)): ?> value="<?=htmlspecialcharsbx($mailbox['LOGIN']) ?>" disabled <? endif ?>>
<div class="mail-connect-form-error"></div>
</div>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_pass_imap_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_PASS') ?></label>
<input class="mail-connect-form-input" type="password" name="fields[pass_imap]" id="mail_connect_mb_pass_imap_field"
<? if (!empty($mailbox['PASSWORD'])): ?>
data-placeholder="<?=htmlspecialcharsbx($arParams['PASSWORD_PLACEHOLDER']) ?>"
onfocus="if (this.value == this.getAttribute('data-placeholder')) this.value = ''; "
onblur="if ('' == this.value) this.value = this.getAttribute('data-placeholder'); "
value="<?=htmlspecialcharsbx($arParams['PASSWORD_PLACEHOLDER']) ?>"
<? endif ?>>
<div class="mail-connect-form-error"></div>
</div>
</div>
<? endif ?>
</div>
<? $maxAgeLimit = LicenseManager::getSyncOldLimit(); ?>
<? if (empty($mailbox) && $maxAgeLimit != 0): ?>
<div class="mail-connect-section-block">
<div class="mail-connect-form-inner">
<input type="checkbox" class="mail-connect-form-input mail-connect-form-input-check" name="fields[mail_connect_import_messages]" value="Y" id="mail_connect_mb_import_messages" checked>
<? list($label1, $label2) = explode('#AGE#', Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_AGE'), 2); ?>
<label class="mail_connect_mb_import_messages_label" for="mail_connect_mb_import_messages"><?=$label1 ?></label>
<? $maxAgeDefault = $maxAgeLimit > 0 && $maxAgeLimit < 7 ? 1 : 7; ?>
<label class="mail-set-singleselect mail-set-singleselect-line" data-checked="mail_connect_mb_max_age_field_<?=$maxAgeDefault ?>">
<input id="mail_connect_mb_max_age_field_0" type="radio" name="fields[msg_max_age]" value="0">
<label for="mail_connect_mb_max_age_field_0"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_AGE_<?=$maxAgeDefault ?>') ?></label>
<div class="mail-set-singleselect-wrapper">
<? foreach ($maxAgeDefault < 7 ? array(1, 7, 30) : array(7, 30) as $value): ?>
<? $disabled = $maxAgeLimit >= 0 && $value > $maxAgeLimit; ?>
<input type="radio" name="fields[msg_max_age]" value="<?=$value ?>"
id="mail_connect_mb_max_age_field_<?=$value ?>"
<? if ($maxAgeDefault == $value): ?> checked<? endif ?>
<? if ($disabled): ?> disabled<? endif ?>>
<label for="mail_connect_mb_max_age_field_<?=$value ?>"
<? if ($disabled): ?>
class="mail-set-singleselect-option-disabled"
onclick="showLicenseInfoPopup('age'); "
<? endif ?>><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_AGE_' . $value) ?></label>
<? endforeach ?>
<input type="radio" name="fields[msg_max_age]" value="-1"
id="mail_connect_mb_max_age_field_i"
<? if ($maxAgeLimit >= 0): ?> disabled<? endif ?>>
<label for="mail_connect_mb_max_age_field_i"
<? if ($maxAgeLimit >= 0): ?>
class="mail-set-singleselect-option-disabled"
onclick="showLicenseInfoPopup('age'); "
<? endif ?>><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_AGE_I') ?></label>
</div>
</label>
<?=$label2 ?>
</div>
</div>
<? else: ?>
<div class="mail-connect-section-block">
<a class="mail-connect-dashed-switch" href="#" id="mail_connect_mb_imap_dirs_link"
><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_LINK') ?></a>
</div>
<? endif ?>
<div class="mail-connect-section-block">
<span class="mail-connect-dashed-switch"
onclick="this.style.display = 'none'; BX('mail_connect_mb_ext_params').style.display = ''; "
><?=Loc::getMessage('MAIL_CLIENT_CONFIG_EXT_SWITCH') ?></span>
<div id="mail_connect_mb_ext_params" style="display: none; ">
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_name_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_MAILBOX_NAME') ?></label>
<input class="mail-connect-form-input" type="text"
name="fields[name]" id="mail_connect_mb_name_field"
onchange="this['__filled'] = this.value.length > 0; "
<? if (!empty($mailbox)): ?> value="<?=htmlspecialcharsbx($mailbox['NAME']) ?>" <? endif ?>>
</div>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_sender_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_MAILBOX_USERNAME') ?></label>
<input class="mail-connect-form-input" type="text" name="fields[sender]" id="mail_connect_mb_sender_field"
<? if (!empty($mailbox)): ?> value="<?=htmlspecialcharsbx($mailbox['USERNAME']) ?>" <? endif ?>>
</div>
<? if (empty($settings['link'])): ?>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_link_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_MAILBOX_LINK') ?></label>
<input class="mail-connect-form-input" type="text" name="fields[link]" id="mail_connect_mb_link_field"
<? if (!empty($mailbox)): ?> value="<?=htmlspecialcharsbx($mailbox['LINK']) ?>" <? endif ?>>
<div class="mail-connect-form-error"></div>
</div>
<? endif ?>
</div>
</div>
<? if (!empty($arParams['IS_SMTP_AVAILABLE'])): ?>
<? $hasSmtpFields = empty($settings['smtp']['server']) || !$settings['smtp']['login'] || !$settings['smtp']['password'] || !empty($settings['oauth']); ?>
<div class="mail-connect-section-block">
<div class="mail-connect-title-block">
<div class="mail-connect-title"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_SMTP') ?></div>
</div>
<div class="<? if (empty($mailbox['__smtp']) || !$hasSmtpFields): ?>mail-connect-form-hidden-block<? endif ?>">
<? if (empty($mailbox['__smtp']) || !$hasSmtpFields): ?>
<div class="mail-connect-option-email">
<input class="mail-connect-form-input mail-connect-form-input-check" type="checkbox"
name="fields[use_smtp]" value="1" id="mail_connect_mb_server_smtp_switch"
<? if (empty($mailbox)): ?> checked <? endif ?>
<? if (!empty($mailbox['__smtp'])): ?> checked disabled <? endif ?>
onchange="BX('mail_connect_mb_server_smtp_form').style.display = this.checked ? '' : 'none'; ">
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_server_smtp_switch"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_SMTP_ACTIVE') ?></label>
</div>
<? else: ?>
<input type="hidden" name="fields[use_smtp]" value="1">
<? endif ?>
<div class="mail-connect-form-inner" id="mail_connect_mb_server_smtp_form"
<? if (!empty($mailbox) && empty($mailbox['__smtp'])): ?> style="display: none; " <? endif ?>>
<? if ($hasSmtpFields): ?>
<div class="mail-connect-warning-block">
<div class="mail-connect-warning-text"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_SMTP_WARNING') ?></div>
</div>
<? endif ?>
<? if (empty($settings['smtp']['server'])): ?>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_server_smtp_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_SMTP_SERVER') ?></label>
<div class="mail-connect-form-item-server-port">
<input class="mail-connect-form-input mail-connect-form-input-server" type="text" placeholder="smtp.example.com"
name="fields[server_smtp]" id="mail_connect_mb_server_smtp_field"
<? if (!empty($mailbox['__smtp'])): ?> value="<?=htmlspecialcharsbx($mailbox['__smtp']['server']) ?>" <? endif ?>>
<input class="mail-connect-form-input mail-connect-form-input-port" type="text"
name="fields[port_smtp]" id="mail_connect_mb_port_smtp_field"
<? if (!empty($mailbox['__smtp'])): ?> value="<?=htmlspecialcharsbx($mailbox['__smtp']['port']) ?>" <? endif ?>>
</div>
<div class="mail-connect-form-error"></div>
</div>
<? endif ?>
<? if (!$settings['smtp']['login']): ?>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_login_smtp_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_SMTP_LOGIN') ?></label>
<input class="mail-connect-form-input" type="text"
name="fields[login_smtp]" id="mail_connect_mb_login_smtp_field"
onchange="this['__filled'] = this.value.length > 0; "
<? if (!empty($mailbox['__smtp'])): ?> value="<?=htmlspecialcharsbx($mailbox['__smtp']['login']) ?>" <? endif ?>>
<div class="mail-connect-form-error"></div>
</div>
<? endif ?>
<? if (!$settings['smtp']['password'] || !empty($settings['oauth'])): ?>
<div class="mail-connect-form-item">
<label class="mail-connect-form-label" for="mail_connect_mb_pass_smtp_field"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_SMTP_PASS') ?></label>
<input class="mail-connect-form-input" type="password"
name="fields[pass_smtp]" id="mail_connect_mb_pass_smtp_field"
onchange="this['__filled'] = this.value.length > 0; "
<? if (!empty($mailbox['__smtp'])): ?>
data-placeholder="<?=htmlspecialcharsbx($arParams['PASSWORD_PLACEHOLDER']) ?>"
onfocus="if (this.value == this.getAttribute('data-placeholder')) this.value = ''; "
onblur="if ('' == this.value) this.value = this.getAttribute('data-placeholder'); "
value="<?=htmlspecialcharsbx($arParams['PASSWORD_PLACEHOLDER']) ?>"
<? endif ?>>
<div class="mail-connect-form-error"></div>
</div>
<? endif ?>
</div>
</div>
</div>
<? endif ?>
<? if ($arParams['CRM_AVAILABLE']): ?>
<div class="mail-connect-section-block">
<div class="mail-connect-title-block">
<div class="mail-connect-title"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_CRM') ?></div>
</div>
<div class="mail-connect-form-hidden-block">
<div class="mail-connect-option-email">
<input class="mail-connect-form-input mail-connect-form-input-check" type="checkbox"
name="fields[use_crm]" value="Y" id="mail_connect_mb_crm_switch"
onchange="BX('mail_connect_mb_crm_form').style.display = this.checked ? '' : 'none'; "
<? if (empty($mailbox) || !empty($mailbox['__crm'])): ?> checked <? endif ?>>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_switch"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_ACTIVE') ?></label>
</div>
<div class="mail-connect-form-inner" id="mail_connect_mb_crm_form"
<? if (!empty($mailbox) && empty($mailbox['__crm'])): ?> style="display: none; " <? endif ?>>
<? if (empty($mailbox)): ?>
<div class="mail-connect-option-email mail-connect-form-check-hidden">
<? list($label1, $label2) = explode('#AGE#', Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_AGE'), 2); ?>
<input class="mail-connect-form-input mail-connect-form-input-check" type="checkbox"
name="fields[crm_sync_old]" value="Y" id="mail_connect_mb_crm_sync_old"
<? if (empty($mailbox)): ?> checked <? endif ?>>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_sync_old">
<?=$label1 ?>
</label>
<label class="mail-set-singleselect mail-set-singleselect-line" data-checked="mail_connect_mb_crm_max_age_field_7">
<input id="mail_connect_mb_crm_max_age_field_0" type="radio" name="fields[crm_max_age]" value="0">
<label for="mail_connect_mb_crm_max_age_field_0"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_AGE_7') ?></label>
<div class="mail-set-singleselect-wrapper">
<? foreach (array(7, 30) as $value): ?>
<input type="radio" name="fields[crm_max_age]" value="<?=$value ?>"
id="mail_connect_mb_crm_max_age_field_<?=$value ?>"
<? if (7 == $value): ?> checked <? endif ?>>
<label for="mail_connect_mb_crm_max_age_field_<?=$value ?>"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_AGE_' . $value) ?></label>
<? endforeach ?>
<input type="radio" name="fields[crm_max_age]" value="-1" id="mail_connect_mb_crm_max_age_field_i">
<label for="mail_connect_mb_crm_max_age_field_i"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_AGE_I') ?></label>
</div>
</label>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_sync_old">
<?=$label2 ?>
</label>
</div>
<? endif ?>
<div class="mail-connect-option-email mail-connect-form-check-hidden">
<input class="mail-connect-form-input mail-connect-form-input-check" type="checkbox"
name="fields[crm_public]" value="Y" id="mail_connect_mb_crm_public"
<? if (!empty($mailbox) && in_array('crm_public_bind', $mailbox['OPTIONS']['flags'])): ?> checked <? endif ?>>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_public">
<?=Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_PUBLIC') ?>
</label>
</div>
<div class="mail-connect-option-email mail-connect-form-check-hidden">
<? list($label1, $label2) = explode('#ENTITY#', Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_NEW_ENTITY_IN'), 2); ?>
<input class="mail-connect-form-input mail-connect-form-input-check" type="checkbox"
name="fields[crm_allow_entity_in]" value="Y" id="mail_connect_mb_crm_allow_entity_in"
<? if (empty($mailbox) || !array_intersect(array('crm_deny_new_lead', 'crm_deny_entity_in'), $mailbox['OPTIONS']['flags'])): ?> checked <? endif ?>>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_allow_entity_in">
<?=$label1 ?>
</label>
<label class="mail-set-singleselect mail-set-singleselect-line" data-checked="mail_connect_mb_crm_entity_in_<?=htmlspecialcharsbx($arParams['DEFAULT_NEW_ENTITY_IN']) ?>">
<input id="mail_connect_mb_crm_entity_in_0" type="radio" name="fields[crm_entity_in]" value="0">
<label for="mail_connect_mb_crm_entity_in_0"><?=htmlspecialcharsbx($arParams['NEW_ENTITY_LIST'][$arParams['DEFAULT_NEW_ENTITY_IN']]) ?></label>
<div class="mail-set-singleselect-wrapper">
<? foreach ($arParams['NEW_ENTITY_LIST'] as $value => $title): ?>
<input type="radio" name="fields[crm_entity_in]" value="<?=htmlspecialcharsbx($value) ?>"
id="mail_connect_mb_crm_entity_in_<?=htmlspecialcharsbx($value) ?>"
<? if ($value == $arParams['DEFAULT_NEW_ENTITY_IN']): ?> checked <? endif ?>>
<label for="mail_connect_mb_crm_entity_in_<?=htmlspecialcharsbx($value) ?>"><?=htmlspecialcharsbx($title) ?></label>
<? endforeach ?>
</div>
</label>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_allow_entity_in">
<?=$label2 ?>
</label>
</div>
<div class="mail-connect-option-email mail-connect-form-check-hidden">
<? list($label1, $label2) = explode('#ENTITY#', Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_NEW_ENTITY_OUT'), 2); ?>
<input class="mail-connect-form-input mail-connect-form-input-check" type="checkbox"
name="fields[crm_allow_entity_out]" value="Y" id="mail_connect_mb_crm_allow_entity_out"
<? if (empty($mailbox) || !array_intersect(array('crm_deny_new_lead', 'crm_deny_entity_out'), $mailbox['OPTIONS']['flags'])): ?> checked <? endif ?>>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_allow_entity_out">
<?=$label1 ?>
</label>
<label class="mail-set-singleselect mail-set-singleselect-line" data-checked="mail_connect_mb_crm_entity_out_<?=htmlspecialcharsbx($arParams['DEFAULT_NEW_ENTITY_OUT']) ?>">
<input id="mail_connect_mb_crm_entity_out_0" type="radio" name="fields[crm_entity_out]" value="0">
<label for="mail_connect_mb_crm_entity_out_0"><?=htmlspecialcharsbx($arParams['NEW_ENTITY_LIST'][$arParams['DEFAULT_NEW_ENTITY_IN']]) ?></label>
<div class="mail-set-singleselect-wrapper">
<? foreach ($arParams['NEW_ENTITY_LIST'] as $value => $title): ?>
<input type="radio" name="fields[crm_entity_out]" value="<?=htmlspecialcharsbx($value) ?>"
id="mail_connect_mb_crm_entity_out_<?=htmlspecialcharsbx($value) ?>"
<? if ($value == $arParams['DEFAULT_NEW_ENTITY_OUT']): ?> checked <? endif ?>>
<label for="mail_connect_mb_crm_entity_out_<?=htmlspecialcharsbx($value) ?>"><?=htmlspecialcharsbx($title) ?></label>
<? endforeach ?>
</div>
</label>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_allow_entity_out">
<?=$label2 ?>
</label>
</div>
<div class="mail-connect-option-email mail-connect-form-check-hidden">
<input class="mail-connect-form-input mail-connect-form-input-check" type="checkbox"
name="fields[crm_vcf]" value="Y" id="mail_connect_mb_crm_vcf"
<? if (empty($mailbox) || !in_array('crm_deny_new_contact', $mailbox['OPTIONS']['flags'])): ?> checked <? endif ?>>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_vcf">
<?=Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_VCF') ?>
</label>
</div>
<div class="mail-connect-option-email mail-connect-form-check-hidden">
<? list($label1, $label2) = explode('#SOURCE#', Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_LEAD_SOURCE'), 2); ?>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_lead_source">
<?=$label1 ?>
</label>
<label class="mail-set-singleselect mail-set-singleselect-line" data-checked="mail_connect_mb_crm_lead_source_<?=htmlspecialcharsbx($arParams['DEFAULT_LEAD_SOURCE']) ?>">
<input id="mail_connect_mb_crm_lead_source_0" type="radio" name="fields[crm_lead_source]" value="0">
<label for="mail_connect_mb_crm_lead_source_0"><?=htmlspecialcharsbx($arParams['LEAD_SOURCE_LIST'][$arParams['DEFAULT_LEAD_SOURCE']]) ?></label>
<div class="mail-set-singleselect-wrapper">
<? foreach ($arParams['LEAD_SOURCE_LIST'] as $value => $title): ?>
<input type="radio" name="fields[crm_lead_source]" value="<?=htmlspecialcharsbx($value) ?>"
id="mail_connect_mb_crm_lead_source_<?=htmlspecialcharsbx($value) ?>"
<? if ($value == $arParams['DEFAULT_LEAD_SOURCE']): ?> checked <? endif ?>>
<label for="mail_connect_mb_crm_lead_source_<?=htmlspecialcharsbx($value) ?>"><?=htmlspecialcharsbx($title) ?></label>
<? endforeach ?>
</div>
</label>
<label class="mail-connect-form-label mail-connect-form-label-check" for="mail_connect_mb_crm_lead_source">
<?=$label2 ?>
</label>
</div>
<div class="mail-connect-option-email mail-connect-form-check-hidden">
<? list($label1, $label2) = explode('#LIST#', Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_NEW_LEAD_ALLWAYS'), 2); ?>
<label class="mail-connect-form-label mail-connect-form-label-check">
<?=$label1 ?>
</label>
<span class="mail-set-textarea-show <? if (!empty($arParams['NEW_LEAD_FOR'])): ?> mail-set-textarea-show-open<? endif ?>"
id="mail_connect_mb_crm_new_lead_for_link"
><?=Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_NEW_LEAD_ALLWAYS_LIST') ?></span>
<label class="mail-connect-form-label mail-connect-form-label-check">
<?=$label2 ?>
</label>
</div>
<div class="mail-connect-form-textarea-block" id="mail_connect_mb_crm_new_lead_for"
<? if (empty($arParams['NEW_LEAD_FOR'])): ?> style="display: none; " <? endif ?>>
<textarea class="mail-connect-form-textarea" name="fields[crm_new_lead_for]"
placeholder="<?=Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_NEW_LEAD_FOR_PROMPT') ?>"><?
echo join(', ', (array) $arParams['NEW_LEAD_FOR']);
?></textarea>
</div>
<div class="mail-connect-option-email mail-connect-form-check-hidden">
<label class="mail-connect-form-label mail-connect-form-label-check">
<?=Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_QUEUE') ?>
</label>
<div class="mail-connect-access-user-block" id="mail_connect_mb_crm_queue_container">
<span id="mail_connect_mb_crm_queue_item"></span>
<span class="feed-add-destination-input-box" id="mail_connect_mb_crm_queue_input_box" style="display: none; ">
<input type="text" class="feed-add-destination-inp" id="mail_connect_mb_crm_queue_input">
</span>
<a href="javascript:void(0)" class="mail-connect-access-user-add" id="mail_connect_mb_crm_queue_tag"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_QUEUE_ADD') ?></a>
</div>
</div>
</div>
</div>
</div>
<? endif ?>
<div class="mail-connect-section-block">
<div class="mail-connect-title-block">
<div class="mail-connect-title"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_ACCESS') ?></div>
</div>
<div class="mail-connect-notice-block">
<div class="mail-connect-notice-text">
<?=Loc::getMessage('MAIL_CLIENT_CONFIG_ACCESS_HINT') ?>
<!--span class="mail-connect-notice-more"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_ACCESS_MORE') ?></span-->
</div>
</div>
<div class="mail-connect-access-user-block" id="mail_connect_mb_access_container">
<span id="mail_connect_mb_access_item"></span>
<span class="feed-add-destination-input-box" id="mail_connect_mb_access_input_box" style="display: none; ">
<input type="text" class="feed-add-destination-inp" id="mail_connect_mb_access_input">
</span>
<a href="javascript:void(0)" class="mail-connect-access-user-add" id="mail_connect_mb_access_tag"
data-forbidden-to-share="<?= CUtil::JSEscape($arResult['FORBIDDEN_TO_SHARE_MAILBOX']); ?>">
<?=Loc::getMessage('MAIL_CLIENT_CONFIG_ACCESS_ADD') ?>
</a>
<? if ($arResult['FORBIDDEN_TO_SHARE_MAILBOX']): ?>
<span class="mail-connect-lock-icon"></span>
<? endif ?>
</div>
</div>
<div class="mail-connect-footer mail-connect-footer-fixed">
<div class="main-connect-form-error" id="mail_connect_form_error"></div>
<div class="mail-connect-footer-container">
<button class="ui-btn ui-btn-md ui-btn-success ui-btn-success mail-connect-btn-connect"
type="submit" id="mail_connect_save_btn"><?=Loc::getMessage(empty($mailbox) ? 'MAIL_CLIENT_CONFIG_BTN_CONNECT' : 'MAIL_CLIENT_CONFIG_BTN_SAVE') ?></button>
<? if (!empty($mailbox)): ?>
<button class="ui-btn ui-btn-md ui-btn ui-btn-danger mail-connect-btn-disconnect"
type="button" id="mail_connect_disconnect_btn"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_BTN_DISCONNECT') ?></button>
<? endif ?>
<button class="ui-btn ui-btn-md ui-btn-link mail-connect-btn-cancel"
type="reset" id="mail_connect_cancel_btn"><?=Loc::getMessage('MAIL_CLIENT_CONFIG_BTN_CANCEL') ?></button>
</div>
</div>
</form>
</div>
<script type="text/javascript">
BX.message({
'MAIL_CLIENT_CONFIG_IMAP_DIRS_TITLE': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_TITLE')) ?>',
'MAIL_CLIENT_CONFIG_IMAP_DIRS_SYNC': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_SYNC')) ?>',
'MAIL_CLIENT_CONFIG_IMAP_DIRS_FOR': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_FOR')) ?>',
'MAIL_CLIENT_CONFIG_IMAP_DIRS_OUTCOME': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_OUTCOME')) ?>',
'MAIL_CLIENT_CONFIG_IMAP_DIRS_TRASH': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_TRASH')) ?>',
'MAIL_CLIENT_CONFIG_IMAP_DIRS_SPAM': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_SPAM')) ?>',
'MAIL_CLIENT_CONFIG_IMAP_DIRS_EMPTY_DEFAULT': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_EMPTY_DEFAULT')) ?>',
'MAIL_CLIENT_CONFIG_IMAP_DIRS_BTN_SAVE': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_BTN_SAVE')) ?>',
'MAIL_CLIENT_CONFIG_IMAP_DIRS_BTN_CANCEL': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_DIRS_BTN_CANCEL')) ?>',
'MAIL_MAILBOX_LICENSE_SHARED_LIMIT_BODY': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MAILBOX_LICENSE_SHARED_LIMIT_BODY', array('#LIMIT#' => LicenseManager::getSharedMailboxesLimit()))) ?>',
'MAIL_MAILBOX_LICENSE_SHARED_LIMIT_TITLE': '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MAILBOX_LICENSE_SHARED_LIMIT_TITLE')) ?>'
});
BX.SocNetLogDestination.init({
name : 'mail_connect_mb_access_selector',
searchInput : BX('mail_connect_mb_access_input'),
departmentSelectDisable : true,
extranetUser : false,
allowAddSocNetGroup: false,
bindMainPopup : {
node : BX('mail_connect_mb_access_container'),
offsetTop : '5px',
offsetLeft: '15px'
},
bindSearchPopup : {
node : BX('mail_connect_mb_access_container'),
offsetTop : '5px',
offsetLeft: '15px'
},
callback : {
select : function(item, type, search, undeleted)
{
BX.SocNetLogDestination.BXfpSelectCallback({
item: item,
type: type,
varName: 'fields[access]',
bUndeleted: undeleted,
containerInput: BX('mail_connect_mb_access_item'),
valueInput: BX('mail_connect_mb_access_input'),
formName: 'mail_connect_mb_access_selector',
tagInputName: 'mail_connect_mb_access_tag',
tagLink1: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_ACCESS_ADD')) ?>',
tagLink2: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_ACCESS_ADD')) ?>'
});
},
unSelect : BX.delegate(BX.SocNetLogDestination.BXfpUnSelectCallback, {
formName: 'mail_connect_mb_access_selector',
inputContainerName: 'mail_connect_mb_access_item',
inputName: 'mail_connect_mb_access_input',
tagInputName: 'mail_connect_mb_access_tag',
tagLink1: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_ACCESS_ADD')) ?>',
tagLink2: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_ACCESS_ADD')) ?>',
undeleteClassName: 'feed-add-post-destination-undelete'
}),
openDialog : BX.delegate(BX.SocNetLogDestination.BXfpOpenDialogCallback, {
inputBoxName: 'mail_connect_mb_access_input_box',
inputName: 'mail_connect_mb_access_input',
tagInputName: 'mail_connect_mb_access_tag'
}),
closeDialog : BX.delegate(BX.SocNetLogDestination.BXfpCloseDialogCallback, {
inputBoxName: 'mail_connect_mb_access_input_box',
inputName: 'mail_connect_mb_access_input',
tagInputName: 'mail_connect_mb_access_tag'
}),
openSearch : BX.delegate(BX.SocNetLogDestination.BXfpOpenDialogCallback, {
inputBoxName: 'mail_connect_mb_access_input_box',
inputName: 'mail_connect_mb_access_input',
tagInputName: 'mail_connect_mb_access_tag'
})
},
items : {
users : <?=CUtil::phpToJSObject($accessList) ?>,
groups : {},
sonetgroups : {},
department : <?=CUtil::phpToJSObject($arParams['COMPANY_STRUCTURE']['department']) ?>,
departmentRelation : <?=CUtil::phpToJSObject($arParams['COMPANY_STRUCTURE']['department_relation']) ?>
},
itemsLast : {
users : <?=CUtil::phpToJSObject($accessLast) ?>,
sonetgroups : {},
department : {},
groups : {}
},
itemsSelected: <?=CUtil::phpToJSObject($accessSelected) ?>,
itemsSelectedUndeleted: <?=\CUtil::phpToJsObject(array(sprintf('U%u', empty($mailbox) ? $USER->getId() : $mailbox['USER_ID']))) ?>,
destSort: {}
});
BX.bind(
BX('mail_connect_mb_access_input'),
'keydown',
BX.delegate(
BX.SocNetLogDestination.BXfpSearchBefore,
{
formName: 'mail_connect_mb_access_selector',
inputName: 'mail_connect_mb_access_input'
}
)
);
BX.bind(
BX('mail_connect_mb_access_input'),
'keyup',
BX.delegate(
BX.SocNetLogDestination.BXfpSearch,
{
formName: 'mail_connect_mb_access_selector',
inputName: 'mail_connect_mb_access_input',
tagInputName: 'mail_connect_mb_access_tag'
}
)
);
BX.bind(
BX('mail_connect_mb_access_input'),
'paste',
BX.delegate(
BX.SocNetLogDestination.BXfpSearchBefore,
{
formName: 'mail_connect_mb_access_selector',
inputName: 'mail_connect_mb_access_input'
}
)
);
BX.bind(
BX('mail_connect_mb_access_input'),
'paste',
BX.defer(
BX.SocNetLogDestination.BXfpSearch,
{
formName: 'mail_connect_mb_access_selector',
inputName: 'mail_connect_mb_access_input',
tagInputName: 'mail_connect_mb_access_tag',
onPasteEvent: true
}
)
);
var openAccessSelector = function (e)
{
e.preventDefault();
e.stopPropagation();
var limitInfo = BX('mail_connect_mb_access_tag').dataset;
if (limitInfo && limitInfo.forbiddenToShare == 1)
{
B24.licenseInfoPopup.show(
'mail-shared-mailbox-limit',
BX.message('MAIL_MAILBOX_LICENSE_SHARED_LIMIT_TITLE'),
BX.message('MAIL_MAILBOX_LICENSE_SHARED_LIMIT_BODY')
);
return;
}
BX.SocNetLogDestination.openDialog('mail_connect_mb_access_selector');
};
BX.bind(
BX('mail_connect_mb_access_tag'),
'click',
openAccessSelector
);
BX.bind(
BX('mail_connect_mb_access_container'),
'click',
openAccessSelector
);
BX.SocNetLogDestination.init({
name : 'mail_connect_mb_crm_queue_selector',
searchInput : BX('mail_connect_mb_crm_queue_input'),
departmentSelectDisable : true,
extranetUser : false,
allowAddSocNetGroup: false,
bindMainPopup : {
node : BX('mail_connect_mb_crm_queue_container'),
offsetTop : '5px',
offsetLeft: '15px'
},
bindSearchPopup : {
node : BX('mail_connect_mb_crm_queue_container'),
offsetTop : '5px',
offsetLeft: '15px'
},
callback : {
select : function(item, type, search)
{
BX.SocNetLogDestination.BXfpSelectCallback({
item: item,
type: type,
varName: 'fields[crm_queue]',
bUndeleted: false,
containerInput: BX('mail_connect_mb_crm_queue_item'),
valueInput: BX('mail_connect_mb_crm_queue_input'),
formName: 'mail_connect_mb_crm_queue_selector',
tagInputName: 'mail_connect_mb_crm_queue_tag',
tagLink1: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_QUEUE_ADD')) ?>',
tagLink2: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_QUEUE_ADD')) ?>'
});
},
unSelect : BX.delegate(BX.SocNetLogDestination.BXfpUnSelectCallback, {
formName: 'mail_connect_mb_crm_queue_selector',
inputContainerName: 'mail_connect_mb_crm_queue_item',
inputName: 'mail_connect_mb_crm_queue_input',
tagInputName: 'mail_connect_mb_crm_queue_tag',
tagLink1: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_QUEUE_ADD')) ?>',
tagLink2: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_CRM_QUEUE_ADD')) ?>'
}),
openDialog : BX.delegate(BX.SocNetLogDestination.BXfpOpenDialogCallback, {
inputBoxName: 'mail_connect_mb_crm_queue_input_box',
inputName: 'mail_connect_mb_crm_queue_input',
tagInputName: 'mail_connect_mb_crm_queue_tag'
}),
closeDialog : BX.delegate(BX.SocNetLogDestination.BXfpCloseDialogCallback, {
inputBoxName: 'mail_connect_mb_crm_queue_input_box',
inputName: 'mail_connect_mb_crm_queue_input',
tagInputName: 'mail_connect_mb_crm_queue_tag'
}),
openSearch : BX.delegate(BX.SocNetLogDestination.BXfpOpenDialogCallback, {
inputBoxName: 'mail_connect_mb_crm_queue_input_box',
inputName: 'mail_connect_mb_crm_queue_input',
tagInputName: 'mail_connect_mb_crm_queue_tag'
})
},
items : {
users : <?=CUtil::phpToJSObject($crmQueueList) ?>,
groups : {},
sonetgroups : {},
department : <?=CUtil::phpToJSObject($arParams['COMPANY_STRUCTURE']['department']) ?>,
departmentRelation : <?=CUtil::phpToJSObject($arParams['COMPANY_STRUCTURE']['department_relation']) ?>
},
itemsLast : {
users : <?=CUtil::phpToJSObject($crmQueueLast) ?>,
sonetgroups : {},
department : {},
groups : {}
},
itemsSelected: <?=CUtil::phpToJSObject($crmQueueSelected) ?>,
destSort: {}
});
BX.bind(
BX('mail_connect_mb_crm_queue_input'),
'keydown',
BX.delegate(
BX.SocNetLogDestination.BXfpSearchBefore,
{
formName: 'mail_connect_mb_crm_queue_selector',
inputName: 'mail_connect_mb_crm_queue_input'
}
)
);
BX.bind(
BX('mail_connect_mb_crm_queue_input'),
'keyup',
BX.delegate(
BX.SocNetLogDestination.BXfpSearch,
{
formName: 'mail_connect_mb_crm_queue_selector',
inputName: 'mail_connect_mb_crm_queue_input',
tagInputName: 'mail_connect_mb_crm_queue_tag'
}
)
);
BX.bind(
BX('mail_connect_mb_crm_queue_input'),
'paste',
BX.delegate(
BX.SocNetLogDestination.BXfpSearchBefore,
{
formName: 'mail_connect_mb_crm_queue_selector',
inputName: 'mail_connect_mb_crm_queue_input'
}
)
);
BX.bind(
BX('mail_connect_mb_crm_queue_input'),
'paste',
BX.defer(
BX.SocNetLogDestination.BXfpSearch,
{
formName: 'mail_connect_mb_crm_queue_selector',
inputName: 'mail_connect_mb_crm_queue_input',
tagInputName: 'mail_connect_mb_crm_queue_tag',
onPasteEvent: true
}
)
);
BX.bind(
BX('mail_connect_mb_crm_queue_tag'),
'click',
function (e)
{
BX.SocNetLogDestination.openDialog('mail_connect_mb_crm_queue_selector');
BX.PreventDefault(e);
}
);
BX.bind(
BX('mail_connect_mb_crm_queue_container'),
'click',
function (e)
{
BX.SocNetLogDestination.openDialog('mail_connect_mb_crm_queue_selector');
BX.PreventDefault(e);
}
);
(function()
{
var singleselect = function(input)
{
var options = BX.findChildren(input, {tag: 'input', attr: {type: 'radio'}}, true);
for (var i in options)
{
BX.bind(options[i], 'change', function()
{
if (this.checked)
{
if (this.value == 0)
{
var input1 = BX(input.getAttribute('data-checked'));
if (input1)
{
var label0 = BX.findNextSibling(this, {tag: 'label', attr: {'for': this.id}});
var label1 = BX.findNextSibling(input1, {tag: 'label', attr: {'for': input1.id}});
if (label0 && label1)
BX.adjust(label0, {text: label1.innerHTML});
}
}
else
{
input.setAttribute('data-checked', this.id);
}
}
});
}
BX.bind(input, 'click', function(event)
{
event = event || window.event;
event.skip_singleselect = input;
});
BX.bind(document, 'click', function(event)
{
event = event || window.event;
if (event.skip_singleselect !== input)
BX(input.getAttribute('data-checked')).checked = true;
});
};
var selectInputs = BX.findChildrenByClassName(document, 'mail-set-singleselect', true);
for (var i in selectInputs)
singleselect(selectInputs[i]);
BX.bind(
BX('mail_connect_mb_crm_new_lead_for_link'),
'click',
function (e)
{
var textarea = BX('mail_connect_mb_crm_new_lead_for');
var hide = textarea.offsetHeight > 0;
textarea.style.display = hide ? 'none' : '';
BX[hide?'removeClass':'addClass'](this, 'mail-set-textarea-show-open');
}
);
})();
(function()
{
var form = BX('mail_connect_form');
var oauthHandler = function(uid, url, user, init)
{
if (uid != form.elements['fields[oauth_uid]'].value)
{
return;
}
if (user.image && user.image.length > 0)
{
BX.adjust(
BX('mail_connect_mb_oauth_status_image'),
{
style: {
backgroundImage: 'url("' + encodeURI(user.image) + '")',
backgroundSize: 'cover'
}
}
);
}
else
{
var initials = '';
if (user.first_name && user.first_name.length > 0)
{
initials += user.first_name.substr(0, 1);
}
if (user.last_name && user.last_name.length > 0)
{
initials += user.last_name.substr(0, 1);
}
if (!(initials.length > 0) && user.full_name && user.full_name.length > 0)
{
initials += user.full_name.substr(0, 1);
}
if (!(initials.length > 0))
{
initials += user.email.substr(0, 1);
}
initials = initials.toUpperCase();
// @TODO: initials -> color
var color = Math.round(160 + Math.random() * (Math.pow(2, 24) - 320)).toString(16);
color = '#' + '0'.repeat(6 - color.length) + color;
BX.adjust(
BX('mail_connect_mb_oauth_status_image'),
{
text: initials,
style: {
background: color
}
}
);
}
BX.adjust(BX('mail_connect_mb_oauth_status_email'), { text: user.email });
BX('mail_connect_mb_oauth_url_field').value = url;
BX('mail_connect_mb_oauth_field').value = init ? 'S' : 'Y';
var emailField = form.elements['fields[email]'];
if (emailField)
{
emailField.value = user.email;
}
var nameField = BX('mail_connect_mb_name_field');
if (!(nameField.value.length > 0) || !nameField['__filled'])
{
nameField.value = user.email;
}
BX('mail_connect_mb_oauth_btn').style.display = 'none';
BX('mail_connect_mb_oauth_status').style.display = '';
if (oauthHandler['__submit'])
{
oauthHandler['__submit'] = false;
submitForm();
}
};
BX.addCustomEvent('OnMailOAuthBCompleted', oauthHandler);
BX.bind(
BX('mail_connect_mb_oauth_btn'),
'click',
function (e)
{
BX.util.popup(BX('mail_connect_mb_oauth_url_field').value, 500, 600);
e.preventDefault();
}
);
var cancelHandler = function (e)
{
BX('mail_connect_mb_oauth_field').value = 'N';
if (!form.elements['fields[mailbox_id]'])
{
var nameField = BX('mail_connect_mb_name_field');
if (!nameField['__filled'])
{
nameField.value = '';
}
}
BX('mail_connect_mb_oauth_status').style.display = 'none';
BX('mail_connect_mb_oauth_btn').style.display = '';
e.preventDefault();
};
BX.bind(BX('mail_connect_mb_oauth_cancel_btn'), 'click', cancelHandler);
for (var i = 0; i < form.elements.length; i++)
{
if (form.elements[i].name && form.elements[i].type.match(/^text|password$/i))
{
if ('fields[email]' == form.elements[i].name)
{
BX.bind(
form.elements[i],
'bxchange',
function ()
{
var nameField = BX('mail_connect_mb_name_field');
if (!(nameField.value.length > 0) || !nameField['__filled'])
{
nameField.value = this.value;
}
var loginField = BX('mail_connect_mb_login_imap_field');
if (loginField && (!(loginField.value.length > 0) || !loginField['__filled']))
{
loginField.value = this.value;
}
var loginSmtpField = BX('mail_connect_mb_login_smtp_field');
if (loginSmtpField && (!(loginSmtpField.value.length > 0) || !loginSmtpField['__filled']))
{
loginSmtpField.value = this.value;
}
}
);
}
if ('fields[login_imap]' == form.elements[i].name)
{
BX.bind(
form.elements[i],
'bxchange',
function ()
{
var loginSmtpField = BX('mail_connect_mb_login_smtp_field');
if (loginSmtpField && (!(loginSmtpField.value.length > 0) || loginSmtpField['__filled'] !== true))
{
loginSmtpField.value = this.value;
loginSmtpField['__filled'] = 1;
}
}
);
}
if ('fields[pass_imap]' == form.elements[i].name)
{
BX.bind(
form.elements[i],
'bxchange',
function ()
{
var passSmtpField = BX('mail_connect_mb_pass_smtp_field');
if (passSmtpField && (!(passSmtpField.value.length > 0) || !passSmtpField['__filled']))
{
passSmtpField.value = this.value;
}
}
);
}
BX.bind(
form.elements[i],
'bxchange',
BX.defer(
function ()
{
if (this.value != this['__last_value'])
{
var fieldContainer = BX.findParent(
this,
{
class: 'mail-connect-form-item'
},
form
);
BX.removeClass(fieldContainer, 'mail-connect-form-item-confirmed');
BX.removeClass(fieldContainer, 'mail-connect-form-item-error');
}
},
form.elements[i]
)
);
}
}
var fieldError = function (field, error, text)
{
field['__last_value'] = field.value;
var fieldContainer = BX.findParent(
field,
{
class: 'mail-connect-form-item'
},
form
);
if (error)
{
BX.removeClass(fieldContainer, 'mail-connect-form-item-confirmed');
BX.addClass(fieldContainer, 'mail-connect-form-item-error');
BX.adjust(
BX.findChildByClassName(fieldContainer, 'mail-connect-form-error', true),
{
text: text
}
);
}
else
{
BX.removeClass(fieldContainer, 'mail-connect-form-item-error');
//BX.addClass(fieldContainer, 'mail-connect-form-item-confirmed');
}
return !error;
};
var checkForm = function ()
{
if (BX('mail_connect_mb_oauth_field'))
{
if ('N' == BX('mail_connect_mb_oauth_field').value)
{
oauthHandler['__submit'] = true;
BX.util.popup(BX('mail_connect_mb_oauth_url_field').value, 500, 600);
return false;
}
}
var result = true;
var emailField = form.elements['fields[email]'];
if (emailField)
{
if (emailField.value.length > 0)
{
var atom = "[=a-z0-9_+~'!$&*^`|#%/?{}-]";
var pattern = new RegExp('^\\s*'+atom+'+(\\.'+atom+'+)*@([a-z0-9-]+\\.)+[a-z0-9-]{2,20}\\s*$', 'i');
result *= fieldError(
emailField,
!emailField.value.match(pattern),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_EMAIL_BAD')) ?>'
);
}
else
{
result *= fieldError(emailField, true, '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_EMAIL_EMPTY')) ?>');
}
}
var serverField = form.elements['fields[server_imap]'];
if (serverField)
{
if (serverField.value.length > 0)
{
result *= fieldError(
serverField,
!serverField.value.match(/^\s*((http|https|ssl|tls|imap):\/\/)?([a-z0-9](-*[a-z0-9])*\.?)+\s*$/i),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_SERVER_BAD')) ?>'
);
}
else
{
result *= fieldError(serverField, true, '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_SERVER_EMPTY')) ?>');
}
}
var portField = form.elements['fields[port_imap]'];
if (portField)
{
result *= fieldError(
portField,
!(portField.value.match(/^\s*[0-9]+\s*$/) && portField.value > 0 && portField.value <= 65535),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_PORT_BAD')) ?>'
);
}
var linkField = form.elements['fields[link]'];
if (linkField)
{
if (linkField.value.length > 0)
{
result *= fieldError(
linkField,
!linkField.value.match(/^\s*(https?:\/\/)?([a-z0-9](-*[a-z0-9])*\.?)+(:[0-9]+)?\/?/i),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_LINK_BAD')) ?>'
);
}
}
var loginField = form.elements['fields[login_imap]'];
if (loginField && !loginField.disabled)
{
result *= fieldError(
loginField,
!(loginField.value.length > 0),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_LOGIN_EMPTY')) ?>'
);
}
var passwordField = form.elements['fields[pass_imap]'];
if (passwordField && !passwordField.hasAttribute('data-placeholder'))
{
result *= fieldError(
passwordField,
!(passwordField.value.length > 0),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_PASS_EMPTY')) ?>'
);
}
var smtpSwitch = form.elements['fields[use_smtp]'];
if (smtpSwitch && smtpSwitch.checked)
{
var serverSmtpField = form.elements['fields[server_smtp]'];
var serverError = false;
if (serverSmtpField)
{
if (serverSmtpField.value.length > 0)
{
result *= fieldError(
serverSmtpField,
serverError = !serverSmtpField.value.match(/^\s*((http|https|ssl|tls|smtp):\/\/)?([a-z0-9](-*[a-z0-9])*\.?)+\s*$/i),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_SERVER_BAD')) ?>'
);
}
else
{
result *= fieldError(serverSmtpField, serverError = true, '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_SERVER_EMPTY')) ?>');
}
}
var portSmtpField = form.elements['fields[port_smtp]'];
if (portSmtpField && !serverError)
{
result *= fieldError(
portSmtpField,
!(portSmtpField.value.match(/^\s*[0-9]+\s*$/) && portSmtpField.value > 0 && portSmtpField.value <= 65535),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_PORT_BAD')) ?>'
);
}
var loginSmtpField = form.elements['fields[login_smtp]'];
if (loginSmtpField && !loginSmtpField.disabled)
{
result *= fieldError(
loginSmtpField,
!(loginSmtpField.value.length > 0),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_LOGIN_EMPTY')) ?>'
);
}
var passwordSmtpField = form.elements['fields[pass_smtp]'];
if (passwordSmtpField && !form.elements['fields[mailbox_id]'])
{
result *= fieldError(
passwordSmtpField,
!(passwordSmtpField.value.length > 0),
'<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_PASS_EMPTY')) ?>'
);
}
}
return result;
};
var closeForm = function (id)
{
id = id > 0 ? id : <?=intval($mailbox['ID']) ?>;
var slider = top.BX.SidePanel.Instance.getSliderByWindow(window);
if (slider)
{
slider.setCacheable(false);
slider.close();
}
else
{
if (id > 0)
{
window.location.href = BX.util.add_url_param(
'<?=\CUtil::jsEscape($arParams['PATH_TO_MAIL_MSG_LIST']) ?>'.replace('#id#', id),
{ 'strict': 'N' }
);
}
else
{
window.location.href = '<?=\CUtil::jsEscape($arParams['PATH_TO_MAIL_HOME']) ?>';
}
}
};
var submitForm = function (e)
{
if (e && e.preventDefault)
{
e.preventDefault();
}
var button = BX('mail_connect_save_btn');
if (button.disabled)
{
return false;
}
button.disabled = false;
BX.hide(BX('mail_connect_form_error'));
if (!checkForm())
{
return false;
}
BX.addClass(button, 'ui-btn-wait');
button.disabled = true;
BX.ajax.submitAjax(
form,
{
method: 'POST',
data: form.__extData,
dataType: 'json',
onsuccess: function(json)
{
if ('success' != json.status)
{
button.disabled = false;
BX.removeClass(button, 'ui-btn-wait');
var errorText = '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_FORM_ERROR')) ?>';
if (json.errors && json.errors.length > 0)
{
if (json.errors.length == 1 && 'MAIL_CLIENT_CONFIG_SMTP_CONFIRM' == json.errors[0].message)
{
BXMainMailConfirm.showForm(
submitForm, // @TODO: skip if edit
{
mode: 'confirm',
data: {
email: form.elements['fields[email]'].value
}
}
);
return;
}
errorText = json.errors.map(
function (item)
{
var result = item.message;
if (item.customData)
{
result += ' (' +
'<a href="#" onclick="BX.hide(this); BX.show(BX.findNextSibling(this, {class: \'main-connect-form-error-ext\'}), \'inline\'); return false; "><?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_CONFIG_IMAP_ERR_EXT')) ?></a>' +
'<span class="main-connect-form-error-ext">' + item.customData + '</span>' +
')';
}
return result;
}
).join('<br>');
}
BX('mail_connect_form_error').innerHTML = errorText;
BX.show(BX('mail_connect_form_error'));
}
else
{
if (json.data && json.data.id > 0)
{
top.BX.SidePanel.Instance.postMessage(
window,
'mail-mailbox-config-success',
{
id: json.data.id,
changed: {
imap_dirs: form.__extData && form.__extData.imap_dirs
}
}
);
}
closeForm(json.data ? json.data.id : 0);
}
},
onfailure: function(json)
{
button.disabled = false;
BX.removeClass(button, 'ui-btn-wait');
BX('mail_connect_form_error').innerHTML = '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_CLIENT_AJAX_ERROR')) ?>';
BX.show(BX('mail_connect_form_error'));
}
}
);
};
BX.bind(form, 'submit', submitForm);
var nameField = BX('mail_connect_mb_name_field');
if (nameField && nameField.value.length > 0)
{
nameField['__filled'] = true;
}
var loginField = BX('mail_connect_mb_login_imap_field');
if (loginField && loginField.value.length > 0)
{
loginField['__filled'] = true;
}
var loginSmtpField = BX('mail_connect_mb_login_smtp_field');
if (loginSmtpField && loginSmtpField.value.length > 0)
{
loginSmtpField['__filled'] = true;
}
var passSmtpField = BX('mail_connect_mb_pass_smtp_field');
if (passSmtpField && passSmtpField.value.length > 0)
{
passSmtpField['__filled'] = true;
}
BX.bind(
BX('mail_connect_cancel_btn'),
'click',
function (e)
{
closeForm();
}
);
<? if (!empty($mailbox)): ?>
var deletePopup = false;
BX.bind(
BX('mail_connect_disconnect_btn'),
'click',
function (e)
{
var button = BX('mail_connect_disconnect_btn');
if (button.disabled)
{
return false;
}
BX.addClass(button, 'ui-btn-wait');
button.disabled = true;
if (deletePopup === false)
{
deletePopup = new BX.PopupWindow('delete-mailbox-confirm', null, {
closeIcon: true,
closeByEsc: true,
overlay: true,
lightShadow: true,
titleBar: '<?=\CUtil::jsEscape(getMessage('MAIL_MAILBOX_REMOVE_CONFIRM')) ?>',
content: '<?=\CUtil::jsEscape(getMessage('MAIL_MAILBOX_REMOVE_CONFIRM_TEXT')) ?>',
buttons: [
new BX.PopupWindowButton({
className: 'popup-window-button-decline',
text: '<?=\CUtil::jsEscape(getMessage('MAIL_CLIENT_CONFIG_BTN_DISCONNECT')) ?>',
events: {
click: function()
{
this.popupWindow.close();
var pr = BX.ajax.runComponentAction(
'bitrix:mail.client.config',
'delete',
{
mode: 'class',
data: {
id: form.elements['fields[mailbox_id]'].value
}
}
);
pr.then(
function (json)
{
top.BX.SidePanel.Instance.postMessage(
window,
'mail-mailbox-config-delete',
{
id: form.elements['fields[mailbox_id]'].value
}
);
closeForm();
},
function (json)
{
button.disabled = false;
BX.removeClass(button, 'ui-btn-wait');
}
);
}
}
}),
new BX.PopupWindowButtonLink({
text: '<?=CUtil::jsEscape(getMessage('MAIL_CLIENT_CONFIG_BTN_CANCEL')) ?>',
className: 'popup-window-button-link',
events: {
click: function()
{
this.popupWindow.close();
button.disabled = false;
BX.removeClass(button, 'ui-btn-wait');
}
}
})
]
});
}
deletePopup.show();
}
);
var mailboxData = <?=\Bitrix\Main\Web\Json::encode(array(
'ID' => $mailbox['ID'],
'EMAIL' => $mailbox['EMAIL'],
'NAME' => $mailbox['NAME'],
'USERNAME' => $mailbox['USERNAME'],
'SERVER' => $mailbox['SERVER'],
'PORT' => $mailbox['PORT'],
'USE_TLS' => $mailbox['USE_TLS'],
'LOGIN' => $mailbox['LOGIN'],
'LINK' => $mailbox['LINK'],
'OPTIONS' => array(
'flags' => $mailbox['OPTIONS']['flags'],
'imap' => $mailbox['OPTIONS']['imap'],
),
)) ?>;
<? $imapDirs = array_map(
function ($dirName) use ($mailbox)
{
return Bitrix\Mail\Helper\MessageFolder::getFormattedPath($dirName, $mailbox['OPTIONS']);
},
(array) $mailbox['OPTIONS']['imap']['dirs']
) ?>
// this is to preserve dirs order
mailboxData.OPTIONS.imap.dirs = <?=json_encode(array_combine(
$imapDirsList = Main\Text\Encoding::convertEncoding(array_keys($imapDirs), SITE_CHARSET, 'UTF-8'),
Main\Text\Encoding::convertEncoding(array_values($imapDirs), SITE_CHARSET, 'UTF-8')
)) ?>;
mailboxData.OPTIONS.imap.dirsList = <?=json_encode($imapDirsList) ?>;
BXMailMailbox.init(mailboxData);
var applyDirs = function (data)
{
form.__extData = data;
};
BX.bind(
BX('mail_connect_mb_imap_dirs_link'),
'click',
function (e)
{
e.preventDefault();
BXMailMailbox.setupDirs(applyDirs);
}
);
if ('#mail-cfg-dirs' == window.location.hash)
{
window.location.hash = '#mail-cfg-dummy';
BXMailMailbox.setupDirs(applyDirs);
}
<? endif ?>
<? if (!empty($settings['oauth']) && !empty($settings['oauth_user'])): ?>
BX.onCustomEvent(
'OnMailOAuthBCompleted',
[
'<?=\CUtil::jsEscape($settings['oauth']->getStoredUid()) ?>',
'<?=\CUtil::jsEscape($settings['oauth']->getUrl()) ?>',
<?=\Bitrix\Main\Web\Json::encode($settings['oauth_user']) ?>,
true
]
);
<? endif ?>
})();
<?
function get_plural_messages($prefix)
{
global $MESS;
$result = array();
$k = 0;
while ($form = getMessage($prefix.'PLURAL_'.++$k))
$result[] = $form;
return $result;
}
// http://localization-guide.readthedocs.org/en/latest/l10n/pluralforms.html
function plural_form($n, $forms)
{
switch (LANGUAGE_ID)
{
case 'ru':
case 'ua':
$p = $n%10 == 1 && $n%100 != 11 ? 0 : ($n%10 >= 2 && $n%10 <= 4 && ($n%100 < 10 || $n%100 >= 20) ? 1 : 2);
break;
case 'en':
case 'de':
case 'es':
$p = $n == 1 ? 0 : 1;
break;
}
return isset($forms[$p]) ? $forms[$p] : end($forms);
}
?>
function showLicenseInfoPopup(id)
{
var titles = {
'age': '<?=CUtil::jsEscape(getMessage('MAIL_MAILBOX_LICENSE_AGE_LIMIT_TITLE')) ?>'
};
var descrs = {
'age': '<?=CUtil::jsEscape(getMessage(
'MAIL_MAILBOX_LICENSE_AGE_LIMIT_DESCR',
array(
'#LIMIT#' => $maxAgeLimit,
'#DAYS#' => plural_form($maxAgeLimit, get_plural_messages('MAIL_MAILBOX_DAYS_')),
)
)) ?>'
};
B24.licenseInfoPopup.show(
'mail_setup_'+id,
titles[id],
descrs[id]
);
}
</script>