WordPress.org

Make WordPress Core

Ticket #5316: 5316.3.diff

File 5316.3.diff, 12.4 KB (added by DD32, 6 years ago)

Some styling changes, styles in wp-admin.css were also combined (Mutliple styles for different ID's with the same code)

  • wp-admin/js/forms.js

     
    11function checkAll(jQ) { // use attr( checked, fn ) 
    2         jQuery(jQ).find( 'tbody :checkbox' ).attr( 'checked', function() { 
     2        jQuery(jQ).find( 'tbody tr:visible :checkbox' ).attr( 'checked', function() { 
    33                return jQuery(this).attr( 'checked' ) ? '' : 'checked'; 
    44        } ); 
    55} 
     
    1010                if ( 'undefined' == e.shiftKey ) { return true; } 
    1111                if ( e.shiftKey ) { 
    1212                        if ( !lastClicked ) { return true; } 
    13                         var checks = $( lastClicked ).parents( 'form:first' ).find( ':checkbox' ); 
     13                        var checks = $( lastClicked ).parents( 'form:first' ).find( 'tr:visible :checkbox' ); 
    1414                        var first = checks.index( lastClicked ); 
    1515                        var last = checks.index( this ); 
    1616                        if ( 0 < first && 0 < last && first != last ) { 
  • wp-admin/options.php

     
    1010if ( !current_user_can('manage_options') ) 
    1111        wp_die(__('Cheatin&#8217; uh?')); 
    1212 
     13if ( isset($_POST['_show-submit']) ) 
     14        $action = ''; //Prevent action=update firing if its a show-submit. 
     15else if ( isset($_POST['_delete-submit']) ) 
     16        $action = 'delete'; 
     17 
     18add_action('admin_head', 'options_head'); 
     19function options_head(){ 
     20?> 
     21<script type="text/javascript"> 
     22        function filterTable(){ 
     23                var t = jQuery('#options-table'); 
     24                var phrase = jQuery('#show').val(); 
     25                var callback = function(){ //Uncheck any checkbox's which end up being hidden. 
     26                        jQuery('tr:not(:visible) :checkbox').each( function(){ jQuery(this).attr('checked',''); } ); 
     27                } 
     28                 
     29                if( phrase != ''){ 
     30                        if( phrase.length > 2 ) 
     31                                jQuery.uiTableFilter(t, phrase, null, callback); //Perform a filter 
     32                } else { //Else lets do a more efficient show-all 
     33                        t.find("tbody :not(tr:visible)").each( function(){ jQuery(this).show(); } ); 
     34                } 
     35 
     36                return false; //Prevent pagereload. 
     37        } 
     38         
     39        var search_timeout = undefined; 
     40        jQuery(document).ready( function() { 
     41                jQuery('#filter-options').bind('onsubmit', function() { 
     42                        filterTable(); 
     43                }); 
     44 
     45                jQuery('#show').bind('keyup', function() { 
     46                        if( typeof(search_timeout) != undefined) 
     47                                clearTimeout(search_timeout); 
     48 
     49                        search_timeout = window.setTimeout(function() { 
     50                                search_timeout = undefined; 
     51                                filterTable(); 
     52                        }, 250); 
     53                }); 
     54        }); 
     55         
     56</script> 
     57<?php 
     58} 
     59 
    1360switch($action) { 
    1461 
     62case 'delete': 
     63 
     64        check_admin_referer('update-options'); 
     65 
     66        $delete = (array)$_POST['_check']; 
     67        $goback = wp_get_referer(); 
     68         
     69        if( count($delete) > 0 ){ 
     70                foreach( (array) $delete as $option) 
     71                        delete_option($option); 
     72                update_option('deleted_options', $delete); 
     73                $goback = add_query_arg('deleted', 'true', $goback); 
     74        } 
     75         
     76        if( isset($_POST['_show']) && !empty($_POST['_show']) ) 
     77                $goback = add_query_arg('_show', $_POST['_show'], $goback); 
     78        wp_redirect($goback); 
     79    break; 
     80 
    1581case 'update': 
    16         $any_changed = 0; 
    1782 
    1883        check_admin_referer('update-options'); 
    1984 
    2085        if ( !$_POST['page_options'] ) { 
    2186                foreach ( (array) $_POST as $key => $value) { 
    22                         if ( !in_array($key, array('_wpnonce', '_wp_http_referer')) ) 
     87                        if ( !in_array($key, array('_wpnonce', '_wp_http_referer', 'action')) ) 
    2388                                $options[] = $key; 
    2489                } 
    2590        } else { 
     
    37102        } 
    38103 
    39104        $goback = add_query_arg('updated', 'true', wp_get_referer()); 
     105        if( isset($_POST['_show']) && !empty($_POST['_show']) ) 
     106                $goback = add_query_arg('_show', $_POST['_show'], $goback); 
    40107        wp_redirect($goback); 
    41     break; 
     108        break; 
    42109 
    43110default: 
    44         include('admin-header.php'); ?> 
    45  
     111        wp_enqueue_script('admin-forms'); 
     112        wp_enqueue_script('ui-table-filter'); 
     113        include('admin-header.php'); 
     114         
     115        if( isset($_GET['deleted']) ){ 
     116                $deleted = get_option('deleted_options'); 
     117                if( ! empty($deleted) ) 
     118                        echo '<div id="message" class="updated fade"><p>' . sprintf(__('<strong>Settings Deleted</strong> The following settings were deleted: <em>%s</em>'), implode(', ', $deleted) ) . '</p></div>'; 
     119                delete_option('deleted_options'); 
     120        } 
     121        ?> 
    46122<div class="wrap"> 
    47   <h2><?php _e('All Settings'); ?></h2> 
    48   <form name="form" action="options.php" method="post" id="all-options"> 
    49   <?php wp_nonce_field('update-options') ?> 
    50   <input type="hidden" name="action" value="update" /> 
    51   <table class="form-table"> 
     123        <?php $show = isset($_REQUEST['_show']) ? trim($_REQUEST['_show']) : ''; ?> 
     124        <form name="form" action="options.php" method="post" id="settings-filter"> 
     125        <h2><?php _e('All Settings'); ?></h2> 
     126        <?php wp_nonce_field('update-options') ?> 
     127        <input type="hidden" name="action" value="update" /> 
     128         
     129        <p id="settings-search"> 
     130                <label class="hidden" for="show">Search Settings:</label> 
     131                <input name="_show" id="show" type="text" value="<?php echo wp_specialchars($show) ?>" /> 
     132                <input type="submit" name="_show-submit" value="<?php _e('Search Settings'); ?>" class="button" /> 
     133        </p> 
     134         
     135        <div class="tablenav"> 
     136                <input type="submit" name="_delete-submit" id="_delete-submit" class="button-secondary delete" value="<?php _e('Delete Selected Settings') ?>" /> 
     137        </div> 
     138        <br class="clear" /> 
     139        <table class="widefat" id="options-table"> 
     140        <thead> 
     141                <tr> 
     142                        <th scope="col" class="check-column"><input type="checkbox" /></th> 
     143                        <th scope="col"><?php _e('Setting Name') ?></th> 
     144                        <th scope="col"><?php _e('Setting Value') ?></th> 
     145                </tr> 
     146        </thead> 
     147        <tbody> 
    52148<?php 
    53 $options = $wpdb->get_results("SELECT * FROM $wpdb->options ORDER BY option_name"); 
     149$where = 'WHERE 1=1'; 
     150if( !empty($show) ) 
     151        $where .= $wpdb->prepare(" AND option_name LIKE '%s'", '%' . $show . '%'); //non-javascript fall back. 
    54152 
    55 foreach ( (array) $options as $option) : 
     153$options = $wpdb->get_results("SELECT * FROM $wpdb->options $where ORDER BY option_name"); 
     154 
     155foreach ( (array)$options as $option) { 
    56156        $disabled = ''; 
     157        $class = ''; 
    57158        $option->option_name = attribute_escape($option->option_name); 
    58159        if ( is_serialized($option->option_value) ) { 
    59160                if ( is_serialized_string($option->option_value) ) { 
    60161                        // this is a serialized string, so we should display it 
    61162                        $value = maybe_unserialize($option->option_value); 
    62163                        $options_to_update[] = $option->option_name; 
    63                         $class = 'all-options'; 
    64164                } else { 
    65165                        $value = 'SERIALIZED DATA'; 
    66166                        $disabled = ' disabled="disabled"'; 
    67                         $class = 'all-options disabled'; 
     167                        $class = 'disabled'; 
    68168                } 
    69169        } else { 
    70170                $value = $option->option_value; 
    71171                $options_to_update[] = $option->option_name; 
    72                 $class = 'all-options'; 
    73172        } 
    74173        echo " 
    75 <tr> 
    76         <th scope='row'><label for='$option->option_name'>$option->option_name</label></th> 
    77 <td>"; 
     174        <tr> 
     175                <th scope='row' class='check-column'><input type='checkbox' name='_check[]' value='$option->option_name' /></th> 
     176                <th scope='row'><label for='$option->option_name'>$option->option_name</label></th> 
     177        <td>"; 
    78178 
    79         if (strpos($value, "\n") !== false) echo "<textarea class='$class' name='$option->option_name' id='$option->option_name' cols='30' rows='5'>" . wp_specialchars($value) . "</textarea>"; 
    80         else echo "<input class='$class' type='text' name='$option->option_name' id='$option->option_name' size='30' value='" . attribute_escape($value) . "'$disabled />"; 
     179        if (strpos($value, "\n") !== false) 
     180                echo "<textarea class='$class' name='$option->option_name' id='$option->option_name' cols='30' rows='5'>" . wp_specialchars($value) . "</textarea>"; 
     181        else 
     182                echo "<input class='$class' type='text' name='$option->option_name' id='$option->option_name' size='30' value='" . attribute_escape($value) . "'$disabled />"; 
    81183 
    82184        echo "</td> 
    83 </tr>"; 
    84 endforeach; 
     185        </tr>"; 
     186} 
    85187?> 
    86   </table> 
    87 <?php $options_to_update = implode(',', $options_to_update); ?> 
    88 <p class="submit"><input type="hidden" name="page_options" value="<?php echo $options_to_update; ?>" /><input type="submit" name="Update" value="<?php _e('Save Changes') ?>" /></p> 
    89   </form> 
     188        </tbody> 
     189        </table> 
     190<?php $options_to_update = implode(',', (array)$options_to_update); ?> 
     191        <p class="submit"> 
     192                <input type="hidden" name="page_options" value="<?php echo $options_to_update; ?>" /> 
     193                <input type="submit" name="Update" value="<?php _e('Save Changes') ?>" /> 
     194        </p> 
     195        </form> 
    90196</div> 
    91197 
    92  
    93198<?php 
     199include('admin-footer.php'); 
    94200break; 
    95201} // end switch 
    96  
    97 include('admin-footer.php'); 
    98 ?> 
     202?> 
     203 No newline at end of file 
  • wp-admin/wp-admin.css

     
    12841284} 
    12851285 
    12861286/* pasitioning etc. */ 
    1287 form#tags-filter { 
     1287form#tags-filter, form#posts-filter, form#settings-filter { 
    12881288        position: relative; 
    12891289} 
    12901290 
    1291 p#tag-search { 
     1291p#tag-search, p#post-search, p#settings-search { 
    12921292        position: absolute; 
    12931293        right: 0; 
    12941294        top: 0; 
    12951295        margin: 0; 
    12961296} 
    12971297 
    1298 form#posts-filter { 
    1299         position: relative; 
    1300 } 
    1301  
    1302 p#post-search { 
    1303         position: absolute; 
    1304         right: 0; 
    1305         top: 0; 
    1306         margin: 0; 
    1307 } 
    1308  
    1309 #post-search .button, #widget-search .button { 
     1298#post-search .button, #widget-search .button, #settings-search .button { 
    13101299        padding: 3px; 
    13111300        font-size: 13px; 
    13121301} 
  • wp-includes/js/jquery/jquery.uitablefilter.js

     
     1/* 
     2 * Copyright (c) 2008 Greg Weber greg at gregweber.info 
     3 * Dual licensed under the MIT and GPL licenses: 
     4 * http://www.opensource.org/licenses/mit-license.php 
     5 * http://www.gnu.org/licenses/gpl.html 
     6 * 
     7 * documentation at http://gregweber.info/projects/uitablefilter 
     8 * 
     9 * allows table rows to be filtered (made invisible) 
     10 * <code> 
     11 * t = $('table') 
     12 * $.uiTableFilter( t, phrase ) 
     13 * </code> 
     14 * arguments: 
     15 *   jQuery object containing table rows 
     16 *   phrase to search for 
     17 *   optional arguments: 
     18 *     column to limit search too (the column title in the table header) 
     19 *     ifHidden - callback to execute if one or more elements was hidden 
     20 */ 
     21jQuery.uiTableFilter = function(jq, phrase, column, ifHidden){ 
     22  var new_hidden = false; 
     23  if( this.last_phrase === phrase ) return false; 
     24 
     25  var phrase_length = phrase.length; 
     26  var words = phrase.toLowerCase().split(" "); 
     27 
     28  var success = function(elem) { elem.show() } 
     29  var failure = function(elem) { elem.hide() } 
     30 
     31  if( column ) { 
     32    var index = null; 
     33    jq.find("thead > tr:last > th").each( function(i){ 
     34      if( $(this).text() == column ){ 
     35        index = i; 
     36        return false; 
     37      } 
     38    }); 
     39    var iselector = "td:eq(" + index + ")"; 
     40   
     41    var search_text = function( ){ 
     42      var elem = jQuery(this); 
     43      jQuery.uiTableFilter.has_words( jQuery(elem.find(iselector)).text(), words ) ? 
     44        success(elem) : failure(elem); 
     45    } 
     46  } 
     47  else { 
     48    var search_text = function(){ 
     49        var elem = jQuery(this); 
     50        jQuery.uiTableFilter.has_words( elem.text(), words ) ? elem.show() : elem.hide(); 
     51    } 
     52  } 
     53 
     54  // if added one letter to last time, 
     55  // just check newest word and only need to hide 
     56  if( (words.size > 1) && (phrase.substr(0, phrase_length - 1) === 
     57        this.last_phrase) ) { 
     58 
     59    if( phrase[-1] === " " ) 
     60    { this.last_phrase = phrase; return false; } 
     61 
     62    success = function(elem) { elem.hide(); new_hidden = true; } 
     63    failure = function(elem) {;} 
     64    var words = words[-1]; 
     65    jq.find("tbody tr:visible").each( search_text ) 
     66  } 
     67  else { 
     68    new_hidden = true; 
     69    jq.find("tbody > tr").each( search_text ); 
     70  } 
     71 
     72  last_phrase = phrase; 
     73  if( ifHidden && new_hidden ) ifHidden(); 
     74  return jq; 
     75}; 
     76jQuery.uiTableFilter.last_phrase = "" 
     77 
     78// not jQuery dependent 
     79// "" [""] -> Boolean 
     80// "" [""] Boolean -> Boolean 
     81jQuery.uiTableFilter.has_words = function( str, words, caseSensitive ) 
     82{ 
     83  var text = caseSensitive ? str : str.toLowerCase(); 
     84  for (var i=0; i < words.length; i++) { 
     85    if (text.indexOf(words[i]) === -1) return false; 
     86  } 
     87  return true; 
     88} 
     89 No newline at end of file 
  • wp-includes/script-loader.php

     
    205205                                'updateCompleted' => __('Update completed.'), 
    206206                                'error' => __('Error:') 
    207207                        )); 
     208                        $this->add( 'ui-table-filter', '/wp-includes/js/jquery/jquery.uitablefilter.js', array( 'jquery' ), '20080517' ); 
    208209                } 
    209210        } 
    210211