WordPress.org

Make WordPress Core

Ticket #6677: 6677.diff

File 6677.diff, 7.7 KB (added by mdawaffe, 7 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