Make WordPress Core

Ticket #23120: 23120.11.diff

File 23120.11.diff, 2.4 KB (added by adamsilverstein, 11 years ago)

use Deferred callbacks

  • src/wp-admin/css/colors.css

     
    964964        box-shadow: 0 1px 1px rgba(0,0,0,0.04);
    965965}
    966966
     967.widget {
     968        position: relative;
     969        border-left: 0 solid transparent;
     970        transition: border-left 0.2s ease-in-out;
     971}
     972.widget:before {
     973        opacity: 0;
     974        display: block;
     975        content: "\f147";
     976        transition: opacity 0.2s ease-in-out;
     977        -webkit-font-smoothing: antialiased;
     978        font: normal 32px/1 'dashicons';
     979        position: absolute;
     980                top: 2px;
     981                left: -40px;
     982        line-height: 43px;
     983        color: #fff;
     984}
     985
     986.widget.saved {
     987        border-left: 48px solid #84d24c;
     988}
     989.widget.saved:before {
     990        opacity: 1;
     991}
     992
     993.spinner.error {
     994        opacity: 1;
     995        filter: alpha( opacity=100 );
     996        background: url( '' );
     997}
     998
     999.spinner.error:before {
     1000        font: normal 20px/1 'dashicons';
     1001        content: '\f335';
     1002        color: #a00;
     1003}
     1004
    9671005#post-status-info {
    9681006        border-top: none;
    9691007}
  • src/wp-admin/js/widgets.js

     
    332332
    333333        save : function( widget, del, animate, order ) {
    334334                var sidebarId = widget.closest('div.widgets-sortables').attr('id'),
    335                         data = widget.find('form').serialize(), a;
     335                        data = widget.find('form').serialize(), a, spinner;
    336336
    337                 widget = $(widget);
    338                 $('.spinner', widget).show();
     337                widget  = $(widget);
     338                spinner = $('.spinner', widget);
     339                spinner.show();
    339340
    340341                a = {
    341342                        action: 'save-widget',
     
    372373                                        widget.remove();
    373374                                }
    374375                        } else {
    375                                 $('.spinner').hide();
     376                                spinner.hide();
    376377                                if ( r && r.length > 2 ) {
    377378                                        $( 'div.widget-content', widget ).html(r);
    378379                                        wpWidgets.appendTitle( widget );
     
    381382                        if ( order ) {
    382383                                wpWidgets.saveOrder();
    383384                        }
     385                })
     386                .done( function() { // The widget save was successful, collapse the widget and alert the user
     387                        setTimeout( function() {
     388                                widget.find( '.widget-title' ).click();
     389                                widget.addClass( 'saved' );
     390                                setTimeout( function() {
     391                                        widget.removeClass( 'saved' );
     392                                }, 2500 );
     393                        }, 100 );
     394                })
     395                .fail( function() { // The widget save failed, alert the user
     396                        if ( spinner ) {
     397                                spinner.show().addClass( 'error' ).delay( 1000 ).fadeOut( 'fast', function() {
     398                                        spinner.removeClass( 'error' );
     399                                });
     400                        }
    384401                });
    385402        },
    386403