WordPress.org

Make WordPress Core

Ticket #24804: 24804.16.diff

File 24804.16.diff, 8.3 KB (added by markjaquith, 22 months ago)
  • wp-admin/js/revisions.js

    window.wp = window.wp || {}; 
    156156                        this.listenTo( this.slider, 'change:hovering', this.setHovering ); 
    157157                        this.listenTo( this.slider, 'change:scrubbing', this.setScrubbing ); 
    158158 
    159                         this.set({ revision: this.frame.diff() }); 
     159                        this.set({ revision: this.revisions.get( this.frame.get('to') ) }); 
    160160                }, 
    161161 
    162162 
    window.wp = window.wp || {}; 
    571571                                model: slider 
    572572                        }) ); 
    573573 
    574                         // Add the Meta view 
    575                         this.views.add( new revisions.view.Meta({ 
     574                        // Add the Metabox view 
     575                        this.views.add( new revisions.view.Metabox({ 
    576576                                model: this.model 
    577577                        }) ); 
    578578                }, 
    window.wp = window.wp || {}; 
    659659                } 
    660660        }); 
    661661 
    662         // The meta view 
    663         revisions.view.Meta = wp.Backbone.View.extend({ 
     662        // The metabox view 
     663        revisions.view.Metabox = wp.Backbone.View.extend({ 
    664664                className: 'revisions-meta', 
     665 
     666                initialize: function() { 
     667                        // Add the 'from' view 
     668                        this.views.add( new revisions.view.MetaFrom({ 
     669                                model: this.model, 
     670                                className: 'diff-meta diff-meta-from' 
     671                        }) ); 
     672 
     673                        // Add the 'to' view 
     674                        this.views.add( new revisions.view.MetaTo({ 
     675                                model: this.model 
     676                        }) ); 
     677                } 
     678        }); 
     679 
     680        // The revision meta view (to be extended) 
     681        revisions.view.Meta = wp.Backbone.View.extend({ 
    665682                template: wp.template('revisions-meta'), 
    666683 
    667684                events: { 
    window.wp = window.wp || {}; 
    673690                }, 
    674691 
    675692                prepare: function() { 
    676                         return this.model.toJSON(); 
     693                        return _.extend( this.model.toJSON()[this.type], { 
     694                                type: this.type 
     695                        }); 
    677696                }, 
    678697 
    679698                restoreRevision: function() { 
    window.wp = window.wp || {}; 
    681700                } 
    682701        }); 
    683702 
     703        // The revision meta 'from' view 
     704        revisions.view.MetaFrom = revisions.view.Meta.extend({ 
     705                className: 'diff-meta diff-meta-from', 
     706                type: 'from' 
     707        }); 
     708 
     709        // The revision meta 'to' view 
     710        revisions.view.MetaTo = revisions.view.Meta.extend({ 
     711                className: 'diff-meta diff-meta-to', 
     712                type: 'to' 
     713        }); 
     714 
    684715        // The checkbox view. 
    685716        revisions.view.Checkbox = wp.Backbone.View.extend({ 
    686717                className: 'revisions-checkbox', 
    window.wp = window.wp || {}; 
    714745        // Encapsulates the tooltip. 
    715746        revisions.view.Tooltip = wp.Backbone.View.extend({ 
    716747                className: 'revisions-tooltip', 
    717                 template: wp.template('revisions-tooltip'), 
     748                template: wp.template('revisions-meta'), 
    718749 
    719750                initialize: function( options ) { 
    720751                        this.listenTo( this.model, 'change:offset', this.render ); 
    window.wp = window.wp || {}; 
    723754                }, 
    724755 
    725756                prepare: function() { 
    726                         return this.model.get('revision').toJSON(); 
     757                        return _.extend( { type: 'tooltip' }, { 
     758                                attributes: this.model.get('revision').toJSON() 
     759                        }); 
    727760                }, 
    728761 
    729762                render: function() { 
  • wp-admin/revision.php

    require_once( './admin-header.php' ); 
    130130        </div> 
    131131</script> 
    132132 
    133 <script id="tmpl-revisions-tooltip" type="text/html"> 
    134         <div class="author-card"> 
    135         <# if ( 'undefined' !== typeof data && 'undefined' !== typeof data.author ) { #> 
    136                         <div class="author-card<# if ( data.autosave ) { #> autosave<# } #>"> 
    137                                 {{{ data.author.avatar }}} 
    138                                 <div class="author-info"> 
    139                                 <# if ( data.autosave ) { #> 
    140                                         <span class="byline"><?php printf( __( 'Autosave by %s' ), 
    141                                                 '<span class="author-name">{{ data.author.name }}</span>' ); ?></span> 
    142                                 <# } else if ( data.current ) { #> 
    143                                         <span class="byline"><?php printf( __( 'Current Revision by %s' ), 
    144                                                 '<span class="author-name">{{ data.author.name }}</span>' ); ?></span> 
    145                                 <# } else { #> 
    146                                         <span class="byline"><?php printf( __( 'Revision by %s' ), 
    147                                                 '<span class="author-name">{{ data.author.name }}</span>' ); ?></span> 
    148                                 <# } #> 
    149                                         <span class="time-ago">{{ data.timeAgo }}</span> 
    150                                         <span class="date">({{ data.dateShort }})</span> 
    151                                 </div> 
    152                         </div> 
    153         <# } #> 
    154         </div> 
    155         <div class="revisions-tooltip-arrow"><span></span></div> 
    156 </script> 
    157  
    158133<script id="tmpl-revisions-checkbox" type="text/html"> 
    159134        <div class="revision-toggle-compare-mode"> 
    160135                <label> 
    require_once( './admin-header.php' ); 
    171146</script> 
    172147 
    173148<script id="tmpl-revisions-meta" type="text/html"> 
    174         <div class="diff-meta diff-meta-from"> 
    175                 <div class="diff-title"> 
     149        <div class="diff-title"> 
     150                <# if ( 'from' === data.type ) { #> 
    176151                        <strong><?php _ex( 'From:', 'Followed by post revision info' ); ?></strong> 
    177                 <# if ( 'undefined' !== typeof data.from ) { #> 
    178                         <div class="author-card<# if ( data.from.attributes.autosave ) { #> autosave<# } #>"> 
    179                                 {{{ data.from.attributes.author.avatar }}} 
    180                                 <div class="author-info"> 
    181                                 <# if ( data.from.attributes.autosave ) { #> 
    182                                         <span class="byline"><?php printf( __( 'Autosave by %s' ), 
    183                                                 '<span class="author-name">{{ data.from.attributes.author.name }}</span>' ); ?></span> 
    184                                 <# } else if ( data.from.attributes.current ) { #> 
    185                                         <span class="byline"><?php printf( __( 'Current Revision by %s' ), 
    186                                                 '<span class="author-name">{{ data.from.attributes.author.name }}</span>' ); ?></span> 
    187                                 <# } else { #> 
    188                                         <span class="byline"><?php printf( __( 'Revision by %s' ), 
    189                                                 '<span class="author-name">{{ data.from.attributes.author.name }}</span>' ); ?></span> 
    190                                 <# } #> 
    191                                         <span class="time-ago">{{ data.from.attributes.timeAgo }}</span> 
    192                                         <span class="date">({{ data.from.attributes.dateShort }})</span> 
    193                                 </div> 
    194                         </div> 
    195                 <# } #> 
    196                 </div> 
    197         </div> 
    198  
    199         <div class="diff-meta diff-meta-to"> 
    200                 <div class="diff-title"> 
     152                <# } else if ( 'to' === data.type ) { #> 
    201153                        <strong><?php _ex( 'To:', 'Followed by post revision info' ); ?></strong> 
    202                 <# if ( 'undefined' !== typeof data.to ) { #> 
    203                         <div class="author-card<# if ( data.to.attributes.autosave ) { #> autosave<# } #>"> 
    204                                 {{{ data.to.attributes.author.avatar }}} 
    205                                 <div class="author-info"> 
    206                                 <# if ( data.to.attributes.autosave ) { #> 
    207                                         <span class="byline"><?php printf( __( 'Autosave by %s' ), 
    208                                                 '<span class="author-name">{{ data.to.attributes.author.name }}</span>' ); ?></span> 
    209                                 <# } else if ( data.to.attributes.current ) { #> 
    210                                         <span class="byline"><?php printf( __( 'Current Revision by %s' ), 
    211                                                 '<span class="author-name">{{ data.to.attributes.author.name }}</span>' ); ?></span> 
    212                                 <# } else { #> 
    213                                         <span class="byline"><?php printf( __( 'Revision by %s' ), 
    214                                                 '<span class="author-name">{{ data.to.attributes.author.name }}</span>' ); ?></span> 
    215                                 <# } #> 
    216                                         <span class="time-ago">{{ data.to.attributes.timeAgo }}</span> 
    217                                         <span class="date">({{ data.to.attributes.dateShort }})</span> 
    218                                 </div> 
    219154                <# } #> 
    220                 <# if ( data.to.attributes.restoreUrl ) { #> 
     155                <div class="author-card<# if ( data.attributes.autosave ) { #> autosave<# } #>"> 
     156                        {{{ data.attributes.author.avatar }}} 
     157                        <div class="author-info"> 
     158                        <# if ( data.attributes.autosave ) { #> 
     159                                <span class="byline"><?php printf( __( 'Autosave by %s' ), 
     160                                        '<span class="author-name">{{ data.attributes.author.name }}</span>' ); ?></span> 
     161                        <# } else if ( data.attributes.current ) { #> 
     162                                <span class="byline"><?php printf( __( 'Current Revision by %s' ), 
     163                                        '<span class="author-name">{{ data.attributes.author.name }}</span>' ); ?></span> 
     164                        <# } else { #> 
     165                                <span class="byline"><?php printf( __( 'Revision by %s' ), 
     166                                        '<span class="author-name">{{ data.attributes.author.name }}</span>' ); ?></span> 
     167                        <# } #> 
     168                                <span class="time-ago">{{ data.attributes.timeAgo }}</span> 
     169                                <span class="date">({{ data.attributes.dateShort }})</span> 
     170                        </div> 
     171                <# if ( 'to' === data.type && data.attributes.restoreUrl ) { #> 
    221172                        <input  
    222                         <# if ( data.to.attributes.current ) { #> 
     173                        <# if ( data.attributes.current ) { #> 
    223174                                disabled="disabled" 
    224175                        <# } #> 
    225                         <# if ( data.to.attributes.autosave ) { #> 
     176                        <# if ( data.attributes.autosave ) { #> 
    226177                                type="button" class="restore-revision button button-primary" value="<?php esc_attr_e( 'Restore This Autosave' ); ?>" /> 
    227178                        <# } else { #> 
    228179                                type="button" class="restore-revision button button-primary" value="<?php esc_attr_e( 'Restore This Revision' ); ?>" /> 
    229180                        <# } #> 
    230181                <# } #> 
    231                 </div> 
    232182        </div> 
     183<# if ( 'tooltip' === data.type ) { #> 
     184        <div class="revisions-tooltip-arrow"><span></span></div> 
     185<# } #> 
    233186</script> 
    234187 
    235188<script id="tmpl-revisions-diff" type="text/html">