WordPress.org

Make WordPress Core

Ticket #6677: 6677.diff

File 6677.diff, 7.7 KB (added by mdawaffe, 10 years ago)
  • wp-includes/js/wp-lists.js

     
    313313                                var addEl = this;
    314314                                var c = wpList.parseClass(this,'add')[2] || addEl.id;
    315315                                if ( !c ) { return; }
    316                                 var forms = []; var ins = [];
     316                                var forms = []; var ins = []; // this is all really inefficient
    317317                                $('#' + c + ' :input').focus( function() { currentFormEl = this; } ).blur( function() { currentFormEl = false; } ).each( function() {
    318318                                        ins.push(this);
    319                                         $.merge(forms,$(this).parents('form'));
    320                                         forms = $.unique(forms);
     319                                        var f = $(this).parents('form:first').get(0);
     320                                        if ( $.inArray(f,forms) < 0 ) { forms.push(f); }
    321321                                } );
    322322                                $(forms).submit( function() {
    323323                                        if ( 0 <= $.inArray(currentFormEl,ins) ) {
  • wp-includes/script-loader.php

     
    5757                        'whoaText' => __("Slow down, I'm still sending your data!")
    5858                ) );
    5959
    60                 $this->add( 'wp-lists', '/wp-includes/js/wp-lists.js', array('wp-ajax-response'), '20080322' );
     60                $this->add( 'wp-lists', '/wp-includes/js/wp-lists.js', array('wp-ajax-response'), '20080411' );
    6161                $this->localize( 'wp-lists', 'wpListL10n', array(
    6262                        'url' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php'
    6363                ) );
     
    144144                                'save' => __('Save'),
    145145                                'cancel' => __('Cancel'),
    146146                        ) );
    147                         $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080322' );
     147                        $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080411' );
    148148                        $this->localize( 'post', 'postL10n', array(
    149149                                'tagsUsed' =>  __('Tags used on this post:'),
    150150                                'add' => attribute_escape(__('Add')),
  • wp-admin/includes/template.php

     
    175175        return $result;
    176176}
    177177
    178 function write_nested_categories( $categories ) {
     178function write_nested_categories( $categories, $popular_ids = array() ) {
    179179        foreach ( $categories as $category ) {
    180                 echo "\n", '<li id="category-', $category['cat_ID'], '"><label for="in-category-', $category['cat_ID'], '" class="selectit"><input value="', $category['cat_ID'], '" type="checkbox" name="post_category[]" id="in-category-', $category['cat_ID'], '"', ($category['checked'] ? ' checked="checked"' : "" ), '/> ', wp_specialchars( apply_filters('the_category', $category['cat_name'] )), '</label>';
     180                $class = in_array( $category['cat_ID'], $popular_ids ) ? ' class="popular-category"' : '';
     181                echo "\n", "<li id='category-$category[cat_ID]'$class>", '<label for="in-category-', $category['cat_ID'], '" class="selectit"><input value="', $category['cat_ID'], '" type="checkbox" name="post_category[]" id="in-category-', $category['cat_ID'], '"', ($category['checked'] ? ' checked="checked"' : "" ), '/> ', wp_specialchars( apply_filters('the_category', $category['cat_name'] )), '</label>';
    181182
    182183                if ( $category['children'] ) {
    183184                        echo "\n<ul>";
     
    188189        }
    189190}
    190191
    191 function dropdown_categories( $default = 0, $parent = 0 ) {
    192         write_nested_categories( get_nested_categories( $default, $parent ) );
     192function dropdown_categories( $default = 0, $parent = 0, $popular_ids = array() ) {
     193        write_nested_categories( get_nested_categories( $default, $parent ), $popular_ids );
    193194}
    194195
    195196function wp_popular_terms_checklist( $taxonomy, $default = 0, $number = 10 ) {
    196197        $categories = get_terms( $taxonomy, array( 'orderby' => 'count', 'order' => 'DESC', 'number' => $number ) );
    197198
     199        $popular_ids = array();
    198200        foreach ( (array) $categories as $category ) {
     201                $popular_ids[] = $category->term_id;
    199202                $id = "popular-category-$category->term_id";
    200203                ?>
    201204
    202                 <li id="<?php echo $id; ?>" >
     205                <li id="<?php echo $id; ?>" class="popular-category">
    203206                        <label class="selectit" for="in-<?php echo $id; ?>">
    204207                        <input id="in-<?php echo $id; ?>" type="checkbox" value="<?php echo (int) $category->term_id; ?>" />
    205208                                <?php echo wp_specialchars( apply_filters( 'the_category', $category->name ) ); ?>
     
    208211
    209212                <?php
    210213        }
     214        return $popular_ids;
    211215}
    212216
    213217function dropdown_link_categories( $default = 0 ) {
  • wp-admin/js/post.js

     
    118118                jQuery('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
    119119                noSyncChecks = false;
    120120        };
     121        var catAddBefore = function( s ) {
     122                s.data += '&' + jQuery( '#categorychecklist :checked' ).serialize();
     123                return s;
     124        };
    121125        var catAddAfter = function( r, s ) {
    122126                if ( !newCatParent ) newCatParent = jQuery('#newcat_parent');
    123127                if ( !newCatParentOption ) newCatParentOption = newCatParent.find( 'option[value=-1]' );
     
    140144        jQuery('#categorychecklist').wpList( {
    141145                alt: '',
    142146                response: 'category-ajax-response',
     147                addBefore: catAddBefore,
    143148                addAfter: catAddAfter
    144149        } );
    145150        jQuery('#category-add-toggle').click( function() {
     
    148153                jQuery('#newcat').focus();
    149154                return false;
    150155        } );
    151         jQuery('.categorychecklist :checkbox').change( syncChecks ).filter( ':checked' ).change();
     156        jQuery('.categorychecklist .popular-category :checkbox').change( syncChecks ).filter( ':checked' ).change();
    152157
    153158        jQuery('.edit-timestamp').click(function () {
    154159                if (jQuery('#timestampdiv').is(":hidden")) {
  • wp-admin/edit-form-advanced.php

     
    1 <?php
     1 <?php
    22$action = isset($action)? $action : '';
    33if ( isset($_GET['message']) )
    44        $_GET['message'] = absint( $_GET['message'] );
     
    222222        <p id="category-add" class="wp-hidden-child">
    223223                <input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" tabindex="3" />
    224224                <?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:categorydiv button" value="<?php _e( 'Add' ); ?>" tabindex="3" />
     225                <input type="button" id="category-add-sumbit" class="add:categorychecklist:category-add button" value="<?php _e( 'Add' ); ?>" tabindex="3" />
    226226                <?php wp_nonce_field( 'add-category', '_ajax_nonce', false ); ?>
    227227                <span id="category-ajax-response"></span>
    228228        </p>
     
    233233        <li class="wp-no-js-hidden"><a href="#categories-pop" tabindex="3"><?php _e( 'Most Used' ); ?></a></li>
    234234</ul>
    235235
    236 <div id="categories-all" class="ui-tabs-panel">
    237         <ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
    238                 <?php dropdown_categories(); ?>
     236<div id="categories-pop" class="ui-tabs-panel" style="display: none;">
     237        <ul id="categorychecklist-pop" class="categorychecklist form-no-clear" >
     238                <?php $popular_ids = wp_popular_terms_checklist('category'); ?>
    239239        </ul>
    240240</div>
    241241
    242 <div id="categories-pop" class="ui-tabs-panel" style="display: none;">
    243         <ul id="categorychecklist-pop" class="categorychecklist form-no-clear" >
    244                 <?php wp_popular_terms_checklist('category'); ?>
     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 ); ?>
    245245        </ul>
    246246</div>
    247247