X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/0459461f9ea42e0b090759ff6fe5f48360bef750..refs/tags/wordpress-4.5:/wp-admin/js/postbox.js diff --git a/wp-admin/js/postbox.js b/wp-admin/js/postbox.js index c75e423d..36673a90 100644 --- a/wp-admin/js/postbox.js +++ b/wp-admin/js/postbox.js @@ -1,4 +1,4 @@ -/* global ajaxurl */ +/* global ajaxurl, postBoxL10n */ var postboxes; @@ -109,7 +109,20 @@ var postboxes; distance: 2, tolerance: 'pointer', forcePlaceholderSize: true, - helper: 'clone', + helper: function( event, element ) { + // `helper: 'clone'` is equilavalent to `return element.clone();` + // Cloning a checked radio and then inserting that clone next to the original + // radio unchecks the original radio (since only one of the two can be checked). + // We get around this by renaming the helper's inputs' name attributes so that, + // when the helper is inserted into the DOM for the sortable, no radios are + // duplicated, and no original radio gets unchecked. + return element.clone() + .find( ':input' ) + .attr( 'name', function( i, currentName ) { + return 'sort_' + parseInt( Math.random() * 100000, 10 ).toString() + '_' + currentName; + } ) + .end(); + }, opacity: 0.65, stop: function() { var $el = $( this ); @@ -184,10 +197,13 @@ var postboxes; $( '#dashboard-widgets .meta-box-sortables:visible' ).each( function() { var t = $(this); - if ( visible == 1 || t.children('.postbox:visible').length ) + if ( visible == 1 || t.children('.postbox:visible').length ) { t.removeClass('empty-container'); - else + } + else { t.addClass('empty-container'); + t.attr('data-emptyString', postBoxL10n.postBoxEmptyString); + } }); if ( side.length ) {