Make WordPress Core

Changeset 29483


Ignore:
Timestamp:
08/13/2014 07:25:23 PM (12 years ago)
Author:
wonderboymusic
Message:

Media Grid: treat Edit Image like a mode, which it is, instead of a state, which it is not.

Fixes #29206.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/js/media-grid.js

    r29481 r29483  
    239239        editAttachment: function( event ) {
    240240            event.preventDefault();
    241             this.controller.setState( 'edit-image' );
     241            this.controller.content.mode( 'edit-image' );
    242242        },
    243243
     
    286286            // Trigger the media frame to open the correct item
    287287            media.frame.trigger( 'edit:attachment', library.findWhere( { id: parseInt( query, 10 ) } ) );
     288        }
     289    });
     290
     291    media.view.EditImage.Details = media.view.EditImage.extend({
     292        initialize: function( options ) {
     293            this.editor = window.imageEdit;
     294            this.frame = options.frame;
     295            this.controller = options.controller;
     296            media.View.prototype.initialize.apply( this, arguments );
     297        },
     298
     299        back: function() {
     300            this.frame.content.mode( 'edit-metadata' );
     301        },
     302
     303        save: function() {
     304            var self = this;
     305
     306            this.model.fetch().done( function() {
     307                self.frame.content.mode( 'edit-metadata' );
     308            });
    288309        }
    289310    });
     
    343364            this.on( 'content:create:edit-metadata', this.editMetadataMode, this );
    344365            this.on( 'content:create:edit-image', this.editImageMode, this );
     366            this.on( 'content:render:edit-image', this.editImageModeRender, this );
    345367            this.on( 'close', this.detach );
    346368
     
    382404         */
    383405        createStates: function() {
    384             var editImageState = new media.controller.EditImage( { model: this.model } );
    385             // Noop some methods.
    386             editImageState._toolbar = function() {};
    387             editImageState._router = function() {};
    388             editImageState._menu = function() {};
    389406            this.states.add([
    390                 new media.controller.EditAttachmentMetadata( { model: this.model } ),
    391                 editImageState
    392 
     407                new media.controller.EditAttachmentMetadata( { model: this.model } )
    393408            ]);
    394409        },
     
    428443         */
    429444        editImageMode: function( contentRegion ) {
    430             contentRegion.view = new media.view.EditImage( { model: this.model, controller: this } );
    431             // Defer a call to load the editor, which
    432             // requires DOM elements to exist.
    433             _.defer( _.bind( contentRegion.view.loadEditor, contentRegion.view ) );
     445            var editImageController = new media.controller.EditImage( {
     446                model: this.model,
     447                frame: this
     448            } );
     449            // Noop some methods.
     450            editImageController._toolbar = function() {};
     451            editImageController._router = function() {};
     452            editImageController._menu = function() {};
     453
     454            contentRegion.view = new media.view.EditImage.Details( {
     455                model: this.model,
     456                frame: this,
     457                controller: editImageController
     458            } );
     459        },
     460
     461        editImageModeRender: function( view ) {
     462            view.on( 'ready', view.loadEditor );
    434463        },
    435464
Note: See TracChangeset for help on using the changeset viewer.