%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/activities/bitrix/mailactivity/ |
| Current File : /home/bitrix/www/bitrix/activities/bitrix/mailactivity/robot_properties_dialog.php |
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
/** @var \Bitrix\Bizproc\Activity\PropertiesDialog $dialog */
/** @global \CMain $APPLICATION $map */
global $APPLICATION;
$map = $dialog->getMap();
$messageText = $map['MailText'];
$subject = $map['MailSubject'];
$messageType = $dialog->getCurrentValue($map['MailMessageType']['FieldName'], 'html');
$attachmentType = isset($map['FileType']) ? $map['FileType'] : null;
$attachment = isset($map['File']) ? $map['File'] : null;
$from = isset($map['MailUserFrom']) ? $map['MailUserFrom'] : null;
$fromValue = $from ? $dialog->getCurrentValue($from['FieldName'],'') : null;
$fromValue = \CBPHelper::UsersArrayToString($fromValue, $dialog->getWorkflowTemplate(), $dialog->getDocumentType());
$runtimeData = $dialog->getRuntimeData();
$mailboxes = $runtimeData['mailboxes'];
if ($from && $mailboxes):?>
<div style="display:none;">
<?
$APPLICATION->IncludeComponent('bitrix:main.mail.confirm', '');
?>
</div>
<div class="bizproc-automation-popup-settings bizproc-automation-popup-settings-text">
<span class="bizproc-automation-popup-settings-title"><?=htmlspecialcharsbx($from['Name'])?>:</span>
<input type="hidden" name="<?=htmlspecialcharsbx($from['FieldName'])?>" value="<?=htmlspecialcharsbx($fromValue)?>" data-role="mailbox-selector-value">
<a class="bizproc-automation-popup-settings-link" data-role="mailbox-selector"></a>
</div>
<?
endif;
?>
<div class="bizproc-automation-popup-settings">
<span class="bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-autocomplete">
<?=htmlspecialcharsbx($map['MailUserTo']['Name'])?>:
</span>
<?=$dialog->renderFieldControl($map['MailUserTo'])?>
</div>
<div class="bizproc-automation-popup-settings">
<?=$dialog->renderFieldControl($subject)?>
</div>
<div class="bizproc-automation-popup-settings" data-role="inline-selector-html">
<div class="bizproc-automation-popup-select"><?php
$emailEditor = new CHTMLEditor;
$content = $dialog->getCurrentValue($messageText['FieldName'], '');
if ($dialog->getCurrentValue('mail_message_encoded'))
{
$content = \CBPMailActivity::decodeMailText($content);
$content = \Bitrix\Bizproc\Automation\Helper::convertExpressions($content, $dialog->getDocumentType());
}
if ($messageType !== 'html')
{
$parser = new CTextParser();
$content = $parser->convertText($content);
}
$emailEditor->show(array(
'name' => $messageText['FieldName'],
'content' => $content,
'siteId' => SITE_ID,
'width' => '100%',
'minBodyWidth' => 630,
'normalBodyWidth' => 630,
'height' => 198,
'minBodyHeight' => 198,
'showTaskbars' => false,
'showNodeNavi' => false,
'autoResize' => true,
'autoResizeOffset' => 40,
'bbCode' => false,
'saveOnBlur' => false,
'bAllowPhp' => false,
'limitPhpAccess' => false,
'setFocusAfterShow' => false,
'askBeforeUnloadPage' => true,
'useFileDialogs' => false,
'controlsMap' => array(
array('id' => 'Bold', 'compact' => true, 'sort' => 10),
array('id' => 'Italic', 'compact' => true, 'sort' => 20),
array('id' => 'Underline', 'compact' => true, 'sort' => 30),
array('id' => 'Strikeout', 'compact' => true, 'sort' => 40),
array('id' => 'RemoveFormat', 'compact' => true, 'sort' => 50),
array('id' => 'Color', 'compact' => true, 'sort' => 60),
array('id' => 'FontSelector', 'compact' => false, 'sort' => 70),
array('id' => 'FontSize', 'compact' => false, 'sort' => 80),
array('separator' => true, 'compact' => false, 'sort' => 90),
array('id' => 'OrderedList', 'compact' => true, 'sort' => 100),
array('id' => 'UnorderedList', 'compact' => true, 'sort' => 110),
array('id' => 'AlignList', 'compact' => false, 'sort' => 120),
array('separator' => true, 'compact' => false, 'sort' => 130),
array('id' => 'InsertLink', 'compact' => true, 'sort' => 140),
array('id' => 'InsertImage', 'compact' => false, 'sort' => 150),
array('id' => 'InsertTable', 'compact' => false, 'sort' => 170),
array('id' => 'Code', 'compact' => true, 'sort' => 180),
array('id' => 'Quote', 'compact' => true, 'sort' => 190),
array('separator' => true, 'compact' => false, 'sort' => 200),
array('id' => 'Fullscreen', 'compact' => false, 'sort' => 210),
array('id' => 'ChangeView', 'compact' => true, 'sort' => 220),
array('id' => 'More', 'compact' => true, 'sort' => 400)
),
));
?></div>
</div>
<input type="hidden" name="<?=htmlspecialcharsbx($map['MailMessageType']['FieldName'])?>" value="html">
<input type="hidden" name="<?=htmlspecialcharsbx($map['MailCharset']['FieldName'])?>" value="<?=htmlspecialcharsbx(SITE_CHARSET)?>">
<input type="hidden" name="<?=htmlspecialcharsbx($map['DirrectMail']['FieldName'])?>" value="N">
<input type="hidden" name="<?=htmlspecialcharsbx($map['MailSite']['FieldName'])?>" value="<?=htmlspecialcharsbx(SITE_ID)?>">
<?
$config = array(
'type' => $dialog->getCurrentValue($attachmentType['FieldName']),
'typeInputName' => $attachmentType['FieldName'],
'valueInputName' => $attachment['FieldName'],
'multiple' => $attachment['Multiple'],
'required' => !empty($attachment['Required']),
'useDisk' => CModule::IncludeModule('disk'),
'label' => $attachment['Name'],
'labelFile' => $attachmentType['Options']['file'],
'labelDisk' => $attachmentType['Options']['disk']
);
if ($dialog->getCurrentValue($attachmentType['FieldName']) === 'disk')
{
$config['selected'] = \Bitrix\Bizproc\Automation\Helper::prepareDiskAttachments(
$dialog->getCurrentValue($attachment['FieldName'])
);
}
else
{
$config['selected'] = \Bitrix\Bizproc\Automation\Helper::prepareFileAttachments(
$dialog->getDocumentType(),
$dialog->getCurrentValue($attachment['FieldName'])
);
}
$configAttributeValue = htmlspecialcharsbx(\Bitrix\Main\Web\Json::encode($config));
?>
<div class="bizproc-automation-popup-settings" data-role="file-selector" data-config="<?=$configAttributeValue?>"></div>
<?if ($from && $mailboxes):?>
<script>
BX.ready(function ()
{
var dialog = BX.Bizproc.Automation.Designer.getRobotSettingsDialog();
if (!dialog)
{
return;
}
var mailboxes = <?=\Bitrix\Main\Web\Json::encode($mailboxes);?>;
var mailboxSelector = dialog.form.querySelector('[data-role="mailbox-selector"]');
var mailboxSelectorValue = dialog.form.querySelector('[data-role="mailbox-selector-value"]');
var setMailbox = function(value)
{
mailboxSelector.textContent = value ? value : '<?=GetMessageJS('BPMA_RPD_FROM_EMPTY')?>';
mailboxSelectorValue.value = value;
};
var getMenuItems = function()
{
var i, menuItems = [];
for (i = 0; i < mailboxes.length; ++i)
{
var mailbox = mailboxes[i];
var mailboxName = mailbox['name'].length > 0
? mailbox['name'] + ' <' + mailbox['email'] + '>'
: mailbox['email'];
menuItems.push({
text: BX.util.htmlspecialchars(mailboxName),
value: mailboxName,
onclick: function(e, item)
{
this.popupWindow.close();
setMailbox(item.value);
}
});
}
if (window.BXMainMailConfirm)
{
menuItems.push({delimiter: true}, {
text: '<?=GetMessageJS('BPMA_RPD_FROM_ADD')?>',
onclick: function(e, item)
{
this.popupWindow.close();
window.BXMainMailConfirm.showForm(function(mailbox)
{
mailboxes.push(mailbox);
setMailbox(mailbox['name'].length > 0
? mailbox['name'] + ' <' + mailbox['email'] + '>'
: mailbox['email']);
});
}
});
}
return menuItems;
};
BX.bind(mailboxSelector, 'click', function(e)
{
var menuId = 'bpma-mailboxes' + Math.random();
BX.PopupMenu.show(
menuId,
this,
getMenuItems(),
{
autoHide: true,
offsetLeft: (BX.pos(this)['width'] / 2),
angle: { position: 'top', offset: 0 },
zIndex: 200,
events:
{
onPopupClose: function()
{
this.destroy();
}
}
},
);
}
);
//init
setMailbox(mailboxSelectorValue.value);
});
</script>
<?endif;