diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php
index fdb584dcea..d8fa2f6813 100644
--- a/wp-admin/admin-ajax.php
+++ b/wp-admin/admin-ajax.php
@@ -524,6 +524,11 @@ case 'closed-postboxes' :
$current_user = wp_get_current_user();
update_usermeta($current_user->ID, 'closedpostboxes_'.$page, $closed);
break;
+case 'get-permalink':
+ check_ajax_referer( 'getpermalink', 'getpermalinknonce' );
+ $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
+ die(get_permalink($post_id));
+break;
case 'sample-permalink':
check_ajax_referer( 'samplepermalink', 'samplepermalinknonce' );
$post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
diff --git a/wp-admin/edit-form-advanced.php b/wp-admin/edit-form-advanced.php
index b46fd0050d..011016665c 100644
--- a/wp-admin/edit-form-advanced.php
+++ b/wp-admin/edit-form-advanced.php
@@ -92,6 +92,7 @@ addLoadEvent(focusit);
+
diff --git a/wp-admin/edit-page-form.php b/wp-admin/edit-page-form.php
index 49a39646e2..f5748aeaa7 100644
--- a/wp-admin/edit-page-form.php
+++ b/wp-admin/edit-page-form.php
@@ -59,6 +59,7 @@ addLoadEvent(focusit);
post_content); ?>
+
diff --git a/wp-includes/js/autosave.js b/wp-includes/js/autosave.js
index b45e9dae4a..07903cbe6d 100644
--- a/wp-includes/js/autosave.js
+++ b/wp-includes/js/autosave.js
@@ -46,9 +46,26 @@ function autosave_update_post_ID(response) {
message = autosaveL10n.failText;
}
jQuery('#autosave').html(message);
+ autosave_update_preview_link(res);
autosave_enable_buttons();
}
+function autosave_update_preview_link(post_id) {
+ // Add preview button if not already there
+ if ( ! jQuery('#previewview > *').get()[0] ) {
+ var post_type = jQuery('#post_type').val();
+ var previewText = 'page' == post_type ? autosaveL10n.previewPageText : autosaveL10n.previewPostText;
+ jQuery.post(autosaveL10n.requestFile, {
+ action: "get-permalink",
+ post_id: post_id,
+ getpermalinknonce: jQuery('#getpermalinknonce').val()
+ }, function(permalink) {
+ jQuery('#previewview').html('
'+previewText+'');
+ });
+
+ }
+}
+
function autosave_loading() {
jQuery('#autosave').html(autosaveL10n.savingText);
}
@@ -63,6 +80,7 @@ function autosave_saved(response) {
message = autosaveL10n.saveText.replace(/%time%/g, autosave_cur_time());
}
jQuery('#autosave').html(message);
+ autosave_update_preview_link(res);
autosave_enable_buttons();
}
diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php
index e02576a3ca..c9bc5575ce 100644
--- a/wp-includes/script-loader.php
+++ b/wp-includes/script-loader.php
@@ -42,11 +42,13 @@ class WP_Scripts {
$this->add( 'prototype', '/wp-includes/js/prototype.js', false, '1.6');
- $this->add( 'autosave', '/wp-includes/js/autosave.js', array('jquery', 'schedule'), '20080206');
+ $this->add( 'autosave', '/wp-includes/js/autosave.js', array('jquery', 'schedule'), '20080220');
$this->localize( 'autosave', 'autosaveL10n', array(
'autosaveInterval' => apply_filters('autosave_interval', '120'),
'errorText' => __('Error: %response%'),
'failText' => __('Error: Autosave Failed.'),
+ 'previewPageText' => __('Preview this Page'),
+ 'previewPostText' => __('Preview this Post'),
'saveText' => __('Saved at %time%.'),
'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php',
'savingText' => __('Saving Draft...')
@@ -484,4 +486,4 @@ function wp_prototype_before_jquery( $js_array ) {
add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' );
-?>
\ No newline at end of file
+?>