1 var postboxes, is_iPad = navigator.userAgent.match(/iPad/);
5 add_postbox_toggles : function(page, args) {
8 $('.postbox h3, .postbox .handlediv').bind('click.postboxes', function() {
9 var p = $(this).parent('.postbox'), id = p.attr('id');
11 if ( 'dashboard_browser_nag' == id )
14 p.toggleClass('closed');
15 postboxes.save_state(page);
18 if ( !p.hasClass('closed') && $.isFunction(postboxes.pbshow) )
20 else if ( p.hasClass('closed') && $.isFunction(postboxes.pbhide) )
25 $('.postbox h3 a').click( function(e) {
29 $('.postbox a.dismiss').bind('click.postboxes', function(e) {
30 var hide_id = $(this).parents('.postbox').attr('id') + '-hide';
31 $( '#' + hide_id ).prop('checked', false).triggerHandler('click');
35 $('.hide-postbox-tog').bind('click.postboxes', function() {
36 var box = $(this).val();
38 if ( $(this).prop('checked') ) {
40 if ( $.isFunction( postboxes.pbshow ) )
41 postboxes.pbshow( box );
44 if ( $.isFunction( postboxes.pbhide ) )
45 postboxes.pbhide( box );
47 postboxes.save_state(page);
48 postboxes._mark_area();
51 $('.columns-prefs input[type="radio"]').bind('click.postboxes', function(){
52 var n = parseInt($(this).val(), 10), pb = postboxes;
61 init : function(page, args) {
62 $.extend( this, args || {} );
63 $('#wpbody-content').css('overflow','hidden');
64 $('.meta-box-sortables').sortable({
65 placeholder: 'sortable-placeholder',
66 connectWith: '.meta-box-sortables',
72 forcePlaceholderSize: true,
75 stop: function(e,ui) {
76 if ( $(this).find('#dashboard_browser_nag').is(':visible') && 'dashboard_browser_nag' != this.firstChild.id ) {
77 $(this).sortable('cancel');
81 postboxes.save_order(page);
83 receive: function(e,ui) {
84 if ( 'dashboard_browser_nag' == ui.item[0].id )
85 $(ui.sender).sortable('cancel');
87 postboxes._mark_area();
91 if ( navigator.userAgent.match(/iPad/) ) {
92 $(document.body).bind('orientationchange', function(){ postboxes._pb_change(); });
99 save_state : function(page) {
100 var closed = $('.postbox').filter('.closed').map(function() { return this.id; }).get().join(','),
101 hidden = $('.postbox').filter(':hidden').map(function() { return this.id; }).get().join(',');
104 action: 'closed-postboxes',
107 closedpostboxesnonce: jQuery('#closedpostboxesnonce').val(),
112 save_order : function(page) {
113 var postVars, page_columns = $('.columns-prefs input:checked').val() || 0;
116 action: 'meta-box-order',
117 _ajax_nonce: $('#meta-box-order-nonce').val(),
118 page_columns: page_columns,
121 $('.meta-box-sortables').each( function() {
122 postVars["order[" + this.id.split('-')[0] + "]"] = $(this).sortable( 'toArray' ).join(',');
124 $.post( ajaxurl, postVars );
127 _colname : function(n) {
146 _mark_area : function() {
147 $('#side-info-column .meta-box-sortables:visible, #dashboard-widgets .meta-box-sortables:visible').each(function(n, el){
150 if ( !t.children('.postbox:visible').length )
151 t.addClass('empty-container');
153 t.removeClass('empty-container');
157 _pb_edit : function(n) {
158 var ps = $('#poststuff'), i, el, done, pb = postboxes, visible = $('.postbox-container:visible').length;
165 $('.wrap').removeClass('columns-1').addClass('columns-2');
166 ps.addClass('has-right-sidebar');
168 if ( !$('#side-info-column #side-sortables').length )
169 $('#side-info-column').append( $('#side-sortables') );
171 } else if ( n == 1 ) {
172 $('.wrap').removeClass('columns-2').addClass('columns-1');
173 ps.removeClass('has-right-sidebar');
175 if ( !$('#post-body-content #side-sortables').length )
176 $('#normal-sortables').before( $('#side-sortables') );
179 for ( i = 4; ( i > n && i > 1 ); i-- ) {
180 el = $('#' + postboxes._colname(i) + '-sortables');
181 $('#' + postboxes._colname(i-1) + '-sortables').append(el.children('.postbox'));
185 for ( i = n; i > 0; i-- ) {
186 el = $('#' + postboxes._colname(i) + '-sortables');
189 if ( el.parent().is(':hidden') ) {
192 done = pb._move_one( el, $('.postbox:visible', $('#column3-sortables')) );
195 done = pb._move_one( el, $('.postbox:visible', $('#side-sortables')) );
198 done = pb._move_one( el, $('.postbox:visible', $('#normal-sortables')) );
201 el.addClass('empty-container')
208 $('.postbox-container:visible').css('width', 100/n + '%');
212 _pb_change : function() {
213 switch ( window.orientation ) {
220 if ( $('#poststuff').length )
228 _move_one : function(el, move) {
229 if ( move.length > 1 ) {
230 el.append( move.last() );