Make sure the first revision is seen as coming from emptiness, so it can be restored.

props adamsilverstein. fixes #23898.

git-svn-id: https://develop.svn.wordpress.org/trunk@23872 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Mark Jaquith 2013-03-29 20:50:09 +00:00
parent c51895c997
commit f18cddb1e1
3 changed files with 15 additions and 7 deletions

View File

@ -2130,6 +2130,9 @@ function wp_ajax_revisions_data() {
if ( 0 != $single_revision_id ) {
$right_revision = get_post( $single_revision_id );
if ( 0 == $compare_to )
$left_revision = get_post( $post_id );
// make sure the right revision is the most recent
if ( $compare_two_mode && $right_revision->ID < $left_revision->ID ) {
$temp = $left_revision;
@ -2155,7 +2158,8 @@ function wp_ajax_revisions_data() {
if ( ! empty( $show_split_view ) )
$args = array( 'show_split_view' => true );
$diff = wp_text_diff_with_count( $left_content, $right_content, $args );
// compare_to == 0 means first revision, so compare to a blank field to show whats changed
$diff = wp_text_diff_with_count( ( 0 == $compare_to) ? '' : $left_content, $right_content, $args );
if ( isset( $diff[ 'html' ] ) )
$content .= $diff[ 'html' ];
@ -2185,6 +2189,7 @@ function wp_ajax_revisions_data() {
$revisions = array_reverse( $revisions );
$previous_revision_id = 0;
foreach ( $revisions as $revision ) :
//error_log( ( $show_autosaves ));
if ( empty( $show_autosaves ) && wp_is_post_autosave( $revision ) )
@ -2269,7 +2274,7 @@ function wp_ajax_revisions_data() {
$revision_from_date_author = $revision_date_author;
$revision_date_author = $tmp;
}
if ( ( $compare_two_mode || 0 !== $previous_revision_id ) ) {
if ( ( $compare_two_mode || -1 !== $previous_revision_id ) ) {
$alltherevisions[] = array (
'ID' => $revision->ID,
'revision_date_author' => $revision_date_author,

View File

@ -424,19 +424,22 @@ window.wp = window.wp || {};
// render the revisions
render: function() {
var addHtml = '';
var thediff;
// compare two revisions mode?
if ( 2 === REVAPP._compareOneOrTwo ) {
this.comparetwochecked = 'checked';
if ( this.draggingLeft ) {
if ( this.model.at( REVAPP._leftDiff ) ) {
thediff = REVAPP._leftDiff -1;
if ( this.model.at( thediff ) ) {
addHtml = this.template( _.extend(
this.model.at( REVAPP._leftDiff ).toJSON(),
this.model.at( thediff ).toJSON(),
{ comparetwochecked: this.comparetwochecked } // keep the checkmark checked
) );
}
} else { // dragging right handle
var thediff = REVAPP._rightDiff;
thediff = REVAPP._rightDiff -1;
if ( this.model.at( thediff ) ) {
addHtml = this.template( _.extend(
this.model.at( thediff ).toJSON(),

View File

@ -1426,7 +1426,7 @@ function wp_list_post_revisions( $post_id = 0, $args = null ) {
// The following removes that revision when $parent == false
$parent_included = _wp_last_revision_matches_current_post( $post_id );
if ( $parent_included && ! $parent )
array_pop( $revisions );
array_shift( $revisions );
elseif ( ! $parent_included && $parent )
array_unshift( $revisions, $post );
@ -1436,7 +1436,7 @@ function wp_list_post_revisions( $post_id = 0, $args = null ) {
foreach ( $revisions as $revision ) {
if ( !current_user_can( 'read_post', $revision->ID ) )
continue;
$is_autosave = wp_is_post_autosave( $revision );
if ( ( 'revision' === $type && $is_autosave ) || ( 'autosave' === $type && ! $is_autosave ) )
continue;