Files
old-gravityflow/js/inbox.js
Almira Krdzic 60fe7f93e5 Initial commit
2018-08-06 15:41:19 +02:00

102 lines
3.3 KiB
JavaScript

(function (GravityFlowInbox, $) {
$(document).ready(function () {
$('.gravityflow-actions-unlock').click( function() {
var $this = $(this),
$lock = $this.siblings('.gravityflow-actions-lock'),
$noteContainer = $this.siblings('.gravityflow-actions-note-field-container'),
$actionButtons = $this.siblings('.gravityflow-actions');
$this.hide();
$lock.show();
$noteContainer.hide();
$actionButtons.hide();
$this.parent('.gravityflow-actions').addClass( 'gravityflow-actions-locked' );
});
$('.gravityflow-action').click( function() {
var $this = $(this),
$unlock = $this.siblings('.gravityflow-actions-unlock'),
$lock = $this.siblings('.gravityflow-actions-lock'),
$noteContainer = $this.siblings('.gravityflow-actions-note-field-container'),
$noteField = $noteContainer.find('textarea'),
showNoteField = $this.data('note_field');
if ( $this.hasClass( 'gravityflow-action-processed' ) ) {
return;
}
if ( $this.parent('.gravityflow-actions').hasClass( 'gravityflow-actions-locked' ) ) {
$this.parent('.gravityflow-actions').removeClass( 'gravityflow-actions-locked' );
$lock.hide();
$unlock.show();
if ( showNoteField ) {
$noteContainer.show();
$noteField.focus();
$(document).keyup(function(e) {
var KEYCODE_ESC = 27;
if (e.keyCode == KEYCODE_ESC) {
$unlock.click();
}
});
} else {
setTimeout(function () {
if ( ! $this.hasClass( 'gravityflow-action-processing' ) && ! $this.hasClass( 'gravityflow-action-processed' ) ) {
$this.parent('.gravityflow-actions').addClass( 'gravityflow-actions-locked' );
$lock.show();
$unlock.hide();
}
}, 2000);
}
return;
}
var entryId = parseInt($this.data('entry_id')),
restBase = $this.data('rest_base'),
action = $this.data('action'),
url = gravityflow_inbox_strings.restUrl,
nonce = gravityflow_inbox_strings.nonce,
$spinner = $this.siblings('.gravityflow-actions-spinner');
$.ajax({
method: "POST",
url: url + 'gf/v2/entries/' + entryId + '/workflow/' + restBase,
data: { 'action' : action, 'gravityflow_note' : $noteField.val() },
beforeSend: function ( xhr ) {
xhr.setRequestHeader( 'X-WP-Nonce', nonce );
$this.siblings().andSelf().hide();
$this.addClass('gravityflow-action-processing');
$spinner.show();
},
success : function( response ) {
$spinner.hide();
$this.removeClass('gravityflow-action-processing');
if ( response.status == 'success' ) {
$this.addClass('gravityflow-action-processed');
$this.prop('title', response.feedback);
$this.show();
$this.parent('.gravityflow-actions').removeClass( 'gravityflow-actions-locked' );
} else {
$this.parent('.gravityflow-actions').addClass( 'gravityflow-actions-locked' );
$this.siblings('.gravityflow-action').andSelf().show();
$lock.show();
alert( response.feedback );
}
},
fail : function( response ) {
$spinner.hide();
$unlock.hide();
$lock.show();
$this.removeClass('gravityflow-action-processing');
$this.siblings('.gravityflow-actions').andSelf().show();
alert( response );
}
});
});
});
}(window.GravityFlowInbox = window.GravityFlowInbox || {}, jQuery));