Index: wp-includes/script-loader.php =================================================================== --- wp-includes/script-loader.php (revision 6757) +++ wp-includes/script-loader.php (working copy) @@ -135,16 +135,20 @@ $this->localize( 'postbox', 'postboxL10n', array( 'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php', ) ); - $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox'), '20080128' ); + $this->add( 'slug', '/wp-admin/js/slug.js', array('jquery'), '20080208' ); + $this->localize( 'slug', 'slugL10n', array( + 'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php', + 'save' => __('Save'), + 'cancel' => __('Cancel'), + ) ); + $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080128' ); $this->localize( 'post', 'postL10n', array( 'tagsUsed' => __('Tags used on this post:'), 'add' => attribute_escape(__('Add')), 'addTag' => attribute_escape(__('Add new tag')), 'separate' => __('Separate tags with commas'), - 'save' => __('Save'), - 'cancel' => __('Cancel'), - 'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php', ) ); + $this->add( 'page', '/wp-admin/js/page.js', array('jquery', 'slug', 'postbox'), '20080208' ); $this->add( 'link', '/wp-admin/js/link.js', array('jquery-ui-tabs', 'wp-lists', 'postbox'), '20080131' ); $this->add( 'media-upload', '/wp-admin/js/media-upload.js', false, '20080109' ); $this->localize( 'upload', 'uploadL10n', array( Index: wp-admin/admin-ajax.php =================================================================== --- wp-admin/admin-ajax.php (revision 6757) +++ wp-admin/admin-ajax.php (working copy) @@ -513,11 +513,16 @@ die('0'); break; case 'closed-postboxes' : - check_ajax_referer( $action ); - $closed = explode(',', $_POST['closed']); + check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' ); + $closed = isset( $_POST['closed'] )? $_POST['closed'] : ''; + $closed = explode( ',', $_POST['closed'] ); + $page = isset( $_POST['page'] )? $_POST['page'] : ''; + if ( !preg_match( '/^[a-z-]+$/', $page ) ) { + die(-1); + } if (!is_array($closed)) break; $current_user = wp_get_current_user(); - update_usermeta($current_user->ID, 'closedpostboxes', $closed); + update_usermeta($current_user->ID, 'closedpostboxes_'.$page, $closed); break; case 'sample-permalink': check_ajax_referer( $action ); Index: wp-admin/includes/post.php =================================================================== --- wp-admin/includes/post.php (revision 6757) +++ wp-admin/includes/post.php (working copy) @@ -517,9 +517,9 @@ return array($post_stati, $avail_post_stati); } -function postbox_classes( $id ) { +function postbox_classes( $id, $page ) { $current_user = wp_get_current_user(); - if ( $closed = get_usermeta( $current_user->ID, 'closedpostboxes' ) ) { + if ( $closed = get_usermeta( $current_user->ID, 'closedpostboxes_'.$page ) ) { if ( !is_array( $closed ) ) return ''; return in_array( $id, $closed )? 'closed' : ''; } else { Index: wp-admin/js/post.js =================================================================== --- wp-admin/js/post.js (revision 6757) +++ wp-admin/js/post.js (working copy) @@ -52,55 +52,9 @@ } } -function edit_permalink(post_id) { - var i, c = 0; - var e = jQuery('#editable-post-name'); - var revert_e = e.html(); - var real_slug = jQuery('#post_name'); - var b = jQuery('#edit-slug-buttons'); - var revert_b = b.html(); - var old_slug = e.children('span').html(); - - b.html(''+postL10n.save+' '+postL10n.cancel+''); - b.children('.save').click(function() { - var new_slug = e.children('input').attr('value'); - jQuery.post(postL10n.requestFile, { - action: 'sample-permalink', - post_id: post_id, - new_slug: new_slug, - cookie: document.cookie}, function(data) { - jQuery('#sample-permalink').html(data); - b.html(revert_b); - real_slug.attr('value', new_slug); - make_slugedit_clickable(); - }); - return false; - }); - jQuery('#edit-slug-buttons .cancel').click(function() { - e.html(revert_e); - b.html(revert_b); - real_slug.attr('value', revert_e); - return false; - }); - for(i=0; i < revert_e.length; ++i) { - if ('%' == revert_e.charAt(i)) c++; - } - slug_value = (c > revert_e.length/4)? '' : revert_e; - e.html('').children('input').keypress(function(e){ - var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0; - // on enter, just save the new slug, don't save the post - if (13 == key) {b.children('.save').click();return false;} - if (27 == key) {b.children('.cancel').click();return false;} - real_slug.attr('value', this.value)}).focus(); -} - -function make_slugedit_clickable() { - jQuery('#editable-post-name').click(function() {jQuery('#edit-slug-buttons').children('.edit-slug').click()}); -} - addLoadEvent( function() { // postboxes - add_postbox_toggles(); + add_postbox_toggles('post'); // If no tags on the page, skip the tag and category stuff. if ( !jQuery('#tags-input').size() ) { Index: wp-admin/js/link.js =================================================================== --- wp-admin/js/link.js (revision 6757) +++ wp-admin/js/link.js (working copy) @@ -1,6 +1,6 @@ addLoadEvent( function() { // postboxes - add_postbox_toggles(); + add_postbox_toggles('link'); // category tabs var categoryTabs = jQuery('#category-tabs').tabs(); @@ -43,4 +43,4 @@ return false; } ); jQuery('.categorychecklist :checkbox').change( syncChecks ).filter( ':checked' ).change(); -}); \ No newline at end of file +}); Index: wp-admin/js/postbox.js =================================================================== --- wp-admin/js/postbox.js (revision 6757) +++ wp-admin/js/postbox.js (working copy) @@ -1,12 +1,14 @@ -function add_postbox_toggles() { +function add_postbox_toggles(page) { jQuery('.postbox h3').prepend('+ '); - jQuery('.togbox').click( function() { jQuery(jQuery(this).parent().parent().get(0)).toggleClass('closed'); save_postboxes_state(); } ); + jQuery('.togbox').click( function() { jQuery(jQuery(this).parent().parent().get(0)).toggleClass('closed'); save_postboxes_state(page); } ); } -function save_postboxes_state() { +function save_postboxes_state(page) { var closed = jQuery('.postbox').filter('.closed').map(function() { return this.id; }).get().join(','); jQuery.post(postboxL10n.requestFile, { action: 'closed-postboxes', closed: closed, - cookie: document.cookie}); -} \ No newline at end of file + closedpostboxesnonce: jQuery('#closedpostboxesnonce').val(), + page: page + }); +} Index: wp-admin/edit-page-form.php =================================================================== --- wp-admin/edit-page-form.php (revision 6757) +++ wp-admin/edit-page-form.php (working copy) @@ -57,6 +57,7 @@
post_content); ?> +