Make WordPress Core

Ticket #13524: widgets.dev.js-17732.diff

File widgets.dev.js-17732.diff, 2.3 KB (added by edward mindreantre, 16 years ago)
  • wp-admin/js/widgets.dev.js

     
    22(function($) {
    33
    44wpWidgets = {
     5       
     6        toggleHolder : function(widgetHolder) {
     7                var c = $(widgetHolder).siblings('.widgets-sortables'), p = $(widgetHolder).parent();
     8                if ( !p.hasClass('closed') ) {
     9                        c.sortable('disable');
     10                        p.addClass('closed');
     11                } else {
     12                        p.removeClass('closed');
     13                        c.sortable('enable').sortable('refresh');
     14                }
     15        },
    516
    617        init : function() {
     18
    719                var rem, sidebars = $('div.widgets-sortables');
    820
    921                $('#widgets-right').children('.widgets-holder-wrap').children('.sidebar-name').click(function(){
    10                         var c = $(this).siblings('.widgets-sortables'), p = $(this).parent();
    11                         if ( !p.hasClass('closed') ) {
    12                                 c.sortable('disable');
    13                                 p.addClass('closed');
    14                         } else {
    15                                 p.removeClass('closed');
    16                                 c.sortable('enable').sortable('refresh');
    17                         }
     22                        wpWidgets.toggleHolder($(this));
    1823                });
    1924
    2025                $('#widgets-left').children('.widgets-holder-wrap').children('.sidebar-name').click(function() {
     
    8691                                wpWidgets.fixWebkit();
    8792                        }
    8893                });
    89 
     94               
     95                var openedHolders = new Array();
     96       
    9097                sidebars.sortable({
    9198                        placeholder: 'widget-placeholder',
    9299                        items: '> .widget',
     
    98105                                wpWidgets.fixWebkit(1);
    99106                                ui.item.children('.widget-inside').hide();
    100107                                ui.item.css({'marginLeft':'','width':''});
     108                                $('#widgets-right .sidebar-name')
     109                                .hover(function(){
     110                                        // Open only those that are closed
     111                                        if ( $(this).parent().hasClass('closed') )
     112                                        {
     113                                                openedHolders.push( $(this) );          // Remember this holder
     114                                                wpWidgets.toggleHolder( $(this) );      // Now open it
     115                                        }
     116                                },
     117                                function(){
     118                                }
     119                                );
    101120                        },
    102121                        stop: function(e,ui) {
     122                                // No more reacting to mouse hovers.
     123                                $('#widgets-right .sidebar-name').unbind('mouseenter');
     124                                $('#widgets-right .sidebar-name').unbind('mouseleave');
     125                                // Close all holders opened by hovering.
     126                                for(counter = 0; counter < openedHolders.length; counter++)
     127                                {
     128                                        wpWidgets.toggleHolder( openedHolders[counter] );
     129                                }
     130                                openedHolders = new Array();
     131                               
    103132                                if ( ui.item.hasClass('ui-draggable') && ui.item.data('draggable') )
    104133                                        ui.item.draggable('destroy');
    105134