mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-08-11 20:30:23 +00:00
Revisions: Updates to the new Revisions UI.
Various Updates including: * i18n fixes * Added tracking of what revision ID was restored * async fetching of diffs so that slider works sooner even with many revisions See #23497 props adamsilverstein, ethitter git-svn-id: https://develop.svn.wordpress.org/trunk@23639 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
+27
-22
@@ -10,37 +10,45 @@
|
||||
require_once('./admin.php');
|
||||
wp_reset_vars( array( 'revision', 'action' ) );
|
||||
|
||||
$revision_id = absint($revision);
|
||||
$revision_id = absint( $revision );
|
||||
$redirect = 'edit.php';
|
||||
|
||||
switch ( $action ) :
|
||||
case 'restore' :
|
||||
if ( !$revision = wp_get_post_revision( $revision_id ) )
|
||||
if ( ! $revision = wp_get_post_revision( $revision_id ) )
|
||||
break;
|
||||
if ( !current_user_can( 'edit_post', $revision->post_parent ) )
|
||||
if ( ! current_user_can( 'edit_post', $revision->post_parent ) )
|
||||
break;
|
||||
if ( !$post = get_post( $revision->post_parent ) )
|
||||
if ( ! $post = get_post( $revision->post_parent ) )
|
||||
break;
|
||||
|
||||
// Revisions disabled and we're not looking at an autosave
|
||||
if ( ( ! WP_POST_REVISIONS || !post_type_supports($post->post_type, 'revisions') ) && !wp_is_post_autosave( $revision ) ) {
|
||||
if ( ( ! WP_POST_REVISIONS || ! post_type_supports( $post->post_type, 'revisions' ) ) && ! wp_is_post_autosave( $revision ) ) {
|
||||
$redirect = 'edit.php?post_type=' . $post->post_type;
|
||||
break;
|
||||
}
|
||||
check_admin_referer( "restore-post_{$post->ID}|{$revision->ID}" );
|
||||
|
||||
//store revision event in post meta
|
||||
$restore_details = array(
|
||||
'restored_revision_id' => $revision->ID,
|
||||
'restored_by_user' => get_current_user_id(),
|
||||
'restored_time' => time()
|
||||
);
|
||||
update_post_meta( $post->ID, '_post_restored_from', $restore_details );
|
||||
|
||||
wp_restore_post_revision( $revision->ID );
|
||||
$redirect = add_query_arg( array( 'message' => 5, 'revision' => $revision->ID ), get_edit_post_link( $post->ID, 'url' ) );
|
||||
break;
|
||||
case 'view' :
|
||||
case 'edit' :
|
||||
default :
|
||||
if ( !$revision = wp_get_post_revision( $revision_id ) )
|
||||
if ( ! $revision = wp_get_post_revision( $revision_id ) )
|
||||
break;
|
||||
if ( !$post = get_post( $revision->post_parent ) )
|
||||
if ( ! $post = get_post( $revision->post_parent ) )
|
||||
break;
|
||||
|
||||
if ( !current_user_can( 'read_post', $revision->ID ) || !current_user_can( 'read_post', $post->ID ) )
|
||||
if ( ! current_user_can( 'read_post', $revision->ID ) || ! current_user_can( 'read_post', $post->ID ) )
|
||||
break;
|
||||
|
||||
// Revisions disabled and we're not looking at an autosave
|
||||
@@ -59,16 +67,16 @@ default :
|
||||
endswitch;
|
||||
|
||||
// Empty post_type means either malformed object found, or no valid parent was found.
|
||||
if ( !$redirect && empty($post->post_type) )
|
||||
if ( ! $redirect && empty( $post->post_type ) )
|
||||
$redirect = 'edit.php';
|
||||
|
||||
if ( !empty($redirect) ) {
|
||||
if ( ! empty( $redirect ) ) {
|
||||
wp_redirect( $redirect );
|
||||
exit;
|
||||
}
|
||||
|
||||
// This is so that the correct "Edit" menu item is selected.
|
||||
if ( !empty($post->post_type) && 'post' != $post->post_type )
|
||||
if ( ! empty( $post->post_type ) && 'post' != $post->post_type )
|
||||
$parent_file = $submenu_file = 'edit.php?post_type=' . $post->post_type;
|
||||
else
|
||||
$parent_file = $submenu_file = 'edit.php';
|
||||
@@ -83,10 +91,11 @@ require_once( './admin-header.php' );
|
||||
<script type="text/javascript">
|
||||
var wpRevisionsSettings = <?php echo json_encode( array( 'post_id' => $post->ID, 'nonce' => wp_create_nonce( 'revisions-ajax-nonce' ) ) ); ?>;
|
||||
</script>
|
||||
<?php
|
||||
$comparetworevisionslink = get_edit_post_link( $revision->ID );
|
||||
?>
|
||||
|
||||
<div id="backbonerevisionsoptions"></div>
|
||||
|
||||
<br class="clear"/>
|
||||
<div class="wrap">
|
||||
<div class="icon32 icon32-posts-post" id="icon-edit"><br></div>
|
||||
<div class="revisiondiffcontainer diffsplit currentversion rightmodelloading">
|
||||
@@ -94,10 +103,7 @@ var wpRevisionsSettings = <?php echo json_encode( array( 'post_id' => $post->ID,
|
||||
<h2 class="long-header"><?php echo $h2; ?></h2>
|
||||
<div id="backbonerevisionsinteract"></div>
|
||||
<div id="backbonerevisionsdiff"></div>
|
||||
<hr />
|
||||
<?php
|
||||
$comparetworevisionslink = get_edit_post_link( $revision->ID );
|
||||
?>
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -107,9 +113,8 @@ var wpRevisionsSettings = <?php echo json_encode( array( 'post_id' => $post->ID,
|
||||
<div id="difftitlefrom">{{{ data.revision_from_date_author }}} <?php _e( '- compared to -' ); ?></div>
|
||||
<div id="difftitle">{{{ data.revision_date_author }}}</div>
|
||||
<div id="diffcancel"><input class="button" onClick="document.location='<?php echo get_edit_post_link( $post->ID ); ?>'" type="submit" id="cancel" value="<?php esc_attr_e( 'Cancel' )?>" /></div>
|
||||
<div id="diffrestore"><input class="button button-primary" onClick="document.location='{{{ data.restoreaction }}}'" type="submit" id="restore" value="<?php esc_attr_e( 'Restore' )?>" /></div>
|
||||
<div id="comparetworevisions"><input type="checkbox" id="comparetwo" value="comparetwo" {{{ data.comparetwochecked }}} name="comparetwo"/> <?php esc_attr_e( 'Compare two revisions' )?></div>
|
||||
</div>
|
||||
<div id="diffrestore"><input class="button button-primary" onClick="document.location='{{{ data.restoreaction }}}'" type="submit" id="restore" value="<?php esc_attr_e( 'Restore revision ID' )?>" /></div>
|
||||
<div id="comparetworevisions"><input type="checkbox" id="comparetwo" value="comparetwo" {{{ data.comparetwochecked }}} name="comparetwo"/> <label for="comparetwo"><?php esc_attr_e( 'Compare two revisions' ); ?></a></div> </div>
|
||||
<div id="removedandadded">
|
||||
<div id="removed"><?php _e( 'Removed -' ); ?></div>
|
||||
<div id="added"><?php _e( 'Added +' ); ?></div>
|
||||
@@ -119,8 +124,8 @@ var wpRevisionsSettings = <?php echo json_encode( array( 'post_id' => $post->ID,
|
||||
|
||||
<script id="tmpl-revisionvinteract" type="text/html">
|
||||
<div id="diffheader">
|
||||
<div id="diffprevious"><input class="button" type="submit" id="previous" value="Previous" /></div>
|
||||
<div id="diffnext"><input class="button" type="submit" id="next" value="Next" /></div>
|
||||
<div id="diffprevious"><input class="button" type="submit" id="previous" value="<?php esc_attr_e( 'Previous' ); ?>" /></div>
|
||||
<div id="diffnext"><input class="button" type="submit" id="next" value="<?php esc_attr_e( 'Next' ); ?>" /></div>
|
||||
<div id="diffslider">
|
||||
<div id="revisioncount">
|
||||
<?php _e( 'Comparing' ); ?>
|
||||
|
||||
Reference in New Issue
Block a user