File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/components/bitrix/main.mail.confirm/templates/.default/script.js
Back
;(function() { if (window.BXMainMailConfirm) return; var options = {}; var mailboxes = []; var listParams = {}; var action; var BXMainMailConfirm = { init: function(params) { mailboxes = params.mailboxes; action = params.action; delete params.mailboxes; options = params; }, getMailboxes: function() { return mailboxes; }, showList: function(id, bind, params) { if (!BX.type.isNotEmptyString(params.placeholder)) { params.placeholder = BX.message(params.required ? 'MAIN_MAIL_CONFIRM_MENU_UNKNOWN' : 'MAIN_MAIL_CONFIRM_MENU_PLACEHOLDER'); } if (!(params.settings && params.settings.length)) { params.settings = []; } if (!BX.type.isFunction(params.callback)) { params.callback = function() {}; } if((typeof params.popupSettings) != "object") { params.popupSettings = {}; } params.popupSettings.className = 'main-mail-confirm-menu-content'; params.popupSettings.offsetLeft = 40; params.popupSettings.angle = true; params.popupSettings.closeByEsc = true; listParams[id] = params; var items = []; var handler = function(event, item) { var action = 'apply'; if (event && event.target) { var deleteIconClass = 'main-mail-confirm-menu-delete-icon'; if (BX.hasClass(event.target, deleteIconClass) || BX.findParent(event.target, { class: deleteIconClass }, item.layout.item)) { action = 'delete'; } if (BX.hasClass(event.target, "sender-hint") || BX.findParent(event.target, { class: "sender-hint" }, item.layout.item)) { action = 'edit'; } } if ('delete' == action) { BXMainMailConfirm.deleteSender( item.id, function() { mailboxes = mailboxes.filter(function(value, index) { return item.id !== value.id }); item.menuWindow.removeMenuItem(item.id); if (listParams[id].selected == item.title) { listParams[id].callback('', listParams[id].placeholder); } } ); } else if ('edit' === action) { BXMainMailConfirm.showEditForm(item.id); } else { listParams[id].callback(item.title, item.text); item.menuWindow.close(); } }; if (!params.required) { items.push({ text: BX.util.htmlspecialchars(params.placeholder), title: '', onclick: handler }); items.push({ delimiter: true }); } if (mailboxes && mailboxes.length > 0) { var itemText, itemClass; for (var i in mailboxes) { itemClass = 'menu-popup-no-icon'; itemText = BX.util.htmlspecialchars(mailboxes[i].formated); if (mailboxes[i]['can_delete'] && mailboxes[i].id > 0) { itemText += '<span class="main-mail-confirm-menu-delete-icon popup-window-close-icon popup-window-titlebar-close-icon"\ title="' + BX.util.htmlspecialchars(BX.message('MAIN_MAIL_CONFIRM_DELETE')) + '"></span>'; itemClass = 'menu-popup-no-icon menu-popup-right-icon'; itemText += '<span data-role="sender-hint" class="sender-hint main-mail-edit-icon"\ title="' + BX.util.htmlspecialchars(BX.message('MAIN_MAIL_CONFIRM_EDIT')) + '"></span>'; itemClass = 'menu-popup-no-icon menu-popup-right-icon'; } items.push({ html: itemText, title: mailboxes[i].formated, mailbox: mailboxes[i], onclick: handler, className: itemClass, id: mailboxes[i].id }); } items.push({ delimiter: true }); } items.push({ text: BX.util.htmlspecialchars(BX.message('MAIN_MAIL_CONFIRM_MENU')), onclick: function(event, item) { item.menuWindow.close(); BXMainMailConfirm.showForm(function(mailbox, formated) { mailboxes.push({ email: mailbox.email, name: mailbox.name, id: mailbox.id, formated: formated, can_delete: true }); listParams[id].callback(formated, BX.util.htmlspecialchars(formated)); BX.PopupMenu.destroy(id + '-menu'); }); } }); //additional settings if (params.settings.length > 0) { items = items.concat(params.settings); } BX.PopupMenu.show( id + '-menu', bind, items, params.popupSettings ); }, showForm: function(callback, params) { window.step = 'email'; var senderId; window.mode = params && params.mode ? params.mode : 'add'; var dlg = new BX.PopupWindow('add_from_email', null, { titleBar: BX.message('MAIN_MAIL_CONFIRM_TITLE'), draggable: true, closeIcon: true, lightShadow: true, contentColor: 'white', contentNoPaddings: true, cacheable: false, content: BX('new_from_email_dialog_content').innerHTML, buttons: this.prepareDialogButtons(null, 'add', params, callback) }); this.prepareDialog(dlg); }, prepareDialog: function(dlg) { dlg.formFieldHint = function(field, type, text) { if (!field) { return; } var container = BX.findParent(field, { 'class': 'new-from-email-dialog-cell' }); var hint = BX.findChildByClassName(container, 'new-from-email-dialog-field-hint', true); BX.removeClass(container, 'new-from-email-dialog-field-error'); BX.removeClass(container, 'new-from-email-dialog-field-warning'); switch (type) { case 'error': BX.addClass(container, 'new-from-email-dialog-field-error'); break; case 'warning': BX.addClass(container, 'new-from-email-dialog-field-warning'); break; } if (typeof text != 'undefined' && text.length > 0) { BX.adjust(hint, { 'html': text }); BX.show(hint, 'block'); } else { BX.hide(hint, 'block'); } }; dlg.hideNotify = function() { var error = BX.findChild(dlg.contentContainer, { class: 'new-from-email-dialog-error' }, true); if (error) { BX.hide(error, 'block'); } }; dlg.showNotify = function(text) { var error = BX.findChild(dlg.contentContainer, { class: 'new-from-email-dialog-error' }, true); if (error) { 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( 'smtp' == block && options.canCheckSmtp ? 'MAIN_MAIL_CONFIRM_SAVE' : '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); var useLimitCheckbox = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-smtp-use-limit', true); if (useLimitCheckbox) { BX.bind( useLimitCheckbox, 'click', function() { var useLimitCheckbox = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-smtp-use-limit', true); var emailBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-email-block', true); var smtpLimitField = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-limit' } }, true); smtpLimitField.disabled = !useLimitCheckbox.checked; } ) } 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'); dlg.buttons[0].setName(BX.message('MAIN_MAIL_CONFIRM_GET_CODE')); } else { step = 'smtp'; BX.show(smtpBlock, 'table-row-group'); dlg.buttons[0].setName(BX.message( options.canCheckSmtp ? 'MAIN_MAIL_CONFIRM_SAVE' : 'MAIN_MAIL_CONFIRM_GET_CODE' )); } event.preventDefault(); } ); } if ('confirm' == window.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(); } }, showEditForm: function(senderId) { window.step = 'email'; window.mode = 'edit'; var dlg = new BX.PopupWindow('edit_from_email', null, { titleBar: BX.message('MAIN_MAIL_CONFIRM_EDIT_TITLE'), draggable: true, closeIcon: true, lightShadow: true, contentColor: 'white', contentNoPaddings: true, cacheable: false, content: BX('new_from_email_dialog_content').innerHTML, events: { onPopupShow: function () { BX.ajax({ 'url': BX.util.add_url_param(action, { 'act': 'info', senderId: senderId, }), 'method': 'GET', 'dataType': 'json', onsuccess: function (data) { var emailBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-email-block', true); var smtpLink = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-smtp-link', true); var useLimitCheckbox = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-smtp-use-limit', true); var nameField = BX.findChild(emailBlock, { attr: { 'data-name': 'name' } }, true); var emailField = BX.findChild(emailBlock, { attr: { 'data-name': 'email' } }, true); var smtpServerField = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-server' } }, true); var smtpPortField = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-port' } }, true); var smtpSslField = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-ssl' } }, true); var smtpLoginField = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-login' } }, true); var smtpLimitField = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-limit' } }, true); nameField.value = data.name || ''; emailField.value = BX.util.htmlspecialchars(data.email); smtpServerField.value = BX.util.htmlspecialchars(data.server || ''); smtpPortField.value = BX.util.htmlspecialchars(data.port || ''); smtpLoginField.value = BX.util.htmlspecialchars(data.login || ''); var hasNoLimit = typeof data.limit === 'undefined' || data.limit === null; smtpLimitField.value = hasNoLimit ? smtpLimitField.value : data.limit; if (!hasNoLimit) { useLimitCheckbox.checked = true; smtpLimitField.disabled = false; } if (data.protocol === 'smtps') { smtpSslField.checked = true; } if (data.server) { BX.fireEvent(smtpLink, 'click'); } }, onfailure: function (data) { }, }) } }, buttons: this.prepareDialogButtons(senderId, 'edit') }); this.prepareDialog(dlg); }, prepareDialogButtons: function(senderId, act, params, callback) { return [ new BX.PopupWindowButton({ text: BX.message('MAIN_MAIL_CONFIRM_GET_CODE'), className: 'popup-window-button-create', events: { click: function(event, popup) { var btn = this; var dlg = btn.popupWindow; 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 smtpSslField = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-ssl' } }, true); var smtpLoginField = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-login' } }, true); var smtpPassField = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-password' } }, true); var smtpLimit = BX.findChild(emailBlock, { attr: { 'data-name': 'smtp-limit' } }, true); dlg.formFieldHint(smtpPassField); if ('email' == window.step || 'smtp' == window.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' == window.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 (!senderId && smtpPassField.value.length > 0) { if (smtpPassField.value.match(/^\^/)) { dlg.showNotify(BX.message('MAIN_MAIL_CONFIRM_INVALID_SMTP_PASSWORD_CARET')); return; } else if (smtpPassField.value.match(/\x00/)) { dlg.showNotify(BX.message('MAIN_MAIL_CONFIRM_INVALID_SMTP_PASSWORD_NULL')); return; } else if (smtpPassField.value.match(/^\s|\s$/)) { dlg.formFieldHint(smtpPassField, 'warning', BX.message('MAIN_MAIL_CONFIRM_SPACE_SMTP_PASSWORD')); } } else if (!senderId) { dlg.showNotify(BX.message('MAIN_MAIL_CONFIRM_EMPTY_SMTP_PASSWORD')); return; } } if ('code' == window.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 = { id: senderId, name: nameField.value, email: emailField.value, smtp: {}, code: '', public: publicField.checked ? publicField.value : '' }; if ('smtp' == window.step) { data.smtp = { server: smtpServerField.value, port: smtpPortField.value, ssl: smtpSslField.checked ? smtpSslField.value : '', login: smtpLoginField.value, password: smtpPassField.value, limit: smtpLimit.disabled ? null : smtpLimit.value }; } if ('code' == window.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': BX.util.add_url_param(action, { 'act': act }), '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' == window.step || 'smtp' == window.step) && !data.confirmed) { dlg.formFieldHint(smtpPassField); dlg.switchBlock('code'); } else { btn.popupWindow.close(); if (callback && 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() { 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() { var dlg = this.popupWindow; if ('code' == window.step && 'confirm' != window.mode) { var smtpBlock = BX.findChildByClassName(dlg.contentContainer, 'new-from-email-dialog-smtp-block', true); dlg.switchBlock(smtpBlock && smtpBlock.offsetHeight > 0 ? 'smtp' : 'email'); } else { this.popupWindow.close(); } } } }) ] }, updateListCanDel: function(id) { BX.ajax({ 'url':BX.util.add_url_param(action, { 'act': 'sendersListCanDel', }), 'method': 'POST', 'dataType': 'json', 'data': {}, onsuccess: function(data) { if (data.result == 'error') { BX.UI.Notification.Center.notify({ content: BX.message('MAIN_MAIL_DELETE_SENDER_ERROR') }); } else { mailboxes = mailboxes.filter(function(value, index) { if (!value.can_delete) { return true; } for (var i in data.mailboxes) { if (data.mailboxes[i].id == value.id) { return true; } } return false; }); BX.PopupMenu.destroy(id + '-menu'); } }, onfailure: function(data) { BX.UI.Notification.Center.notify({ content: BX.message('MAIN_MAIL_DELETE_SENDER_ERROR') }); } }); }, deleteSender: function(senderId, callback) { BX.UI.Dialogs.MessageBox.show({ message: BX.message('MAIN_MAIL_CONFIRM_DELETE_SENDER_CONFIRM'), modal: true, buttons: BX.UI.Dialogs.MessageBoxButtons.OK_CANCEL, onOk: function(messageBox) { return new Promise( function(resolve,reject) { BX.ajax({ 'url': BX.util.add_url_param(action, { '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') }); reject(data); } else { if (BX.type.isFunction(callback)) { callback(); } resolve(data); } }, onfailure: function(data) { BX.UI.Notification.Center.notify({ content: BX.message('MAIN_MAIL_DELETE_SENDER_ERROR') }); reject(data); } }); } ); }, onCancel: function(messageBox) { messageBox.close(); } }); } }; window.BXMainMailConfirm = BXMainMailConfirm; })();
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings