Files
wordpress-preseed/wp-content/plugins/media-library-assistant/js/mla-inline-edit-scripts.js
2019-10-24 00:12:05 +02:00

880 lines
29 KiB
JavaScript

/* global ajaxurl */
var jQuery,
mla_inline_edit_vars,
mla = {
// Properties (for mla-set-parent-scripts, too)
// mla.settings.noTitle
// mla.settings.ntdelTitle
// mla.settings.quickTagsInit
// mla.settings.bulkChunkSize
// mla.settings.ajax_action
// mla.settings.ajax_nonce
// mla.settings.bulkWaiting
// mla.settings.bulkComplete
// mla.settings.bulkSuccess
// mla.settings.bulkFailure
// mla.settings.error
// mla.settings.bulkCanceled
// mla.settings.fields
// mla.settings.bulkTitle
// mla.settings.comma for flat taxonomy suggest
// mla.settings.ajaxFailError for setParent
// mla.settings.ajaxDoneError for setParent
// mla.settings.useDashicons for setParent
// mla.settings.useSpinnerClass for setParent
settings: {},
bulkEdit: {
inProcess: false,
doCancel: false
},
// Utility functions
utility: {
getId : function( o ) {
var id = jQuery( o ).closest( 'tr' ).attr( 'id' ),
parts = id.split( '-' );
return parts[ parts.length - 1 ];
},
attachSearch : function( rowId ) {
jQuery( rowId + ' .categorydiv').each( function(){
var this_id = jQuery(this).attr('id'), taxonomyParts, taxonomy;
taxonomyParts = this_id.split('-');
taxonomyParts.shift(); // taxonomy-
taxonomy = taxonomyParts.join('-');
jQuery.extend( jQuery.expr[":"], {
"matchTerms": function( elem, i, match, array ) {
return ( elem.textContent || elem.innerText || "" ).toLowerCase().indexOf( ( match[3] || "" ).toLowerCase() ) >= 0;
}
});
jQuery( rowId + ' #' + taxonomy + '-searcher' ).addClass( 'wp-hidden-children' );
jQuery( rowId + ' #' + taxonomy + 'checklist li' ).show();
jQuery( rowId + ' #search-' + taxonomy ).off();
jQuery( rowId + ' #search-' + taxonomy ).keydown( function( event ){
if( 13 === event.keyCode ) {
event.preventDefault();
jQuery( rowId + ' #search-' + taxonomy ).val( '' );
jQuery( rowId + ' #' + taxonomy + '-searcher' ).addClass( 'wp-hidden-children' );
jQuery( rowId + ' #' + taxonomy + 'checklist li' ).show();
return false;
}
} );
jQuery( rowId + ' #search-' + taxonomy ).keypress( function( event ){
if( 13 === event.keyCode ) {
event.preventDefault();
jQuery( rowId + ' #search-' + taxonomy ).val( '' );
jQuery( rowId + ' #' + taxonomy + '-searcher' ).addClass( 'wp-hidden-children' );
jQuery( rowId + ' #' + taxonomy + 'checklist li' ).show();
return;
}
} );
jQuery( rowId + ' #search-' + taxonomy ).keyup( function( event ){
var searchValue, termList, matchingTerms;
if( 13 === event.keyCode ) {
event.preventDefault();
jQuery( rowId + ' #' + taxonomy + '-search-toggle' ).focus();
return;
}
searchValue = jQuery( rowId + ' #search-' + taxonomy ).val();
termList = jQuery( rowId + ' #' + taxonomy + 'checklist li' );
if ( 0 < searchValue.length ) {
termList.hide();
} else {
termList.show();
}
matchingTerms = jQuery( rowId + ' #' + taxonomy + "checklist label:matchTerms('" + searchValue + "')");
matchingTerms.closest( 'li' ).find( 'li' ).andSelf().show();
matchingTerms.parents( rowId + ' #' + taxonomy + 'checklist li' ).show();
} );
jQuery( rowId + ' #' + taxonomy + '-search-toggle' ).off();
jQuery( rowId + ' #' + taxonomy + '-search-toggle' ).click( function() {
jQuery( rowId + ' #' + taxonomy + '-adder ').addClass( 'wp-hidden-children' );
jQuery( rowId + ' #' + taxonomy + '-searcher' ).toggleClass( 'wp-hidden-children' );
jQuery( rowId + ' #' + taxonomy + 'checklist li' ).show();
if ( false === jQuery( rowId + ' #' + taxonomy + '-searcher' ).hasClass( 'wp-hidden-children' ) ) {
jQuery( rowId + ' #search-' + taxonomy ).val( '' ).removeClass( 'form-input-tip' );
jQuery( rowId + ' #search-' + taxonomy ).focus();
}
return false;
});
}); // .categorydiv.each,
}
},
// Components
setParent: null,
inlineEditAttachment: null
};
( function( $ ) {
// Localized settings and strings
mla.settings = typeof mla_inline_edit_vars === 'undefined' ? {} : mla_inline_edit_vars;
mla_inline_edit_vars = void 0; // delete won't work on Globals
// The inlineEditAttachment functions are adapted from wp-admin/js/inline-edit-post.js
mla.inlineEditAttachment = {
init : function(){
var t = this, qeRow = $( '#inline-edit' ), bulkRow = $( '#bulk-edit' ), progressRow = $( '#bulk-progress' );
if ( mla.settings.deleteAcpBulkEdit ) {
setTimeout( function() {
var elements = document.querySelectorAll( 'body.ac-mla-media-assistant .acp-be-editrow, body.ac-mla-media-assistant .acp-be-noticerow' );
for ( i = 0; i < elements.length; ++i ) {
elements[ i ].remove();
}
}, 1000 );
}
t.type = 'attachment';
t.what = '#attachment-';
// prepare the edit rows
qeRow.keyup(function(e){
if (e.which == 27)
return mla.inlineEditAttachment.revert();
});
bulkRow.keyup(function(e){
if (e.which == 27)
return mla.inlineEditAttachment.revert();
});
progressRow.keyup(function(e){
if (e.which == 27)
return mla.inlineEditAttachment.revert();
});
$('#inline-edit-post-set-parent', qeRow).on( 'click', function(){
return mla.inlineEditAttachment.inlineParentOpen(this);
});
$('a.cancel', qeRow).click(function(){
return mla.inlineEditAttachment.revert();
});
$('a.save', qeRow).click(function(){
return mla.inlineEditAttachment.quickSave(this);
});
$('td', qeRow).keydown(function(e){
if ( e.which == 13 )
return mla.inlineEditAttachment.quickSave(this);
});
if ( typeof mla.addTerm !== 'undefined' ) {
mla.addTerm.init( '#bulk-edit-fields-div' );
}
mla.utility.attachSearch( '#bulk-edit-fields-div' );
$('#bulk-edit-set-parent', bulkRow).on( 'click', function(){
return mla.inlineEditAttachment.bulkParentOpen();
});
$('a.cancel', bulkRow).click(function(){
return mla.inlineEditAttachment.revert();
});
$('a.reset', bulkRow).click(function(){
return mla.inlineEditAttachment.doReset();
});
$('input[type="submit"]', bulkRow).click(function(e){
e.preventDefault();
return mla.inlineEditAttachment.bulkSave(e);
});
$('a.cancel', progressRow).click(function(){
if ( mla.bulkEdit.inProcess ) {
mla.bulkEdit.doCancel = true;
return false;
} else {
return mla.inlineEditAttachment.revert();
}
});
// Clicking "Refresh" submits the form, refreshing the page
$('#bulk_refresh', progressRow).click(function(){
$( '#bulk-progress a' ).prop( 'disabled', true );
$( '#bulk-progress' ).css( 'opacity', '0.5' );
});
// add event to the Quick Edit links
$( '#the-list' ).on( 'click', 'a.editinline', function(){
mla.inlineEditAttachment.quickEdit(this);
return false;
});
$('select[name="_status"] option[value="future"]', bulkRow).remove();
$('#doaction, #doaction2').click(function(e){
var n = $(this).attr('id').substr(2);
if ( $('select[name="'+n+'"]').val() == 'edit' ) {
e.preventDefault();
t.bulkEdit();
} else if ( $('form#posts-filter tr.inline-editor').length > 0 ) {
t.revert();
}
});
// Filter button (dates, categories) in top nav bar
$('#post-query-submit').mousedown(function(){
t.revert();
$('select[name^="action"]').val('-1');
});
},
bulkEdit : function(){
var te = '', c = true;
this.revert();
$('#bulk-edit td').attr('colspan', $( 'th:visible, td:visible', '.widefat:first thead' ).length);
/*
* Insert the editor at the top of the table with an empty row above
* in WP 4.2+ to maintain zebra striping.
*/
if ( mla.settings.useSpinnerClass ) {
$('table.wp-list-table tbody').prepend( $('#bulk-edit') ).prepend('<tr class="hidden"></tr>');
} else {
$('table.wp-list-table tbody').prepend( $('#bulk-edit') );
}
$('#bulk-edit').addClass('inline-editor').show();
$('tbody th.check-column input[type="checkbox"]').each(function(){
if ( $(this).prop('checked') ) {
c = false;
var id = $(this).val(), theTitle;
theTitle = $('#inline_'+id+' .post_title').text() || mla.settings.noTitle;
te += '<div id="ttle'+id+'"><a id="_'+id+'" class="ntdelbutton" title="'+mla.settings.ntdelTitle+'">X</a>'+theTitle+'</div>';
}
});
if ( c )
return this.revert();
$('#bulk-titles').html(te);
$('#bulk-titles a').click(function(){
var id = $(this).attr('id').substr(1);
$('table.wp-list-table input[value="' + id + '"]').prop('checked', false);
$('#ttle'+id).remove();
});
//flat taxonomies
$('textarea.mla_tags').each(function(){
var taxname = $(this).attr('name').replace(']', '').replace('tax_input[', '');
$(this).suggest( ajaxurl + '?action=ajax-tag-search&tax=' + taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: mla.settings.comma + ' ' } );
});
$('html, body').animate( { scrollTop: 0 }, 'fast' );
if ( ( typeof quicktags !== 'undefined' ) && ( typeof mla.settings.quickTagsInit !== 'undefined' ) ) {
for ( id in mla.settings.quickTagsInit ) {
quicktags( mla.settings.quickTagsInit[id] );
if ( mla.settings.quickTagsInit[id]['active'] ) {
window.wpActiveEditor = id;
}
}
}
},
bulkSave : function(e) {
var ids;
mla.bulkEdit = {
inProcess: false,
doCancel: false,
chunkSize: 0,
targetName: '',
fields: '',
ids: [],
idsCount: 0,
offset: 0,
waiting: 0,
running: 0,
complete: 0,
unchanged:0,
success: 0,
failure: 0
};
//mla.bulkEdit.ids = []; // clone doesn't do this.
mla.bulkEdit.chunkSize = +mla.settings.bulkChunkSize;
mla.bulkEdit.targetName = e.target.name;
mla.bulkEdit.fields = $('#bulk-edit :input').serialize();
ids = $('tbody th.check-column input[type="checkbox"]').serializeArray();
$.each( ids, function( index, id ) {
mla.bulkEdit.ids[ index ] = +id.value;
});
mla.bulkEdit.idsCount = mla.bulkEdit.waiting = mla.bulkEdit.ids.length;
//console.log( JSON.stringify( mla.bulkEdit ) );
mla.inlineEditAttachment.bulkProgressOpen();
mla.inlineEditAttachment.bulkPost();
return false;
},
bulkProgressOpen : function(){
var te = '', c = true;
this.revert();
$('#bulk-progress td').attr('colspan', $( 'th:visible, td:visible', '.widefat:first thead' ).length);
$('table.wp-list-table tbody').prepend( $('#bulk-progress') );
$('#bulk-progress').addClass('inline-editor').show();
$('#cb-select-all-1' ).removeAttr( 'checked' );
$('#cb-select-all-2' ).removeAttr( 'checked' );
$('tbody th.check-column input[type="checkbox"]').each(function(){
if ( $(this).prop('checked') ) {
c = false;
var id = $(this).val(), theTitle;
theTitle = $('#inline_'+id+' .post_title').text() || mla.settings.noTitle;
te += '<div id="ttle'+id+'"><a id="_'+id+'" class="ntdelbutton" title="'+mla.settings.ntdelTitle+'">X</a>'+theTitle+'</div>';
}
});
if ( c )
return this.revert();
$('#bulk-progress-running').html('');
$('#bulk-progress-complete').html('');
$('#bulk-progress-waiting').html(te);
$('#bulk-progress-waiting a').click(function(){
var id = $(this).attr('id').substr(1);
$('table.wp-list-table input[value="' + id + '"]').prop('checked', false);
$('#ttle'+id).remove();
});
// Disable "Refresh" until the bulk updates are complete
$( '#bulk-progress .inline-edit-save .error' ).html( '' );;
$( '#bulk_refresh' ).prop( 'disabled', true ).css( 'opacity', '0.5' );
$('html, body').animate( { scrollTop: 0 }, 'fast' );
},
bulkPost : function() {
var params, chunk, cIndex, item, statusMessage,
spinner = $('table.wp-list-table .inline-edit-save .spinner'),
results = $( '#bulk-progress .inline-edit-save .error' ),
waiting = $( '#bulk-progress-waiting' ),
running = $( '#bulk-progress-running' );
// Find the items to process
chunk = mla.bulkEdit.ids.slice( mla.bulkEdit.offset, mla.bulkEdit.offset + mla.bulkEdit.chunkSize );
// Move them from waiting to running
for ( cIndex = 0; cIndex < chunk.length; cIndex++ ) {
item = $( '#ttle' + chunk[ cIndex ], waiting ).remove()
$( 'a', item ).hide();
running.append( item );
}
mla.bulkEdit.waiting -= chunk.length;
mla.bulkEdit.running = chunk.length;
params = {
action: mla.settings.ajax_action,
mla_admin_nonce: mla.settings.ajax_nonce,
bulk_action: mla.bulkEdit.targetName,
cb_offset: mla.bulkEdit.offset,
cb_count: mla.bulkEdit.idsCount,
cb_attachment: chunk
};
mla.bulkEdit.offset += mla.bulkEdit.chunkSize;
params = $.param( params ) + '&' + mla.bulkEdit.fields;
//console.log( params );
// make ajax request
mla.bulkEdit.inProcess = true;
if ( mla.settings.useSpinnerClass ) {
spinner.addClass("is-active");
} else {
spinner.show();
}
statusMessage = mla.settings.bulkWaiting + ': ' + mla.bulkEdit.waiting
+ ', ' + mla.settings.bulkComplete + ': ' + mla.bulkEdit.complete
+ ', ' + mla.settings.bulkUnchanged + ': ' + mla.bulkEdit.unchanged
+ ', ' + mla.settings.bulkSuccess + ': ' + mla.bulkEdit.success
+ ', ' + mla.settings.bulkFailure + ': ' + mla.bulkEdit.failure;
results.html( statusMessage ).show();
$.ajax( ajaxurl, {
type: 'POST',
data: params,
dataType: 'json'
}).always( function() {
if ( mla.settings.useSpinnerClass ) {
spinner.removeClass("is-active");
} else {
spinner.hide();
}
}).done( function( response, status ) {
var responseData = 'no response.data', responseMessage, items;
if ( mla.settings.useSpinnerClass ) {
spinner.removeClass("is-active");
} else {
spinner.hide();
}
if ( response ) {
if ( ! response.success ) {
if ( response.responseData ) {
responseData = response.data;
}
results.html( JSON.stringify( response ) ).show();
mla.bulkEdit.offset = mla.bulkEdit.idsCount; // Stop
} else {
// Move the items from Running to Complete
items = $( '#bulk-progress-running div' ).remove();
$.each( items, function() {
var result, title = $( this ).html(),
id = $( this ).attr('id').substr( 4 );
if ( 'string' === typeof( response.data.item_results[ id ]['result'] ) ) {
result = response.data.item_results[ id ]['result'];
$( this ).html( title + ' (' + id + ') - ' + result );
}
$( '#attachment-' + id ).remove();
});
$( '#bulk-progress-complete' ).append( items );
mla.bulkEdit.complete += mla.bulkEdit.running;
mla.bulkEdit.running = 0;
mla.bulkEdit.unchanged += response.data.unchanged;
mla.bulkEdit.success += response.data.success;
mla.bulkEdit.failure += response.data.failure;
responseMessage = mla.settings.bulkWaiting + ': ' + mla.bulkEdit.waiting
+ ', ' + mla.settings.bulkComplete + ': ' + mla.bulkEdit.complete
+ ', ' + mla.settings.bulkUnchanged + ': ' + mla.bulkEdit.unchanged
+ ', ' + mla.settings.bulkSuccess + ': ' + mla.bulkEdit.success
+ ', ' + mla.settings.bulkFailure + ': ' + mla.bulkEdit.failure;
results.html( responseMessage ).show();
}
} else {
results.html( mla.settings.error ).show();
mla.bulkEdit.offset = mla.bulkEdit.idsCount; // Stop
}
if ( mla.bulkEdit.doCancel ) {
results.html( mla.settings.bulkCanceled + '. ' + responseMessage ).show();
} else {
if ( mla.bulkEdit.offset < mla.bulkEdit.idsCount ) {
mla.inlineEditAttachment.bulkPost();
return;
}
}
$( '#bulk_refresh' ).prop( 'disabled', false ).css( 'opacity', '1.0' );
mla.bulkEdit.inProcess = false;
}).fail( function( jqXHR, status ) {
if ( 200 == jqXHR.status ) {
results.text( '(' + status + ') ' + jqXHR.responseText );
} else {
results.text( mla.settings.ajaxFailError + ' (' + status + '), jqXHR( ' + jqXHR.status + ', ' + jqXHR.statusText + ', ' + jqXHR.responseText + ')' );
}
});
},
quickEdit : function(id) {
var t = this, fields, editRow, rowData, checkedOnTop = [], icon, fIndex;
t.revert();
if ( typeof(id) == 'object' )
id = mla.utility.getId(id);
fields = mla.settings.fields;
/*
* add the new edit row with an extra blank row underneath
* in WP 4.2+ to maintain zebra striping
*/
editRow = $('#inline-edit').clone(true);
$('td', editRow).attr('colspan', $( 'th:visible, td:visible', '.widefat:first thead' ).length);
if ( mla.settings.useSpinnerClass ) {
$(t.what+id).hide().after(editRow).after('<tr class="hidden"></tr>');
} else {
if ( $(t.what+id).hasClass('alternate') ) {
$(editRow).addClass('alternate');
}
$(t.what+id).hide().after(editRow);
}
// populate the data
rowData = $('#inline_'+id);
icon = $('.item_thumbnail', rowData).html();
if ( icon.length ) {
$( '#item_thumbnail', editRow ).html( icon );
}
if ( !$(':input[name="post_author"] option[value="' + $('.post_author', rowData).text() + '"]', editRow).val() ) {
// author no longer has edit caps, so we need to add them to the list of authors
$(':input[name="post_author"]', editRow).prepend('<option value="' + $('.post_author', rowData).text() + '">' + $('#' + t.type + '-' + id + ' .author').text() + '</option>');
}
if ( $(':input[name="post_author"] option', editRow).length == 1 ) {
$('label.inline-edit-author', editRow).hide();
}
for ( fIndex = 0; fIndex < fields.length; fIndex++ ) {
$(':input[name="' + fields[fIndex] + '"]', editRow).val( $('.'+fields[fIndex], rowData).text() );
}
if ( $('.image_alt', rowData).length === 0) {
$('label.inline-edit-image-alt', editRow).hide();
}
// checklist taxonomies having "checked terms on top"
$('.checked_on_top', rowData).each(function(){
checkedOnTop[checkedOnTop.length] = $(this).attr('id').replace('_'+id, '');
});
// hierarchical taxonomies
$('.mla_category', rowData).each(function(){
var term_ids = $(this).text(), taxname = $(this).attr('id').replace('_'+id, ''), checkedLabels, checkedTerms;
if ( term_ids ) {
$('ul.'+taxname+'checklist :checkbox', editRow).val(term_ids.split(','));
if ( -1 !== checkedOnTop.indexOf( taxname ) ) {
checkedLabels = $('ul.'+taxname+'checklist li :checked', editRow ).parents( 'label' ).remove().toArray().reverse();
checkedTerms = $( '<li></li>' ).html( checkedLabels );
$('ul.'+taxname+'checklist', editRow ).prepend( checkedTerms );
}
}
});
//flat taxonomies
$('.mla_tags', rowData).each(function(){
var terms = $(this).text(),
taxname = $(this).attr('id').replace('_' + id, ''),
textarea = $('textarea.tax_input_' + taxname, editRow),
comma = mla.settings.comma, langArgument;
if ( terms ) {
if ( ',' !== comma )
terms = terms.replace(/,/g, comma);
textarea.val(terms);
}
langArgument = $('.lang', rowData).text();
if ( 0 < langArgument.length ) {
langArgument = '&lang=' + langArgument;
} else {
langArgument = '';
}
textarea.suggest( ajaxurl + '?action=ajax-tag-search&tax=' + taxname + '&preview_id=' + id + langArgument, { delay: 500, minchars: 2, multiple: true, multipleSep: mla.settings.comma + ' ' } );
});
rowData = $(editRow).attr('id', 'edit-'+id).addClass('inline-editor').show().position().top;
$('.ptitle', editRow).focus();
$( 'html, body' ).animate( { scrollTop: rowData }, 'fast' );
// Make the edit-fields-div id unique again
$( '#inline-edit-fields-div', editRow ).attr( 'id', 'inline-edit-fields-div-active' );
if ( typeof mla.addTerm !== 'undefined' ) {
mla.addTerm.init( '#inline-edit-fields-div-active' );
}
mla.utility.attachSearch( '#inline-edit-fields-div-active' );
return false;
},
quickSave : function( id ) {
var params, fields, page = $('.post_status_page').val() || '';
if ( typeof(id) == 'object' ) {
id = mla.utility.getId(id);
}
if ( mla.settings.useSpinnerClass ) {
$('table.wp-list-table .inline-edit-save .spinner').addClass("is-active");
} else {
$('table.wp-list-table .inline-edit-save .spinner').show();
}
params = {
action: mla.settings.ajax_action,
mla_admin_nonce: mla.settings.ajax_nonce,
post_type: 'attachment',
post_ID: id,
edit_date: 'true',
post_status: page
};
fields = $('#edit-' + id + ' :input').serialize();
params = fields + '&' + $.param(params);
// make ajax request
$.post( ajaxurl, params,
function( response ) {
if ( mla.settings.useSpinnerClass ) {
$('table.wp-list-table .inline-edit-save .spinner').removeClass("is-active");
} else {
$('table.wp-list-table .inline-edit-save .spinner').hide();
}
if ( response ) {
if ( -1 != response.indexOf( '<tr' ) ) {
if ( mla.settings.useSpinnerClass ) {
$( mla.inlineEditAttachment.what + id ).siblings('tr.hidden').addBack().remove();
} else {
$( mla.inlineEditAttachment.what + id ).remove();
}
$( '#edit-' + id ).before( response ).remove();
$( mla.inlineEditAttachment.what + id ).hide().fadeIn();
} else {
response = response.replace( /<.[^<>]*?>/g, '' );
$( '#edit-' + id + ' .inline-edit-save .error' ).html( response ).show();
}
} else {
$( '#edit-' + id + ' .inline-edit-save .error' ).html( mla.settings.error ).show();
}
}, 'html');
return false;
},
inlineParentOpen : function( id ) {
var parentId, postId, postTitle;
if ( typeof( id ) == 'object' ) {
postId = mla.utility.getId( id );
parentId = $( '#edit-' + postId + ' :input[name="post_parent"]' ).val() || '';
postTitle = $( '#edit-' + postId + ' :input[name="post_title"]' ).val() || '';
mla.setParent.open( parentId, postId, postTitle );
/*
* Grab the "Update" button
*/
$( '#mla-set-parent-submit' ).on( 'click', function( event ){
event.preventDefault();
mla.inlineEditAttachment.inlineParentSave( postId );
return false;
});
}
},
inlineParentSave : function( postId ) {
var foundRow = $( '#mla-set-parent-response-div input:checked' ).closest( 'tr' ), parentId, parentTitle,
editRow = $( '#edit-' + postId ), newParent, newTitle;
if ( foundRow.length ) {
parentId = $( ':radio', foundRow ).val() || '';
parentTitle = $( 'label', foundRow ).html() || '';
newParent = $(':input[name="post_parent"]', editRow).clone( true ).val( parentId );
newTitle = $(':input[name="post_parent_title"]', editRow).clone( true ).val( parentTitle );
$(':input[name="post_parent"]', editRow).replaceWith( newParent );
$(':input[name="post_parent_title"]', editRow).replaceWith( newTitle );
}
mla.setParent.close();
$('#mla-set-parent-submit' ).off( 'click' );
},
bulkParentOpen : function() {
var parentId, postId, postTitle;
postId = -1;
postTitle = mla.settings.bulkTitle;
parentId = $( '#bulk-edit :input[name="post_parent"]' ).val() || -1;
mla.setParent.open( parentId, postId, postTitle );
/*
* Grab the "Update" button
*/
$( '#mla-set-parent-submit' ).on( 'click', function( event ){
event.preventDefault();
mla.inlineEditAttachment.bulkParentSave();
return false;
});
},
bulkParentSave : function() {
var foundRow = $( '#mla-set-parent-response-div input:checked' ).closest( 'tr' ), parentId, newParent;
if ( foundRow.length ) {
parentId = $( ':radio', foundRow ).val() || '';
newParent = $('#bulk-edit :input[name="post_parent"]').clone( true ).val( parentId );
$('#bulk-edit :input[name="post_parent"]').replaceWith( newParent );
}
mla.setParent.close();
$('#mla-set-parent-submit' ).off( 'click' );
},
tableParentOpen : function( parentId, postId, postTitle ) {
mla.setParent.open( parentId, postId, postTitle );
/*
* Grab the "Update" button
*/
$( '#mla-set-parent-submit' ).on( 'click', function( event ){
event.preventDefault();
mla.inlineEditAttachment.tableParentSave( postId );
return false;
});
},
tableParentSave : function( postId ) {
var foundRow = $( '#mla-set-parent-response-div input:checked' ).closest( 'tr' ),
parentId = $( ':radio', foundRow ).val() || '-1',
params, tableCell = $( '#attachment-' + postId + " td.attached_to" ).clone( true );
if ( foundRow.length && ( parentId >= 0 ) ) {
tableCell = $( '#attachment-' + postId + " td.attached_to" ).clone( true );
tableCell.html( '<span class="spinner"></span>' );
$( '#attachment-' + postId + " td.attached_to" ).replaceWith( tableCell );
if ( mla.settings.useSpinnerClass ) {
$( '#attachment-' + postId + " td.attached_to .spinner" ).addClass("is-active");
} else {
$( '#attachment-' + postId + " td.attached_to .spinner" ).show();
}
params = $.param( {
action: mla.settings.ajax_action + '-set-parent',
mla_admin_nonce: mla.settings.ajax_nonce,
post_ID: postId,
post_parent: parentId,
} );
$.post( ajaxurl, params,
function( response ) {
if ( response ) {
if ( -1 == response.indexOf( 'tableParentOpen(' ) ) {
response = response.replace( /<.[^<>]*?>/g, '' );
}
} else {
response = mla.settings.ajaxFailError;
}
$( '#attachment-' + postId ).before( response ).remove();
$( '#attachment-' + postId ).hide().fadeIn();
}, 'html');
} else {
tableCell.html( mla.settings.error );
$( '#attachment-' + postId + " td.attached_to" ).replaceWith( tableCell );
}
$('#mla-set-parent-submit' ).off( 'click' );
mla.setParent.close();
},
doReset : function(){
var id = $('table.wp-list-table tr.inline-editor').attr('id'),
bulkRow = $('table.wp-list-table #bulk-edit'),
blankRow = $('#inlineedit #blank-bulk-edit'),
blankCategories = $('.inline-edit-categories', blankRow ).html(),
blankTags = $('.inline-edit-tags', blankRow ).html(),
blankFields = $('.inline-edit-fields', blankRow ).html();
if ( id ) {
if ( mla.settings.useSpinnerClass ) {
$('table.wp-list-table .inline-edit-save .spinner').removeClass("is-active");
} else {
$('table.wp-list-table .inline-edit-save .spinner').hide();
}
if ( 'bulk-edit' == id ) {
$('.inline-edit-categories', bulkRow ).html( blankCategories ),
$('.inline-edit-tags', bulkRow ).html( blankTags ),
$('.inline-edit-fields', bulkRow ).html( blankFields );
if ( ( typeof quicktags !== 'undefined' ) && ( typeof mla.settings.quickTagsInit !== 'undefined' ) ) {
for ( id in mla.settings.quickTagsInit ) {
quicktags( mla.settings.quickTagsInit[id] );
if ( mla.settings.quickTagsInit[id]['active'] ) {
window.wpActiveEditor = id;
}
}
}
if ( typeof mla.addTerm !== 'undefined' ) {
mla.addTerm.init( '#bulk-edit-fields-div' );
}
mla.utility.attachSearch( '#bulk-edit-fields-div' );
$('#bulk-edit-set-parent', bulkRow).on( 'click', function(){
return mla.inlineEditAttachment.bulkParentOpen();
});
}
}
return false;
},
revert : function(){
var id = $('table.wp-list-table tr.inline-editor').attr('id');
if ( id ) {
if ( mla.settings.useSpinnerClass ) {
$('table.wp-list-table .inline-edit-save .spinner').removeClass("is-active");
} else {
$('table.wp-list-table .inline-edit-save .spinner').hide();
}
if ( 'bulk-edit' == id ) {
if ( mla.settings.useSpinnerClass ) {
$('table.wp-list-table #bulk-edit').removeClass('inline-editor').hide().siblings('tr.hidden').remove();
} else {
$('table.wp-list-table #bulk-edit').removeClass('inline-editor').hide();
}
$('#bulk-titles').html('');
$('#inlineedit').append( $('#bulk-edit') );
} else {
if ( 'bulk-progress' == id ) {
$('table.wp-list-table #bulk-progress').removeClass('inline-editor').hide();
$('#bulk-progress-waiting').html('');
$('#inlineedit').append( $('#bulk-progress') );
} else {
if ( mla.settings.useSpinnerClass ) {
$('#'+id).siblings('tr.hidden').addBack().remove();
} else {
$('#'+id).remove();
}
id = id.substr( id.lastIndexOf('-') + 1 );
$(this.what+id).show();
}
}
}
return false;
}
}; // mla.inlineEditAttachment
$( document ).ready( function() {
mla.inlineEditAttachment.init();
});
})( jQuery );