jQuery( document ).ready( function ( $ ) { 'use strict'; // Add more file $( '.rwmb-add-file' ).each( function () { var $this = $( this ), $uploads = $this.siblings( '.file-input' ), $first = $uploads.first(), uploadCount = $uploads.length, $fileList = $this.closest( '.rwmb-input' ).find( '.rwmb-uploaded' ), fileCount = $fileList.children( 'li' ).length, maxFileUploads = $fileList.data( 'max_file_uploads' ); // Hide "Add New File" and input fields when loaded if ( maxFileUploads > 0 ) { if ( uploadCount + fileCount >= maxFileUploads ) { $this.hide(); } if ( fileCount >= maxFileUploads ) { $uploads.hide(); } } $this.click( function () { // Clone upload input only when needed if ( maxFileUploads <= 0 || uploadCount + fileCount < maxFileUploads ) { $first.clone().insertBefore( $this ); uploadCount++; // If there're too many upload inputs, hide "Add New File" if ( maxFileUploads > 0 && uploadCount + fileCount >= maxFileUploads ) { $this.hide(); } } return false; } ); } ); // Delete file via Ajax $( '.rwmb-uploaded' ).on( 'click', '.rwmb-delete-file', function () { var $this = $( this ), $parent = $this.parents( 'li' ), $container = $this.closest( '.rwmb-uploaded' ), data = { action : 'rwmb_delete_file', _ajax_nonce : $container.data( 'delete_nonce' ), post_id : $( '#post_ID' ).val(), field_id : $container.data( 'field_id' ), attachment_id: $this.data( 'attachment_id' ), force_delete : $container.data( 'force_delete' ) }; $.post( ajaxurl, data, function ( r ) { if ( !r.success ) { alert( r.data ); return; } $parent.addClass( 'removed' ); // If transition events not supported var div = document.createElement( 'div' ); if ( !( 'ontransitionend' in window ) && ( 'onwebkittransitionend' in window ) && !( 'onotransitionend' in div || navigator.appName === 'Opera' ) ) { $parent.remove(); $container.trigger( 'update.rwmbFile' ); } $( '.rwmb-uploaded' ).on( 'transitionend webkitTransitionEnd otransitionend', 'li.removed', function () { $( this ).remove(); $container.trigger( 'update.rwmbFile' ); } ); }, 'json' ); return false; } ); //Remove deleted file $( '.rwmb-uploaded' ).on( 'transitionend webkitTransitionEnd otransitionend', 'li.removed', function () { $( this ).remove(); } ); $( 'body' ).on( 'update.rwmbFile', '.rwmb-uploaded', function () { var $fileList = $( this ), maxFileUploads = $fileList.data( 'max_file_uploads' ), $uploader = $fileList.siblings( '.new-files' ), numFiles = $fileList.children().length; if ( numFiles > 0 ) { $fileList.removeClass( 'hidden' ); } else { $fileList.addClass( 'hidden' ); } // Return if maxFileUpload = 0 if ( maxFileUploads === 0 ) { return false; } // Hide files button if reach max file uploads if ( numFiles >= maxFileUploads ) { $uploader.addClass( 'hidden' ); } else { $uploader.removeClass( 'hidden' ); } return false; } ); // Reorder images $( '.rwmb-file' ).each( function () { var $this = $( this ), data = { action : 'rwmb_reorder_files', _ajax_nonce: $this.data( 'reorder_nonce' ), post_id : $( '#post_ID' ).val(), field_id : $this.data( 'field_id' ) }; $this.sortable( { placeholder: 'ui-state-highlight', items : 'li', update : function () { data.order = $this.sortable( 'serialize' ); $.post( ajaxurl, data ); } } ); } ); } );