laipower/wp-content/plugins/easy-digital-downloads/assets/js/admin/notes/index.js

135 lines
3.0 KiB
JavaScript

/**
* Notes
*/
const EDD_Notes = {
init: function() {
this.enter_key();
this.add_note();
this.remove_note();
},
enter_key: function() {
$( document.body ).on( 'keydown', '#edd-note', function( e ) {
if ( e.keyCode === 13 && ( e.metaKey || e.ctrlKey ) ) {
e.preventDefault();
$( '#edd-add-note' ).click();
}
} );
},
/**
* Ajax handler for adding new notes
*
* @since 3.0
*/
add_note: function() {
$( '#edd-add-note' ).on( 'click', function( e ) {
e.preventDefault();
const edd_button = $( this ),
edd_note = $( '#edd-note' ),
edd_notes = $( '.edd-notes' ),
edd_no_notes = $( '.edd-no-notes' ),
edd_spinner = $( '.edd-add-note .spinner' ),
edd_note_nonce = $( '#edd_note_nonce' );
const postData = {
action: 'edd_add_note',
nonce: edd_note_nonce.val(),
object_id: edd_button.data( 'object-id' ),
object_type: edd_button.data( 'object-type' ),
note: edd_note.val(),
};
if ( postData.note ) {
edd_button.prop( 'disabled', true );
edd_spinner.css( 'visibility', 'visible' );
$.ajax( {
type: 'POST',
data: postData,
url: ajaxurl,
success: function( response ) {
let res = wpAjax.parseAjaxResponse( response );
res = res.responses[ 0 ];
edd_notes.append( res.data );
edd_no_notes.hide();
edd_button.prop( 'disabled', false );
edd_spinner.css( 'visibility', 'hidden' );
edd_note.val( '' );
},
} ).fail( function( data ) {
if ( window.console && window.console.log ) {
console.log( data );
}
edd_button.prop( 'disabled', false );
edd_spinner.css( 'visibility', 'hidden' );
} );
} else {
const border_color = edd_note.css( 'border-color' );
edd_note.css( 'border-color', 'red' );
setTimeout( function() {
edd_note.css( 'border-color', border_color );
}, userInteractionInterval );
}
} );
},
/**
* Ajax handler for deleting existing notes
*
* @since 3.0
*/
remove_note: function() {
$( document.body ).on( 'click', '.edd-delete-note', function( e ) {
e.preventDefault();
const edd_link = $( this ),
edd_notes = $( '.edd-note' ),
edd_note = edd_link.parents( '.edd-note' ),
edd_no_notes = $( '.edd-no-notes' ),
edd_note_nonce = $( '#edd_note_nonce' );
if ( confirm( edd_vars.delete_note ) ) {
const postData = {
action: 'edd_delete_note',
nonce: edd_note_nonce.val(),
note_id: edd_link.data( 'note-id' ),
};
edd_note.addClass( 'deleting' );
$.ajax( {
type: 'POST',
data: postData,
url: ajaxurl,
success: function( response ) {
if ( '1' === response ) {
edd_note.remove();
}
if ( edd_notes.length === 1 ) {
edd_no_notes.show();
}
return false;
},
} ).fail( function( data ) {
if ( window.console && window.console.log ) {
console.log( data );
}
edd_note.removeClass( 'deleting' );
} );
return true;
}
} );
},
};
jQuery( document ).ready( function( $ ) {
EDD_Notes.init();
} );