Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function openChangeEmailModal(oldEmail, newEmail) {
- const isOldEmailEmpty = !oldEmail || oldEmail.trim() === '' || oldEmail === 'null';
- let emailChangeText = '';
- if (isOldEmailEmpty) {
- emailChangeText = `
- <p>У клиента не было указанного email. Будет добавлен новый email <b>${newEmail}</b> и курс будет перенесён на него, если выбрать опцию <b>Перенести курсы</b>.</p>
- `;
- } else {
- emailChangeText = `
- <p>Вы собираетесь изменить email с <b>${oldEmail}</b> на <b>${newEmail}</b>.</p>
- `;
- }
- const modalHtml = `
- <div class="modal-dialog">
- <div class="modal-content animated fadeIn">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal">
- <span aria-hidden="true">×</span>
- <span class="sr-only">Закрыть</span>
- </button>
- <h5 class="modal-title">Подтверждение смены email</h5>
- </div>
- <div class="modal-body">
- <div class="row">
- <div class="form-group">
- ${emailChangeText}
- <ul style="text-align: left; margin-top: 10px;">
- <li><b>Перенести курсы</b> — все текущие курсы клиента будут перенесены на новую почту в CRM и <a href="https://znayoo.com/">Znayoo</a>, а старая почта будет отключена.</li>
- <li><b>Создать нового пользователя</b> — будет создан отдельный аккаунт с новой почтой, и курс будет добавлен только туда (например, если клиент купил курс другу).</li>
- </ul>
- </div>
- <div class="form-group">
- <label class="col-sm-4 control-label">Выберите действие:</label>
- <div class="col-sm-8">
- <div class="form-group">
- <select id="changeEmailAction" class="form-control">
- <option value="">Выберите действие...</option>
- <option value="transfer">Перенести курсы</option>
- <option value="create_new">Создать нового пользователя</option>
- </select>
- </div>
- </div>
- </div>
- <div class="form-group">
- <button id="confirmChangeEmailBtn" class="card-info-btn primary btn-block submitFalse">Подтвердить</button>
- </div>
- </div>
- </div>
- </div>
- </div>
- `;
- $('#changeEmailModal').html(modalHtml).modal('show');
- $('#confirmChangeEmailBtn').off('click').on('click', function () {
- const form = $('#client_form');
- const selectedAction = $('#changeEmailAction').val();
- if (!selectedAction) {
- alert('Пожалуйста, выберите действие перед подтверждением.');
- return;
- }
- form.append('<input type="hidden" name="confirm_transfer" value="1">');
- form.append('<input type="hidden" name="confirm_transfer_type" value="' + selectedAction + '">');
- $('#changeEmailModal').modal('hide');
- });
- }
- function submitClientForm(form) {
- $.ajax({
- url: form.attr('action'),
- type: 'POST',
- data: form.serialize(),
- dataType: 'json',
- success: function (response) {
- isSubmittingClientForm = false;
- if (typeof response === 'object' && response.status === 'error') {
- alert(response.message || 'Произошла ошибка при сохранении.');
- resetSaveButton();
- return;
- }
- if (typeof response === 'object' && response.status === 'success') {
- Swal.fire({
- icon: 'success',
- title: 'Сохранено',
- text: response.message || 'Данные успешно сохранены.',
- timer: 2000,
- showConfirmButton: false
- }).then(() => {
- location.reload();
- });
- return;
- }
- location.reload();
- },
- error: function (xhr) {
- isSubmittingClientForm = false;
- if (xhr.status === 302 || xhr.status === 0) {
- location.reload();
- return;
- }
- alert('Произошла ошибка соединения или сервер не отвечает.');
- resetSaveButton();
- }
- });
- }
- function bindClientFormSubmit() {
- $('#client_form').off('submit').on('submit', function (e) {
- e.preventDefault();
- const form = $(this);
- const youtubeSelect = $('#youtube_email_contact_list');
- const originalEmail = youtubeSelect.data('original') + '';
- const currentEmail = youtubeSelect.val() + '';
- const confirmTransferInput = form.find('input[name="confirm_transfer"]');
- if (originalEmail === currentEmail || confirmTransferInput.length) {
- submitClientForm(form);
- return;
- }
- $.ajax({
- url: form.attr('action'),
- type: 'POST',
- data: form.serialize(),
- dataType: 'json',
- success: function (data) {
- if (data.status === 'confirm') {
- openChangeEmailModal(data.oldEmail, data.newEmail);
- } else if (data.status === 'error') {
- alert(data.message || 'Произошла ошибка.');
- } else {
- location.reload();
- }
- },
- error: function () {
- alert('Произошла ошибка соединения или сервер не отвечает.');
- resetSaveButton();
- }
- });
- });
- }
- function resetSaveButton() {
- const saveButton = $('#client_form button[type="submit"]');
- if (saveButton.length) {
- saveButton.removeAttr('disabled');
- saveButton.html('Сохранить');
- saveButton.button('reset');
- }
- }
- $('#changeEmailModal').on('hidden.bs.modal', function () {
- resetSaveButton();
- });
- $(function() {
- bindClientFormSubmit();
- $(document).on('pjax:end', bindClientFormSubmit);
- });
Add Comment
Please, Sign In to add comment