/* global redux_change, wp */ (function($){ "use strict"; $.gallery = $.gallery || {}; $(document).ready(function () { //gallery insert functionality $.gallery(); }); $.gallery = function(){ // When the user clicks on the Add/Edit gallery button, we need to display the gallery editing $('body').on({ click: function(event){ var current_gallery = $(this).closest('fieldset'); if (event.currentTarget.id === 'clear-gallery') { //remove value from input var rmVal = current_gallery.find('.gallery_values').val(''); //remove preview images current_gallery.find(".screenshot").html(""); return; } // Make sure the media gallery API exists if ( typeof wp === 'undefined' || ! wp.media || ! wp.media.gallery ) { return; } event.preventDefault(); // Activate the media editor var $$ = $(this); var val = current_gallery.find('.gallery_values').val(); var final; if (!val) { final = '[gallery ids="0"]'; } else { final = '[gallery ids="' + val + '"]'; } var frame = wp.media.gallery.edit(final); // When the gallery-edit state is updated, copy the attachment ids across frame.state('gallery-edit').on( 'update', function( selection ) { //clear screenshot div so we can append new selected images current_gallery.find(".screenshot").html(""); var element, preview_html= "", preview_img; var ids = selection.models.map(function(e){ element = e.toJSON(); preview_img = typeof element.sizes.thumbnail !== 'undefined' ? element.sizes.thumbnail.url : element.url ; preview_html = ""; current_gallery.find(".screenshot").append(preview_html); return e.id; }); current_gallery.find('.gallery_values').val(ids.join(',')); redux_change( current_gallery.find( '.gallery_values' ) ); }); return false; } }, '.gallery-attachments'); }; })(jQuery);