WordPress.org

Make WordPress Core

Changeset 22952


Ignore:
Timestamp:
11/30/12 15:19:11 (2 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.