'+headers_+''); var attachments = resp.attachments != undefined ? resp.attachments : ''; var attachments_count = 0; var attachments_ = '{}'; if(typeof attachments == 'object' && Object.keys(attachments).length > 0){ attachments_ = JSON.stringify(attachments, null, 3); attachments_count = attachments.length; } dialog.find('.gosmtp-log-attachments').html('
'+attachments_+''); dialog.find('.gosmtp-attachment-count').text('('+attachments_count+')'); var response = resp.response != undefined ? resp.response : ''; if(typeof response == 'object' && Object.keys(response).length > 0){ response = JSON.stringify(response, null, 3); } dialog.find('.gosmtp-log-response').html('
'+response+''); var to = resp.to != undefined ? resp.to : 'NA'; dialog.find('.gosmtp-message-tos').text(to); var from = resp.from != undefined ? resp.from : 'NA'; dialog.find('.gosmtp-message-from').text(from); var subject = resp.subject != undefined ? resp.subject : 'NA'; dialog.find('.gosmtp-message-subject').text(subject); var created = resp.created != undefined ? resp.created : 'NA'; dialog.find('.gosmtp-message-created').text(created); var provider = resp.provider != undefined ? resp.provider : 'NA'; dialog.find('.gosmtp-message-mailer').text(provider); var source = resp.source != undefined ? resp.source : 'NA'; dialog.find('.gosmtp-message-mailer').text(provider+' / '+source); var body = resp.body != undefined ? resp.body : 'NA'; dialog.find('.gosmtp-message-body').html(body); var forward_html = ''; if(resp.status != undefined){ var status = resp.status; var icon = ''; dialog_icon.html(icon); var resend_retry = status == 'Sent' ? 'Resend' : 'Retry'; var rr_html = ``; jQuery('.gosmtp-dialog-actions').html(rr_html); forward_html = ``; } jQuery('.gosmtp-forward-dialog').html(forward_html); } jQuery('body').css('overflow','hidden'); gosmtp_loader('hide'); dialog.fadeIn(); }, error:function(){ gosmtp_loader('hide'); alert('Someting went wrong !'); } }); }); // GoSMTP export files jQuery('body').on('submit','#gosmtp_export', function(e){ e.preventDefault(); var formData = new FormData(this); // Append the nonce formData.append('gosmtp_nonce', gosmtp_ajax_nonce); var format = formData.get('format'); jQuery.ajax({ url: gosmtp_ajaxurl + 'action=gosmtp_export_data', type: "POST", data: formData, processData: false, contentType: false, cache:false, xhrFields: { responseType: 'blob' }, beforeSend : function(){ jQuery('.dashicons-image-rotate').show(); }, success: function(data, status, xhr){ // Response in blob type due to this we get error form headers if(typeof data == 'string'){ error = xhr.getResponseHeader('x-error'); res = gosmtp_isJSON(error); if( res.error != undefined){ alert(res.error); } return false; } // Create a new date object for the current date const currentDate = new Date(); const day = String(currentDate.getDate()).padStart(2, '0'); const month = String(currentDate.getMonth() + 1).padStart(2, '0'); const year = currentDate.getFullYear(); const formattedDate = `${year}_${month}_${day}`; // Download zip for eml formate if(format == 'eml'){ format = 'zip'; } // Create link for download files var a = document.createElement('a'); var url = window.URL.createObjectURL(data); a.href = url; a.download = 'GoSMTP_email_export_'+formattedDate+'.'+format; a.click(); window.URL.revokeObjectURL(url); }, complete: function(res){ jQuery('.dashicons-image-rotate').hide(300); } }); }); // GoSMTP forward email jQuery('body').on('submit','#gosmtp-forward-form', function(e){ e.preventDefault(); e.stopPropagation(); jQuery('body').css('overflow','hidden'); var recipient_email = jQuery('.gosmtp-recipient-email').val(); var dialog = jQuery('#gosmtp-forward-dialog'); var id = jQuery('.forward-mail').attr('data-id'); jQuery.ajax({ url:gosmtp_ajaxurl + 'action=gosmtp_resend_mail', dataType : 'JSON', type : 'post', data: { id:id, gosmtp_nonce: gosmtp_ajax_nonce, recipient_email: recipient_email }, beforeSend:function(){ gosmtp_loader('show'); jQuery(this).addClass('gosmtp-resend-process'); }, success:function( res ){ gosmtp_loader('hide'); if(res.error != undefined){ alert( res.error ); }else{ alert( res.response ); } window.location.reload(); }, error:function(){ gosmtp_loader('hide'); alert('Someting went wrong !'); } }); }); // GoSMTP test mail popup jQuery('body').on('click','#gosmtp-testmail-btn', function(){ jQuery('body').css('overflow','hidden'); var dialog = jQuery('#gosmtp-testmail-dialog'); dialog.fadeIn(); }); // GoSMTP forward email popup jQuery('body').on('click','.gosmtp-forward, .gosmtp-pupup-forward', function(e){ e.stopPropagation(); jQuery('body').css('overflow','hidden'); var dialog = jQuery('#gosmtp-forward-dialog'); var id = jQuery(this).attr('data-id'); jQuery('.forward-mail').attr('data-id',id); dialog.fadeIn(); }); jQuery('.gosmtp-dialog,.gosmtp-dialog-close,.cancel-button').on('click',function(e){ if(e.currentTarget.classList[0] == 'gosmtp-dialog-close' || e.target.classList[0] == 'gosmtp-dialog' || e.target.classList[1] == 'cancel-button'){ jQuery(this).closest('.gosmtp-dialog').fadeOut(); jQuery('body').css('overflow','auto'); } }); // GoSMTP accordion jQuery('.gosmtp-accordion-header').on('click',function(e){ jQuery(this).parent().toggleClass("gosmtp-accordion-open") jQuery(this).parent().find('.gosmtp-accordion-content').slideToggle(); }); // Scrolling event on mailer click jQuery('body').on('click', '.mailer', function(e){ var mailer_container = jQuery(this).closest('tr'); jQuery(mailer_container).get(0).scrollIntoView({behavior: "smooth", inline: "nearest"}); }); // Show or hide logger settings jQuery('body').on('change', '#enable_logs', function(e){ if(jQuery(this).prop('checked')){ jQuery('.gosmtp-logs-options').show(); return; } jQuery('.gosmtp-logs-options').hide(); }); jQuery('#enable_logs:checked').trigger('change'); // Report page handler gosmtp_report_handler(); // For active radio label for format type jQuery('body').on('change', '.gosmtp-radio-list input[type="radio"]', function(e){ var lable = jQuery(this).next('label'); var cEle = jQuery('#custom-field'); var cActive = jQuery('.active_radio_tab').attr('for'); if(cActive == 'csv' || cActive == 'xls'){ sessionStorage.setItem('gosmtp_export_custom_fields', cEle.prop('checked')); }else{ var checked_val = sessionStorage.getItem('gosmtp_export_custom_fields'); if(checked_val != 'true'){ cEle.prop('checked', false); }else{ cEle.prop('checked', true); } } jQuery('.gosmtp-radio-list label').removeClass('active_radio_tab'); lable.addClass('active_radio_tab'); cEle.attr('disabled', false); if(lable.attr('for') == 'eml' ){ cEle.prop('checked', false); cEle.attr('disabled', true); } cEle.trigger('change'); }); // Show custom fields default jQuery('.gosmtp-radio-list input[type="radio"]:checked').trigger('change'); // For active radio label jQuery('body').on('change', '#custom-field', function(e){ jQuery(this).addClass('active_radio_tab'); if(jQuery(this).prop('checked')){ jQuery('.can-hidden').slideDown(200); return; } jQuery('.can-hidden').slideUp(200); }); // For weekdays checkbox jQuery('body').on('change', '#enable_weekly_reports', function(e){ if(jQuery(this).prop('checked')){ jQuery('.form-table #gosmtp-week-list').show(); return; } jQuery('.form-table #gosmtp-week-list').hide(); }); jQuery('#enable_weekly_reports:checked').trigger('change'); jQuery('body').on('click', '#gosmtp-new-conn, #gosmtp-new-conn-link', function(e){ var wrap = jQuery('.gosmtp-new-conn-wrap'); var form = wrap.find('form'); jQuery('#gosmtp-connections-settings').addClass('gosmtp-new-conn-open'); // Reset form if(form.length > 0){ // Reset textboxs except `.gosmtp_copy` form.find('input[type=text], input[type=password]').each(function(){ if(jQuery(this).hasClass('gosmtp_copy')){ return; } jQuery(this).val(''); }); form.find('input[type=text], input[type=password]').removeAttr('readonly'); // Reset checkboxes form.find('input[type=checkbox]:checked,input[type=radio]:checked').removeAttr('checked'); // Reset dropdowns form.find('select option:selected').removeAttr('selected'); // Reset auth links form.find('[data-field=auth]').removeAttr('href').removeClass('button').text('You need to save settings with Client ID and Client Secret before you can proceed.'); } // Reset mailer wrap.find('.mailer_check')[0].click(); // Remove connection id if exists wrap.find('[name="conn_id"]').remove(); // Modify and update current URL gosmtp_update_uri('#gosmtp-connections-settings'); }); jQuery('body').on('click', '#gosmtp-back-trigger', function(e){ var parent = jQuery('#gosmtp-connections-settings'); parent.removeClass('gosmtp-new-conn-open gosmtp-edit-conn-open'); // Modify and update current URL gosmtp_update_uri('#gosmtp-connections-settings'); }); jQuery('body').on('click', '.gosmtp-delete-conn',function(e){ var resp = confirm('Do you want to continue?'); if(!resp){ e.preventDefault(); } }); // Toggling the test message input if(jQuery('.gosmtp-test-html-template').length){ jQuery('.gosmtp-test-html-template').on('change', function(){ if(jQuery(this).is(':checked')){ jQuery('.gosmtp-test-message').hide(); } else{ jQuery('.gosmtp-test-message').show(); } }); } }); function gosmtp_isJSON(str) { try { var obj = JSON.parse(str); return obj; } catch (e) { return false; } } function gosmtp_copy_url(id){ var copyText = jQuery("#" +id); var copyMessage = jQuery("." +id); // Select the text field copyText.select(); // Show Message after Coppied copyMessage.slideDown(500); // Copy the text inside the text field navigator.clipboard.writeText(copyText.val()); // Hide Message after 3 second setTimeout(function(){ copyMessage.slideUp(500); }, 3000); } function gosmtp_loader(option = ''){ var config = option == 'show' ? 'flex' : 'none'; jQuery('.gosmtp-loader').css('display', config) } // Insert data id to checkbox and find active filter from url. function gosmtp_report_handler(){ // Date filter for email report jQuery('#gosmtp-date-option-filter').change(function(){ var dEle = jQuery('.gosmtp-report-date-container, #gosmtp-filter-date'); if(jQuery(this).val() == 'custom_date'){ dEle.show(300); return; } dEle.hide(300); }); // Multi select Toggele event jQuery('.gosmtp-fiter-container .multiselect, .gosmtp-fiter-container .dropdown').click(function(e){ var target = jQuery(e.target); var container = jQuery(this).closest('.gosmtp-fiter-container'); if(target.hasClass( 'multiselect' ) || target.hasClass( 'dropdown' )){ var cEle = jQuery('.gosmtp-fiter-container').not(container); // Slide Up all dropdowns cEle.css("z-index", ""); cEle.find('ul').slideUp(); cEle.find('.dropdown').removeClass('dashicons-arrow-up-alt2'); cEle.find('.dropdown').addClass('dashicons-arrow-down-alt2'); container.css("z-index", "1000"); container.find('ul').slideToggle(); container.find('.dropdown').toggleClass('dashicons-arrow-down-alt2'); container.find('.dropdown').toggleClass('dashicons-arrow-up-alt2'); } }); // Multi select Checkbox click event jQuery('.multiselect-options li input[type=checkbox]').click(function(){ var jEle = jQuery(this); var val = jEle.val(); var oEle = jEle.closest('ul.multiselect-options'); // All selected value container var container = []; // Select all if select all checked if(val == 'all' && jEle.prop('checked')){ oEle.find('li input[type=checkbox]').prop('checked', true); }else if(val == 'all'){ oEle.find('li input[type=checkbox]').prop('checked', false); } // Make Select box checked when all checkbox checked accept Select all checkbox if(oEle.find('li input[type=checkbox]:not(input[value=all]):checked').length < oEle.find('.multiselect-checkbox').length-1){ oEle.find('li input[value=all]').prop('checked', false); }else{ oEle.find('li input[value=all]').prop('checked', true); } // Insert all the checked button to the array oEle.find('li input[type=checkbox]:checked:not(input[value=all])').each(function(){ container.push(jQuery(this).val()); }) // Empty all element before Insert element jEle.closest('.gosmtp-fiter-container').find('.multiselect').html(''); // Insert value when there are empty array if(container.length == 0){ jEle.closest('.gosmtp-fiter-container').find('.multiselect').text('Select Filter'); } // Empty all element for(i=0; i <= container.length-1; i++){ jEle.closest('.gosmtp-fiter-container').find('.multiselect').append('