WordPress.org

Make WordPress Core

Changeset 7689


Ignore:
Timestamp:
04/15/08 18:00:52 (7 years ago)
Author:
ryan
Message:

Demand load the category list. Props mdawaffe. see #6677

Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/edit-form-advanced.php

    r7669 r7689  
    220220<div id="category-adder" class="wp-hidden-children"> 
    221221    <h4><a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3"><?php _e( '+ Add New Category' ); ?></a></h4> 
    222     <p id="category-add" class="wp-hidden-child"> 
    223         <input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" tabindex="3" /> 
    224         <?php wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?> 
    225         <input type="button" id="category-add-sumbit" class="add:categorychecklist:category-add button" value="<?php _e( 'Add' ); ?>" tabindex="3" /> 
    226         <?php wp_nonce_field( 'add-category', '_ajax_nonce', false ); ?> 
    227         <span id="category-ajax-response"></span> 
    228     </p> 
     222    <p id="category-add" class="wp-hidden-child"></p> 
    229223</div> 
    230224 
    231225<ul id="category-tabs"> 
    232     <li class="ui-tabs-selected"><a href="#categories-all" tabindex="3"><?php _e( 'All Categories' ); ?></a></li> 
    233     <li class="wp-no-js-hidden"><a href="#categories-pop" tabindex="3"><?php _e( 'Most Used' ); ?></a></li> 
     226    <li class="ui-tabs-selected"><a href="#categories-pop" tabindex="3"><?php _e( 'Most Used' ); ?></a></li> 
     227    <li class="wp-no-js-hidden"><a id="category-tabs-all" href="edit-form-advanced-tabs.php?post=<?php echo $post_ID; ?>" tabindex="3"><?php _e( 'All Categories' ); ?></a></li> 
    234228</ul> 
    235229 
    236230<div id="categories-pop" class="ui-tabs-panel" style="display: none;"> 
    237231    <ul id="categorychecklist-pop" class="categorychecklist form-no-clear" > 
    238         <?php $popular_ids = wp_popular_terms_checklist('category'); ?> 
    239     </ul> 
    240 </div> 
    241  
    242 <div id="categories-all" class="ui-tabs-panel"> 
    243     <ul id="categorychecklist" class="list:category categorychecklist form-no-clear"> 
    244         <?php dropdown_categories( 0, 0, $popular_ids ); ?> 
     232        <?php $popular_ids = wp_popular_terms_checklist('category'); // If we up the # here we have to do so in edit-form-advanced-tabs.php too ?> 
    245233    </ul> 
    246234</div> 
  • trunk/wp-admin/includes/template.php

    r7669 r7689  
    195195 
    196196function wp_popular_terms_checklist( $taxonomy, $default = 0, $number = 10 ) { 
     197    global $checked_categories; 
     198    wp_set_checked_post_categories( $default ); 
    197199    $categories = get_terms( $taxonomy, array( 'orderby' => 'count', 'order' => 'DESC', 'number' => $number ) ); 
    198200 
     
    205207        <li id="<?php echo $id; ?>" class="popular-category"> 
    206208            <label class="selectit" for="in-<?php echo $id; ?>"> 
    207             <input id="in-<?php echo $id; ?>" type="checkbox" value="<?php echo (int) $category->term_id; ?>" /> 
     209            <input id="in-<?php echo $id; ?>" type="checkbox" value="<?php echo (int) $category->term_id; ?>" name="post_category[]" <?php checked( in_array( $category->term_id, $checked_categories ), true ); ?> /> 
    208210                <?php echo wp_specialchars( apply_filters( 'the_category', $category->name ) ); ?> 
    209211            </label> 
  • trunk/wp-admin/js/post.js

    r7669 r7689  
    101101 
    102102    // category tabs 
    103     var categoryTabs =jQuery('#category-tabs').tabs(); 
    104  
    105     // Ajax Cat 
    106     var newCat = jQuery('#newcat').one( 'focus', function() { jQuery(this).val( '' ).removeClass( 'form-input-tip' ) } ); 
    107     jQuery('#category-add-sumbit').click( function() { newCat.focus(); } ); 
    108     var newCatParent = false; 
    109     var newCatParentOption = false; 
    110     var noSyncChecks = false; // prophylactic. necessary? 
    111     var syncChecks = function() { 
    112         if ( noSyncChecks ) 
    113             return; 
    114         noSyncChecks = true; 
    115         var th = jQuery(this); 
    116         var c = th.is(':checked'); 
    117         var id = th.val().toString(); 
    118         jQuery('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c ); 
    119         noSyncChecks = false; 
    120     }; 
    121     var catAddBefore = function( s ) { 
    122         s.data += '&' + jQuery( '#categorychecklist :checked' ).serialize(); 
    123         return s; 
    124     }; 
    125     var catAddAfter = function( r, s ) { 
    126         if ( !newCatParent ) newCatParent = jQuery('#newcat_parent'); 
    127         if ( !newCatParentOption ) newCatParentOption = newCatParent.find( 'option[value=-1]' ); 
    128         jQuery(s.what + ' response_data', r).each( function() { 
    129             var t = jQuery(jQuery(this).text()); 
    130             t.find( 'label' ).each( function() { 
     103    var newCatFocus = false; 
     104    var categoryTabs =jQuery('#category-tabs').tabs( { 
     105        cache: true, 
     106        show: function(ui) { 
     107            if ( 'category-tabs-all' != ui.id ) { return; } // only do this for the all tab 
     108            var adder = jQuery('#category-add-hidden'); 
     109 
     110            if ( !adder.size() ) { return; } // we're already done 
     111 
     112            // Put HTML in proper place and set up the wp-lists etc 
     113            jQuery('#category-add').html( adder.remove().html() ); 
     114 
     115            // Ajax Cat 
     116            var newCat = jQuery('#newcat').one( 'focus', function() { jQuery(this).val( '' ).removeClass( 'form-input-tip' ) } ); 
     117            jQuery('#category-add-sumbit').click( function() { newCat.focus(); } ); 
     118            var newCatParent = false; 
     119            var newCatParentOption = false; 
     120            var noSyncChecks = false; // prophylactic. necessary? 
     121            var syncChecks = function() { 
     122                if ( noSyncChecks ) 
     123                    return; 
     124                noSyncChecks = true; 
    131125                var th = jQuery(this); 
    132                 var val = th.find('input').val(); 
    133                 var id = th.find('input')[0].id 
    134                 jQuery('#' + id).change( syncChecks ); 
    135                 if ( newCatParent.find( 'option[value=' + val + ']' ).size() ) 
    136                     return; 
    137                 var name = jQuery.trim( th.text() ); 
    138                 var o = jQuery( '<option value="' +  parseInt( val, 10 ) + '"></option>' ).text( name ); 
    139                 newCatParent.prepend( o ); 
     126                var c = th.is(':checked'); 
     127                var id = th.val().toString(); 
     128                jQuery('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c ); 
     129                noSyncChecks = false; 
     130            }; 
     131            var catAddBefore = function( s ) { 
     132                s.data += '&' + jQuery( '#categorychecklist :checked' ).serialize(); 
     133                return s; 
     134            }; 
     135            var catAddAfter = function( r, s ) { 
     136                if ( !newCatParent ) newCatParent = jQuery('#newcat_parent'); 
     137                if ( !newCatParentOption ) newCatParentOption = newCatParent.find( 'option[value=-1]' ); 
     138                jQuery(s.what + ' response_data', r).each( function() { 
     139                    var t = jQuery(jQuery(this).text()); 
     140                    t.find( 'label' ).each( function() { 
     141                        var th = jQuery(this); 
     142                        var val = th.find('input').val(); 
     143                        var id = th.find('input')[0].id 
     144                        jQuery('#' + id).change( syncChecks ); 
     145                        if ( newCatParent.find( 'option[value=' + val + ']' ).size() ) 
     146                            return; 
     147                        var name = jQuery.trim( th.text() ); 
     148                        var o = jQuery( '<option value="' +  parseInt( val, 10 ) + '"></option>' ).text( name ); 
     149                        newCatParent.prepend( o ); 
     150                    } ); 
     151                    newCatParentOption.attr( 'selected', true ); 
     152                } ); 
     153            }; 
     154            jQuery('#categorychecklist').wpList( { 
     155                alt: '', 
     156                response: 'category-ajax-response', 
     157                addBefore: catAddBefore, 
     158                addAfter: catAddAfter 
    140159            } ); 
    141             newCatParentOption.attr( 'selected', true ); 
    142         } ); 
    143     }; 
    144     jQuery('#categorychecklist').wpList( { 
    145         alt: '', 
    146         response: 'category-ajax-response', 
    147         addBefore: catAddBefore, 
    148         addAfter: catAddAfter 
     160            jQuery('.categorychecklist .popular-category :checkbox').change( syncChecks ).filter( ':checked' ).change(); 
     161         
     162            if ( newCatFocus ) { 
     163                jQuery('#newcat').focus(); 
     164                newCatFocus = false; 
     165            } 
     166        } 
    149167    } ); 
     168 
    150169    jQuery('#category-add-toggle').click( function() { 
    151170        jQuery(this).parents('div:first').toggleClass( 'wp-hidden-children' ); 
    152         categoryTabs.tabsClick( 1 ); 
     171        categoryTabs.tabsClick( 2 ); 
    153172        jQuery('#newcat').focus(); 
     173        newCatFocus = true; 
    154174        return false; 
    155175    } ); 
    156     jQuery('.categorychecklist .popular-category :checkbox').change( syncChecks ).filter( ':checked' ).change(); 
    157176 
    158177    jQuery('.edit-timestamp').click(function () { 
  • trunk/wp-admin/wp-admin.css

    r7662 r7689  
    12661266} 
    12671267 
     1268ul#category-tabs a { 
     1269    width: 100%; 
     1270    display: block; 
     1271} 
     1272 
     1273.ui-tabs-loading { 
     1274    outline: none; 
     1275    background: url(../images/loading.gif) no-repeat 0 50%; 
     1276} 
     1277 
    12681278#linkcategorydiv ul#category-tabs { 
    12691279    float: left; 
  • trunk/wp-includes/script-loader.php

    r7682 r7689  
    145145                'cancel' => __('Cancel'), 
    146146            ) ); 
    147             $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080411' ); 
     147            $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080412' ); 
    148148            $this->localize( 'post', 'postL10n', array( 
    149149                'tagsUsed' =>  __('Tags used on this post:'), 
Note: See TracChangeset for help on using the changeset viewer.