Changeset 6761

Show
Ignore:
Timestamp:
02/08/08 19:57:50 (8 months ago)
Author:
ryan
Message:

Postbox save updates and admin js refactoring from nbachiyski. fixes #5799

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-admin/admin-ajax.php

    r6739 r6761  
    514514break; 
    515515case 'closed-postboxes' : 
    516     check_ajax_referer( $action ); 
    517     $closed = explode(',', $_POST['closed']); 
     516    check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' ); 
     517    $closed = isset( $_POST['closed'] )? $_POST['closed'] : ''; 
     518    $closed = explode( ',', $_POST['closed'] ); 
     519    $page = isset( $_POST['page'] )? $_POST['page'] : ''; 
     520    if ( !preg_match( '/^[a-z-]+$/', $page ) ) { 
     521        die(-1); 
     522    } 
    518523    if (!is_array($closed)) break; 
    519524    $current_user = wp_get_current_user(); 
    520     update_usermeta($current_user->ID, 'closedpostboxes', $closed); 
     525    update_usermeta($current_user->ID, 'closedpostboxes_'.$page, $closed); 
    521526break; 
    522527case 'sample-permalink': 
  • trunk/wp-admin/edit-form-advanced.php

    r6758 r6761  
    9090<?php the_editor($post->post_content); ?> 
    9191<?php wp_nonce_field( 'autosave', 'autosavenonce', false ); ?> 
     92<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?> 
    9293</div> 
    9394 
     
    176177?>" /></p> 
    177178 
    178 <div id="tagsdiv" class="postbox <?php echo postbox_classes('tagsdiv'); ?>"> 
     179<div id="tagsdiv" class="postbox <?php echo postbox_classes('tagsdiv', 'post'); ?>"> 
    179180<h3><?php _e('Tags'); ?></h3> 
    180181<div class="inside"> 
     
    184185</div> 
    185186 
    186 <div id="categorydiv" class="postbox <?php echo postbox_classes('categorydiv'); ?>"> 
     187<div id="categorydiv" class="postbox <?php echo postbox_classes('categorydiv', 'post'); ?>"> 
    187188<h3><?php _e('Categories') ?></h3> 
    188189<div class="inside"> 
     
    235236<h2><?php _e('Advanced Options'); ?></h2> 
    236237 
    237 <div id="postexcerpt" class="postbox <?php echo postbox_classes('postexcerpt'); ?>"> 
     238<div id="postexcerpt" class="postbox <?php echo postbox_classes('postexcerpt', 'post'); ?>"> 
    238239<h3><?php _e('Optional Excerpt') ?></h3> 
    239240<div class="inside"><textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"><?php echo $post->post_excerpt ?></textarea></div> 
    240241</div> 
    241242 
    242 <div id="trackbacksdiv" class="postbox <?php echo postbox_classes('trackbacksdiv'); ?>"> 
     243<div id="trackbacksdiv" class="postbox <?php echo postbox_classes('trackbacksdiv', 'post'); ?>"> 
    243244<h3><?php _e('Trackbacks') ?></h3> 
    244245<div class="inside"> 
     
    251252</div> 
    252253 
    253 <div id="postcustom" class="postbox <?php echo postbox_classes('postcustom'); ?>"> 
     254<div id="postcustom" class="postbox <?php echo postbox_classes('postcustom', 'post'); ?>"> 
    254255<h3><?php _e('Custom Fields') ?></h3> 
    255256<div class="inside"> 
     
    272273<?php do_action('dbx_post_advanced'); ?> 
    273274 
    274 <div id="commentstatusdiv" class="postbox <?php echo postbox_classes('commentstatusdiv'); ?>"> 
     275<div id="commentstatusdiv" class="postbox <?php echo postbox_classes('commentstatusdiv', 'post'); ?>"> 
    275276<h3><?php _e('Discussion') ?></h3> 
    276277<div class="inside"> 
     
    283284</div> 
    284285 
    285 <div id="passworddiv" class="postbox <?php echo postbox_classes('passworddiv'); ?>"> 
     286<div id="passworddiv" class="postbox <?php echo postbox_classes('passworddiv', 'post'); ?>"> 
    286287<h3><?php _e('Post Password') ?></h3> 
    287288<div class="inside"> 
     
    290291</div> 
    291292 
    292 <div id="slugdiv" class="postbox <?php echo postbox_classes('slugdiv'); ?>"> 
     293<div id="slugdiv" class="postbox <?php echo postbox_classes('slugdiv', 'post'); ?>"> 
    293294<h3><?php _e('Post Slug') ?></h3> 
    294295<div class="inside"> 
     
    298299 
    299300<?php if ( current_user_can('edit_posts') ) : ?> 
    300 <div id="posttimestampdiv" class="postbox <?php echo postbox_classes('posttimestampdiv'); ?>"> 
     301<div id="posttimestampdiv" class="postbox <?php echo postbox_classes('posttimestampdiv', 'post'); ?>"> 
    301302<h3><?php _e('Post Timestamp'); ?></h3> 
    302303<div class="inside"><?php touch_time(($action == 'edit')); ?></div> 
     
    310311if ( $authors && count( $authors ) > 1 ) : 
    311312?> 
    312 <div id="authordiv" class="postbox <?php echo postbox_classes('authordiv'); ?>"> 
     313<div id="authordiv" class="postbox <?php echo postbox_classes('authordiv', 'post'); ?>"> 
    313314<h3><?php _e('Post Author'); ?></h3> 
    314315<div class="inside"> 
  • trunk/wp-admin/edit-link-form.php

    r6713 r6761  
    3333<?php echo $form ?> 
    3434<?php wp_nonce_field($nonce_action); ?> 
     35<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?> 
    3536 
    3637<div class="wrap"> 
     
    6566</div> 
    6667 
    67 <div id="linkcategorydiv" class="postbox <?php echo postbox_classes('linkcategorydiv'); ?>"> 
     68<div id="linkcategorydiv" class="postbox <?php echo postbox_classes('linkcategorydiv', 'link'); ?>"> 
    6869<h3><?php _e('Categories') ?></h3> 
    6970<div class="inside"> 
     
    101102<h2><?php _e('Advanced Options'); ?></h2> 
    102103 
    103 <div id="linktargetdiv" class="postbox <?php echo postbox_classes('linktargetdiv'); ?>"> 
     104<div id="linktargetdiv" class="postbox <?php echo postbox_classes('linktargetdiv', 'link'); ?>"> 
    104105<h3><?php _e('Target') ?></h3> 
    105106<div class="inside"> 
     
    116117</div> 
    117118 
    118 <div id="linkvisiblediv" class="postbox <?php echo postbox_classes('linkvisiblediv'); ?>"> 
     119<div id="linkvisiblediv" class="postbox <?php echo postbox_classes('linkvisiblediv', 'link'); ?>"> 
    119120<h3><?php _e('Visible') ?></h3> 
    120121<div class="inside"> 
     
    128129</div> 
    129130 
    130 <div id="linkxfndiv" class="postbox <?php echo postbox_classes('linkxfndiv'); ?>"> 
     131<div id="linkxfndiv" class="postbox <?php echo postbox_classes('linkxfndiv', 'link'); ?>"> 
    131132<h3><?php _e('Link Relationship (XFN)') ?></h3> 
    132133<div class="inside"> 
     
    241242</div> 
    242243 
    243 <div id="linkadvanceddiv" class="postbox <?php echo postbox_classes('linkadvanceddiv'); ?>"> 
     244<div id="linkadvanceddiv" class="postbox <?php echo postbox_classes('linkadvanceddiv', 'link'); ?>"> 
    244245<h3><?php _e('Advanced') ?></h3> 
    245246<div class="inside"> 
  • trunk/wp-admin/edit-page-form.php

    r6739 r6761  
    5858<?php the_editor($post->post_content); ?> 
    5959<?php wp_nonce_field( 'autosave', 'autosavenonce', false ); ?> 
     60<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?> 
    6061</div> 
    6162 
     
    137138<h2><?php _e('Advanced Options'); ?></h2> 
    138139 
    139 <div id="pagepostcustom" class="postbox <?php echo postbox_classes('pagepostcustom'); ?>"> 
     140<div id="pagepostcustom" class="postbox <?php echo postbox_classes('pagepostcustom', 'page'); ?>"> 
    140141<h3><?php _e('Custom Fields') ?></h3> 
    141142<div class="inside"> 
     
    156157</div> 
    157158 
    158 <div id="pagecommentstatusdiv" class="postbox <?php echo postbox_classes('pagecommentstatusdiv'); ?>"> 
     159<div id="pagecommentstatusdiv" class="postbox <?php echo postbox_classes('pagecommentstatusdiv', 'page'); ?>"> 
    159160<h3><?php _e('Discussion') ?></h3> 
    160161<div class="inside"> 
     
    167168</div> 
    168169 
    169 <div id="pagepassworddiv" class="postbox <?php echo postbox_classes('pagepassworddiv'); ?>"> 
     170<div id="pagepassworddiv" class="postbox <?php echo postbox_classes('pagepassworddiv', 'page'); ?>"> 
    170171<h3><?php _e('Page Password') ?></h3> 
    171172<div class="inside"> 
     
    174175</div> 
    175176 
    176 <div id="pageslugdiv" class="postbox <?php echo postbox_classes('pageslugdiv'); ?>"> 
     177<div id="pageslugdiv" class="postbox <?php echo postbox_classes('pageslugdiv', 'page'); ?>"> 
    177178<h3><?php _e('Page Slug') ?></h3> 
    178179<div class="inside"> 
     
    181182</div> 
    182183 
    183 <div id="pageparentdiv" class="postbox <?php echo postbox_classes('pageparentdiv'); ?>"> 
     184<div id="pageparentdiv" class="postbox <?php echo postbox_classes('pageparentdiv', 'page'); ?>"> 
    184185<h3><?php _e('Page Parent') ?></h3> 
    185186<div class="inside"> 
     
    192193 
    193194<?php if ( 0 != count( get_page_templates() ) ) { ?> 
    194 <div id="pagetemplatediv" class="postbox <?php echo postbox_classes('pagetemplatediv'); ?>"> 
     195<div id="pagetemplatediv" class="postbox <?php echo postbox_classes('pagetemplatediv', 'page'); ?>"> 
    195196<h3><?php _e('Page Template') ?></h3> 
    196197<div class="inside"> 
     
    203204<?php } ?> 
    204205 
    205 <div id="pageorderdiv" class="postbox <?php echo postbox_classes('pageorderdiv'); ?>"> 
     206<div id="pageorderdiv" class="postbox <?php echo postbox_classes('pageorderdiv', 'page'); ?>"> 
    206207<h3><?php _e('Page Order') ?></h3> 
    207208<div class="inside"> 
     
    216217if ( $authors && count( $authors ) > 1 ) : 
    217218?> 
    218 <div id="pageauthordiv" class="postbox <?php echo postbox_classes('pageauthordiv'); ?>"> 
     219<div id="pageauthordiv" class="postbox <?php echo postbox_classes('pageauthordiv', 'page'); ?>"> 
    219220<h3><?php _e('Post Author'); ?></h3> 
    220221<div class="inside"> 
  • trunk/wp-admin/includes/post.php

    r6733 r6761  
    518518} 
    519519 
    520 function postbox_classes( $id ) { 
     520function postbox_classes( $id, $page ) { 
    521521    $current_user = wp_get_current_user(); 
    522     if ( $closed = get_usermeta( $current_user->ID, 'closedpostboxes' ) ) { 
     522    if ( $closed = get_usermeta( $current_user->ID, 'closedpostboxes_'.$page ) ) { 
    523523        if ( !is_array( $closed ) ) return ''; 
    524524        return in_array( $id, $closed )? 'closed' : ''; 
  • trunk/wp-admin/js/link.js

    r6713 r6761  
    11addLoadEvent( function() { 
    22    // postboxes 
    3     add_postbox_toggles(); 
     3    add_postbox_toggles('link'); 
    44 
    55    // category tabs 
  • trunk/wp-admin/js/post.js

    r6694 r6761  
    5353} 
    5454 
    55 function edit_permalink(post_id) { 
    56     var i, c = 0; 
    57     var e = jQuery('#editable-post-name'); 
    58     var revert_e = e.html();     
    59     var real_slug = jQuery('#post_name'); 
    60     var b = jQuery('#edit-slug-buttons'); 
    61     var revert_b = b.html(); 
    62     var old_slug = e.children('span').html(); 
    63  
    64     b.html('<a href="" class="save">'+postL10n.save+'</a> <a class="cancel" href="">'+postL10n.cancel+'</a>'); 
    65     b.children('.save').click(function() { 
    66         var new_slug = e.children('input').attr('value'); 
    67         jQuery.post(postL10n.requestFile, { 
    68             action: 'sample-permalink', 
    69             post_id: post_id, 
    70             new_slug: new_slug, 
    71             cookie: document.cookie}, function(data) { 
    72                 jQuery('#sample-permalink').html(data); 
    73                 b.html(revert_b); 
    74                 real_slug.attr('value', new_slug);   
    75                 make_slugedit_clickable(); 
    76             }); 
    77         return false; 
    78     }); 
    79     jQuery('#edit-slug-buttons .cancel').click(function() { 
    80         e.html(revert_e); 
    81         b.html(revert_b); 
    82         real_slug.attr('value', revert_e); 
    83         return false; 
    84     }); 
    85     for(i=0; i < revert_e.length; ++i) { 
    86         if ('%' == revert_e.charAt(i)) c++; 
    87     } 
    88     slug_value = (c > revert_e.length/4)? '' : revert_e; 
    89     e.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children('input').keypress(function(e){ 
    90         var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0; 
    91         // on enter, just save the new slug, don't save the post 
    92         if (13 == key) {b.children('.save').click();return false;} 
    93         if (27 == key) {b.children('.cancel').click();return false;} 
    94         real_slug.attr('value', this.value)}).focus(); 
    95 } 
    96  
    97 function make_slugedit_clickable() { 
    98     jQuery('#editable-post-name').click(function() {jQuery('#edit-slug-buttons').children('.edit-slug').click()}); 
    99 } 
    100  
    10155addLoadEvent( function() { 
    10256    // postboxes 
    103     add_postbox_toggles(); 
     57    add_postbox_toggles('post'); 
    10458 
    10559    // If no tags on the page, skip the tag and category stuff. 
  • trunk/wp-admin/js/postbox.js

    r6713 r6761  
    1 function add_postbox_toggles() { 
     1function add_postbox_toggles(page) { 
    22    jQuery('.postbox h3').prepend('<a class="togbox">+</a> '); 
    3     jQuery('.togbox').click( function() { jQuery(jQuery(this).parent().parent().get(0)).toggleClass('closed'); save_postboxes_state(); } ); 
     3    jQuery('.togbox').click( function() { jQuery(jQuery(this).parent().parent().get(0)).toggleClass('closed'); save_postboxes_state(page); } ); 
    44} 
    55 
    6 function save_postboxes_state() { 
     6function save_postboxes_state(page) { 
    77    var closed = jQuery('.postbox').filter('.closed').map(function() { return this.id; }).get().join(','); 
    88    jQuery.post(postboxL10n.requestFile, { 
    99        action: 'closed-postboxes', 
    1010        closed: closed, 
    11         cookie: document.cookie}); 
     11        closedpostboxesnonce: jQuery('#closedpostboxesnonce').val(), 
     12        page: page 
     13    }); 
    1214} 
  • trunk/wp-admin/page-new.php

    r6712 r6761  
    55$editing = true; 
    66wp_enqueue_script('autosave'); 
    7 wp_enqueue_script('post'); 
     7wp_enqueue_script('page'); 
    88wp_enqueue_script('thickbox'); 
    99wp_enqueue_script('media-upload'); 
  • trunk/wp-admin/page.php

    r6665 r6761  
    5353    } 
    5454 
    55     wp_enqueue_script('post'); 
     55    wp_enqueue_script('page'); 
    5656    wp_enqueue_script('thickbox'); 
    5757    wp_enqueue_script('media-upload'); 
  • trunk/wp-includes/script-loader.php

    r6757 r6761  
    136136                'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php', 
    137137            ) ); 
    138             $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox'), '20080128' ); 
     138            $this->add( 'slug', '/wp-admin/js/slug.js', array('jquery'), '20080208' ); 
     139            $this->localize( 'slug', 'slugL10n', array( 
     140                'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php', 
     141                'save' => __('Save'), 
     142                'cancel' => __('Cancel'), 
     143            ) ); 
     144            $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080128' ); 
    139145            $this->localize( 'post', 'postL10n', array( 
    140146                'tagsUsed' =>  __('Tags used on this post:'), 
     
    142148                'addTag' => attribute_escape(__('Add new tag')), 
    143149                'separate' => __('Separate tags with commas'), 
    144                 'save' => __('Save'), 
    145                 'cancel' => __('Cancel'), 
    146                 'requestFile' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php', 
    147             ) ); 
     150            ) ); 
     151            $this->add( 'page', '/wp-admin/js/page.js', array('jquery', 'slug', 'postbox'), '20080208' ); 
    148152            $this->add( 'link', '/wp-admin/js/link.js', array('jquery-ui-tabs', 'wp-lists', 'postbox'), '20080131' ); 
    149153            $this->add( 'media-upload', '/wp-admin/js/media-upload.js', false, '20080109' );