jQuery(document).ready(function($) {
$( ".email-log-date" ).datepicker();
$('.post-smtp-reset-options').on('submit', function(e) {
var result = confirm('Are you sure?');
if ( ! result ) {
e.preventDefault();
return false;
}
});
$('.notice-dismiss.postman-release-message').on('click', function() {
var $this = $(this);
var args = {
action: 'dismiss_version_notify',
security: $this.data('security'),
version: $this.data('version'),
};
$.post(ajaxurl, args, function() {
$this.parent().slideUp();
});
});
$('.post-smtp-donation .donation-dismiss').on('click', function() {
var $this = $(this);
var args = {
action: 'dismiss_donation_notify',
security: $this.data('security'),
};
$.post(ajaxurl, args, function() {
$this.parent().slideUp();
});
});
$('#postman_trash_all').on('click',function(e) {
e.preventDefault();
if (confirm("Are You Sure?") == false) {
return false;
}
let security = $('#post-smtp-log-nonce').val();
$.post(ajaxurl, {action: 'post_smtp_log_trash_all', security: security}, function(result) {
if ( result.success ) {
location.reload();
} else {
alert(result.data);
}
}, 'json');
});
$('.release-lock-file').on('click', function(e) {
e.preventDefault();
var security = $(this).data('security');
$.post(ajaxurl, {action: 'delete_lock_file', security: security}, function(result) {
alert(result);
});
});
});
var redirectUrlWarning = false;
if (!console)
console = {
log : function() {
}
}
function disable(identifier) {
var el = jQuery(identifier);
console.debug('disabling ' + identifier);
el.attr('disabled', 'disabled');
}
function enable(identifier) {
var el = jQuery(identifier);
console.debug('enabling ' + identifier);
el.removeAttr('disabled');
}
function hide(identifier) {
var el = jQuery(identifier);
console.debug('hiding ' + identifier);
el.hide("fast");
}
function show(identifier) {
var el = jQuery(identifier);
console.debug('showing ' + identifier);
el.show("fast");
}
function writeable(identifier) {
var el = jQuery(identifier);
el.prop("readonly", false);
}
function readonly(identifier) {
var el = jQuery(identifier);
el.prop("readonly", true);
}
function hideLoaderIcon() {
hide('.ajax-loader');
}
function showLoaderIcon() {
show('.ajax-loader');
}
function handleConfigurationResponse(response) {
response = response.data;
if (response.display_auth == 'oauth2') {
show('p#wizard_oauth2_help');
jQuery('p#wizard_oauth2_help').html(response.help_text);
jQuery(post_smtp_localize.postman_redirect_url_el).val(response.redirect_url);
jQuery('#input_oauth_callback_domain').val(response.callback_domain);
jQuery('#client_id').html(response.client_id_label);
jQuery('#client_secret').html(response.client_secret_label);
jQuery('#redirect_url').html(response.redirect_url_label);
jQuery('#callback_domain').html(response.callback_domain_label);
}
}
// add an event on the authentication input field
// on user changing the auth type, determine whether to show
// password or oauth section
jQuery(document).ready(function() {
jQuery('a#show-diagnostics').click(function() {
show('#diagnostic-text');
});
});
// http://www.electrictoolbox.com/toggle-password-field-text-password/
function setupPasswordToggle(passwordFieldId, togglePasswordFieldId) {
try {
/**
* switch the password field to text, then back to password to see if it
* supports changing the field type (IE9+, and all other browsers do).
* then switch it back.
*/
passwordField = document.getElementById(passwordFieldId);
for (var i = 0, len = passwordField.value.length; i < len; i++) {
if (passwordField.value[i] == '*')
return false;
}
passwordField.type = 'text';
passwordField.type = 'password';
/**
* if it does support changing the field type then add the event handler
* and make the button visible. if the browser doesn't support it, then
* this is bypassed and code execution continues in the catch() section
* below
*/
togglePasswordField = document.getElementById(togglePasswordFieldId);
togglePasswordField.addEventListener('click',
togglePasswordFieldClicked, false);
togglePasswordField.style.visibility = 'visible';
return true;
}
catch (err) {
return true;
}
}
function togglePasswordFieldClicked() {
// var passwordField = document.getElementById('passwordField');
var value = passwordField.value;
if (passwordField.type == 'password') {
passwordField.type = 'text';
togglePasswordField.disabled = true;
} else {
// nah, let's not toggle it back
// passwordField.type = 'password';
}
passwordField.value = value;
}
// password toggle
showPassword = false;
function enablePasswordDisplayOnEntry($el1, $el2) {
// http://stackoverflow.com/questions/1948332/detect-all-changes-to-a-input-type-text-immediately-using-jquery
console.debug('in enablePasswordDisplayEntryOn');
jQuery('#' + $el1).each(
function() {
var elem = jQuery(this);
// Save current value of element
elem.data('oldVal', elem.val());
// Look for changes in the value
elem.bind("propertychange change click keyup input paste",
function(event) {
// If value has changed...
if (elem.data('oldVal') != elem.val()) {
// Updated stored value
elem.data('oldVal', elem.val());
if (!showPassword)
showPassword = setupPasswordToggle($el1,
$el2);
}
});
});
}
jQuery('body').ajaxStart(function() {
jQuery(this).css({
'cursor' : 'wait'
});
}).ajaxStop(function() {
jQuery(this).css({
'cursor' : 'default'
});
});
function ajaxFailed(response) {
if (response.responseText) {
alert(postman_ajax_msg.bad_response + " "
+ JSON.stringify(response, null, 4));
}
}
// Production steps of ECMA-262, Edition 5, 15.4.4.18
// Reference: http://es5.github.io/#x15.4.4.18
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(callback, thisArg) {
var T, k;
if (this == null) {
throw new TypeError(' this is null or not defined');
}
// 1. Let O be the result of calling ToObject passing the |this| value
// as the argument.
var O = Object(this);
// 2. Let lenValue be the result of calling the Get internal method of O
// with the argument "length".
// 3. Let len be ToUint32(lenValue).
var len = O.length >>> 0;
// 4. If IsCallable(callback) is false, throw a TypeError exception.
// See: http://es5.github.com/#x9.11
if (typeof callback !== "function") {
throw new TypeError(callback + ' is not a function');
}
// 5. If thisArg was supplied, let T be thisArg; else let T be
// undefined.
if (arguments.length > 1) {
T = thisArg;
}
// 6. Let k be 0
k = 0;
// 7. Repeat, while k < len
while (k < len) {
var kValue;
// a. Let Pk be ToString(k).
// This is implicit for LHS operands of the in operator
// b. Let kPresent be the result of calling the HasProperty internal
// method of O with argument Pk.
// This step can be combined with c
// c. If kPresent is true, then
if (k in O) {
// i. Let kValue be the result of calling the Get internal
// method of O with argument Pk.
kValue = O[k];
// ii. Call the Call internal method of callback with T as the
// this value and
// argument list containing kValue, k, and O.
callback.call(T, kValue, k, O);
}
// d. Increase k by 1.
k++;
}
// 8. return undefined
};
}
function postmanValidateAjaxResponse(response) {
if (response.data == undefined) {
// handle corrupt response
jQuery('#postman_test_message_status').html(
postman_email_test.ajax_error);
jQuery('#postman_test_message_status').css('color', 'red');
jQuery('#postman_test_message_error_message').val(
postman_ajax_msg.corrupt_response + ":\n\n" + response);
jQuery('li + li').removeClass('disabled');
return false;
}
return true;
}
function postmanValidateAjaxResponseWithPopup(response) {
if (response.data == undefined) {
alert(postman_ajax_msg.corrupt_response + ":\n\n"
+ JSON.stringify(response, null, 4));
return false;
}
return true;
}
|