wp/wp-admin/js/postbox.js
changeset 5 5e2f62d02dcd
parent 0 d970ebf37754
child 7 cf61fcea0001
--- a/wp/wp-admin/js/postbox.js	Mon Jun 08 16:11:51 2015 +0000
+++ b/wp/wp-admin/js/postbox.js	Tue Jun 09 03:35:32 2015 +0200
@@ -1,13 +1,17 @@
+/* global ajaxurl */
+
 var postboxes;
 
 (function($) {
+	var $document = $( document );
+
 	postboxes = {
 		add_postbox_toggles : function(page, args) {
 			var self = this;
 
 			self.init(page, args);
 
-			$('.postbox h3, .postbox .handlediv').bind('click.postboxes', function() {
+			$('.postbox .hndle, .postbox .handlediv').bind('click.postboxes', function() {
 				var p = $(this).parent('.postbox'), id = p.attr('id');
 
 				if ( 'dashboard_browser_nag' == id )
@@ -24,32 +28,36 @@
 					else if ( p.hasClass('closed') && $.isFunction(postboxes.pbhide) )
 						self.pbhide(id);
 				}
+
+				$document.trigger( 'postbox-toggled', p );
 			});
 
-			$('.postbox h3 a').click( function(e) {
+			$('.postbox .hndle a').click( function(e) {
 				e.stopPropagation();
 			});
 
-			$('.postbox a.dismiss').bind('click.postboxes', function(e) {
+			$( '.postbox a.dismiss' ).bind( 'click.postboxes', function() {
 				var hide_id = $(this).parents('.postbox').attr('id') + '-hide';
 				$( '#' + hide_id ).prop('checked', false).triggerHandler('click');
 				return false;
 			});
 
 			$('.hide-postbox-tog').bind('click.postboxes', function() {
-				var box = $(this).val();
+				var boxId = $(this).val(),
+					$postbox = $( '#' + boxId );
 
 				if ( $(this).prop('checked') ) {
-					$('#' + box).show();
+					$postbox.show();
 					if ( $.isFunction( postboxes.pbshow ) )
-						self.pbshow( box );
+						self.pbshow( boxId );
 				} else {
-					$('#' + box).hide();
+					$postbox.hide();
 					if ( $.isFunction( postboxes.pbhide ) )
-						self.pbhide( box );
+						self.pbhide( boxId );
 				}
 				self.save_state(page);
 				self._mark_area();
+				$document.trigger( 'postbox-toggled', $postbox );
 			});
 
 			$('.columns-prefs input[type="radio"]').bind('click.postboxes', function(){
@@ -79,7 +87,7 @@
 				forcePlaceholderSize: true,
 				helper: 'clone',
 				opacity: 0.65,
-				stop: function(e,ui) {
+				stop: function() {
 					if ( $(this).find('#dashboard_browser_nag').is(':visible') && 'dashboard_browser_nag' != this.firstChild.id ) {
 						$(this).sortable('cancel');
 						return;
@@ -124,9 +132,9 @@
 				_ajax_nonce: $('#meta-box-order-nonce').val(),
 				page_columns: page_columns,
 				page: page
-			}
+			};
 			$('.meta-box-sortables').each( function() {
-				postVars["order[" + this.id.split('-')[0] + "]"] = $(this).sortable( 'toArray' ).join(',');
+				postVars[ 'order[' + this.id.split( '-' )[0] + ']' ] = $( this ).sortable( 'toArray' ).join( ',' );
 			} );
 			$.post( ajaxurl, postVars );
 		},
@@ -134,7 +142,7 @@
 		_mark_area : function() {
 			var visible = $('div.postbox:visible').length, side = $('#post-body #side-sortables');
 
-			$('#dashboard-widgets .meta-box-sortables:visible').each(function(n, el){
+			$( '#dashboard-widgets .meta-box-sortables:visible' ).each( function() {
 				var t = $(this);
 
 				if ( visible == 1 || t.children('.postbox:visible').length )
@@ -153,7 +161,12 @@
 
 		_pb_edit : function(n) {
 			var el = $('.metabox-holder').get(0);
-			el.className = el.className.replace(/columns-\d+/, 'columns-' + n);
+
+			if ( el ) {
+				el.className = el.className.replace(/columns-\d+/, 'columns-' + n);
+			}
+
+			$( document ).trigger( 'postboxes-columnchange' );
 		},
 
 		_pb_change : function() {