Make WordPress Core

Ticket #27698: 27698-03.patch

File 27698-03.patch, 6.9 KB (added by gcorne, 11 years ago)
  • src/wp-includes/css/media-views.css

    diff --git src/wp-includes/css/media-views.css src/wp-includes/css/media-views.css
    index c339723..787a74f 100644
     
    18071807        left: 440px;
    18081808}
    18091809
    1810 .advanced,
     1810.advanced-section,
    18111811.link-settings {
    18121812        margin-top: 10px;
    18131813}
  • src/wp-includes/js/media-views.js

    diff --git src/wp-includes/js/media-views.js src/wp-includes/js/media-views.js
    index 5713cf1..3273b91 100644
     
    3232        }());
    3333
    3434        /**
     35         * A shared event bus used to provide hooks into
     36         * the media workflows that 3rd-party devs can use to hook
     37         * in.
     38         */
     39        media.hooks = _.extend( {}, Backbone.Events );
     40
     41        /**
    3542         * Makes it easier to bind events using transitions.
    3643         *
    3744         * @param {string} selector
     
    62566263                        if ( this.model.attachment && 'pending' === this.model.dfd.state() ) {
    62576264                                this.model.dfd.done( function() {
    62586265                                        media.view.Settings.AttachmentDisplay.prototype.render.apply( self, args );
    6259                                         self.resetFocus();
    6260                                         self.toggleLinkSettings();
     6266                                        self.postRender();
    62616267                                } ).fail( function() {
    62626268                                        self.model.attachment = false;
    62636269                                        media.view.Settings.AttachmentDisplay.prototype.render.apply( self, args );
    6264                                         self.resetFocus();
    6265                                         self.toggleLinkSettings();
     6270                                        self.postRender();
    62666271                                } );
    62676272                        } else {
    62686273                                media.view.Settings.AttachmentDisplay.prototype.render.apply( this, arguments );
    6269                                 setTimeout( function() { self.resetFocus(); }, 10 );
    6270                                 self.toggleLinkSettings();
    62716274                        }
    62726275
    62736276                        return this;
    62746277                },
    62756278
     6279                postRender: function() {
     6280                        setTimeout( _.bind( this.resetFocus, this ), 10 );
     6281                        this.toggleLinkSettings();
     6282                        this.trigger( 'post-render' );
     6283                },
     6284
    62766285                resetFocus: function() {
    62776286                        this.$( '.link-to-custom' ).blur();
    62786287                        this.$( '.embed-media-settings' ).scrollTop( 0 );
     
    63236332                },
    63246333
    63256334                toggleAdvanced: function( event ) {
    6326                         var $advanced = $( event.target ).closest( '.advanced' );
     6335                        var $advanced = $( event.target ).closest( '.advanced-section' );
    63276336                        event.preventDefault();
    63286337                        if ( $advanced.hasClass('advanced-visible') ) {
    63296338                                $advanced.removeClass('advanced-visible');
    6330                                 $advanced.find('div').addClass('hidden');
     6339                                $advanced.find('.advanced-settings').addClass('hidden');
    63316340                        } else {
    63326341                                $advanced.addClass('advanced-visible');
    6333                                 $advanced.find('div').removeClass('hidden');
     6342                                $advanced.find('.advanced-settings').removeClass('hidden');
    63346343                        }
    63356344                },
    63366345
  • src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js

    diff --git src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
    index a6c3502..f1b3175 100644
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    201201                        metadata.linkClassName = link.className;
    202202                }
    203203
     204
    204205                return metadata;
    205206        }
    206207
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    338339                        dom.remove( captionNode );
    339340                }
    340341
     342                if ( wp.media.hooks ) {
     343                        wp.media.hooks.trigger( 'editor:image-update', {
     344                                editor: editor,
     345                                metadata: imageData,
     346                                image: imageNode
     347                        } );
     348                }
     349
    341350                editor.nodeChanged();
    342351                // Refresh the toolbar
    343352                addToolbar( imageNode );
    344353        }
    345354
    346355        function editImage( img ) {
    347                 var frame, callback;
     356                var frame, callback, metadata;
    348357
    349358                if ( typeof wp === 'undefined' || ! wp.media ) {
    350359                        editor.execCommand( 'mceImage' );
    351360                        return;
    352361                }
    353362
     363                metadata = extractImageData( img );
     364
     365                // Manipulate the metadata by reference that is fed into the PostImage model used in the media modal
     366                wp.media.hooks.trigger( 'editor:image-edit', {
     367                        editor: editor,
     368                        metadata: metadata,
     369                        image: img
     370                } );
     371
    354372                frame = wp.media({
    355373                        frame: 'image',
    356374                        state: 'image-details',
    357                         metadata: extractImageData( img )
     375                        metadata: metadata
    358376                } );
    359377
    360378                callback = function( imageData ) {
    tinymce.PluginManager.add( 'wpeditimage', function( editor ) { 
    373391                });
    374392
    375393                frame.open();
     394
     395                wp.media.hooks.trigger( 'editor:frame-open', { frame: frame } );
    376396        }
    377397
    378398        function removeImage( node ) {
  • src/wp-includes/media-template.php

    diff --git src/wp-includes/media-template.php src/wp-includes/media-template.php
    index a284d8d..5a49ae3 100644
    function wp_print_media_templates() { 
    755755                                                </select>
    756756                                                <input type="text" class="link-to-custom" data-setting="linkUrl" />
    757757                                        </div>
    758                                         <div class="advanced">
     758                                        <div class="advanced-section">
    759759                                                <h3><a class="advanced-toggle" href="#"><?php _e('Advanced Options'); ?></a></h3>
    760                                                 <div class="hidden">
    761                                                         <label class="setting title-text">
    762                                                                 <span><?php _e('Image Title Attribute'); ?></span>
    763                                                                 <input type="text" data-setting="title" value="{{ data.model.title }}" />
    764                                                         </label>
    765                                                         <label class="setting extra-classes">
    766                                                                 <span><?php _e('Image CSS Class'); ?></span>
    767                                                                 <input type="text" data-setting="extraClasses" value="{{ data.model.extraClasses }}" />
    768                                                         </label>
    769                                                         <div class="setting link-target">
    770                                                                 <label><input type="checkbox" data-setting="linkTargetBlank" value="_blank" <# if ( data.model.linkTargetBlank ) { #>checked="checked"<# } #>><?php _e( 'Open link in a new window/tab' ); ?></label>
     760                                                <div class="advanced-settings hidden">
     761                                                        <div class="advanced-image">
     762                                                                <label class="setting title-text">
     763                                                                        <span><?php _e('Image Title Attribute'); ?></span>
     764                                                                        <input type="text" data-setting="title" value="{{ data.model.title }}" />
     765                                                                </label>
     766                                                                <label class="setting extra-classes">
     767                                                                        <span><?php _e('Image CSS Class'); ?></span>
     768                                                                        <input type="text" data-setting="extraClasses" value="{{ data.model.extraClasses }}" />
     769                                                                </label>
     770                                                        </div>
     771                                                        <div class="advanced-link">
     772                                                                <div class="setting link-target">
     773                                                                        <label><input type="checkbox" data-setting="linkTargetBlank" value="_blank" <# if ( data.model.linkTargetBlank ) { #>checked="checked"<# } #>><?php _e( 'Open link in a new window/tab' ); ?></label>
     774                                                                </div>
     775                                                                <label class="setting link-rel">
     776                                                                        <span><?php _e('Link Rel'); ?></span>
     777                                                                        <input type="text" data-setting="linkRel" value="{{ data.model.linkClassName }}" />
     778                                                                </label>
     779                                                                <label class="setting link-class-name">
     780                                                                        <span><?php _e('Link CSS Class'); ?></span>
     781                                                                        <input type="text" data-setting="linkClassName" value="{{ data.model.linkClassName }}" />
     782                                                                </label>
    771783                                                        </div>
    772                                                         <label class="setting link-rel">
    773                                                                 <span><?php _e('Link Rel'); ?></span>
    774                                                                 <input type="text" data-setting="linkRel" value="{{ data.model.linkClassName }}" />
    775                                                         </label>
    776                                                         <label class="setting link-class-name">
    777                                                                 <span><?php _e('Link CSS Class'); ?></span>
    778                                                                 <input type="text" data-setting="linkClassName" value="{{ data.model.linkClassName }}" />
    779                                                         </label>
    780784                                                </div>
    781785                                        </div>
    782786                                </div>