WordPress.org

Make WordPress Core

Ticket #22731: 22731.2.diff

File 22731.2.diff, 8.5 KB (added by koopersmith, 3 years ago)
  • wp-includes/js/media-editor.js

     
    320320                }; 
    321321        }()); 
    322322 
     323        wp.media.featuredImage = { 
     324                get: function() { 
     325                        return wp.media.view.settings.post.featuredImageId; 
     326                }, 
     327 
     328                set: function( id ) { 
     329                        var settings = wp.media.view.settings; 
     330 
     331                        settings.post.featuredImageId = id; 
     332 
     333                        wp.media.post( 'set-post-thumbnail', { 
     334                                json:         true, 
     335                                post_id:      settings.post.id, 
     336                                thumbnail_id: settings.post.featuredImageId, 
     337                                _wpnonce:     settings.post.nonce 
     338                        }).done( function( html ) { 
     339                                $( '.inside', '#postimagediv' ).html( html ); 
     340                        }); 
     341                }, 
     342 
     343                frame: function() { 
     344                        if ( this._frame ) 
     345                                return this._frame; 
     346 
     347                        this._frame = wp.media({ 
     348                                state: 'featured-image', 
     349                                states: [ new wp.media.controller.FeaturedImage() ] 
     350                        }); 
     351 
     352                        this._frame.on( 'toolbar:create:featured-image', function( toolbar ) { 
     353                                this.createSelectToolbar( toolbar, { 
     354                                        text: wp.media.view.l10n.setFeaturedImage 
     355                                }); 
     356                        }, this._frame ); 
     357 
     358                        this._frame.state('featured-image').on( 'select', this.select ); 
     359                        return this._frame; 
     360                }, 
     361 
     362                select: function() { 
     363                        var settings = wp.media.view.settings, 
     364                                selection = this.get('selection').single(); 
     365 
     366                        if ( ! settings.post.featuredImageId ) 
     367                                return; 
     368 
     369                        wp.media.featuredImage.set( selection ? selection.id : -1 ); 
     370                }, 
     371 
     372                init: function() { 
     373                        // Open the content media manager to the 'featured image' tab when 
     374                        // the post thumbnail is clicked. 
     375                        $('#postimagediv').on( 'click', '#set-post-thumbnail', function( event ) { 
     376                                event.preventDefault(); 
     377                                // Stop propagation to prevent thickbox from activating. 
     378                                event.stopPropagation(); 
     379 
     380                                wp.media.featuredImage.frame().open(); 
     381 
     382                        // Update the featured image id when the 'remove' link is clicked. 
     383                        }).on( 'click', '#remove-post-thumbnail', function() { 
     384                                wp.media.view.settings.post.featuredImageId = -1; 
     385                        }); 
     386                } 
     387        }; 
     388 
     389        $( wp.media.featuredImage.init ); 
     390 
    323391        wp.media.editor = { 
    324392                insert: function( h ) { 
    325393                        var mce = typeof(tinymce) != 'undefined', 
     
    443511                                } 
    444512                        }, this ); 
    445513 
    446                         workflow.state('featured-image').on( 'select', function() { 
    447                                 var settings = wp.media.view.settings, 
    448                                         selection = this.get('selection').single(); 
    449  
    450                                 if ( ! settings.post.featuredImageId ) 
    451                                         return; 
    452  
    453                                 settings.post.featuredImageId = selection ? selection.id : -1; 
    454                                 wp.media.post( 'set-post-thumbnail', { 
    455                                         json:         true, 
    456                                         post_id:      settings.post.id, 
    457                                         thumbnail_id: settings.post.featuredImageId, 
    458                                         _wpnonce:     settings.post.nonce 
    459                                 }).done( function( html ) { 
    460                                         $( '.inside', '#postimagediv' ).html( html ); 
    461                                 }); 
    462                         }); 
    463  
     514                        workflow.state('featured-image').on( 'select', wp.media.featuredImage.select ); 
    464515                        workflow.setState( workflow.options.state ); 
    465516                        return workflow; 
    466517                }, 
     
    586637 
    587638                                wp.media.editor.open( editor ); 
    588639                        }); 
    589  
    590                         // Open the content media manager to the 'featured image' tab when 
    591                         // the post thumbnail is clicked. 
    592                         $('#postimagediv').on( 'click', '#set-post-thumbnail', function( event ) { 
    593                                 event.preventDefault(); 
    594                                 // Stop propagation to prevent thickbox from activating. 
    595                                 event.stopPropagation(); 
    596  
    597                                 // Always get the 'content' frame, since this is tailored to post.php. 
    598                                 var frame = wp.media.editor.add('content'), 
    599                                         initialState = frame.state().id, 
    600                                         escape; 
    601  
    602                                 escape = function() { 
    603                                         // Only run this event once. 
    604                                         this.off( 'escape', escape ); 
    605  
    606                                         // If we're still on the 'featured-image' state, restore 
    607                                         // the initial state. 
    608                                         if ( 'featured-image' === this.state().id ) 
    609                                                 this.setState( initialState ); 
    610                                 }; 
    611  
    612                                 frame.on( 'escape', escape, frame ); 
    613  
    614                                 frame.setState('featured-image').open(); 
    615  
    616                         // Update the featured image id when the 'remove' link is clicked. 
    617                         }).on( 'click', '#remove-post-thumbnail', function() { 
    618                                 wp.media.view.settings.post.featuredImageId = -1; 
    619                         }); 
    620640                } 
    621641        }; 
    622642 
  • wp-includes/js/media-views.js

     
    289289                        this.frame.router.render( mode ); 
    290290 
    291291                        view = router.get(); 
    292                         if ( view.select ) 
     292                        if ( view && view.select ) 
    293293                                view.select( this.frame.content.mode() ); 
    294294                }, 
    295295 
     
    304304                        menu.mode( mode ); 
    305305 
    306306                        view = menu.get(); 
    307                         if ( view.select ) 
     307                        if ( view && view.select ) 
    308308                                view.select( this.id ); 
    309309                }, 
    310310 
     
    357357                        sidebar:    'settings', 
    358358                        content:    'upload', 
    359359                        router:     'browse', 
     360                        menu:       'default', 
    360361                        searchable: true, 
    361362                        filterable: false, 
    362363                        sortable:   true, 
     
    669670                        id:         'featured-image', 
    670671                        filterable: 'uploaded', 
    671672                        multiple:   false, 
    672                         menu:       'main', 
    673673                        toolbar:    'featured-image', 
    674674                        title:      l10n.featuredImageTitle, 
    675675                        priority:   60 
     
    707707                }, 
    708708 
    709709                activate: function() { 
     710                        this.updateSelection(); 
     711                        this.frame.on( 'open', this.updateSelection, this ); 
     712                        media.controller.Library.prototype.activate.apply( this, arguments ); 
     713                }, 
     714 
     715                deactivate: function() { 
     716                        this.frame.off( 'open', this.updateSelection, this ); 
     717                        media.controller.Library.prototype.deactivate.apply( this, arguments ); 
     718                }, 
     719 
     720                updateSelection: function() { 
    710721                        var selection = this.get('selection'), 
    711722                                id = media.view.settings.post.featuredImageId, 
    712723                                attachment; 
     
    717728                        } 
    718729 
    719730                        selection.reset( attachment ? [ attachment ] : [] ); 
    720                         media.controller.Library.prototype.activate.apply( this, arguments ); 
    721731                } 
    722732        }); 
    723733 
     
    728738                defaults: { 
    729739                        id:      'embed', 
    730740                        url:     '', 
    731                         menu:    'main', 
     741                        menu:    'default', 
    732742                        content: 'embed', 
    733743                        toolbar: 'main-embed', 
    734744                        type:    'link', 
     
    12311241                                model.frame = this; 
    12321242                                model.trigger('ready'); 
    12331243                        }, this ); 
     1244 
     1245                        if ( this.options.states ) 
     1246                                this.states.add( this.options.states ); 
    12341247                }, 
    12351248 
    12361249                reset: function() { 
     
    12941307                        // Bind default title creation. 
    12951308                        this.on( 'title:create:default', this.createTitle, this ); 
    12961309                        this.title.mode('default'); 
     1310 
     1311                        // Bind default menu. 
     1312                        this.on( 'menu:create:default', this.createMenu, this ); 
    12971313                }, 
    12981314 
    12991315                render: function() { 
     
    13501366                                        src:     tabUrl + '&tab=' + id, 
    13511367                                        title:   title, 
    13521368                                        content: 'iframe', 
    1353                                         menu:    'main' 
     1369                                        menu:    'default' 
    13541370                                }, options ) ); 
    13551371                        }, this ); 
    13561372 
    13571373                        this.on( 'content:create:iframe', this.iframeContent, this ); 
    1358                         this.on( 'menu:render:main', this.iframeMenu, this ); 
     1374                        this.on( 'menu:render:default', this.iframeMenu, this ); 
    13591375                        this.on( 'open', this.hijackThickbox, this ); 
    13601376                        this.on( 'close', this.restoreThickbox, this ); 
    13611377                }, 
     
    14491465                createStates: function() { 
    14501466                        var options = this.options; 
    14511467 
     1468                        if ( this.options.states ) 
     1469                                return; 
     1470 
    14521471                        // Add the default states. 
    14531472                        this.states.add([ 
    14541473                                // Main states. 
     
    14561475                                        selection: options.selection, 
    14571476                                        library:   media.query( options.library ), 
    14581477                                        multiple:  options.multiple, 
    1459                                         menu:      'main', 
    14601478                                        title:     options.title, 
    14611479                                        priority:  20 
    14621480                                }) 
     
    14641482                }, 
    14651483 
    14661484                bindHandlers: function() { 
    1467                         this.on( 'menu:create:main', this.createMenu, this ); 
    14681485                        this.on( 'router:create:browse', this.createRouter, this ); 
    14691486                        this.on( 'router:render:browse', this.browseRouter, this ); 
    14701487                        this.on( 'content:create:browse', this.browseContent, this ); 
     
    15501567                                        id:         'insert', 
    15511568                                        title:      l10n.insertMediaTitle, 
    15521569                                        priority:   20, 
    1553                                         menu:       'main', 
    15541570                                        toolbar:    'main-insert', 
    15551571                                        filterable: 'all', 
    15561572                                        library:    media.query( options.library ), 
     
    15691585                                        id:         'gallery', 
    15701586                                        title:      l10n.createGalleryTitle, 
    15711587                                        priority:   40, 
    1572                                         menu:       'main', 
    15731588                                        toolbar:    'main-gallery', 
    15741589                                        filterable: 'uploaded', 
    15751590                                        multiple:   'add', 
     
    16091624 
    16101625 
    16111626                        if ( media.view.settings.post.featuredImageId ) { 
    1612                                 this.states.add( new media.controller.FeaturedImage({ 
    1613                                         controller: this, 
    1614                                         menu:       'main' 
    1615                                 }) ); 
     1627                                this.states.add( new media.controller.FeaturedImage() ); 
    16161628                        } 
    16171629                }, 
    16181630 
     
    16261638 
    16271639                        var handlers = { 
    16281640                                        menu: { 
    1629                                                 'main':    'mainMenu', 
     1641                                                'default': 'mainMenu', 
    16301642                                                'gallery': 'galleryMenu' 
    16311643                                        }, 
    16321644