WordPress.org

Make WordPress Core

Changeset 22952


Ignore:
Timestamp:
11/30/2012 03:19:11 PM (5 years ago)
Author:
ryan
Message:

Refine media state machine methods.

  • state( id ) becomes setState( id )
  • get( id ) becomes state( id )
  • state() stays the same
  • previous() becomes lastState()

Props koopersmith
fixes #22652

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/meta-boxes.php

    r22745 r22952  
    10211021
    10221022            if ( frame ) {
    1023                 selection = frame.get('library').get('selection');
     1023                selection = frame.state('library').get('selection');
    10241024
    10251025                if ( -1 === thumbnailId )
     
    10561056            frame = wp.media( options );
    10571057
    1058             frame.get('library').set( 'filterable', 'uploaded' );
     1058            frame.state('library').set( 'filterable', 'uploaded' );
    10591059
    10601060            frame.toolbar.on( 'activate:select', function() {
  • trunk/wp-admin/js/custom-background.js

    r22547 r22952  
    5858            });
    5959
    60             frame.state('library');
     60            frame.setState('library');
    6161        });
    6262    });
  • trunk/wp-admin/js/custom-header.js

    r22798 r22952  
    4141            });
    4242
    43             frame.state('library');
     43            frame.setState('library');
    4444        });
    4545    });
  • trunk/wp-includes/js/media-editor.js

    r22951 r22952  
    394394            }, this );
    395395
    396             workflow.get('gallery-edit').on( 'update', function( selection ) {
     396            workflow.state('gallery-edit').on( 'update', function( selection ) {
    397397                this.insert( wp.media.gallery.shortcode( selection ).string() );
    398398            }, this );
    399399
    400             workflow.get('embed').on( 'select', function() {
     400            workflow.state('embed').on( 'select', function() {
    401401                var embed = workflow.state().toJSON();
    402402
  • trunk/wp-includes/js/media-models.js

    r22951 r22952  
    3232        delete attributes.frame;
    3333        // Set the default state.
    34         frame.state( frame.options.state );
     34        frame.setState( frame.options.state );
    3535        // Render, attach, and open the frame.
    3636        return frame.render().attach().open();
  • trunk/wp-includes/js/media-views.js

    r22951 r22952  
    144144    _.extend( media.controller.StateMachine.prototype, Backbone.Events, {
    145145
    146         // Fetch a state model.
     146        // Fetch a state.
     147        //
     148        // If no `id` is provided, returns the active state.
    147149        //
    148150        // Implicitly creates states.
    149         get: function( id ) {
     151        state: function( id ) {
    150152            // Ensure that the `states` collection exists so the `StateMachine`
    151153            // can be used as a mixin.
    152154            this.states = this.states || new Backbone.Collection();
    153155
    154             if ( ! this.states.get( id ) )
     156            // Default to the active state.
     157            id = id || this._state;
     158
     159            if ( id && ! this.states.get( id ) )
    155160                this.states.add({ id: id });
    156161            return this.states.get( id );
    157162        },
    158163
    159         // Selects or returns the active state.
    160         //
    161         // If a `id` is provided, sets that as the current state.
    162         // If no parameters are provided, returns the current state object.
    163         state: function( id ) {
    164             var previous;
    165 
    166             if ( ! id )
    167                 return this._state ? this.get( this._state ) : null;
    168 
    169             previous = this.state();
     164        // Sets the active state.
     165        setState: function( id ) {
     166            var previous = this.state();
    170167
    171168            // Bail if we're trying to select the current state, if we haven't
     
    177174            if ( previous ) {
    178175                previous.trigger('deactivate');
    179                 this._previous = previous.id;
     176                this._lastState = previous.id;
    180177            }
    181178
     
    184181        },
    185182
    186         previous: function() {
    187             return this._previous;
     183        // Returns the previous active state.
     184        //
     185        // Call the `state()` method with no parameters to retrieve the current
     186        // active state.
     187        lastState: function() {
     188            if ( this._lastState )
     189                return this.state( this._lastState );
    188190        }
    189191    });
     
    428430
    429431            if ( previous )
    430                 this.frame.get( previous ).off( 'change:library', this._excludeStateLibrary, this );
     432                this.frame.state( previous ).off( 'change:library', this._excludeStateLibrary, this );
    431433
    432434            if ( current )
    433                 this.frame.get( current ).on( 'change:library', this._excludeStateLibrary, this );
     435                this.frame.state( current ).on( 'change:library', this._excludeStateLibrary, this );
    434436        },
    435437
     
    440442                return;
    441443
    442             this.set( 'exclude', this.frame.get( current ).get('library') );
     444            this.set( 'exclude', this.frame.state( current ).get('library') );
    443445        }
    444446    });
     
    475477            var library = this.get('libraryState');
    476478
    477             this.frame.get( library ).get('selection').add( attachment );
    478             this.frame.state( library );
     479            this.frame.state( library ).get('selection').add( attachment );
     480            this.frame.setState( library );
    479481        }
    480482    });
     
    11231125            // Generate the tab states.
    11241126            _.each( tabs, function( title, id ) {
    1125                 var frame = this.get( 'iframe:' + id ).set( _.defaults({
     1127                var frame = this.state( 'iframe:' + id ).set( _.defaults({
    11261128                    tab:     id,
    11271129                    src:     tabUrl + '&tab=' + id,
     
    11501152            _.each( media.view.settings.tabs, function( title, id ) {
    11511153                views[ 'iframe:' + id ] = {
    1152                     text: this.get( 'iframe:' + id ).get('title'),
     1154                    text: this.state( 'iframe:' + id ).get('title'),
    11531155                    priority: 200
    11541156                };
     
    11681170                frame.close();
    11691171                frame.reset();
    1170                 frame.state( frame.options.state );
     1172                frame.setState( frame.options.state );
    11711173                frame._tb_remove.call( window );
    11721174            };
     
    13231325                            controller.reset();
    13241326                            if ( options.state )
    1325                                 controller.state( options.state );
     1327                                controller.setState( options.state );
    13261328                        }
    13271329                    }
     
    14531455
    14541456        galleryMenu: function() {
    1455             var previous = this.previous(),
     1457            var lastState = this.lastState(),
     1458                previous = lastState && lastState.id,
    14561459                frame = this;
    14571460
     
    14641467                        click:    function() {
    14651468                            if ( previous )
    1466                                 frame.state( previous );
     1469                                frame.setState( previous );
    14671470                            else
    14681471                                frame.close();
     
    15821585                            controller.reset();
    15831586                            // @todo: Make the state activated dynamic (instead of hardcoded).
    1584                             controller.state('upload');
     1587                            controller.setState('upload');
    15851588                        }
    15861589                    }
     
    16011604                            var controller = this.controller,
    16021605                                state = controller.state(),
    1603                                 edit = controller.get('gallery-edit');
     1606                                edit = controller.state('gallery-edit');
    16041607
    16051608                            edit.get('library').add( state.get('selection').models );
     
    20702073
    20712074            if ( options.state )
    2072                 controller.state( options.state );
     2075                controller.setState( options.state );
    20732076        }
    20742077    });
     
    21062109                    var controller = this.controller,
    21072110                        selection = controller.state().get('selection'),
    2108                         edit = controller.get( state ),
     2111                        edit = controller.state( state ),
    21092112                        models = filter ? filter( selection ) : selection.models;
    21102113
     
    21142117                    }) );
    21152118
    2116                     this.controller.state( state );
     2119                    this.controller.setState( state );
    21172120                };
    21182121            };
     
    23792382                options.click.call( this );
    23802383            else if ( options.state )
    2381                 this.controller.state( options.state );
     2384                this.controller.setState( options.state );
    23822385        },
    23832386
  • trunk/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin_src.js

    r22857 r22952  
    2929                frame = gallery.edit( '[' + ed.dom.getAttrib( el, 'title' ) + ']' );
    3030
    31                 frame.get('gallery-edit').on( 'update', function( selection ) {
     31                frame.state('gallery-edit').on( 'update', function( selection ) {
    3232                    var shortcode = gallery.shortcode( selection ).string().slice( 1, -1 );
    3333                    ed.dom.setAttrib( el, 'title', shortcode );
     
    5050                }
    5151            });
    52            
     52
    5353            ed.onMouseDown.add(function(ed, e) {
    5454                if ( e.target.nodeName == 'IMG' && ed.dom.hasClass(e.target, 'wpGallery') ) {
Note: See TracChangeset for help on using the changeset viewer.