WordPress.org

Make WordPress Core

Ticket #47569: 47569.diff

File 47569.diff, 12.3 KB (added by foack, 16 months ago)

updated version of 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 || {});
     208                        // $('#wpbody-content').css('overflow','hidden');
    209209                        $('.meta-box-sortables').sortable({
    210210                                placeholder: 'sortable-placeholder',
    211211                                connectWith: '.meta-box-sortables',
     
    212212                                items: '.postbox',
    213213                                handle: '.hndle',
    214214                                cursor: 'move',
    215                                 delay: ( isMobile ? 200 : 0 ),
     215                                delay: (isMobile ? 200 : 0),
    216216                                distance: 2,
    217217                                tolerance: 'pointer',
    218218                                forcePlaceholderSize: true,
    219                                 helper: function( event, element ) {
     219                                helper: function (event, element) {
    220220                                        /* `helper: 'clone'` is equivalent to `return element.clone();`
    221221                                         * Cloning a checked radio and then inserting that clone next to the original
    222222                                         * radio unchecks the original radio (since only one of the two can be checked).
     
    225225                                         * duplicated, and no original radio gets unchecked.
    226226                                         */
    227227                                        return element.clone()
    228                                                 .find( ':input' )
    229                                                         .attr( 'name', function( i, currentName ) {
    230                                                                 return 'sort_' + parseInt( Math.random() * 100000, 10 ).toString() + '_' + currentName;
    231                                                         } )
     228                                                .find(':input')
     229                                                .attr('name', function (i, currentName) {
     230                                                        return 'sort_' + parseInt(Math.random() * 100000, 10).toString() + '_' + currentName;
     231                                                })
    232232                                                .end();
    233233                                },
    234234                                opacity: 0.65,
    235                                 stop: function() {
    236                                         var $el = $( this );
     235                                stop: function () {
     236                                        var $el = $(this);
    237237
    238                                         if ( $el.find( '#dashboard_browser_nag' ).is( ':visible' ) && 'dashboard_browser_nag' != this.firstChild.id ) {
     238                                        if ($el.find('#dashboard_browser_nag').is(':visible') && 'dashboard_browser_nag' != this.firstChild.id) {
    239239                                                $el.sortable('cancel');
    240240                                                return;
    241241                                        }
     
    242242
    243243                                        postboxes.save_order(page);
    244244                                },
    245                                 receive: function(e,ui) {
    246                                         if ( 'dashboard_browser_nag' == ui.item[0].id )
     245                                receive: function (e, ui) {
     246                                        if ('dashboard_browser_nag' == ui.item[0].id)
    247247                                                $(ui.sender).sortable('cancel');
    248248
    249249                                        postboxes._mark_area();
    250                                         $document.trigger( 'postbox-moved', ui.item );
     250                                        $document.trigger('postbox-moved', ui.item);
    251251                                }
    252252                        });
    253253
    254                         if ( isMobile ) {
    255                                 $(document.body).bind('orientationchange.postboxes', function(){ postboxes._pb_change(); });
     254                        if (isMobile) {
     255                                $(document.body).bind('orientationchange.postboxes', function () { postboxes._pb_change(); });
    256256                                this._pb_change();
    257257                        }
    258258
     
    259259                        this._mark_area();
    260260
    261261                        // 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' ) );
     262                        $handleButtons.each(function () {
     263                                var $el = $(this);
     264                                $el.attr('aria-expanded', !$el.parent('.postbox').hasClass('closed'));
    265265                        });
    266266                },
    267267
     
    277277                 * @param {string} page The page we are currently on.
    278278                 * @returns {void}
    279279                 */
    280                 save_state : function(page) {
     280                save_state: function (page) {
    281281                        var closed, hidden;
    282282
    283283                        // Return on the nav-menus.php screen, see #35112.
    284                         if ( 'nav-menus' === page ) {
     284                        if ('nav-menus' === page) {
    285285                                return;
    286286                        }
    287287
    288                         closed = $( '.postbox' ).filter( '.closed' ).map( function() { return this.id; } ).get().join( ',' );
    289                         hidden = $( '.postbox' ).filter( ':hidden' ).map( function() { return this.id; } ).get().join( ',' );
     288                        closed = $('.postbox').filter('.closed').map(function () { return this.id; }).get().join(',');
     289                        hidden = $('.postbox').filter(':hidden').map(function () { return this.id; }).get().join(',');
    290290
    291291                        $.post(ajaxurl, {
    292292                                action: 'closed-postboxes',
     
    308308                 * @param {string} page The page we are currently on.
    309309                 * @returns {void}
    310310                 */
    311                 save_order : function(page) {
     311                save_order: function (page) {
    312312                        var postVars, page_columns = $('.columns-prefs input:checked').val() || 0;
    313313
    314314                        postVars = {
     
    318318                                page: page
    319319                        };
    320320
    321                         $('.meta-box-sortables').each( function() {
    322                                 postVars[ 'order[' + this.id.split( '-' )[0] + ']' ] = $( this ).sortable( 'toArray' ).join( ',' );
    323                         } );
     321                        $('.meta-box-sortables').each(function () {
     322                                postVars['order[' + this.id.split('-')[0] + ']'] = $(this).sortable('toArray').join(',');
     323                        });
    324324
    325                         $.post( ajaxurl, postVars );
     325                        $.post(ajaxurl, postVars);
    326326                },
    327327
    328328                /**
     
    338338                 *
    339339                 * @returns {void}
    340340                 */
    341                 _mark_area : function() {
     341                _mark_area: function () {
    342342                        var visible = $('div.postbox:visible').length, side = $('#post-body #side-sortables');
    343343
    344                         $( '#dashboard-widgets .meta-box-sortables:visible' ).each( function() {
     344                        $('#dashboard-widgets .meta-box-sortables:visible').each(function () {
    345345                                var t = $(this);
    346346
    347                                 if ( visible == 1 || t.children('.postbox:visible').length ) {
     347                                if (visible == 1 || t.children('.postbox:visible').length) {
    348348                                        t.removeClass('empty-container');
    349349                                }
    350350                                else {
     
    353353                                }
    354354                        });
    355355
    356                         if ( side.length ) {
    357                                 if ( side.children('.postbox:visible').length )
     356                        if (side.length) {
     357                                if (side.children('.postbox:visible').length)
    358358                                        side.removeClass('empty-container');
    359                                 else if ( $('#postbox-container-1').css('width') == '280px' )
     359                                else if ($('#postbox-container-1').css('width') == '280px')
    360360                                        side.addClass('empty-container');
    361361                        }
    362362                },
     
    372372                 * @param {number} n The amount of columns to divide the post edit page in.
    373373                 * @returns {void}
    374374                 */
    375                 _pb_edit : function(n) {
     375                _pb_edit: function (n) {
    376376                        var el = $('.metabox-holder').get(0);
    377377
    378                         if ( el ) {
     378                        if (el) {
    379379                                el.className = el.className.replace(/columns-\d+/, 'columns-' + n);
    380380                        }
    381381
     
    387387                         *
    388388                         * @event postboxes#postboxes-columnchange
    389389                         */
    390                         $( document ).trigger( 'postboxes-columnchange' );
     390                        $(document).trigger('postboxes-columnchange');
    391391                },
    392392
    393393                /**
     
    400400                 *
    401401                 * @returns {void}
    402402                 */
    403                 _pb_change : function() {
    404                         var check = $( 'label.columns-prefs-1 input[type="radio"]' );
     403                _pb_change: function () {
     404                        var check = $('label.columns-prefs-1 input[type="radio"]');
    405405
    406                         switch ( window.orientation ) {
     406                        switch (window.orientation) {
    407407                                case 90:
    408408                                case -90:
    409                                         if ( !check.length || !check.is(':checked') )
     409                                        if (!check.length || !check.is(':checked'))
    410410                                                this._pb_edit(2);
    411411                                        break;
    412412                                case 0:
    413413                                case 180:
    414                                         if ( $('#poststuff').length ) {
     414                                        if ($('#poststuff').length) {
    415415                                                this._pb_edit(1);
    416416                                        } else {
    417                                                 if ( !check.length || !check.is(':checked') )
     417                                                if (!check.length || !check.is(':checked'))
    418418                                                        this._pb_edit(2);
    419419                                        }
    420420                                        break;
     
    430430                 * @property {Function|boolean} pbshow A callback that is called when a postbox
    431431                 *                                     is opened.
    432432                 */
    433                 pbshow : false,
     433                pbshow: false,
    434434
    435435                /**
    436436                 * @since 2.7.0
     
    439439                 * @property {Function|boolean} pbhide A callback that is called when a postbox
    440440                 *                                     is closed.
    441441                 */
    442                 pbhide : false
     442                pbhide: false
    443443        };
    444444
    445445}(jQuery));