144 lines
3.7 KiB
JavaScript
144 lines
3.7 KiB
JavaScript
/* global jetpack_post_by_email:true, pbeVars */
|
|
|
|
( function ( $ ) {
|
|
var $pbeDisable,
|
|
$pbeEmail,
|
|
$pbeEmailWrapper,
|
|
$pbeEnable,
|
|
$pbeError,
|
|
$pbeInfo,
|
|
$pbeRegenerate,
|
|
$pbeSpinner;
|
|
|
|
jetpack_post_by_email = {
|
|
init: function () {
|
|
$pbeEnable.click( jetpack_post_by_email.enable );
|
|
$pbeRegenerate.click( jetpack_post_by_email.regenerate );
|
|
$pbeDisable.click( jetpack_post_by_email.disable );
|
|
},
|
|
|
|
enable: function () {
|
|
$pbeEnable.attr( 'disabled', 'disabled' );
|
|
$pbeError.fadeOut();
|
|
$pbeSpinner.fadeIn();
|
|
|
|
jetpack_post_by_email.send_request(
|
|
{ post_by_email_address: 'create' },
|
|
jetpack_post_by_email.handle_enabled
|
|
);
|
|
},
|
|
|
|
handle_enabled: function ( response ) {
|
|
$pbeRegenerate.removeAttr( 'disabled' );
|
|
$pbeDisable.removeAttr( 'disabled' );
|
|
|
|
if ( response.code === 'success' ) {
|
|
$pbeEnable.fadeOut( 400, function () {
|
|
$pbeEnable.removeAttr( 'disabled' );
|
|
$pbeEmail.val( response.post_by_email_address );
|
|
$pbeInfo.fadeIn();
|
|
} );
|
|
} else {
|
|
$pbeError.text( jetpack_post_by_email.parse_error_message( response ) );
|
|
$pbeError.fadeIn();
|
|
$pbeEnable.removeAttr( 'disabled' );
|
|
}
|
|
|
|
$pbeSpinner.fadeOut();
|
|
},
|
|
|
|
regenerate: function () {
|
|
jetpack_post_by_email.before_request();
|
|
|
|
jetpack_post_by_email.send_request(
|
|
{ post_by_email_address: 'regenerate' },
|
|
jetpack_post_by_email.handle_regenerated
|
|
);
|
|
},
|
|
|
|
handle_regenerated: function ( response ) {
|
|
if ( response.code === 'success' ) {
|
|
$pbeEmailWrapper.fadeOut( 400, function () {
|
|
$pbeEmail.val( response.post_by_email_address );
|
|
$pbeEmailWrapper.fadeIn();
|
|
} );
|
|
} else {
|
|
$pbeError.text( jetpack_post_by_email.parse_error_message( response ) );
|
|
$pbeError.fadeIn();
|
|
}
|
|
|
|
$pbeRegenerate.removeAttr( 'disabled' );
|
|
$pbeDisable.removeAttr( 'disabled' );
|
|
$pbeSpinner.fadeOut();
|
|
},
|
|
|
|
disable: function () {
|
|
jetpack_post_by_email.before_request();
|
|
|
|
jetpack_post_by_email.send_request(
|
|
{ post_by_email_address: 'delete' },
|
|
jetpack_post_by_email.handle_disabled
|
|
);
|
|
},
|
|
|
|
handle_disabled: function ( response ) {
|
|
if ( response.code === 'success' ) {
|
|
$pbeEnable.removeAttr( 'disabled' );
|
|
$pbeInfo.fadeOut( 400, function () {
|
|
$pbeRegenerate.removeAttr( 'disabled' );
|
|
$pbeDisable.removeAttr( 'disabled' );
|
|
$pbeEnable.fadeIn();
|
|
} );
|
|
} else {
|
|
$pbeRegenerate.removeAttr( 'disabled' );
|
|
$pbeDisable.removeAttr( 'disabled' );
|
|
|
|
$pbeError.text( jetpack_post_by_email.parse_error_message( response ) );
|
|
$pbeError.fadeIn();
|
|
}
|
|
|
|
$pbeSpinner.fadeOut();
|
|
},
|
|
|
|
send_request: function ( data, callback ) {
|
|
var request = new XMLHttpRequest();
|
|
request.open( 'POST', '/wp-json/jetpack/v4/settings/' );
|
|
request.setRequestHeader( 'Content-Type', 'application/json' );
|
|
request.setRequestHeader( 'X-WP-Nonce', pbeVars.rest_nonce );
|
|
request.onreadystatechange = function () {
|
|
if ( this.readyState === XMLHttpRequest.DONE ) {
|
|
callback( JSON.parse( this.response ) );
|
|
}
|
|
};
|
|
request.send( JSON.stringify( data ) );
|
|
},
|
|
|
|
parse_error_message: function ( data ) {
|
|
if ( data.message ) {
|
|
return data.message.replace( /^.*?:/, '' );
|
|
}
|
|
|
|
return '';
|
|
},
|
|
|
|
before_request: function () {
|
|
$pbeRegenerate.attr( 'disabled', 'disabled' );
|
|
$pbeDisable.attr( 'disabled', 'disabled' );
|
|
$pbeError.fadeOut();
|
|
$pbeSpinner.fadeIn();
|
|
},
|
|
};
|
|
|
|
$( function () {
|
|
$pbeDisable = $( '#jp-pbe-disable' );
|
|
$pbeEmail = $( '#jp-pbe-email' );
|
|
$pbeEmailWrapper = $( '#jp-pbe-email-wrapper' );
|
|
$pbeEnable = $( '#jp-pbe-enable' );
|
|
$pbeError = $( '#jp-pbe-error' );
|
|
$pbeInfo = $( '#jp-pbe-info' );
|
|
$pbeRegenerate = $( '#jp-pbe-regenerate' );
|
|
$pbeSpinner = $( '#jp-pbe-spinner' );
|
|
|
|
jetpack_post_by_email.init();
|
|
} );
|
|
} )( jQuery );
|