From a738abba3d21b01809d64c9babe0bfe815cbab67 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Thu, 21 Feb 2008 06:19:46 +0000 Subject: [PATCH] Auto add preview link after autosaving a new post or page. Props filosofo. see #5847 git-svn-id: https://develop.svn.wordpress.org/trunk@6953 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/admin-ajax.php | 5 +++++ wp-admin/edit-form-advanced.php | 1 + wp-admin/edit-page-form.php | 1 + wp-includes/js/autosave.js | 18 ++++++++++++++++++ wp-includes/script-loader.php | 6 ++++-- 5 files changed, 29 insertions(+), 2 deletions(-) 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 +?>