Make WordPress Core


Ignore:
Timestamp:
06/26/2013 09:06:50 PM (12 years ago)
Author:
markjaquith
Message:

Cleanup of the revisions screen, both on the PHP API side, and the JS.

  • Much simpler PHP API
  • Cleaner and more Backbone-y JS API
  • Consequently, does batch queries; this now scales up to hundreds of revisions

Currently missing, but much easier considering the cleaned up base:

  • Compare two mode
  • RTL

props koopersmith, nacin, adamsilverstein, ocean90. see #24425

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/revision.php

    r24425 r24520  
    99/** WordPress Administration Bootstrap */
    1010require_once('./admin.php');
     11
     12require ABSPATH . 'wp-admin/includes/revision.php';
     13
     14// wp_get_revision_ui_diff( $post, $compare_from, $compare_to )
     15// wp_prepare_revisions_for_js( $post )
     16
    1117wp_reset_vars( array( 'revision', 'action' ) );
    1218
     
    2127    if ( ! current_user_can( 'edit_post', $revision->post_parent ) )
    2228        break;
    23 
    2429
    2530    if ( ! $post = get_post( $revision->post_parent ) )
     
    7883
    7984wp_enqueue_script( 'revisions' );
    80 
    81 
    82 $settings = array(
    83     'post_id'     => $post->ID,
    84     'nonce'       => wp_create_nonce( 'revisions-ajax-nonce' ),
    85     'revision_id' => $revision_id
    86 );
    87 
    88 wp_localize_script( 'revisions', 'wpRevisionsSettings', $settings );
     85wp_localize_script( 'revisions', '_wpRevisionsSettings', wp_prepare_revisions_for_js( $post, $revision_id ) );
    8986
    9087/* Revisions Help Tab */
     
    115112<div class="wrap">
    116113    <?php screen_icon(); ?>
    117     <div id="revision-diff-container" class="current-version right-model-loading">
    118         <h2 class="long-header"><?php echo $h2; ?></h2>
    119 
    120         <div id="loading-status" class="updated message">
    121             <p><span class="spinner" ></span></p>
    122         </div>
    123 
    124         <div class="diff-slider-ticks-wrapper">
    125             <div id="diff-slider-ticks"></div>
    126         </div>
    127 
    128         <div id="revision-interact"></div>
    129 
    130         <div id="revisions-diff"></div>
    131     </div>
     114    <h2 class="long-header"><?php echo $h2; ?></h2>
    132115</div>
    133116
     117<script id="tmpl-revisions-frame" type="text/html">
     118    <span class="spinner"></span>
     119    <div class="revisions-control-frame"></div>
     120    <div class="revisions-diff-frame"></div>
     121</script>
     122
     123<script id="tmpl-revisions-controls" type="text/html">
     124
     125    <div class="revision-toggle-compare-mode">
     126        <label>
     127            <input type="checkbox" class="compare-two-revisions" />
     128            <?php esc_attr_e( 'Compare two revisions' ); ?>
     129        </label>
     130    </div>
     131
     132    <div class="revisions-previous">
     133        <input class="button" type="button" id="previous" value="<?php echo esc_attr_x( 'Previous', 'Button label for a previous revision' ); ?>" />
     134    </div>
     135
     136    <div class="revisions-next">
     137        <input class="button" type="button" id="next" value="<?php echo esc_attr_x( 'Next', 'Button label for a next revision' ); ?>" />
     138    </div>
     139</script>
     140
     141
     142<script id="tmpl-revisions-meta" type="text/html">
     143    <div id="diff-header">
     144        <div id="diff-header-from" class="diff-header">
     145            <div id="diff-title-from" class="diff-title">
     146                <strong>
     147                <?php _ex( 'From:', 'Followed by post revision info' ); ?></strong>
     148                    <# if ( 'undefined' !== typeof data.from ) { #>
     149                        {{{ data.from.attributes.author.avatar }}} {{{ data.from.attributes.author.name }}},
     150                        {{{ data.from.attributes.timeAgo }}} <?php _e( 'ago' ); ?>
     151                        ({{{ data.from.attributes.dateShort }}})
     152                    <# } #>
     153
     154            </div>
     155            <div class="clear"></div>
     156        </div>
     157
     158        <div id="diff-header-to" class="diff-header">
     159            <div id="diff-title-to" class="diff-title">
     160                <strong><?php _ex( 'To:', 'Followed by post revision info' ); ?></strong>
     161                    <# if ( 'undefined' !== typeof data.to ) { #>
     162                        {{{ data.to.attributes.author.avatar }}} {{{ data.to.attributes.author.name }}},
     163                        {{{ data.to.attributes.timeAgo }}} <?php _e( 'ago' ); ?>
     164                        ({{{ data.to.attributes.dateShort }}})
     165                    <# } #>
     166        </div>
     167
     168            <input type="button" id="restore-revision" class="button button-primary" data-restore-link="{{{ data.restoreLink }}}" value="<?php esc_attr_e( 'Restore This Revision' )?>" />
     169        </div>
     170    </div>
     171</script>
     172
    134173<script id="tmpl-revisions-diff" type="text/html">
     174    <# _.each( data.fields, function( field ) { #>
     175        <h3>{{{ field.name }}}</h3>
     176        {{{ field.diff }}}
     177    <# }); #>
     178</script>
     179
     180<script id="tmpl-revisions-diff-old" type="text/html">
    135181    <div id="toggle-revision-compare-mode">
    136182        <label>
     
    158204    </div>
    159205
    160     </div>
    161 
    162206    <div id="diff-table">{{{ data.diff }}}</div>
    163207</script>
    164208
    165 <script id="tmpl-revision-interact" type="text/html">
     209<script id="tmpl-revision-interact-old" type="text/html">
    166210    <div id="diff-previous-revision">
    167211        <input class="button" type="button" id="previous" value="<?php echo esc_attr_x( 'Previous', 'Button label for a previous revision' ); ?>" />
     
    172216    </div>
    173217
    174     <div id="diff-slider" class="wp-slider"></div>
    175218</script>
    176219
Note: See TracChangeset for help on using the changeset viewer.