%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/main.mail.confirm/templates/.default/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/main.mail.confirm/templates/.default/script.js |
;(function() { if (window.BXMainMailConfirm) return; var BXMainMailConfirm = { showForm: function(callback, params) { var step = 'email'; var senderId; var mode = params && params.mode ? params.mode : 'add'; var dlg = new BX.PopupWindow('add_from_email', null, { width: 480, titleBar: BX.message('MAIN_MAIL_CONFIRM_TITLE'), draggable: true, closeIcon: true, lightShadow: true, contentColor: 'white', contentNoPaddings: true, content: BX('new_from_email_dialog_content').innerHTML, buttons: [ new BX.PopupWindowButton({ text: BX.message('MAIN_MAIL_CONFIRM_GET_CODE'), className: 'popup-window-button-create', events: { click: function() { var btn = this; if (BX.hasClass(btn.buttonNode, 'popup-window-button-wait')) return; var emailBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-email-block', true); var codeBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-code-block', true); var nameField = BX.findChild(emailBlock, {attr: {'data-name': 'name'}}, true); var emailField = BX.findChild(emailBlock, {attr: {'data-name': 'email'}}, true); var codeField = BX.findChild(codeBlock, {attr: {'data-name': 'code'}}, true); var publicField = BX.findChild(dlg.contentContainer, {attr: {'data-name': 'public'}}, true); var smtpServerField = BX.findChild(emailBlock, {attr: {'data-name': 'smtp-server'}}, true); var smtpPortField = BX.findChild(emailBlock, {attr: {'data-name': 'smtp-port'}}, true); var smtpLoginField = BX.findChild(emailBlock, {attr: {'data-name': 'smtp-login'}}, true); var smtpPassField = BX.findChild(emailBlock, {attr: {'data-name': 'smtp-password'}}, true); if ('email' == step || 'smtp' == step) { codeField.value = ''; var atom = "[=a-z0-9_+~'!$&*^`|#%/?{}-]"; var pattern = new RegExp('^'+atom+'+(\\.'+atom+'+)*@([a-z0-9-]+\\.)+[a-z0-9-]{2,20}$', 'i'); if (!emailField.value.match(pattern)) { dlg.showNotify(BX.message(emailField.value.length > 0 ? 'MAIN_MAIL_CONFIRM_INVALID_EMAIL' : 'MAIN_MAIL_CONFIRM_EMPTY_EMAIL' )); return; } } if ('smtp' == step) { if (!smtpServerField.value.match(/^([a-z0-9-]+\.)+[a-z0-9-]{2,20}$/)) { dlg.showNotify(BX.message(smtpServerField.value.length > 0 ? 'MAIN_MAIL_CONFIRM_INVALID_SMTP_SERVER' : 'MAIN_MAIL_CONFIRM_EMPTY_SMTP_SERVER' )); return; } if (!smtpPortField.value.match(/^[0-9]+$/) || smtpPortField.value < 1 || smtpPortField.value > 65535) { dlg.showNotify(BX.message(smtpPortField.value.length > 0 ? 'MAIN_MAIL_CONFIRM_INVALID_SMTP_PORT' : 'MAIN_MAIL_CONFIRM_EMPTY_SMTP_PORT' )); return; } if (!(smtpLoginField.value.length > 0)) { dlg.showNotify(BX.message('MAIN_MAIL_CONFIRM_EMPTY_SMTP_LOGIN')); return; } if (!(smtpPassField.value.length > 0)) { dlg.showNotify(BX.message('MAIN_MAIL_CONFIRM_EMPTY_SMTP_PASSWORD')); return; } } if ('code' == step) { if (codeField.value.length == 0) { dlg.showNotify(BX.message('MAIN_MAIL_CONFIRM_EMPTY_CODE')); return; } } dlg.hideNotify(); BX.addClass(btn.buttonNode, 'popup-window-button-wait'); var data = { name: nameField.value, email: emailField.value, smtp: {}, code: '', public: publicField.checked ? publicField.value : '' }; if ('smtp' == step) { data.smtp = { server: smtpServerField.value, port: smtpPortField.value, login: smtpLoginField.value, password: smtpPassField.value }; } if ('code' == step) { data.code = codeField.value; } if (params && params.data) { for (var i in params.data) { if (params.data.hasOwnProperty(i)) { data[i] = params.data[i]; } } } BX.ajax({ 'url': '/bitrix/components/bitrix/main.mail.confirm/ajax.php?act=add', 'method': 'POST', 'dataType': 'json', 'data': data, onsuccess: function(data) { BX.removeClass(btn.buttonNode, 'popup-window-button-wait'); if(data.senderId) { senderId = data.senderId; } if (data.result == 'error') { dlg.showNotify(data.error); } else if ('email' == step || 'smtp' == step) { dlg.switchBlock('code'); } else { btn.popupWindow.close(); if (BX.type.isFunction(callback)) { var mailboxName = nameField.value.length > 0 ? nameField.value : BX.message('MAIN_MAIL_CONFIRM_USER_FULL_NAME'); callback( { name: mailboxName, email: emailField.value, id: senderId }, mailboxName.length > 0 ? mailboxName+' <'+emailField.value+'>' : emailField.value ); } } }, onfailure: function(data) { BX.removeClass(btn.buttonNode, 'popup-window-button-wait'); dlg.showNotify(BX.message('MAIN_MAIL_CONFIRM_AJAX_ERROR')); } }); } } }), new BX.PopupWindowButton({ text: BX.message('MAIN_MAIL_CONFIRM_CANCEL'), className: 'popup-window-button-link', events: { click: function() { if ('code' == step && 'confirm' != mode) { var smtpBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-smtp-block', true); dlg.switchBlock(smtpBlock && smtpBlock.offsetHeight > 0 ? 'smtp' : 'email'); dlg.hideNotify(); } else { this.popupWindow.close(); } } } }) ] }); dlg.hideNotify = function() { var error = BX.findChild(dlg.contentContainer, {class: 'new-from-email-dialog-error'}, true); BX.hide(error, 'block'); }; dlg.showNotify = function(text) { var error = BX.findChild(dlg.contentContainer, {class: 'new-from-email-dialog-error'}, true); error.innerHTML = text; BX.show(error, 'block'); }; dlg.switchBlock = function(block, immediately) { var emailBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-email-block', true); var codeBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-code-block', true); var hideBlock, showBlock; if ('code' != step && 'code' == block) { hideBlock = emailBlock; showBlock = codeBlock; dlg.buttons[0].setName(BX.message('MAIN_MAIL_CONFIRM_SAVE')); dlg.buttons[1].setName(BX.message('MAIN_MAIL_CONFIRM_BACK')); } else if ('code' == step && 'code' != block) { hideBlock = codeBlock; showBlock = emailBlock; dlg.buttons[0].setName(BX.message('MAIN_MAIL_CONFIRM_GET_CODE')); dlg.buttons[1].setName(BX.message('MAIN_MAIL_CONFIRM_CANCEL')); } step = block; if (hideBlock && showBlock) { if (immediately) { showBlock.style.position = ''; showBlock.style.height = ''; showBlock.style.display = ''; hideBlock.style.display = 'none'; } else { hideBlock.style.height = hideBlock.offsetHeight+'px'; hideBlock.offsetHeight; hideBlock.style.height = '0px'; showBlock.style.position = 'absolute'; showBlock.style.height = ''; showBlock.style.display = ''; var showBlockHeight = showBlock.offsetHeight; showBlock.style.height = '0px'; showBlock.style.position = ''; showBlock.offsetHeight; showBlock.style.height = showBlockHeight+'px'; } } }; var smtpLink = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-smtp-link', true); var smtpBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-smtp-block', true); if (smtpLink && smtpBlock) { BX.bind( smtpLink, 'click', function (event) { var emailBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-email-block', true); emailBlock.style.height = ''; if ('smtp' == step) { step = 'email'; BX.hide(smtpBlock, 'table-row-group'); } else { step = 'smtp'; BX.show(smtpBlock, 'table-row-group'); } event.preventDefault(); } ); } if ('confirm' == mode) { dlg.switchBlock('code', true); dlg.setOverlay(true); } dlg.show(); var emailBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-email-block', true); var nameField = BX.findChild(emailBlock, {attr: {'data-name': 'name'}}, true); var emailField = BX.findChild(emailBlock, {attr: {'data-name': 'email'}}, true); if (nameField.value.length > 0) { emailField.focus(); } else { nameField.focus(); } }, deleteSender: function (senderId, callback) { if(senderId > 0) { if(confirm(BX.message('MAIN_MAIL_CONFIRM_DELETE_SENDER_CONFIRM'))) { BX.ajax({ 'url': '/bitrix/components/bitrix/main.mail.confirm/ajax.php?act=delete', 'method': 'POST', 'dataType': 'json', 'data': { senderId: senderId }, onsuccess: function(data) { if(data.result == 'error') { BX.UI.Notification.Center.notify({ content: BX.message('MAIN_MAIL_DELETE_SENDER_ERROR') }); } else { if (BX.type.isFunction(callback)) { callback(); } } }, onfailure: function(data) { BX.UI.Notification.Center.notify({ content: BX.message('MAIN_MAIL_DELETE_SENDER_ERROR') }); } }); } } } }; window.BXMainMailConfirm = BXMainMailConfirm; })();