Make WordPress Core

Changeset 33338


Ignore:
Timestamp:
07/20/2015 11:55:46 PM (11 years ago)
Author:
iseulde
Message:

TinyMCE: views: make sure gallery captions update

Part props dmsnell.
Fixes #32779.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/js/mce-view.js

    r32711 r33338  
    146146                 * Create a view instance.
    147147                 *
    148                  * @param {String} type    The view type.
    149                  * @param {String} text    The textual representation of the view.
    150                  * @param {Object} options Options.
     148                 * @param {String}  type    The view type.
     149                 * @param {String}  text    The textual representation of the view.
     150                 * @param {Object}  options Options.
     151                 * @param {Boolean} force   Recreate the instance. Optional.
    151152                 *
    152153                 * @return {wp.mce.View} The view instance.
    153154                 */
    154                 createInstance: function( type, text, options ) {
     155                createInstance: function( type, text, options, force ) {
    155156                        var View = this.get( type ),
    156157                                encodedText,
    … …  
    158159
    159160                        text = tinymce.DOM.decode( text );
    160                         instance = this.getInstance( text );
    161 
    162                         if ( instance ) {
    163                                 return instance;
     161
     162                        if ( ! force ) {
     163                                instance = this.getInstance( text );
     164
     165                                if ( instance ) {
     166                                        return instance;
     167                                }
    164168                        }
    165169
    … …  
    217221                 * @param {tinymce.Editor} editor The TinyMCE editor instance the view node is in.
    218222                 * @param {HTMLElement}    node   The view node to update.
    219                  */
    220                 update: function( text, editor, node ) {
     223                 * @param {Boolean}        force  Recreate the instance. Optional.
     224                 */
     225                update: function( text, editor, node, force ) {
    221226                        var instance = this.getInstance( node );
    222227
    223228                        if ( instance ) {
    224                                 instance.update( text, editor, node );
     229                                instance.update( text, editor, node, force );
    225230                        }
    226231                },
    … …  
    236241
    237242                        if ( instance && instance.edit ) {
    238                                 instance.edit( instance.text, function( text ) {
    239                                         instance.update( text, editor, node );
     243                                instance.edit( instance.text, function( text, force ) {
     244                                        instance.update( text, editor, node, force );
    240245                                } );
    241246                        }
    … …  
    303308                 * Renders all view nodes tied to this view instance that are not yet rendered.
    304309                 *
    305                  * @param {String} content The content to render. Optional.
    306                  * @param {Boolean} force Rerender all view nodes tied to this view instance.
     310                 * @param {String}  content The content to render. Optional.
     311                 * @param {Boolean} force   Rerender all view nodes tied to this view instance. Optional.
    307312                 */
    308313                render: function( content, force ) {
    … …  
    648653                 *
    649654                 * @param {String} message  The error message to set.
    650                  * @param {String} dashicon A dashicon ID (optional). {@link https://developer.wordpress.org/resource/dashicons/}
     655                 * @param {String} dashicon A dashicon ID. Optional. {@link https://developer.wordpress.org/resource/dashicons/}
    651656                 */
    652657                setError: function( message, dashicon ) {
    … …  
    686691                 * @param {tinymce.Editor} editor The TinyMCE editor instance the view node is in.
    687692                 * @param {HTMLElement}    node   The view node to update.
    688                  */
    689                 update: function( text, editor, node ) {
     693                 * @param {Boolean}        force  Recreate the instance. Optional.
     694                 */
     695                update: function( text, editor, node, force ) {
    690696                        _.find( views, function( view, type ) {
    691697                                var match = view.prototype.match( text );
    … …  
    694700                                        $( node ).data( 'rendered', false );
    695701                                        editor.dom.setAttrib( node, 'data-wpview-text', encodeURIComponent( text ) );
    696                                         wp.mce.views.createInstance( type, text, match.options ).render();
     702                                        wp.mce.views.createInstance( type, text, match.options, force ).render();
    697703                                        editor.focus();
    698704
    … …  
    730736
    731737                edit: function( text, update ) {
    732                         var media = wp.media[ this.type ],
     738                        var type = this.type,
     739                                media = wp.media[ type ],
    733740                                frame = media.edit( text );
    734741
    … …  
    737744                        _.each( this.state, function( state ) {
    738745                                frame.state( state ).on( 'update', function( selection ) {
    739                                         update( media.shortcode( selection ).string() );
     746                                        update( media.shortcode( selection ).string(), type === 'gallery' );
    740747                                } );
    741748                        } );
Note: See TracChangeset for help on using the changeset viewer.