Make WordPress Core

Changeset 6597


Ignore:
Timestamp:
01/10/2008 10:42:49 PM (17 years ago)
Author:
matt
Message:

Fixes to category list saving. Hat tip: mdawaffe. Fixes #5631

Location:
trunk/wp-admin
Files:
5 edited

Legend:

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

    r6591 r6597  
    128128        <input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" />
    129129        <?php wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category') ) ); ?>
    130         <a id="category-add-sumbit" class="add:categorychecklist:categorydiv button" href="<?php echo wp_nonce_url( '', 'add-category' ); ?>"><?php _e( 'Add' ); ?></a>
     130        <input type="button" id="category-add-sumbit" class="add:categorychecklist:categorydiv button" value="<?php _e( 'Add' ); ?>" />
     131        <?php wp_nonce_field( 'add-category', '_ajax_nonce', false ); ?>
    131132        <span id="category-ajax-response"></span>
    132133    </p>
     
    135136<ul id="category-tabs">
    136137    <li class="ui-tabs-selected"><a href="#categories-all"><?php _e( 'All Categories' ); ?></a></li>
    137     <li><a href="#categories-pop"><?php _e( 'Most Used' ); ?></a></li>
     138    <li class="wp-no-js-hidden"><a href="#categories-pop"><?php _e( 'Most Used' ); ?></a></li>
    138139</ul>
    139140
     
    144145</div>
    145146
    146 <div id="categories-pop" class="ui-tabs-panel">
     147<div id="categories-pop" class="ui-tabs-panel" style="display: none;">
    147148    <ul id="categorychecklist-pop" class="categorychecklist form-no-clear">
    148149        <?php wp_popular_categories_checklist(); ?>
  • trunk/wp-admin/includes/template.php

    r6591 r6597  
    189189
    190190function wp_popular_categories_checklist( $default = 0, $number = 10 ) {
    191     global $checked_categories;
    192 
    193     wp_set_checked_post_categories( $default );
    194 
    195191    $categories = get_categories( array( 'orderby' => 'count', 'order' => 'DESC', 'number' => $number ) );
    196192
    197193    foreach ( (array) $categories as $category ) {
    198194        $id = "popular-category-$category->term_id";
    199         $checked = in_array( $category->term_id, $checked_categories ) ? ' checked="checked"' : '';     
    200195        ?>
    201196
    202197        <li id="<?php echo $id; ?>">
    203198            <label class="selectit" for="in-<?php echo $id; ?>">
    204                 <input id="in-<?php echo $id; ?>" type="checkbox" name="post_category[]" value="<?php echo (int) $category->term_id; ?>"<?php echo $checked; ?> />
     199                <input id="in-<?php echo $id; ?>" type="checkbox" value="<?php echo (int) $category->term_id; ?>" />
    205200                <?php echo wp_specialchars( apply_filters( 'the_category', $category->name ) ); ?>
    206201            </label>
  • trunk/wp-admin/js/common.js

    r6582 r6597  
    22    // pulse
    33    jQuery('.fade').animate( { backgroundColor: '#ffffe0' }, 300).animate( { backgroundColor: '#fffbcc' }, 300).animate( { backgroundColor: '#ffffe0' }, 300).animate( { backgroundColor: '#fffbcc' }, 300);
     4
     5    jQuery('.wp-no-js-hidden').removeClass( 'wp-no-js-hidden' );
    46});
  • trunk/wp-admin/js/post.js

    r6591 r6597  
    9696    var newCatParent = false;
    9797    var newCatParentOption = false;
     98    var noSyncChecks = false; // prophylactic. necessary?
     99    var syncChecks = function() {
     100        if ( noSyncChecks )
     101            return;
     102        noSyncChecks = true;
     103        var th = jQuery(this);
     104        var c = th.is(':checked');
     105        var id = th.val().toString();
     106        jQuery('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
     107        noSyncChecks = false;
     108    };
    98109    var catAddAfter = function( r, s ) {
    99110        if ( !newCatParent ) newCatParent = jQuery('#newcat_parent');
     
    103114            t.find( 'label' ).each( function() {
    104115                var th = jQuery(this);
    105                 var id = th.find('input').val();
    106                 if ( newCatParent.find( 'option[value=' + id + ']' ).size() )
     116                var val = th.find('input').val();
     117                var id = th.find('input')[0].id
     118                jQuery('#' + id).change( syncChecks );
     119                if ( newCatParent.find( 'option[value=' + val + ']' ).size() )
    107120                    return;
    108121                var name = jQuery.trim( th.text() );
    109                 var o = jQuery( '<option value="' +  parseInt( id, 10 ) + '"></option>' ).text( name );
     122                var o = jQuery( '<option value="' +  parseInt( val, 10 ) + '"></option>' ).text( name );
    110123                newCatParent.prepend( o );
    111                 newCatParentOption.attr( 'selected', true );
    112124            } );
     125            newCatParentOption.attr( 'selected', true );
    113126        } );
    114127    };
     
    123136        return false;
    124137    } );
     138    jQuery('.categorychecklist :checkbox').change( syncChecks ).filter( ':checked' ).change();
    125139});
  • trunk/wp-admin/wp-admin.css

    r6591 r6597  
    12381238}
    12391239
     1240#category-add input#category-add-sumbit {
     1241    width: auto;
     1242}
     1243
    12401244#categorydiv ul#category-tabs {
    12411245    float: left;
     
    12801284/* Global classes */
    12811285.wp-hidden-children .wp-hidden-child { display: none; }
     1286.wp-no-js-hidden { display: none; }
    12821287.ui-tabs-hide { display: none; }
    12831288.form-input-tip { color: #999; }
Note: See TracChangeset for help on using the changeset viewer.