WordPress.org

Make WordPress Core

Ticket #20164: 20164.5.diff

File 20164.5.diff, 11.2 KB (added by lessbloat, 7 years ago)
  • wp-admin/includes/ajax-actions.php

     
    14211421
    14221422        check_ajax_referer( 'find-posts' );
    14231423
    1424         if ( empty($_POST['ps']) )
    1425                 wp_die();
     1424        $post_types = get_post_types( array( 'public' => true ), 'objects' );
     1425        unset( $post_types['attachment'] );
    14261426
    1427         if ( !empty($_POST['post_type']) && in_array( $_POST['post_type'], get_post_types() ) )
    1428                 $what = $_POST['post_type'];
    1429         else
    1430                 $what = 'post';
     1427        $what = array_keys( $post_types );
     1428        $what = "'" . implode( "', '", $what ) . "'";
    14311429
    14321430        $s = stripslashes($_POST['ps']);
    14331431        preg_match_all('/".*?("|$)|((?<=[\\s",+])|^)[^\\s",+]+/', $s, $matches);
     
    14431441        if ( count($search_terms) > 1 && $search_terms[0] != $s )
    14441442                $search .= " OR ($wpdb->posts.post_title LIKE '%{$term}%') OR ($wpdb->posts.post_content LIKE '%{$term}%')";
    14451443
    1446         $posts = $wpdb->get_results( "SELECT ID, post_title, post_status, post_date FROM $wpdb->posts WHERE post_type = '$what' AND post_status IN ('draft', 'publish') AND ($search) ORDER BY post_date_gmt DESC LIMIT 50" );
     1444        if ( empty($_POST['ps']) )
     1445                $search = '';
     1446        else
     1447                $search = 'AND (' . $search . ')';
    14471448
     1449        $posts = $wpdb->get_results( "SELECT ID, post_title, post_type, post_status, post_date FROM $wpdb->posts WHERE post_type IN ($what) AND post_status IN ('draft', 'publish') $search ORDER BY post_date_gmt DESC LIMIT 50" );
     1450
    14481451        if ( ! $posts ) {
    1449                 $posttype = get_post_type_object($what);
    1450                 wp_die( $posttype->labels->not_found );
     1452                wp_die( __('No items found.') );
    14511453        }
    14521454
    1453         $html = '<table class="widefat" cellspacing="0"><thead><tr><th class="found-radio"><br /></th><th>'.__('Title').'</th><th>'.__('Date').'</th><th>'.__('Status').'</th></tr></thead><tbody>';
     1455        $html = '<table class="widefat" cellspacing="0"><thead><tr><th class="found-radio"><br /></th><th>'.__('Title').'</th><th class="no-break">'.__('Type').'</th><th class="no-break">'.__('Date').'</th><th class="no-break">'.__('Status').'</th></tr></thead><tbody>';
    14541456        foreach ( $posts as $post ) {
    14551457
    14561458                switch ( $post->post_status ) {
     
    14771479                }
    14781480
    14791481                $html .= '<tr class="found-posts"><td class="found-radio"><input type="radio" id="found-'.$post->ID.'" name="found_post_id" value="' . esc_attr($post->ID) . '"></td>';
    1480                 $html .= '<td><label for="found-'.$post->ID.'">'.esc_html( $post->post_title ).'</label></td><td>'.esc_html( $time ).'</td><td>'.esc_html( $stat ).'</td></tr>'."\n\n";
     1482                $html .= '<td><label for="found-'.$post->ID.'">' . esc_html( $post->post_title ) . '</label></td><td class="no-break">' . esc_html( $post_types[$post->post_type]->labels->singular_name ) . '</td><td class="no-break">'.esc_html( $time ) . '</td><td class="no-break">' . esc_html( $stat ). ' </td></tr>' . "\n\n";
    14811483        }
     1484
    14821485        $html .= '</tbody></table>';
    14831486
    14841487        $x = new WP_Ajax_Response();
    14851488        $x->add( array(
    1486                 'what' => $what,
    14871489                'data' => $html
    14881490        ));
    14891491        $x->send();
    1490 
    14911492}
    14921493
    14931494function wp_ajax_widgets_order() {
  • wp-admin/includes/template.php

     
    12781278                                <?php wp_nonce_field( 'find-posts', '_ajax_nonce', false ); ?>
    12791279                                <label class="screen-reader-text" for="find-posts-input"><?php _e( 'Search' ); ?></label>
    12801280                                <input type="text" id="find-posts-input" name="ps" value="" />
    1281                                 <input type="button" id="find-posts-search" value="<?php esc_attr_e( 'Search' ); ?>" class="button" /><br />
    1282 
    1283                                 <?php
    1284                                 $post_types = get_post_types( array('public' => true), 'objects' );
    1285                                 foreach ( $post_types as $post ) {
    1286                                         if ( 'attachment' == $post->name )
    1287                                                 continue;
    1288                                 ?>
    1289                                 <input type="radio" name="find-posts-what" id="find-posts-<?php echo esc_attr($post->name); ?>" value="<?php echo esc_attr($post->name); ?>" <?php checked($post->name, 'post'); ?> />
    1290                                 <label for="find-posts-<?php echo esc_attr($post->name); ?>"><?php echo $post->label; ?></label>
    1291                                 <?php
    1292                                 } ?>
     1281                                <span class="spinner"></span>
     1282                                <input type="button" id="find-posts-search" value="<?php esc_attr_e( 'Search' ); ?>" class="button" />
    12931283                        </div>
    12941284                        <div id="find-posts-response"></div>
    12951285                </div>
  • wp-admin/js/media.js

     
    33(function($){
    44        findPosts = {
    55                open : function(af_name, af_val) {
    6                         var st = document.documentElement.scrollTop || $(document).scrollTop();
     6                        var st = document.documentElement.scrollTop || $(document).scrollTop(),
     7                                overlay = $( '.ui-find-overlay' );
    78
     9                        if ( overlay.length == 0 ) {
     10                                $( 'body' ).append( '<div class="ui-find-overlay"></div>' );
     11                                findPosts.overlay();
     12                        }
     13
     14                        overlay.show();
     15
    816                        if ( af_name && af_val ) {
    917                                $('#affected').attr('name', af_name).val(af_val);
    1018                        }
    1119                        $('#find-posts').show().draggable({
    1220                                handle: '#find-posts-head'
    13                         }).css({'top':st + 50 + 'px','left':'50%','marginLeft':'-250px'});
     21                        }).css({'top':st + 50 + 'px','left':'50%','marginLeft':'-328px'});
    1422
    1523                        $('#find-posts-input').focus().keyup(function(e){
    1624                                if (e.which == 27) { findPosts.close(); } // close on Escape
    1725                        });
    1826
     27                        // Pull some results up by default
     28                        findPosts.send();
     29
    1930                        return false;
    2031                },
    2132
    2233                close : function() {
    2334                        $('#find-posts-response').html('');
    2435                        $('#find-posts').draggable('destroy').hide();
     36                        $( '.ui-find-overlay' ).hide();
    2537                },
    2638
     39                overlay : function() {
     40                        $( '.ui-find-overlay' ).css(
     41                                { 'z-index': '999', 'width': $( document ).width() + 'px', 'height': $( document ).height() + 'px' }
     42                        ).on('click', function () {
     43                                findPosts.close();
     44                        });
     45                },
     46
    2747                send : function() {
    2848                        var post = {
    29                                 ps: $('#find-posts-input').val(),
    30                                 action: 'find_posts',
    31                                 _ajax_nonce: $('#_ajax_nonce').val(),
    32                                 post_type: $('input[name="find-posts-what"]:checked').val()
    33                         };
     49                                        ps: $('#find-posts-input').val(),
     50                                        action: 'find_posts',
     51                                        _ajax_nonce: $('#_ajax_nonce').val()
     52                                },
     53                                spinner = $( '.find-box-search .spinner' );
    3454
     55                        spinner.show();
     56
    3557                        $.ajax({
    3658                                type : 'POST',
    3759                                url : ajaxurl,
    3860                                data : post,
    39                                 success : function(x) { findPosts.show(x); },
    40                                 error : function(r) { findPosts.error(r); }
     61                                success : function(x) { findPosts.show(x); spinner.hide(); },
     62                                error : function(r) { findPosts.error(r); spinner.hide(); }
    4163                        });
    4264                },
    4365
     
    5577                        }
    5678                        r = r.responses[0];
    5779                        $('#find-posts-response').html(r.data);
     80
     81                        // Enable whole row to be clicked
     82                        $( '.found-posts td' ).on( 'click', function () {
     83                                $( this ).parent().find( '.found-radio input' ).prop( 'checked', true );
     84                        });
    5885                },
    5986
    6087                error : function(r) {
     
    91118                        });
    92119                });
    93120        });
     121        $(window).resize(function() {
     122                findPosts.overlay();
     123        });
    94124})(jQuery);
  • wp-admin/css/colors-fresh.css

     
    2020  1.0 - Left to Right Styles
    2121------------------------------------------------------------------------------*/
    2222
    23 .find-box-search {
    24         border-color: #dfdfdf;
    25         background-color: #f1f1f1;
     23.find-box-search,
     24.find-box-buttons {
     25        background-color: #f7f7f7;
     26        border-top: 1px solid #ddd;
    2627}
    2728
    2829.find-box {
    29         background-color: #f1f1f1;
     30        background-color: #444;
    3031}
    3132
     33.find-box-head {
     34        color: #eee;
     35}
     36
    3237.find-box-inside {
    3338        background-color: #fff;
    3439}
     
    170175h3.dashboard-widget-title,
    171176h3.dashboard-widget-title span,
    172177h3.dashboard-widget-title small,
    173 .find-box-head,
    174178.sidebar-name,
    175179#nav-menu-header,
    176180#nav-menu-footer,
     
    477481.widefat tfoot tr th,
    478482h3.dashboard-widget-title,
    479483h3.dashboard-widget-title span,
    480 h3.dashboard-widget-title small,
    481 .find-box-head {
     484h3.dashboard-widget-title small {
    482485        color: #333;
    483486}
    484487
  • wp-admin/css/wp-admin-rtl.css

     
    10831083  14.1 - Media Uploader
    10841084------------------------------------------------------------------------------*/
    10851085
     1086#find-posts-input {
     1087        float: right;
     1088}
     1089
     1090#find-posts-search {
     1091        float: right;
     1092        margin-right: 3px;
     1093        margin-left: 4px;
     1094}
     1095
     1096.find-box-search .spinner {
     1097        left: auto;
     1098        right: 115px;
     1099}
     1100
    10861101#find-posts-response .found-radio {
    10871102        padding: 5px 8px 0 0;
    10881103}
  • wp-admin/css/wp-admin.css

     
    39553955------------------------------------------------------------------------------*/
    39563956
    39573957.find-box {
    3958         width: 500px;
     3958        width: 600px;
    39593959        height: 300px;
    39603960        overflow: hidden;
    3961         padding: 33px 5px 40px;
     3961        padding: 33px 0 51px;
    39623962        position: absolute;
    39633963        z-index: 1000;
    39643964}
     
    39763976
    39773977.find-box-inside {
    39783978        overflow: auto;
    3979         width: 100%;
     3979        padding: 6px;
    39803980        height: 100%;
    39813981}
    39823982
    39833983.find-box-search {
    3984         padding: 12px;
    3985         border-width: 1px;
    3986         border-style: none none solid;
     3984        overflow: hidden;
     3985        padding: 9px;
     3986        position: relative;
    39873987}
    39883988
     3989.find-box-search .spinner {
     3990        float: none;
     3991        left: 125px;
     3992        position: absolute;
     3993        top: 9px;
     3994}
     3995
     3996#find-posts-input {
     3997        float: left;
     3998        width: 140px;
     3999        height: 24px;
     4000}
     4001
     4002#find-posts-search {
     4003        float: left;
     4004        margin: 1px 4px 0 3px;
     4005}
     4006
    39894007#find-posts-response {
    39904008        margin: 8px 0;
    3991         padding: 0 1px;
     4009        padding: 0 1px 6px;
    39924010}
    39934011
    39944012#find-posts-response table {
     
    39964014}
    39974015
    39984016#find-posts-response .found-radio {
    3999         padding: 5px 0 0 8px;
     4017        padding: 3px 0 0 8px;
    40004018        width: 15px;
    40014019}
    40024020
    40034021.find-box-buttons {
    4004         width: 480px;
    4005         margin: 8px;
     4022        padding: 8px;
     4023        overflow: hidden;
    40064024}
    40074025
    4008 .find-box-search label {
    4009         padding-right: 6px;
    4010 }
    4011 
    40124026.find-box #resize-se {
    40134027        position: absolute;
    40144028        right: 1px;
    40154029        bottom: 1px;
    40164030}
    40174031
     4032.ui-find-overlay {
     4033        position: absolute;
     4034        top: 0;
     4035        left: 0;
     4036        background-color: #000;
     4037        opacity: 0.6;
     4038        filter: alpha(opacity=60);
     4039}
     4040
    40184041ul#dismissed-updates {
    40194042        display: none;
    40204043}
  • wp-admin/css/colors-classic.css

     
    2020  1.0 - Left to Right Styles
    2121------------------------------------------------------------------------------*/
    2222
    23 .find-box-search {
    24         border-color: #dfdfdf;
    25         background-color: #f1f1f1;
     23.find-box-search,
     24.find-box-buttons {
     25        background-color: #eff8ff;
     26        border-top: 1px solid #dce6f8;
    2627}
    2728
    2829.find-box {
    29         background-color: #f1f1f1;
     30        background-color: #5589aa;
    3031}
    3132
     33.find-box-head {
     34        color: #fff;
     35}
     36
    3237.find-box-inside {
    3338        background-color: #fff;
    3439}
     
    167172h3.dashboard-widget-title,
    168173h3.dashboard-widget-title span,
    169174h3.dashboard-widget-title small,
    170 .find-box-head,
    171175.sidebar-name,
    172176#nav-menu-header,
    173177#nav-menu-footer,
     
    475479.widefat tfoot tr th,
    476480h3.dashboard-widget-title,
    477481h3.dashboard-widget-title span,
    478 h3.dashboard-widget-title small,
    479 .find-box-head {
     482h3.dashboard-widget-title small {
    480483        color: #333;
    481484}
    482485