WordPress.org

Make WordPress Core

Ticket #24716: 24716.28.diff

File 24716.28.diff, 3.6 KB (added by wonderboymusic, 3 years ago)
  • src/wp-includes/js/media-grid.js

     
    213213 
    214214                        // Handle a frame-level event for editing an attachment. 
    215215                        this.on( 'edit:attachment', this.editAttachment, this ); 
    216                         this.on( 'edit:attachment:next', this.editNextAttachment, this ); 
    217                         this.on( 'edit:attachment:previous', this.editPreviousAttachment, this ); 
    218216                }, 
    219217 
    220                 editPreviousAttachment: function( currentModel ) { 
    221                         var library = this.state().get('library'), 
    222                                 currentModelIndex = library.indexOf( currentModel ); 
    223                         this.trigger( 'edit:attachment', library.at( currentModelIndex - 1 ) ); 
    224                 }, 
    225  
    226                 editNextAttachment: function( currentModel ) { 
    227                         var library = this.state().get('library'), 
    228                                 currentModelIndex = library.indexOf( currentModel ); 
    229                         this.trigger( 'edit:attachment', library.at( currentModelIndex + 1 ) ); 
    230                 }, 
    231  
    232218                /** 
    233219                 * Open the Edit Attachment modal. 
    234220                 */ 
    235221                editAttachment: function( model ) { 
    236                         var library = this.state().get('library'), hasPrevious, hasNext; 
    237                         if ( library.indexOf( model ) > 0 ) { 
    238                                 hasPrevious = true; 
    239                         } 
    240                         else { 
    241                                 hasPrevious = false; 
    242                         } 
    243                         if ( library.indexOf( model ) < library.length - 1 ) { 
    244                                 hasNext = true; 
    245                         } 
    246                         else { 
    247                                 hasNext = false; 
    248                         } 
    249  
    250                         new media.view.Frame.EditAttachment({ 
    251                                 hasPrevious:    hasPrevious, 
    252                                 hasNext:        hasNext, 
    253                                 model:          model, 
    254                                 gridController: this 
     222                        // Create a new EditAttachment frame, passing along the library. 
     223                        this.editAttachmentFrame = new media.view.Frame.EditAttachments({ 
     224                                library: this.state().get('library'), 
     225                                model: model 
    255226                        }); 
    256227                }, 
    257228 
     
    330301         * 
    331302         * Requires an attachment model to be passed in the options hash under `model`. 
    332303         */ 
    333         media.view.Frame.EditAttachment = media.view.Frame.extend({ 
     304        media.view.Frame.EditAttachments = media.view.Frame.extend({ 
    334305 
    335306                className: 'edit-attachment-frame', 
    336307                template: media.template( 'edit-attachment-frame' ), 
     
    352323                                state: 'edit-attachment' 
    353324                        }); 
    354325 
     326                        this.library = this.options.library; 
     327                        if ( this.options.model ) { 
     328                                this.model = this.options.model; 
     329                        } else { 
     330                                this.model = this.library.at( 0 ); 
     331                        } 
     332 
    355333                        this.createStates(); 
    356334 
    357335                        this.on( 'content:render:edit-metadata', this.editMetadataContent, this ); 
     
    464442                        }); 
    465443                }, 
    466444 
     445                getCurrentIndex: function() { 
     446                        return this.library.indexOf( this.model ); 
     447                }, 
     448 
     449                hasNext: function() { 
     450                        return ( this.getCurrentIndex() + 1 ) < this.library.length; 
     451                }, 
     452 
     453                hasPrevious: function() { 
     454                        return ( this.getCurrentIndex() - 1 ) > -1; 
     455                }, 
     456 
    467457                /** 
    468458                 * Click handler to switch to the previous media item. 
    469459                 */ 
    470460                previousMediaItem: function() { 
    471                         if ( ! this.options.hasPrevious ) 
     461                        if ( ! this.hasPrevious() ) { 
    472462                                return; 
    473                         this.modal.close(); 
    474                         this.options.gridController.trigger( 'edit:attachment:previous', this.model ); 
     463                        } 
     464                        this.model = this.library.at( this.getCurrentIndex() - 1 ); 
     465                        this.editMetadataContent(); 
    475466                }, 
    476467 
    477468                /** 
     
    478469                 * Click handler to switch to the next media item. 
    479470                 */ 
    480471                nextMediaItem: function() { 
    481                         if ( ! this.options.hasNext ) 
     472                        if ( ! this.hasNext() ) { 
    482473                                return; 
    483                         this.modal.close(); 
    484                         this.options.gridController.trigger( 'edit:attachment:next', this.model ); 
     474                        } 
     475                        this.model = this.library.at( this.getCurrentIndex() + 1 ); 
     476                        this.editMetadataContent(); 
    485477                } 
    486  
    487478        }); 
    488479 
    489480        media.view.GridFieldOptions = media.View.extend({