WordPress.org

Make WordPress Core

Ticket #7687: menusearch.diff

File menusearch.diff, 4.1 KB (added by nbachiyski, 10 years ago)
  • wp-includes/js/jquery/suggest.js

     
    130130                                        displayItems(cached['items']);
    131131                                       
    132132                                } else {
    133                                
    134                                         $.get(options.source, {q: q}, function(txt) {
    135 
     133                                    var process = function(txt) {
    136134                                                $results.hide();
    137                                                
    138135                                                var items = parseTxt(txt, q);
    139                                                
    140136                                                displayItems(items);
    141                                                 addToCache(q, items, txt.length);
    142                                                
    143                                         });
     137                                                addToCache(q, items, txt.length);       
     138                                        };
     139                                        if ('string' == typeof options.source)
     140                                                $.get(options.source, {q: q}, process);
     141                                        else if ($.isFunction(options.source))
     142                                                process(options.source(q));
     143                                        else if (options.source instanceof Array) {
     144                                                q = q.toLowerCase();
     145                                                res = [];
     146                                                for(i=0; i<options.source.length; ++i) {
     147                                                        if (options.source[i].toLowerCase().indexOf(q) >= 0)
     148                                                                res[res.length] = options.source[i];
     149                                                }
     150                                                process(res);
     151                                        }
    144152                                       
    145153                                }
    146154                               
     
    217225                function parseTxt(txt, q) {
    218226                       
    219227                        var items = [];
    220                         var tokens = txt.split(options.delimiter);
     228                        var tokens = txt instanceof Array ? txt : txt.split(options.delimiter);
    221229                       
    222230                        // parse returned data for non-empty items
    223231                        for (var i = 0; i < tokens.length; i++) {
  • wp-includes/script-loader.php

     
    4444        $scripts->base_url = $guessurl;
    4545        $scripts->default_version = get_bloginfo( 'version' );
    4646
    47         $scripts->add( 'common', '/wp-admin/js/common.js', array('jquery', 'user-settings'), '20080318' );
     47        $scripts->add( 'common', '/wp-admin/js/common.js', array('jquery', 'user-settings', 'suggest'), '20080904' );
    4848        $scripts->add( 'sack', '/wp-includes/js/tw-sack.js', false, '1.6.1' );
    4949
    5050        $scripts->add( 'quicktags', '/wp-includes/js/quicktags.js', false, '20080823' );
     
    285285
    286286        $rtl_styles = array( 'global', 'colors', 'dashboard', 'ie', 'install', 'login', 'media', 'theme-editor', 'upload', 'widgets', 'press-this', 'press-this-ie' );
    287287
    288         $styles->add( 'wp-admin', '/wp-admin/wp-admin.css', array(), '20080829' );
     288        $styles->add( 'wp-admin', '/wp-admin/wp-admin.css', array(), '20080904' );
    289289        $styles->add_data( 'wp-admin', 'rtl', '/wp-admin/rtl.css' );
    290290
    291291        $styles->add( 'ie', '/wp-admin/css/ie.css' );
  • wp-admin/menu-header.php

     
    115115<ul id="adminmenu" class="wp-menu">
    116116
    117117<li class="write-new-button"><a class="button-secondary" href="post-new.php"><?php _e( 'Write New Post' ); ?></a></li>
     118<li><input type="text" id="menusearch" value="" /></li>
     119
    118120<?php
    119121
    120122_wp_menu_output( $menu, $submenu );
  • wp-admin/wp-admin.css

     
    657657        text-align: center;
    658658        color: #246;
    659659}
    660        
     660ul#adminmenu input#menusearch {
     661        width: 10em;
     662}
    661663
    662664#wphead h1 {
    663665        font: normal 36px Georgia, "Times New Roman", Times, serif;
  • wp-admin/js/common.js

     
    6969} );
    7070
    7171//jQuery(function(){jQuery('#media-buttons a').tTips();});
     72
     73jQuery( function($) {
     74        var link_href = {};
     75        var links = [];
     76        function press_key( e ) {
     77                if ( 13 == e.keyCode ) {
     78                        var href = link_href[$('#menusearch').val().toLowerCase()];
     79                        if (href) window.location = href;
     80                        return false;
     81                }
     82        };
     83        $('#menusearch').keypress(press_key);
     84        $('ul#adminmenu a').each(function(){
     85                var text = $.trim($(this).text());
     86                var href = this.href;
     87                links[links.length] = text;
     88                link_href[text.toLowerCase()] = href;
     89        });
     90        $('#menusearch').suggest( links, { delay: 100, minchars: 2, multiple: false } );
     91} );
     92 No newline at end of file