<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[16022] trunk: Set additional fields when searching.</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.wordpress.org/changeset/16022">16022</a></dd>
<dt>Author</dt> <dd>scribu</dd>
<dt>Date</dt> <dd>2010-10-27 20:17:00 +0000 (Wed, 27 Oct 2010)</dd>
</dl>

<h3>Log Message</h3>
<pre>Set additional fields when searching. Fixes <a href="http://trac.wordpress.org/ticket/15211">#15211</a></pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpadminjslisttabledevjs">trunk/wp-admin/js/list-table.dev.js</a></li>
<li><a href="#trunkwpincludesscriptloaderphp">trunk/wp-includes/script-loader.php</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkwpincludesjsjqueryjqueryserializeobjectjs">trunk/wp-includes/js/jquery/jquery.serialize-object.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpadminjslisttabledevjs"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/js/list-table.dev.js (16021 => 16022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/list-table.dev.js        2010-10-27 19:41:59 UTC (rev 16021)
+++ trunk/wp-admin/js/list-table.dev.js        2010-10-27 20:17:00 UTC (rev 16022)
</span><span class="lines">@@ -37,16 +37,6 @@
</span><span class="cx">                 this.update_rows({'paged': paged});
</span><span class="cx">         },
</span><span class="cx"> 
</span><del>-        // searching
-        change_search: function(s) {
-                this.update_rows({'s': s}, true, function() {
-                        $('h2 .subtitle').remove();
-
-                        if ( s )
-                                $('h2').eq(0).append($('&lt;span class=&quot;subtitle&quot;&gt;').html(listTableL10n.search.replace('%s', this.htmlencode(s))));
-                });
-        },
-
</del><span class="cx">         htmlencode: function(value) {
</span><span class="cx">                 return $('&lt;div/&gt;').text(value).html();
</span><span class="cx">         },
</span><span class="lines">@@ -216,20 +206,26 @@
</span><span class="cx">         });
</span><span class="cx"> 
</span><span class="cx">         // searchbox
</span><del>-        $('.search-box :submit').click(function() {
-                listTable.change_search($(this).parent('.search-box').find(':text').val());
</del><ins>+        function change_search(ev) {
+                if ( 'keypress' == ev.type &amp;&amp; 13 != e.keyCode )
+                        return;
</ins><span class="cx"> 
</span><del>-                return false;
-        });
</del><ins>+                ev.preventDefault();
+                ev.stopImmediatePropagation();
</ins><span class="cx"> 
</span><del>-        $('.search-box :text').keypress(function(e) {
-                if ( 13 != e.keyCode )
-                        return;
</del><ins>+                var data = $(this).parent('.search-box').find(':input').serializeObject();
</ins><span class="cx"> 
</span><del>-                listTable.change_search($(this).val());
</del><ins>+                listTable.update_rows(data, true, function() {
+                        $('h2 .subtitle').remove();
</ins><span class="cx"> 
</span><del>-                return false;
-        });
</del><ins>+                        if ( data.s )
+                                $('h2').append($('&lt;span class=&quot;subtitle&quot;&gt;').html(
+                                        listTableL10n.search.replace('%s', this.htmlencode(data.s))
+                                ));
+                });
+        }
+        $('.search-box :submit').click(change_search);
+        $('.search-box :text').keypress(change_search);
</ins><span class="cx"> 
</span><span class="cx">         // tablenav dropdowns
</span><span class="cx">         $('#post-query-submit').click(function() {
</span></span></pre></div>
<a id="trunkwpincludesjsjqueryjqueryserializeobjectjs"></a>
<div class="addfile"><h4>Added: trunk/wp-includes/js/jquery/jquery.serialize-object.js (0 => 16022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/js/jquery/jquery.serialize-object.js                                (rev 0)
+++ trunk/wp-includes/js/jquery/jquery.serialize-object.js        2010-10-27 20:17:00 UTC (rev 16022)
</span><span class="lines">@@ -0,0 +1,31 @@
</span><ins>+/*!
+ * jQuery serializeObject - v0.2 - 1/20/2010
+ * http://benalman.com/projects/jquery-misc-plugins/
+ * 
+ * Copyright (c) 2010 &quot;Cowboy&quot; Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+
+// Whereas .serializeArray() serializes a form into an array, .serializeObject()
+// serializes a form into an (arguably more useful) object.
+
+(function($,undefined){
+  '$:nomunge'; // Used by YUI compressor.
+  
+  $.fn.serializeObject = function(){
+    var obj = {};
+    
+    $.each( this.serializeArray(), function(i,o){
+      var n = o.name,
+        v = o.value;
+        
+        obj[n] = obj[n] === undefined ? v
+          : $.isArray( obj[n] ) ? obj[n].concat( v )
+          : [ obj[n], v ];
+    });
+    
+    return obj;
+  };
+  
+})(jQuery);
</ins></span></pre></div>
<a id="trunkwpincludesscriptloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/script-loader.php (16021 => 16022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/script-loader.php        2010-10-27 19:41:59 UTC (rev 16021)
+++ trunk/wp-includes/script-loader.php        2010-10-27 20:17:00 UTC (rev 16022)
</span><span class="lines">@@ -171,6 +171,9 @@
</span><span class="cx">         $scripts-&gt;add( 'jquery-query', &quot;/wp-includes/js/jquery/jquery.query.js&quot;, array('jquery'), '2.1.7' );
</span><span class="cx">         $scripts-&gt;add_data( 'jquery-query', 'group', 1 );
</span><span class="cx"> 
</span><ins>+        $scripts-&gt;add( 'jquery-serialize-object', &quot;/wp-includes/js/jquery/jquery.serialize-object.js&quot;, array('jquery'), '0.2' );
+        $scripts-&gt;add_data( 'jquery-serialize-object', 'group', 1 );
+
</ins><span class="cx">         $scripts-&gt;add( 'jquery-hotkeys', &quot;/wp-includes/js/jquery/jquery.hotkeys$suffix.js&quot;, array('jquery'), '0.0.2m' );
</span><span class="cx">         $scripts-&gt;add_data( 'jquery-hotkeys', 'group', 1 );
</span><span class="cx"> 
</span><span class="lines">@@ -354,7 +357,7 @@
</span><span class="cx">                 $scripts-&gt;add( 'theme-preview', &quot;/wp-admin/js/theme-preview$suffix.js&quot;, array( 'thickbox', 'jquery' ), '20100407' );
</span><span class="cx">                 $scripts-&gt;add_data( 'theme-preview', 'group', 1 );
</span><span class="cx"> 
</span><del>-                $scripts-&gt;add( 'list-table', &quot;/wp-admin/js/list-table$suffix.js&quot;, array( 'jquery', 'jquery-query' ), '20101023' );
</del><ins>+                $scripts-&gt;add( 'list-table', &quot;/wp-admin/js/list-table$suffix.js&quot;, array( 'jquery-query', 'jquery-serialize-object' ), '20101027' );
</ins><span class="cx">                 $scripts-&gt;add_data( 'list-table', 'group', 1 );
</span><span class="cx">                 $scripts-&gt;localize( 'list-table', 'listTableL10n', array(
</span><span class="cx">                         'loading' =&gt; __('Loading...'),
</span></span></pre>
</div>
</div>

</body>
</html>