Ticket #13524: 13524.diff
| File 13524.diff, 2.3 KB (added by , 11 years ago) |
|---|
-
src/wp-admin/js/widgets.js
4 4 var $document = $( document ); 5 5 6 6 wpWidgets = { 7 /** 8 * The sidebar that gets hovered, or false when it doesn't. 9 * 10 * @var element|null 11 */ 12 hoveredSidebar: null, 7 13 8 14 init : function() { 9 15 var rem, the_id, … … 94 100 helper: 'clone', 95 101 zIndex: 100, 96 102 containment: '#wpwrap', 103 refreshPositions: true, 97 104 start: function( event, ui ) { 98 105 var chooser = $(this).find('.widgets-chooser'); 99 106 … … 117 124 } 118 125 }); 119 126 127 /** 128 * Opens and closes Sidebars when Widgets are dragged in/out of them. 129 */ 130 sidebars.droppable( { 131 tolerance: 'intersect', 132 133 /** 134 * Open Sidebar when a Widget gets dragged onto it. 135 * 136 * @param event 137 */ 138 over: function( event ) { 139 var $wrap = $( event.target ).parent(); 140 141 if ( wpWidgets.hoveredSidebar && ! $wrap.is( wpWidgets.hoveredSidebar ) ) { 142 wpWidgets.closeSidebar( event ); 143 } 144 145 if ( $wrap.hasClass( 'closed' ) ) { 146 wpWidgets.hoveredSidebar = $wrap; 147 $wrap.removeClass( 'closed' ); 148 } 149 }, 150 151 /** 152 * Close Sidebar when the hovering widget moves out. 153 * 154 * @param event 155 */ 156 out: function( event ) { 157 if ( wpWidgets.hoveredSidebar ) { 158 wpWidgets.closeSidebar( event ); 159 } 160 } 161 } ); 162 120 163 sidebars.sortable({ 121 164 placeholder: 'widget-placeholder', 122 165 items: '> .widget', … … 148 191 $widget = ui.item, 149 192 id = the_id; 150 193 194 // Reset the var to hold a previously closed sidebar. 195 wpWidgets.hoveredSidebar = null; 196 151 197 if ( $widget.hasClass('deleting') ) { 152 198 wpWidgets.save( $widget, 1, 0, 1 ); // delete widget 153 199 $widget.remove(); … … 491 537 clearWidgetSelection: function() { 492 538 $( '#widgets-left' ).removeClass( 'chooser' ); 493 539 $( '.widget-in-question' ).removeClass( 'widget-in-question' ); 540 }, 541 542 /** 543 * Closes a sidebar. 544 * 545 * Used when a widget gets dragged in/out of the sidebar and never dropped. 546 * 547 * @param sidebar 548 */ 549 closeSidebar: function( sidebar ) { 550 this.hoveredSidebar.addClass( 'closed' ); 551 $( sidebar.target ).css( 'min-height', '' ); 552 this.hoveredSidebar = null; 494 553 } 495 554 }; 496 555