WordPress.org

Make WordPress Core

Ticket #5316: 5316.3.diff

File 5316.3.diff, 12.4 KB (added by DD32, 10 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