From 7c99f40451d35a26121f03dc045d86037252de4e Mon Sep 17 00:00:00 2001 From: Mark Jaquith Date: Mon, 29 Jul 2013 17:26:03 +0000 Subject: [PATCH] Revisions: Fix PHP loading of comparison to first revision, and premature rendering of tooltip. Props aaroncampbell, markjaquith. Fixes #24873 for trunk. git-svn-id: https://develop.svn.wordpress.org/trunk@24864 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/includes/revision.php | 7 +++++-- wp-admin/js/revisions.js | 11 ++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/wp-admin/includes/revision.php b/wp-admin/includes/revision.php index 0090ab5fc5..89af3c74f9 100644 --- a/wp-admin/includes/revision.php +++ b/wp-admin/includes/revision.php @@ -179,8 +179,11 @@ function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null // Now, grab the initial diff $compare_two_mode = is_numeric( $from ); if ( ! $compare_two_mode ) { - $from = array_keys( array_slice( $revisions, array_search( $selected_revision_id, array_keys( $revisions ) ) - 1, 1, true ) ); - $from = $from[0]; + $found = array_search( $selected_revision_id, array_keys( $revisions ) ); + if ( $found ) + $from = array_shift( array_keys( array_slice( $revisions, $found - 1, 1, true ) ) ); + else + $from = 0; } $from = absint( $from ); diff --git a/wp-admin/js/revisions.js b/wp-admin/js/revisions.js index 03dd441e58..6a8499f88e 100644 --- a/wp-admin/js/revisions.js +++ b/wp-admin/js/revisions.js @@ -155,8 +155,6 @@ window.wp = window.wp || {}; this.listenTo( this.slider, 'hovered:revision', this.updateRevision ); this.listenTo( this.slider, 'change:hovering', this.setHovering ); this.listenTo( this.slider, 'change:scrubbing', this.setScrubbing ); - - this.set({ revision: this.revisions.get( this.frame.get('to') ) }); }, @@ -754,9 +752,12 @@ window.wp = window.wp || {}; }, prepare: function() { - return _.extend( { type: 'tooltip' }, { - attributes: this.model.get('revision').toJSON() - }); + if ( _.isNull( this.model.get('revision') ) ) + return; + else + return _.extend( { type: 'tooltip' }, { + attributes: this.model.get('revision').toJSON() + }); }, render: function() {