WordPress.org

Make WordPress Core

Ticket #47569: 47569-postbox.js.diff

File 47569-postbox.js.diff, 12.2 KB (added by foack, 16 months ago)

Updated postbox.js

  • postbox.js

     
    99
    1010/* global ajaxurl, postBoxL10n, postboxes */
    1111
    12 (function($) {
    13         var $document = $( document );
     12(function ($) {
     13        var $document = $(document);
    1414
    1515        /**
    1616         * This object contains all function to handle the behaviour of the post boxes. The post boxes are the boxes you see
     
    3737                 *
    3838                 * @returns {void}
    3939                 */
    40                 handle_click : function () {
    41                         var $el = $( this ),
    42                                 p = $el.parent( '.postbox' ),
    43                                 id = p.attr( 'id' ),
     40                handle_click: function () {
     41                        var $el = $(this),
     42                                p = $el.parent('.postbox'),
     43                                id = p.attr('id'),
    4444                                ariaExpandedValue;
    4545
    46                         if ( 'dashboard_browser_nag' === id ) {
     46                        if ('dashboard_browser_nag' === id) {
    4747                                return;
    4848                        }
    4949
    50                         p.toggleClass( 'closed' );
     50                        p.toggleClass('closed');
    5151
    52                         ariaExpandedValue = ! p.hasClass( 'closed' );
     52                        ariaExpandedValue = !p.hasClass('closed');
    5353
    54                         if ( $el.hasClass( 'handlediv' ) ) {
     54                        if ($el.hasClass('handlediv')) {
    5555                                // The handle button was clicked.
    56                                 $el.attr( 'aria-expanded', ariaExpandedValue );
     56                                $el.attr('aria-expanded', ariaExpandedValue);
    5757                        } else {
    5858                                // The handle heading was clicked.
    59                                 $el.closest( '.postbox' ).find( 'button.handlediv' )
    60                                         .attr( 'aria-expanded', ariaExpandedValue );
     59                                $el.closest('.postbox').find('button.handlediv')
     60                                        .attr('aria-expanded', ariaExpandedValue);
    6161                        }
    6262
    63                         if ( postboxes.page !== 'press-this' ) {
    64                                 postboxes.save_state( postboxes.page );
     63                        if (postboxes.page !== 'press-this') {
     64                                postboxes.save_state(postboxes.page);
    6565                        }
    6666
    67                         if ( id ) {
    68                                 if ( !p.hasClass('closed') && $.isFunction( postboxes.pbshow ) ) {
    69                                         postboxes.pbshow( id );
    70                                 } else if ( p.hasClass('closed') && $.isFunction( postboxes.pbhide ) ) {
    71                                         postboxes.pbhide( id );
     67                        if (id) {
     68                                if (!p.hasClass('closed') && $.isFunction(postboxes.pbshow)) {
     69                                        postboxes.pbshow(id);
     70                                } else if (p.hasClass('closed') && $.isFunction(postboxes.pbhide)) {
     71                                        postboxes.pbhide(id);
    7272                                }
    7373                        }
    7474
     
    8383                         * @event postboxes#postbox-toggled
    8484                         * @type {Object}
    8585                         */
    86                         $document.trigger( 'postbox-toggled', p );
     86                        $document.trigger('postbox-toggled', p);
    8787                },
    8888
    8989                /**
     
    9898                 * @param {Function} args.pbhide A callback that is called when a postbox closes.
    9999                 * @returns {void}
    100100                 */
    101                 add_postbox_toggles : function (page, args) {
    102                         var $handles = $( '.postbox .hndle, .postbox .handlediv' );
     101                add_postbox_toggles: function (page, args) {
     102                        var $handles = $('.postbox .hndle, .postbox .handlediv');
    103103
    104104                        this.page = page;
    105                         this.init( page, args );
     105                        this.init(page, args);
    106106
    107                         $handles.on( 'click.postboxes', this.handle_click );
     107                        $handles.on('click.postboxes', this.handle_click);
    108108
    109109                        /**
    110110                         * @since 2.7.0
    111111                         */
    112                         $('.postbox .hndle a').click( function(e) {
     112                        $('.postbox .hndle a').click(function (e) {
    113113                                e.stopPropagation();
    114114                        });
    115115
     
    123123                         *
    124124                         * @returns {void}
    125125                         */
    126                         $( '.postbox a.dismiss' ).on( 'click.postboxes', function( e ) {
     126                        $('.postbox a.dismiss').on('click.postboxes', function (e) {
    127127                                var hide_id = $(this).parents('.postbox').attr('id') + '-hide';
    128128                                e.preventDefault();
    129                                 $( '#' + hide_id ).prop('checked', false).triggerHandler('click');
     129                                $('#' + hide_id).prop('checked', false).triggerHandler('click');
    130130                        });
    131131
    132132                        /**
     
    142142                         *
    143143                         * @returns {void}
    144144                         */
    145                         $('.hide-postbox-tog').bind('click.postboxes', function() {
     145                        $('.hide-postbox-tog').bind('click.postboxes', function () {
    146146                                var $el = $(this),
    147147                                        boxId = $el.val(),
    148                                         $postbox = $( '#' + boxId );
     148                                        $postbox = $('#' + boxId);
    149149
    150                                 if ( $el.prop( 'checked' ) ) {
     150                                if ($el.prop('checked')) {
    151151                                        $postbox.show();
    152                                         if ( $.isFunction( postboxes.pbshow ) ) {
    153                                                 postboxes.pbshow( boxId );
     152                                        if ($.isFunction(postboxes.pbshow)) {
     153                                                postboxes.pbshow(boxId);
    154154                                        }
    155155                                } else {
    156156                                        $postbox.hide();
    157                                         if ( $.isFunction( postboxes.pbhide ) ) {
    158                                                 postboxes.pbhide( boxId );
     157                                        if ($.isFunction(postboxes.pbhide)) {
     158                                                postboxes.pbhide(boxId);
    159159                                        }
    160160                                }
    161161
    162                                 postboxes.save_state( page );
     162                                postboxes.save_state(page);
    163163                                postboxes._mark_area();
    164164
    165165                                /**
     
    166166                                 * @since 4.0.0
    167167                                 * @see postboxes.handle_click
    168168                                 */
    169                                 $document.trigger( 'postbox-toggled', $postbox );
     169                                $document.trigger('postbox-toggled', $postbox);
    170170                        });
    171171
    172172                        /**
     
    176176                         *
    177177                         * @returns {void}
    178178                         */
    179                         $('.columns-prefs input[type="radio"]').bind('click.postboxes', function(){
     179                        $('.columns-prefs input[type="radio"]').bind('click.postboxes', function () {
    180180                                var n = parseInt($(this).val(), 10);
    181181
    182                                 if ( n ) {
     182                                if (n) {
    183183                                        postboxes._pb_edit(n);
    184                                         postboxes.save_order( page );
     184                                        postboxes.save_order(page);
    185185                                }
    186186                        });
    187187                },
     
    200200                 *
    201201                 * @returns {void}
    202202                 */
    203                 init : function(page, args) {
    204                         var isMobile = $( document.body ).hasClass( 'mobile' ),
    205                                 $handleButtons = $( '.postbox .handlediv' );
     203                init: function (page, args) {
     204                        var isMobile = $(document.body).hasClass('mobile'),
     205                                $handleButtons = $('.postbox .handlediv');
    206206
    207                         $.extend( this, args || {} );
    208                         $('#wpbody-content').css('overflow','hidden');
     207                        $.extend(this, args || {});
    209208                        $('.meta-box-sortables').sortable({
    210209                                placeholder: 'sortable-placeholder',
    211210                                connectWith: '.meta-box-sortables',
     
    212211                                items: '.postbox',
    213212                                handle: '.hndle',
    214213                                cursor: 'move',
    215                                 delay: ( isMobile ? 200 : 0 ),
     214                                delay: (isMobile ? 200 : 0),
    216215                                distance: 2,
    217216                                tolerance: 'pointer',
    218217                                forcePlaceholderSize: true,
    219                                 helper: function( event, element ) {
     218                                helper: function (event, element) {
    220219                                        /* `helper: 'clone'` is equivalent to `return element.clone();`
    221220                                         * Cloning a checked radio and then inserting that clone next to the original
    222221                                         * radio unchecks the original radio (since only one of the two can be checked).
     
    225224                                         * duplicated, and no original radio gets unchecked.
    226225                                         */
    227226                                        return element.clone()
    228                                                 .find( ':input' )
    229                                                         .attr( 'name', function( i, currentName ) {
    230                                                                 return 'sort_' + parseInt( Math.random() * 100000, 10 ).toString() + '_' + currentName;
    231                                                         } )
     227                                                .find(':input')
     228                                                .attr('name', function (i, currentName) {
     229                                                        return 'sort_' + parseInt(Math.random() * 100000, 10).toString() + '_' + currentName;
     230                                                })
    232231                                                .end();
    233232                                },
    234233                                opacity: 0.65,
    235                                 stop: function() {
    236                                         var $el = $( this );
     234                                stop: function () {
     235                                        var $el = $(this);
    237236
    238                                         if ( $el.find( '#dashboard_browser_nag' ).is( ':visible' ) && 'dashboard_browser_nag' != this.firstChild.id ) {
     237                                        if ($el.find('#dashboard_browser_nag').is(':visible') && 'dashboard_browser_nag' != this.firstChild.id) {
    239238                                                $el.sortable('cancel');
    240239                                                return;
    241240                                        }
     
    242241
    243242                                        postboxes.save_order(page);
    244243                                },
    245                                 receive: function(e,ui) {
    246                                         if ( 'dashboard_browser_nag' == ui.item[0].id )
     244                                receive: function (e, ui) {
     245                                        if ('dashboard_browser_nag' == ui.item[0].id)
    247246                                                $(ui.sender).sortable('cancel');
    248247
    249248                                        postboxes._mark_area();
    250                                         $document.trigger( 'postbox-moved', ui.item );
     249                                        $document.trigger('postbox-moved', ui.item);
    251250                                }
    252251                        });
    253252
    254                         if ( isMobile ) {
    255                                 $(document.body).bind('orientationchange.postboxes', function(){ postboxes._pb_change(); });
     253                        if (isMobile) {
     254                                $(document.body).bind('orientationchange.postboxes', function () { postboxes._pb_change(); });
    256255                                this._pb_change();
    257256                        }
    258257
     
    259258                        this._mark_area();
    260259
    261260                        // Set the handle buttons `aria-expanded` attribute initial value on page load.
    262                         $handleButtons.each( function () {
    263                                 var $el = $( this );
    264                                 $el.attr( 'aria-expanded', ! $el.parent( '.postbox' ).hasClass( 'closed' ) );
     261                        $handleButtons.each(function () {
     262                                var $el = $(this);
     263                                $el.attr('aria-expanded', !$el.parent('.postbox').hasClass('closed'));
    265264                        });
    266265                },
    267266
     
    277276                 * @param {string} page The page we are currently on.
    278277                 * @returns {void}
    279278                 */
    280                 save_state : function(page) {
     279                save_state: function (page) {
    281280                        var closed, hidden;
    282281
    283282                        // Return on the nav-menus.php screen, see #35112.
    284                         if ( 'nav-menus' === page ) {
     283                        if ('nav-menus' === page) {
    285284                                return;
    286285                        }
    287286
    288                         closed = $( '.postbox' ).filter( '.closed' ).map( function() { return this.id; } ).get().join( ',' );
    289                         hidden = $( '.postbox' ).filter( ':hidden' ).map( function() { return this.id; } ).get().join( ',' );
     287                        closed = $('.postbox').filter('.closed').map(function () { return this.id; }).get().join(',');
     288                        hidden = $('.postbox').filter(':hidden').map(function () { return this.id; }).get().join(',');
    290289
    291290                        $.post(ajaxurl, {
    292291                                action: 'closed-postboxes',
     
    308307                 * @param {string} page The page we are currently on.
    309308                 * @returns {void}
    310309                 */
    311                 save_order : function(page) {
     310                save_order: function (page) {
    312311                        var postVars, page_columns = $('.columns-prefs input:checked').val() || 0;
    313312
    314313                        postVars = {
     
    318317                                page: page
    319318                        };
    320319
    321                         $('.meta-box-sortables').each( function() {
    322                                 postVars[ 'order[' + this.id.split( '-' )[0] + ']' ] = $( this ).sortable( 'toArray' ).join( ',' );
    323                         } );
     320                        $('.meta-box-sortables').each(function () {
     321                                postVars['order[' + this.id.split('-')[0] + ']'] = $(this).sortable('toArray').join(',');
     322                        });
    324323
    325                         $.post( ajaxurl, postVars );
     324                        $.post(ajaxurl, postVars);
    326325                },
    327326
    328327                /**
     
    338337                 *
    339338                 * @returns {void}
    340339                 */
    341                 _mark_area : function() {
     340                _mark_area: function () {
    342341                        var visible = $('div.postbox:visible').length, side = $('#post-body #side-sortables');
    343342
    344                         $( '#dashboard-widgets .meta-box-sortables:visible' ).each( function() {
     343                        $('#dashboard-widgets .meta-box-sortables:visible').each(function () {
    345344                                var t = $(this);
    346345
    347                                 if ( visible == 1 || t.children('.postbox:visible').length ) {
     346                                if (visible == 1 || t.children('.postbox:visible').length) {
    348347                                        t.removeClass('empty-container');
    349348                                }
    350349                                else {
     
    353352                                }
    354353                        });
    355354
    356                         if ( side.length ) {
    357                                 if ( side.children('.postbox:visible').length )
     355                        if (side.length) {
     356                                if (side.children('.postbox:visible').length)
    358357                                        side.removeClass('empty-container');
    359                                 else if ( $('#postbox-container-1').css('width') == '280px' )
     358                                else if ($('#postbox-container-1').css('width') == '280px')
    360359                                        side.addClass('empty-container');
    361360                        }
    362361                },
     
    372371                 * @param {number} n The amount of columns to divide the post edit page in.
    373372                 * @returns {void}
    374373                 */
    375                 _pb_edit : function(n) {
     374                _pb_edit: function (n) {
    376375                        var el = $('.metabox-holder').get(0);
    377376
    378                         if ( el ) {
     377                        if (el) {
    379378                                el.className = el.className.replace(/columns-\d+/, 'columns-' + n);
    380379                        }
    381380
     
    387386                         *
    388387                         * @event postboxes#postboxes-columnchange
    389388                         */
    390                         $( document ).trigger( 'postboxes-columnchange' );
     389                        $(document).trigger('postboxes-columnchange');
    391390                },
    392391
    393392                /**
     
    400399                 *
    401400                 * @returns {void}
    402401                 */
    403                 _pb_change : function() {
    404                         var check = $( 'label.columns-prefs-1 input[type="radio"]' );
     402                _pb_change: function () {
     403                        var check = $('label.columns-prefs-1 input[type="radio"]');
    405404
    406                         switch ( window.orientation ) {
     405                        switch (window.orientation) {
    407406                                case 90:
    408407                                case -90:
    409                                         if ( !check.length || !check.is(':checked') )
     408                                        if (!check.length || !check.is(':checked'))
    410409                                                this._pb_edit(2);
    411410                                        break;
    412411                                case 0:
    413412                                case 180:
    414                                         if ( $('#poststuff').length ) {
     413                                        if ($('#poststuff').length) {
    415414                                                this._pb_edit(1);
    416415                                        } else {
    417                                                 if ( !check.length || !check.is(':checked') )
     416                                                if (!check.length || !check.is(':checked'))
    418417                                                        this._pb_edit(2);
    419418                                        }
    420419                                        break;
     
    430429                 * @property {Function|boolean} pbshow A callback that is called when a postbox
    431430                 *                                     is opened.
    432431                 */
    433                 pbshow : false,
     432                pbshow: false,
    434433
    435434                /**
    436435                 * @since 2.7.0
     
    439438                 * @property {Function|boolean} pbhide A callback that is called when a postbox
    440439                 *                                     is closed.
    441440                 */
    442                 pbhide : false
     441                pbhide: false
    443442        };
    444443
    445444}(jQuery));