<!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, #msg p { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul { 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>[11731] trunk: &quot;Trash&quot; status for comments, first run, props caesarsgrunt,
  see #4529</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.wordpress.org/changeset/11731">11731</a></dd>
<dt>Author</dt> <dd>azaozz</dd>
<dt>Date</dt> <dd>2009-07-21 03:11:12 +0000 (Tue, 21 Jul 2009)</dd>
</dl>

<h3>Log Message</h3>
<pre>&quot;Trash&quot; status for comments, first run, props caesarsgrunt, see <a href="http://trac.wordpress.org/ticket/4529">#4529</a></pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpadminadminajaxphp">trunk/wp-admin/admin-ajax.php</a></li>
<li><a href="#trunkwpadmincommentphp">trunk/wp-admin/comment.php</a></li>
<li><a href="#trunkwpadmincsscolorsclassiccss">trunk/wp-admin/css/colors-classic.css</a></li>
<li><a href="#trunkwpadmincsscolorsfreshcss">trunk/wp-admin/css/colors-fresh.css</a></li>
<li><a href="#trunkwpadmineditcommentsphp">trunk/wp-admin/edit-comments.php</a></li>
<li><a href="#trunkwpadminincludestemplatephp">trunk/wp-admin/includes/template.php</a></li>
<li><a href="#trunkwpadminjscommondevjs">trunk/wp-admin/js/common.dev.js</a></li>
<li><a href="#trunkwpadminjscommonjs">trunk/wp-admin/js/common.js</a></li>
<li><a href="#trunkwpadminjseditcommentsdevjs">trunk/wp-admin/js/edit-comments.dev.js</a></li>
<li><a href="#trunkwpadminjseditcommentsjs">trunk/wp-admin/js/edit-comments.js</a></li>
<li><a href="#trunkwpadminwpadmincss">trunk/wp-admin/wp-admin.css</a></li>
<li><a href="#trunkwpincludescommentphp">trunk/wp-includes/comment.php</a></li>
<li><a href="#trunkwpincludespluggablephp">trunk/wp-includes/pluggable.php</a></li>
<li><a href="#trunkwpincludesscriptloaderphp">trunk/wp-includes/script-loader.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpadminadminajaxphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/admin-ajax.php (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/admin-ajax.php        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/admin-ajax.php        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -192,7 +192,7 @@
</span><span class="cx">                         die( (string) time() );
</span><span class="cx">                 $r = wp_set_comment_status( $comment-&gt;comment_ID, 'spam' );
</span><span class="cx">         } else {
</span><del>-                $r = wp_delete_comment( $comment-&gt;comment_ID );
</del><ins>+                $r = wp_set_comment_status( $comment-&gt;comment_ID, 'delete' );
</ins><span class="cx">         }
</span><span class="cx">         if ( $r ) // Decide if we need to send back '1' or a more complicated response including page links and comment counts
</span><span class="cx">                 _wp_ajax_delete_comment_response( $comment-&gt;comment_ID );
</span></span></pre></div>
<a id="trunkwpadmincommentphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/comment.php (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/comment.php        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/comment.php        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -44,6 +44,9 @@
</span><span class="cx">         if ( !current_user_can('edit_post', $comment-&gt;comment_post_ID) )
</span><span class="cx">                 comment_footer_die( __('You are not allowed to edit comments on this post.') );
</span><span class="cx"> 
</span><ins>+        if ( 'deleted' == $comment-&gt;comment_status )
+                comment_footer_die( __('This comment has been deleted. Please move it out of the Trash if you want to edit it.') );
+        
</ins><span class="cx">         $comment = get_comment_to_edit( $comment_id );
</span><span class="cx"> 
</span><span class="cx">         include('edit-form-comment.php');
</span></span></pre></div>
<a id="trunkwpadmincsscolorsclassiccss"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/css/colors-classic.css (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/css/colors-classic.css        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/css/colors-classic.css        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -58,7 +58,8 @@
</span><span class="cx">         border-color: #ccc;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#poststuff .inside label.spam {
</del><ins>+#poststuff .inside label.spam,
+#poststuff .inside label.deleted {
</ins><span class="cx">         color: red;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkwpadmincsscolorsfreshcss"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/css/colors-fresh.css (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/css/colors-fresh.css        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/css/colors-fresh.css        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -58,7 +58,8 @@
</span><span class="cx">         border-color: #ccc;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#poststuff .inside label.spam {
</del><ins>+#poststuff .inside label.spam,
+#poststuff .inside label.deleted {
</ins><span class="cx">         color: red;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkwpadmineditcommentsphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/edit-comments.php (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/edit-comments.php        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/edit-comments.php        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -14,32 +14,36 @@
</span><span class="cx"> 
</span><span class="cx"> $post_id = isset($_REQUEST['p']) ? (int) $_REQUEST['p'] : 0;
</span><span class="cx"> 
</span><del>-if ( ( isset( $_REQUEST['delete_all_spam'] ) || isset( $_REQUEST['delete_all_spam2'] ) ) &amp;&amp; !empty( $_REQUEST['pagegen_timestamp'] ) ) {
-        check_admin_referer('bulk-spam-delete', '_spam_nonce');
-
-        $delete_time = $wpdb-&gt;escape( $_REQUEST['pagegen_timestamp'] );
-        if ( current_user_can('moderate_comments')) {
-                $deleted_spam = $wpdb-&gt;query( &quot;DELETE FROM $wpdb-&gt;comments WHERE comment_approved = 'spam' AND '$delete_time' &gt; comment_date_gmt&quot; );
-        } else {
-                $deleted_spam = 0;
-        }
-        $redirect_to = 'edit-comments.php?comment_status=spam&amp;deleted=' . (int) $deleted_spam;
-        if ( $post_id )
-                $redirect_to = add_query_arg( 'p', absint( $post_id ), $redirect_to );
-        wp_redirect( $redirect_to );
-} elseif ( isset($_REQUEST['delete_comments']) &amp;&amp; isset($_REQUEST['action']) &amp;&amp; ( -1 != $_REQUEST['action'] || -1 != $_REQUEST['action2'] ) ) {
</del><ins>+if ( isset($_REQUEST['doaction']) ||  isset($_REQUEST['doaction2']) || isset($_REQUEST['destroy_all']) || isset($_REQUEST['destroy_all2']) ) {
</ins><span class="cx">         check_admin_referer('bulk-comments');
</span><del>-        $doaction = ( -1 != $_REQUEST['action'] ) ? $_REQUEST['action'] : $_REQUEST['action2'];
-
-        $deleted = $approved = $unapproved = $spammed = 0;
-        foreach ( (array) $_REQUEST['delete_comments'] as $comment_id) : // Check the permissions on each
-                $comment_id = (int) $comment_id;
</del><ins>+        
+        if ((isset($_REQUEST['destroy_all']) || isset($_REQUEST['destroy_all2'])) &amp;&amp; !empty($_REQUEST['pagegen_timestamp'])) {
+                $comment_status = $wpdb-&gt;escape($_REQUEST['comment_status']);
+                $delete_time = $wpdb-&gt;escape($_REQUEST['pagegen_timestamp']);
+                $comment_ids = $wpdb-&gt;get_col( &quot;SELECT comment_ID FROM $wpdb-&gt;comments WHERE comment_approved = '$comment_status' AND '$delete_time' &gt; comment_date_gmt&quot; );
+                $doaction = 'destroy';
+        } elseif (($_REQUEST['action'] != -1 || $_REQUEST['action2'] != -1) &amp;&amp; isset($_REQUEST['delete_comments'])) {
+                $comment_ids = $_REQUEST['delete_comments'];
+                $doaction = ($_REQUEST['action'] != -1) ? $_REQUEST['action'] : $_REQUEST['action2'];
+        } else wp_redirect($_SERVER['HTTP_REFERER']);
+        
+        $approved = $unapproved = $spammed = $deleted = $destroyed = 0;
+        
+        foreach ($comment_ids as $comment_id) { // Check the permissions on each
</ins><span class="cx">                 $_post_id = (int) $wpdb-&gt;get_var( $wpdb-&gt;prepare( &quot;SELECT comment_post_ID FROM $wpdb-&gt;comments WHERE comment_ID = %d&quot;, $comment_id) );
</span><span class="cx"> 
</span><span class="cx">                 if ( !current_user_can('edit_post', $_post_id) )
</span><span class="cx">                         continue;
</span><span class="cx"> 
</span><span class="cx">                 switch( $doaction ) {
</span><ins>+                        case 'approve' :
+                                wp_set_comment_status($comment_id, 'approve');
+                                $approved++;
+                                break;
+                        case 'unapprove' :
+                                wp_set_comment_status($comment_id, 'hold');
+                                $unapproved++;
+                                break;
</ins><span class="cx">                         case 'markspam' :
</span><span class="cx">                                 wp_set_comment_status($comment_id, 'spam');
</span><span class="cx">                                 $spammed++;
</span><span class="lines">@@ -48,18 +52,14 @@
</span><span class="cx">                                 wp_set_comment_status($comment_id, 'delete');
</span><span class="cx">                                 $deleted++;
</span><span class="cx">                                 break;
</span><del>-                        case 'approve' :
-                                wp_set_comment_status($comment_id, 'approve');
-                                $approved++;
</del><ins>+                        case 'destroy' :
+                                wp_set_comment_status($comment_id, 'delete');
+                                $destroyed++;
</ins><span class="cx">                                 break;
</span><del>-                        case 'unapprove' :
-                                wp_set_comment_status($comment_id, 'hold');
-                                $unapproved++;
-                                break;
</del><span class="cx">                 }
</span><del>-        endforeach;
</del><ins>+        }
</ins><span class="cx"> 
</span><del>-        $redirect_to = 'edit-comments.php?deleted=' . $deleted . '&amp;approved=' . $approved . '&amp;spam=' . $spammed . '&amp;unapproved=' . $unapproved;
</del><ins>+        $redirect_to = 'edit-comments.php?approved=' . $approved . '&amp;unapproved=' . $unapproved . '&amp;spam=' . $spammed . '&amp;deleted=' . $deleted . '&amp;destroyed=' . $destroyed;
</ins><span class="cx">         if ( $post_id )
</span><span class="cx">                 $redirect_to = add_query_arg( 'p', absint( $post_id ), $redirect_to );
</span><span class="cx">         if ( isset($_REQUEST['apage']) )
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx"> $mode = ( ! isset($_GET['mode']) || empty($_GET['mode']) ) ? 'detail' : esc_attr($_GET['mode']);
</span><span class="cx"> 
</span><span class="cx"> $comment_status = isset($_REQUEST['comment_status']) ? $_REQUEST['comment_status'] : 'all';
</span><del>-if ( !in_array($comment_status, array('all', 'moderated', 'approved', 'spam')) )
</del><ins>+if ( !in_array($comment_status, array('all', 'moderated', 'approved', 'spam', 'deleted')) )
</ins><span class="cx">         $comment_status = 'all';
</span><span class="cx"> 
</span><span class="cx"> $comment_type = !empty($_GET['comment_type']) ? esc_attr($_GET['comment_type']) : '';
</span><span class="lines">@@ -102,26 +102,29 @@
</span><span class="cx"> &lt;/h2&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;?php
</span><del>-if ( isset( $_GET['approved'] ) || isset( $_GET['deleted'] ) || isset( $_GET['spam'] ) ) {
</del><ins>+if ( isset( $_GET['approved'] ) || isset( $_GET['deleted'] ) || isset( $_GET['destroyed'] ) || isset( $_GET['spam'] ) ) {
</ins><span class="cx">         $approved = isset( $_GET['approved'] ) ? (int) $_GET['approved'] : 0;
</span><span class="cx">         $deleted = isset( $_GET['deleted'] ) ? (int) $_GET['deleted'] : 0;
</span><ins>+        $destroyed = isset( $_GET['destroyed'] ) ? (int) $_GET['destroyed'] : 0;
</ins><span class="cx">         $spam = isset( $_GET['spam'] ) ? (int) $_GET['spam'] : 0;
</span><span class="cx"> 
</span><del>-        if ( $approved &gt; 0 || $deleted &gt; 0 || $spam &gt; 0 ) {
</del><ins>+        if ( $approved &gt; 0 || $deleted &gt; 0 || $destroyed &gt; 0 || $spam &gt; 0 ) {
</ins><span class="cx">                 echo '&lt;div id=&quot;moderated&quot; class=&quot;updated fade&quot;&gt;&lt;p&gt;';
</span><span class="cx"> 
</span><span class="cx">                 if ( $approved &gt; 0 ) {
</span><span class="cx">                         printf( _n( '%s comment approved', '%s comments approved', $approved ), $approved );
</span><span class="cx">                         echo '&lt;br /&gt;';
</span><span class="cx">                 }
</span><del>-
</del><ins>+                if ( $spam &gt; 0 ) {
+                        printf( _n( '%s comment marked as spam', '%s comments marked as spam', $spam ), $spam );
+                        echo '&lt;br /&gt;';
+                }
</ins><span class="cx">                 if ( $deleted &gt; 0 ) {
</span><span class="cx">                         printf( _n( '%s comment deleted', '%s comments deleted', $deleted ), $deleted );
</span><span class="cx">                         echo '&lt;br /&gt;';
</span><span class="cx">                 }
</span><del>-
-                if ( $spam &gt; 0 ) {
-                        printf( _n( '%s comment marked as spam', '%s comments marked as spam', $spam ), $spam );
</del><ins>+                if ( $destroyed &gt; 0 ) {
+                        printf( _n( '%s comment permanently deleted', '%s comments permanently deleted', $destroyed ), $destroyed );
</ins><span class="cx">                         echo '&lt;br /&gt;';
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="lines">@@ -139,9 +142,10 @@
</span><span class="cx"> //, number_format_i18n($num_comments-&gt;spam) ), &quot;&lt;span class='spam-comment-count'&gt;&quot; . number_format_i18n($num_comments-&gt;spam) . &quot;&lt;/span&gt;&quot;)
</span><span class="cx"> $stati = array(
</span><span class="cx">                 'all' =&gt; _n_noop('All', 'All'), // singular not used
</span><del>-                'moderated' =&gt; _n_noop('Pending (&lt;span class=&quot;pending-count&quot;&gt;%s&lt;/span&gt;)', 'Pending (&lt;span class=&quot;pending-count&quot;&gt;%s&lt;/span&gt;)'),
</del><ins>+                'moderated' =&gt; _n_noop('Pending &lt;span class=&quot;count&quot;&gt;(&lt;span class=&quot;pending-count&quot;&gt;%s&lt;/span&gt;)&lt;/span&gt;', 'Pending &lt;span class=&quot;count&quot;&gt;(&lt;span class=&quot;pending-count&quot;&gt;%s&lt;/span&gt;)&lt;/span&gt;'),
</ins><span class="cx">                 'approved' =&gt; _n_noop('Approved', 'Approved'), // singular not used
</span><del>-                'spam' =&gt; _n_noop('Spam (&lt;span class=&quot;spam-count&quot;&gt;%s&lt;/span&gt;)', 'Spam (&lt;span class=&quot;spam-count&quot;&gt;%s&lt;/span&gt;)')
</del><ins>+                'spam' =&gt; _n_noop('Spam &lt;span class=&quot;count&quot;&gt;(&lt;span class=&quot;spam-count&quot;&gt;%s&lt;/span&gt;)&lt;/span&gt;', 'Spam &lt;span class=&quot;count&quot;&gt;(&lt;span class=&quot;spam-count&quot;&gt;%s&lt;/span&gt;)&lt;/span&gt;'),
+                'deleted' =&gt; _n_noop('Trash &lt;span class=&quot;count&quot;&gt;(&lt;span class=&quot;deleted-count&quot;&gt;%s&lt;/span&gt;)&lt;/span&gt;', 'Trash &lt;span class=&quot;count&quot;&gt;(&lt;span class=&quot;deleted-count&quot;&gt;%s&lt;/span&gt;)&lt;/span&gt;')
</ins><span class="cx">         );
</span><span class="cx"> $link = 'edit-comments.php';
</span><span class="cx"> if ( !empty($comment_type) &amp;&amp; 'all' != $comment_type )
</span><span class="lines">@@ -246,13 +250,17 @@
</span><span class="cx"> &lt;?php if ( 'all' == $comment_status || 'approved' == $comment_status ): ?&gt;
</span><span class="cx"> &lt;option value=&quot;unapprove&quot;&gt;&lt;?php _e('Unapprove'); ?&gt;&lt;/option&gt;
</span><span class="cx"> &lt;?php endif; ?&gt;
</span><del>-&lt;?php if ( 'all' == $comment_status || 'moderated' == $comment_status || 'spam' == $comment_status ): ?&gt;
</del><ins>+&lt;?php if ( 'approved' != $comment_status ): ?&gt;
</ins><span class="cx"> &lt;option value=&quot;approve&quot;&gt;&lt;?php _e('Approve'); ?&gt;&lt;/option&gt;
</span><span class="cx"> &lt;?php endif; ?&gt;
</span><span class="cx"> &lt;?php if ( 'spam' != $comment_status ): ?&gt;
</span><span class="cx"> &lt;option value=&quot;markspam&quot;&gt;&lt;?php _e('Mark as Spam'); ?&gt;&lt;/option&gt;
</span><span class="cx"> &lt;?php endif; ?&gt;
</span><ins>+&lt;?php if ( 'deleted' == $comment_status || 'spam' == $comment_status ): ?&gt;
+&lt;option value=&quot;destroy&quot;&gt;&lt;?php _e('Delete Permanently'); ?&gt;&lt;/option&gt;
+&lt;?php else: ?&gt;
</ins><span class="cx"> &lt;option value=&quot;delete&quot;&gt;&lt;?php _e('Delete'); ?&gt;&lt;/option&gt;
</span><ins>+&lt;?php endif; ?&gt;
</ins><span class="cx"> &lt;/select&gt;
</span><span class="cx"> &lt;input type=&quot;submit&quot; name=&quot;doaction&quot; id=&quot;doaction&quot; value=&quot;&lt;?php esc_attr_e('Apply'); ?&gt;&quot; class=&quot;button-secondary apply&quot; /&gt;
</span><span class="cx"> &lt;?php wp_nonce_field('bulk-comments'); ?&gt;
</span><span class="lines">@@ -278,11 +286,11 @@
</span><span class="cx">         &lt;input type=&quot;hidden&quot; name=&quot;apage&quot; value=&quot;&lt;?php echo esc_attr( absint( $_GET['apage'] ) ); ?&gt;&quot; /&gt;
</span><span class="cx"> &lt;?php }
</span><span class="cx"> 
</span><del>-if ( 'spam' == $comment_status ) {
-        wp_nonce_field('bulk-spam-delete', '_spam_nonce');
</del><ins>+if ( 'spam' == $comment_status || 'deleted' == $comment_status ) {
+        wp_nonce_field('bulk-destroy', '_destroy_nonce');
</ins><span class="cx">         if ( current_user_can ('moderate_comments')) { ?&gt;
</span><del>-                &lt;input type=&quot;submit&quot; name=&quot;delete_all_spam&quot; value=&quot;&lt;?php esc_attr_e('Delete All Spam'); ?&gt;&quot; class=&quot;button-secondary apply&quot; /&gt;
-&lt;?php        }
</del><ins>+                &lt;input type=&quot;submit&quot; name=&quot;destroy_all&quot; id=&quot;destroy_all&quot; value=&quot;&lt;?php esc_attr_e('Permanently Delete All'); ?&gt;&quot; class=&quot;button-secondary apply&quot; /&gt;
+&lt;?php }
</ins><span class="cx"> } ?&gt;
</span><span class="cx"> &lt;?php do_action('manage_comments_nav', $comment_status); ?&gt;
</span><span class="cx"> &lt;/div&gt;
</span><span class="lines">@@ -333,18 +341,22 @@
</span><span class="cx"> &lt;?php if ( 'all' == $comment_status || 'approved' == $comment_status ): ?&gt;
</span><span class="cx"> &lt;option value=&quot;unapprove&quot;&gt;&lt;?php _e('Unapprove'); ?&gt;&lt;/option&gt;
</span><span class="cx"> &lt;?php endif; ?&gt;
</span><del>-&lt;?php if ( 'all' == $comment_status || 'moderated' == $comment_status || 'spam' == $comment_status ): ?&gt;
</del><ins>+&lt;?php if ( 'approved' != $comment_status ): ?&gt;
</ins><span class="cx"> &lt;option value=&quot;approve&quot;&gt;&lt;?php _e('Approve'); ?&gt;&lt;/option&gt;
</span><span class="cx"> &lt;?php endif; ?&gt;
</span><span class="cx"> &lt;?php if ( 'spam' != $comment_status ): ?&gt;
</span><span class="cx"> &lt;option value=&quot;markspam&quot;&gt;&lt;?php _e('Mark as Spam'); ?&gt;&lt;/option&gt;
</span><span class="cx"> &lt;?php endif; ?&gt;
</span><ins>+&lt;?php if ( 'deleted' == $comment_status || 'spam' == $comment_status ): ?&gt;
+&lt;option value=&quot;destroy&quot;&gt;&lt;?php _e('Delete Permanently'); ?&gt;&lt;/option&gt;
+&lt;?php else: ?&gt;
</ins><span class="cx"> &lt;option value=&quot;delete&quot;&gt;&lt;?php _e('Delete'); ?&gt;&lt;/option&gt;
</span><ins>+&lt;?php endif; ?&gt;
</ins><span class="cx"> &lt;/select&gt;
</span><span class="cx"> &lt;input type=&quot;submit&quot; name=&quot;doaction2&quot; id=&quot;doaction2&quot; value=&quot;&lt;?php esc_attr_e('Apply'); ?&gt;&quot; class=&quot;button-secondary apply&quot; /&gt;
</span><span class="cx"> 
</span><del>-&lt;?php if ( 'spam' == $comment_status ) { ?&gt;
-&lt;input type=&quot;submit&quot; name=&quot;delete_all_spam2&quot; value=&quot;&lt;?php esc_attr_e('Delete All Spam'); ?&gt;&quot; class=&quot;button-secondary apply&quot; /&gt;
</del><ins>+&lt;?php if ( 'spam' == $comment_status || 'deleted' == $comment_status ) { ?&gt;
+&lt;input type=&quot;submit&quot; name=&quot;destroy_all2&quot; id=&quot;destroy_all2&quot; value=&quot;&lt;?php esc_attr_e('Permanently Delete All'); ?&gt;&quot; class=&quot;button-secondary apply&quot; /&gt;
</ins><span class="cx"> &lt;?php } ?&gt;
</span><span class="cx"> &lt;?php do_action('manage_comments_nav', $comment_status); ?&gt;
</span><span class="cx"> &lt;/div&gt;
</span></span></pre></div>
<a id="trunkwpadminincludestemplatephp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/includes/template.php (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/template.php        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/includes/template.php        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -2009,6 +2009,9 @@
</span><span class="cx">         } elseif ( 'spam' == $status ) {
</span><span class="cx">                 $approved = &quot;comment_approved = 'spam'&quot;;
</span><span class="cx">                 $total = $count-&gt;spam;
</span><ins>+        } elseif ( 'deleted' == $status ) {
+                $approved = &quot;comment_approved = 'deleted'&quot;;
+                $total = $count-&gt;deleted;
</ins><span class="cx">         } else {
</span><span class="cx">                 $approved = &quot;( comment_approved = '0' OR comment_approved = '1' )&quot;;
</span><span class="cx">                 $total = $count-&gt;moderated + $count-&gt;approved;
</span><span class="lines">@@ -2135,24 +2138,36 @@
</span><span class="cx">                                 $actions = array();
</span><span class="cx"> 
</span><span class="cx">                                 if ( $user_can ) {
</span><del>-                                        $actions['approve'] = &quot;&lt;a href='$approve_url' class='dim:the-comment-list:comment-$comment-&gt;comment_ID:unapproved:e7e7d3:e7e7d3:new=approved vim-a' title='&quot; . __( 'Approve this comment' ) . &quot;'&gt;&quot; . __( 'Approve' ) . '&lt;/a&gt;';
-                                        $actions['unapprove'] = &quot;&lt;a href='$unapprove_url' class='dim:the-comment-list:comment-$comment-&gt;comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved vim-u' title='&quot; . __( 'Unapprove this comment' ) . &quot;'&gt;&quot; . __( 'Unapprove' ) . '&lt;/a&gt;';
-                                        if ( $comment_status &amp;&amp; 'all' != $comment_status ) { // not looking at all comments
-                                                if ( 'approved' == $the_comment_status ) {
-                                                        $actions['unapprove'] = &quot;&lt;a href='$unapprove_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID:e7e7d3:action=dim-comment&amp;amp;new=unapproved vim-u vim-destructive' title='&quot; . __( 'Unapprove this comment' ) . &quot;'&gt;&quot; . __( 'Unapprove' ) . '&lt;/a&gt;';
-                                                        unset($actions['approve']);
</del><ins>+                                        if ( 'deleted' == $the_comment_status ) {
+                                                $actions['unapprove'] = &quot;&lt;a href='$unapprove_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID:e7e7d3:action=dim-comment&amp;amp;new=unapproved vim-u vim-destructive' title='&quot; . __( 'Return this comment to Unapproved status' ) . &quot;'&gt;&quot; . __( 'Return to Pending' ) . '&lt;/a&gt;';
+                                                $actions['delete'] = &quot;&lt;a href='$delete_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID::deleted=1 delete vim-d vim-destructive'&gt;&quot; . __('Delete Permanently') . '&lt;/a&gt;';
+                                        } else {
+                                                $actions['approve'] = &quot;&lt;a href='$approve_url' class='dim:the-comment-list:comment-$comment-&gt;comment_ID:unapproved:e7e7d3:e7e7d3:new=approved vim-a' title='&quot; . __( 'Approve this comment' ) . &quot;'&gt;&quot; . __( 'Approve' ) . '&lt;/a&gt;';
+                                                $actions['unapprove'] = &quot;&lt;a href='$unapprove_url' class='dim:the-comment-list:comment-$comment-&gt;comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved vim-u' title='&quot; . __( 'Unapprove this comment' ) . &quot;'&gt;&quot; . __( 'Unapprove' ) . '&lt;/a&gt;';
+
+                                                if ( $comment_status &amp;&amp; 'all' != $comment_status ) { // not looking at all comments
+                                                        if ( 'approved' == $the_comment_status ) {
+                                                                $actions['unapprove'] = &quot;&lt;a href='$unapprove_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID:e7e7d3:action=dim-comment&amp;amp;new=unapproved vim-u vim-destructive' title='&quot; . __( 'Unapprove this comment' ) . &quot;'&gt;&quot; . __( 'Unapprove' ) . '&lt;/a&gt;';
+                                                                unset($actions['approve']);
+                                                        } else {
+                                                                $actions['approve'] = &quot;&lt;a href='$approve_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID:e7e7d3:action=dim-comment&amp;amp;new=approved vim-a vim-destructive' title='&quot; . __( 'Approve this comment' ) . &quot;'&gt;&quot; . __( 'Approve' ) . '&lt;/a&gt;';
+                                                                unset($actions['unapprove']);
+                                                        }
+                                                }
+
+                                                if ( 'spam' == $the_comment_status ) {
+                                                        $actions['delete'] = &quot;&lt;a href='$delete_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID::deleted=1 delete vim-d vim-destructive'&gt;&quot; . __('Delete Permanently') . '&lt;/a&gt;';
</ins><span class="cx">                                                 } else {
</span><del>-                                                        $actions['approve'] = &quot;&lt;a href='$approve_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID:e7e7d3:action=dim-comment&amp;amp;new=approved vim-a vim-destructive' title='&quot; . __( 'Approve this comment' ) . &quot;'&gt;&quot; . __( 'Approve' ) . '&lt;/a&gt;';
-                                                        unset($actions['unapprove']);
</del><ins>+                                                        $actions['spam'] = &quot;&lt;a href='$spam_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID::spam=1 vim-s vim-destructive' title='&quot; . __( 'Mark this comment as spam' ) . &quot;'&gt;&quot; . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '&lt;/a&gt;';
+                                                        $actions['delete'] = &quot;&lt;a href='$delete_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID delete vim-d vim-destructive'&gt;&quot; . __('Delete') . '&lt;/a&gt;';
</ins><span class="cx">                                                 }
</span><ins>+
+                                                $actions['edit'] = &quot;&lt;a href='comment.php?action=editcomment&amp;amp;c={$comment-&gt;comment_ID}' title='&quot; . __('Edit comment') . &quot;'&gt;&quot;. __('Edit') . '&lt;/a&gt;';
+                                                $actions['quickedit'] = '&lt;a onclick=&quot;commentReply.open(\''.$comment-&gt;comment_ID.'\',\''.$post-&gt;ID.'\',\'edit\');return false;&quot; class=&quot;vim-q&quot; title=&quot;'.__('Quick Edit').'&quot; href=&quot;#&quot;&gt;' . __('Quick&amp;nbsp;Edit') . '&lt;/a&gt;';
+
+                                                if ( 'spam' != $the_comment_status )
+                                                        $actions['reply'] = '&lt;a onclick=&quot;commentReply.open(\''.$comment-&gt;comment_ID.'\',\''.$post-&gt;ID.'\');return false;&quot; class=&quot;vim-r&quot; title=&quot;'.__('Reply to this comment').'&quot; href=&quot;#&quot;&gt;' . __('Reply') . '&lt;/a&gt;';
</ins><span class="cx">                                         }
</span><del>-                                        if ( 'spam' != $the_comment_status )
-                                                $actions['spam'] = &quot;&lt;a href='$spam_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID::spam=1 vim-s vim-destructive' title='&quot; . __( 'Mark this comment as spam' ) . &quot;'&gt;&quot; . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '&lt;/a&gt;';
-                                        $actions['delete'] = &quot;&lt;a href='$delete_url' class='delete:the-comment-list:comment-$comment-&gt;comment_ID delete vim-d vim-destructive'&gt;&quot; . __('Delete') . '&lt;/a&gt;';
-                                        $actions['edit'] = &quot;&lt;a href='comment.php?action=editcomment&amp;amp;c={$comment-&gt;comment_ID}' title='&quot; . __('Edit comment') . &quot;'&gt;&quot;. __('Edit') . '&lt;/a&gt;';
-                                        $actions['quickedit'] = '&lt;a onclick=&quot;commentReply.open(\''.$comment-&gt;comment_ID.'\',\''.$post-&gt;ID.'\',\'edit\');return false;&quot; class=&quot;vim-q&quot; title=&quot;'.__('Quick Edit').'&quot; href=&quot;#&quot;&gt;' . __('Quick&amp;nbsp;Edit') . '&lt;/a&gt;';
-                                        if ( 'spam' != $the_comment_status )
-                                                $actions['reply'] = '&lt;a onclick=&quot;commentReply.open(\''.$comment-&gt;comment_ID.'\',\''.$post-&gt;ID.'\');return false;&quot; class=&quot;vim-r&quot; title=&quot;'.__('Reply to this comment').'&quot; href=&quot;#&quot;&gt;' . __('Reply') . '&lt;/a&gt;';
</del><span class="cx"> 
</span><span class="cx">                                         $actions = apply_filters( 'comment_row_actions', $actions, $comment );
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkwpadminjscommondevjs"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/js/common.dev.js (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/common.dev.js        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/js/common.dev.js        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -156,10 +156,13 @@
</span><span class="cx"> 
</span><span class="cx">         // show warnings
</span><span class="cx">         $('#doaction, #doaction2').click(function(){
</span><del>-                if ( $('select[name=&quot;action&quot;]').val() == 'delete' || $('select[name=&quot;action2&quot;]').val() == 'delete' ) {
</del><ins>+                if ( $('select[name=&quot;action&quot;]').val() == 'destroy' || $('select[name=&quot;action2&quot;]').val() == 'destroy' ) {
</ins><span class="cx">                         return showNotice.warn();
</span><span class="cx">                 }
</span><span class="cx">         });
</span><ins>+        $('#destroy_all, #destroy_all2').click(function(){
+                return showNotice.warn();
+        });
</ins><span class="cx"> 
</span><span class="cx">         // screen settings tab
</span><span class="cx">         $('#show-settings-link').click(function () {
</span></span></pre></div>
<a id="trunkwpadminjscommonjs"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/js/common.js (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/common.js        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/js/common.js        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -1 +1 @@
</span><del>-var showNotice,adminMenu,columns,validateForm;(function(a){adminMenu={init:function(){a(&quot;#adminmenu div.wp-menu-toggle&quot;).each(function(){if(a(this).siblings(&quot;.wp-submenu&quot;).length){a(this).click(function(){adminMenu.toggle(a(this).siblings(&quot;.wp-submenu&quot;))})}else{a(this).hide()}});this.favorites();a(&quot;a.separator&quot;).click(function(){if(a(&quot;body&quot;).hasClass(&quot;folded&quot;)){adminMenu.fold(1);deleteUserSetting(&quot;mfold&quot;)}else{adminMenu.fold();setUserSetting(&quot;mfold&quot;,&quot;f&quot;)}return false});if(a(&quot;body&quot;).hasClass(&quot;folded&quot;)){this.fold()}this.restoreMenuState()},restoreMenuState:function(){a(&quot;#adminmenu li.wp-has-submenu&quot;).each(function(c,d){var b=getUserSetting(&quot;m&quot;+c);if(a(d).hasClass(&quot;wp-has-current-submenu&quot;)){return true}if(&quot;o&quot;==b){a(d).addClass(&quot;wp-menu-open&quot;)}else{if(&quot;c&quot;==b){a(d).removeClass(&quot;wp-menu-open&quot;)}}})},toggle:function(b){b.slideToggle(150,function(){b.css(&quot;display&quot;,&quot;&quot;)}).parent().toggleClass(&quot;wp-menu-open&quot;);a(&quot;#adminmenu li.wp-has-submenu&quot;).each(function(d,f){var c=a(f).hasClass(&quot;wp-menu-open&quot;)?&quot;o&quot;:&quot;c&quot;;setUserSetting(&quot;m&quot;+d,c)});return false},fold:function(b){if(b){a(&quot;body&quot;).removeClass(&quot;folded&quot;);a(&quot;#adminmenu li.wp-has-submenu&quot;).unbind()}else{a(&quot;body&quot;).addClass(&quot;folded&quot;);a(&quot;#adminmenu li.wp-has-submenu&quot;).hoverIntent({over:function(j){var d,c,g,k,i;d=a(this).find(&quot;.wp-submenu&quot;);c=d.parent().offset().top+d.height()+1;g=a(&quot;#wpwrap&quot;).height();k=60+c-g;i=a(window).height()+a(&quot;body&quot;).scrollTop()-15;if(i&lt;(c-k)){k=c-i}if(k&gt;1){d.css({marginTop:&quot;-&quot;+k+&quot;px&quot;})}else{if(d.css(&quot;marginTop&quot;)){d.css({marginTop:&quot;&quot;})}}d.addClass(&quot;sub-open&quot;)},out:function(){a(this).find(&quot;.wp-submenu&quot;).removeClass(&quot;sub-open&quot;).css({marginTop:&quot;&quot;})},timeout:220,sensitivity:8,interval:100})}},favorites:function(){a(&quot;#favorite-inside&quot;).width(a(&quot;#favorite-actions&quot;).width()-4);a(&quot;#favorite-toggle, #favorite-inside&quot;).bind(&quot;mouseenter&quot;,function(){a(&quot;#favorite-inside&quot;).removeClass(&quot;slideUp&quot;).addClass(&quot;slideDown&quot;);setTimeout(function(){if(a(&quot;#favorite-inside&quot;).hasClass(&quot;slideDown&quot;)){a(&quot;#favorite-inside&quot;).slideDown(100);a(&quot;#favorite-first&quot;).addClass(&quot;slide-down&quot;)}},200)});a(&quot;#favorite-toggle, #favorite-inside&quot;).bind(&quot;mouseleave&quot;,function(){a(&quot;#favorite-inside&quot;).removeClass(&quot;slideDown&quot;).addClass(&quot;slideUp&quot;);setTimeout(function(){if(a(&quot;#favorite-inside&quot;).hasClass(&quot;slideUp&quot;)){a(&quot;#favorite-inside&quot;).slideUp(100,function(){a(&quot;#favorite-first&quot;).removeClass(&quot;slide-down&quot;)})}},300)})}};a(document).ready(function(){adminMenu.init()});columns={init:function(){a(&quot;.hide-column-tog&quot;).click(function(){var c=a(this).val(),b=a(this).attr(&quot;checked&quot;);if(b){a(&quot;.column-&quot;+c).show()}else{a(&quot;.column-&quot;+c).hide()}columns.save_manage_columns_state()})},save_manage_columns_state:function(){var b=a(&quot;.manage-column&quot;).filter(&quot;:hidden&quot;).map(function(){return this.id}).get().join(&quot;,&quot;);a.post(ajaxurl,{action:&quot;hidden-columns&quot;,hidden:b,screenoptionnonce:a(&quot;#screenoptionnonce&quot;).val(),page:pagenow})}};a(document).ready(function(){columns.init()});validateForm=function(b){return !a(b).find(&quot;.form-required&quot;).filter(function(){return a(&quot;input:visible&quot;,this).val()==&quot;&quot;}).addClass(&quot;form-invalid&quot;).change(function(){a(this).removeClass(&quot;form-invalid&quot;)}).size()}})(jQuery);showNotice={warn:function(){var a=commonL10n.warnDelete||&quot;&quot;;if(confirm(a)){return true}return false},note:function(a){alert(a)}};jQuery(document).ready(function(d){var f=false,a,e,c,b;d(&quot;.fade&quot;).animate({backgroundColor:&quot;#ffffe0&quot;},300).animate({backgroundColor:&quot;#fffbcc&quot;},300).animate({backgroundColor:&quot;#ffffe0&quot;},300).animate({backgroundColor:&quot;#fffbcc&quot;},300);d(&quot;div.wrap h2 ~ div.updated, div.wrap h2 ~ div.error&quot;).addClass(&quot;below-h2&quot;);d(&quot;div.updated, div.error&quot;).not(&quot;.below-h2&quot;).insertAfter(&quot;div.wrap h2:first&quot;);d(&quot;#doaction, #doaction2&quot;).click(function(){if(d('select[name=&quot;action&quot;]').val()==&quot;delete&quot;||d('select[name=&quot;action2&quot;]').val()==&quot;delete&quot;){return showNotice.warn()}});d(&quot;#show-settings-link&quot;).click(function(){if(!d(&quot;#screen-options-wrap&quot;).hasClass(&quot;screen-options-open&quot;)){d(&quot;#contextual-help-link-wrap&quot;).css(&quot;visibility&quot;,&quot;hidden&quot;)}d(&quot;#screen-options-wrap&quot;).slideToggle(&quot;fast&quot;,function(){if(d(this).hasClass(&quot;screen-options-open&quot;)){d(&quot;#show-settings-link&quot;).css({backgroundImage:'url(&quot;images/screen-options-right.gif&quot;)'});d(&quot;#contextual-help-link-wrap&quot;).css(&quot;visibility&quot;,&quot;&quot;);d(this).removeClass(&quot;screen-options-open&quot;)}else{d(&quot;#show-settings-link&quot;).css({backgroundImage:'url(&quot;images/screen-options-right-up.gif&quot;)'});d(this).addClass(&quot;screen-options-open&quot;)}});return false});d(&quot;#contextual-help-link&quot;).click(function(){if(!d(&quot;#contextual-help-wrap&quot;).hasClass(&quot;contextual-help-open&quot;)){d(&quot;#screen-options-link-wrap&quot;).css(&quot;visibility&quot;,&quot;hidden&quot;)}d(&quot;#contextual-help-wrap&quot;).slideToggle(&quot;fast&quot;,function(){if(d(this).hasClass(&quot;contextual-help-open&quot;)){d(&quot;#contextual-help-link&quot;).css({backgroundImage:'url(&quot;images/screen-options-right.gif&quot;)'});d(&quot;#screen-options-link-wrap&quot;).css(&quot;visibility&quot;,&quot;&quot;);d(this).removeClass(&quot;contextual-help-open&quot;)}else{d(&quot;#contextual-help-link&quot;).css({backgroundImage:'url(&quot;images/screen-options-right-up.gif&quot;)'});d(this).addClass(&quot;contextual-help-open&quot;)}});return false});d(&quot;#contextual-help-link-wrap, #screen-options-link-wrap&quot;).show();d(&quot;table:visible tbody .check-column :checkbox&quot;).click(function(g){if(&quot;undefined&quot;==g.shiftKey){return true}if(g.shiftKey){if(!f){return true}a=d(f).parents(&quot;form:first&quot;).find(&quot;:checkbox&quot;);e=a.index(f);c=a.index(this);b=d(this).attr(&quot;checked&quot;);if(0&lt;e&amp;&amp;0&lt;c&amp;&amp;e!=c){a.slice(e,c).attr(&quot;checked&quot;,function(){if(d(this).parents(&quot;tr&quot;).is(&quot;:visible&quot;)){return b?&quot;checked&quot;:&quot;&quot;}return&quot;&quot;})}}f=this;return true});d(&quot;thead :checkbox, tfoot :checkbox&quot;).click(function(i){var j=d(this).attr(&quot;checked&quot;),h=&quot;undefined&quot;==typeof toggleWithKeyboard?false:toggleWithKeyboard,g=i.shiftKey||h;d(this).parents(&quot;form:first&quot;).find(&quot;table tbody:visible&quot;).find(&quot;.check-column :checkbox&quot;).attr(&quot;checked&quot;,function(){if(d(this).parents(&quot;tr&quot;).is(&quot;:hidden&quot;)){return&quot;&quot;}if(g){return d(this).attr(&quot;checked&quot;)?&quot;&quot;:&quot;checked&quot;}else{if(j){return&quot;checked&quot;}}return&quot;&quot;});d(this).parents(&quot;form:first&quot;).find(&quot;table thead:visible, table tfoot:visible&quot;).find(&quot;.check-column :checkbox&quot;).attr(&quot;checked&quot;,function(){if(g){return&quot;&quot;}else{if(j){return&quot;checked&quot;}}return&quot;&quot;})});d(&quot;#default-password-nag-no&quot;).click(function(){setUserSetting(&quot;default_password_nag&quot;,&quot;hide&quot;);d(&quot;div.default-password-nag&quot;).hide();return false})});jQuery(document).ready(function(b){var a=b(&quot;.turbo-nag&quot;);if(!a.length||(&quot;undefined&quot;!=typeof(google)&amp;&amp;google.gears)){return}if(&quot;undefined&quot;!=typeof GearsFactory){return}else{try{if((&quot;undefined&quot;!=typeof window.ActiveXObject&amp;&amp;ActiveXObject(&quot;Gears.Factory&quot;))||(&quot;undefined&quot;!=typeof navigator.mimeTypes&amp;&amp;navigator.mimeTypes[&quot;application/x-googlegears&quot;])){return}}catch(c){}}a.show()});
</del><span class="cx">\ No newline at end of file
</span><ins>+var showNotice,adminMenu,columns,validateForm;(function(a){adminMenu={init:function(){a(&quot;#adminmenu div.wp-menu-toggle&quot;).each(function(){if(a(this).siblings(&quot;.wp-submenu&quot;).length){a(this).click(function(){adminMenu.toggle(a(this).siblings(&quot;.wp-submenu&quot;))})}else{a(this).hide()}});this.favorites();a(&quot;a.separator&quot;).click(function(){if(a(&quot;body&quot;).hasClass(&quot;folded&quot;)){adminMenu.fold(1);deleteUserSetting(&quot;mfold&quot;)}else{adminMenu.fold();setUserSetting(&quot;mfold&quot;,&quot;f&quot;)}return false});if(a(&quot;body&quot;).hasClass(&quot;folded&quot;)){this.fold()}this.restoreMenuState()},restoreMenuState:function(){a(&quot;#adminmenu li.wp-has-submenu&quot;).each(function(c,d){var b=getUserSetting(&quot;m&quot;+c);if(a(d).hasClass(&quot;wp-has-current-submenu&quot;)){return true}if(&quot;o&quot;==b){a(d).addClass(&quot;wp-menu-open&quot;)}else{if(&quot;c&quot;==b){a(d).removeClass(&quot;wp-menu-open&quot;)}}})},toggle:function(b){b.slideToggle(150,function(){b.css(&quot;display&quot;,&quot;&quot;)}).parent().toggleClass(&quot;wp-menu-open&quot;);a(&quot;#adminmenu li.wp-has-submenu&quot;).each(function(d,f){var c=a(f).hasClass(&quot;wp-menu-open&quot;)?&quot;o&quot;:&quot;c&quot;;setUserSetting(&quot;m&quot;+d,c)});return false},fold:function(b){if(b){a(&quot;body&quot;).removeClass(&quot;folded&quot;);a(&quot;#adminmenu li.wp-has-submenu&quot;).unbind()}else{a(&quot;body&quot;).addClass(&quot;folded&quot;);a(&quot;#adminmenu li.wp-has-submenu&quot;).hoverIntent({over:function(j){var d,c,g,k,i;d=a(this).find(&quot;.wp-submenu&quot;);c=d.parent().offset().top+d.height()+1;g=a(&quot;#wpwrap&quot;).height();k=60+c-g;i=a(window).height()+a(&quot;body&quot;).scrollTop()-15;if(i&lt;(c-k)){k=c-i}if(k&gt;1){d.css({marginTop:&quot;-&quot;+k+&quot;px&quot;})}else{if(d.css(&quot;marginTop&quot;)){d.css({marginTop:&quot;&quot;})}}d.addClass(&quot;sub-open&quot;)},out:function(){a(this).find(&quot;.wp-submenu&quot;).removeClass(&quot;sub-open&quot;).css({marginTop:&quot;&quot;})},timeout:220,sensitivity:8,interval:100})}},favorites:function(){a(&quot;#favorite-inside&quot;).width(a(&quot;#favorite-actions&quot;).width()-4);a(&quot;#favorite-toggle, #favorite-inside&quot;).bind(&quot;mouseenter&quot;,function(){a(&quot;#favorite-inside&quot;).removeClass(&quot;slideUp&quot;).addClass(&quot;slideDown&quot;);setTimeout(function(){if(a(&quot;#favorite-inside&quot;).hasClass(&quot;slideDown&quot;)){a(&quot;#favorite-inside&quot;).slideDown(100);a(&quot;#favorite-first&quot;).addClass(&quot;slide-down&quot;)}},200)});a(&quot;#favorite-toggle, #favorite-inside&quot;).bind(&quot;mouseleave&quot;,function(){a(&quot;#favorite-inside&quot;).removeClass(&quot;slideDown&quot;).addClass(&quot;slideUp&quot;);setTimeout(function(){if(a(&quot;#favorite-inside&quot;).hasClass(&quot;slideUp&quot;)){a(&quot;#favorite-inside&quot;).slideUp(100,function(){a(&quot;#favorite-first&quot;).removeClass(&quot;slide-down&quot;)})}},300)})}};a(document).ready(function(){adminMenu.init()});columns={init:function(){a(&quot;.hide-column-tog&quot;).click(function(){var c=a(this).val(),b=a(this).attr(&quot;checked&quot;);if(b){a(&quot;.column-&quot;+c).show()}else{a(&quot;.column-&quot;+c).hide()}columns.save_manage_columns_state()})},save_manage_columns_state:function(){var b=a(&quot;.manage-column&quot;).filter(&quot;:hidden&quot;).map(function(){return this.id}).get().join(&quot;,&quot;);a.post(ajaxurl,{action:&quot;hidden-columns&quot;,hidden:b,screenoptionnonce:a(&quot;#screenoptionnonce&quot;).val(),page:pagenow})}};a(document).ready(function(){columns.init()});validateForm=function(b){return !a(b).find(&quot;.form-required&quot;).filter(function(){return a(&quot;input:visible&quot;,this).val()==&quot;&quot;}).addClass(&quot;form-invalid&quot;).change(function(){a(this).removeClass(&quot;form-invalid&quot;)}).size()}})(jQuery);showNotice={warn:function(){var a=commonL10n.warnDelete||&quot;&quot;;if(confirm(a)){return true}return false},note:function(a){alert(a)}};jQuery(document).ready(function(d){var f=false,a,e,c,b;d(&quot;.fade&quot;).animate({backgroundColor:&quot;#ffffe0&quot;},300).animate({backgroundColor:&quot;#fffbcc&quot;},300).animate({backgroundColor:&quot;#ffffe0&quot;},300).animate({backgroundColor:&quot;#fffbcc&quot;},300);d(&quot;div.wrap h2 ~ div.updated, div.wrap h2 ~ div.error&quot;).addClass(&quot;below-h2&quot;);d(&quot;div.updated, div.error&quot;).not(&quot;.below-h2&quot;).insertAfter(&quot;div.wrap h2:first&quot;);d(&quot;#doaction, #doaction2&quot;).click(function(){if(d('select[name=&quot;action&quot;]').val()==&quot;destroy&quot;||d('select[name=&quot;action2&quot;]').val()==&quot;destroy&quot;){return showNotice.warn()}});d(&quot;#destroy_all, #destroy_all2&quot;).click(function(){return showNotice.warn()});d(&quot;#show-settings-link&quot;).click(function(){if(!d(&quot;#screen-options-wrap&quot;).hasClass(&quot;screen-options-open&quot;)){d(&quot;#contextual-help-link-wrap&quot;).css(&quot;visibility&quot;,&quot;hidden&quot;)}d(&quot;#screen-options-wrap&quot;).slideToggle(&quot;fast&quot;,function(){if(d(this).hasClass(&quot;screen-options-open&quot;)){d(&quot;#show-settings-link&quot;).css({backgroundImage:'url(&quot;images/screen-options-right.gif&quot;)'});d(&quot;#contextual-help-link-wrap&quot;).css(&quot;visibility&quot;,&quot;&quot;);d(this).removeClass(&quot;screen-options-open&quot;)}else{d(&quot;#show-settings-link&quot;).css({backgroundImage:'url(&quot;images/screen-options-right-up.gif&quot;)'});d(this).addClass(&quot;screen-options-open&quot;)}});return false});d(&quot;#contextual-help-link&quot;).click(function(){if(!d(&quot;#contextual-help-wrap&quot;).hasClass(&quot;contextual-help-open&quot;)){d(&quot;#screen-options-link-wrap&quot;).css(&quot;visibility&quot;,&quot;hidden&quot;)}d(&quot;#contextual-help-wrap&quot;).slideToggle(&quot;fast&quot;,function(){if(d(this).hasClass(&quot;contextual-help-open&quot;)){d(&quot;#contextual-help-link&quot;).css({backgroundImage:'url(&quot;images/screen-options-right.gif&quot;)'});d(&quot;#screen-options-link-wrap&quot;).css(&quot;visibility&quot;,&quot;&quot;);d(this).removeClass(&quot;contextual-help-open&quot;)}else{d(&quot;#contextual-help-link&quot;).css({backgroundImage:'url(&quot;images/screen-options-right-up.gif&quot;)'});d(this).addClass(&quot;contextual-help-open&quot;)}});return false});d(&quot;#contextual-help-link-wrap, #screen-options-link-wrap&quot;).show();d(&quot;table:visible tbody .check-column :checkbox&quot;).click(function(g){if(&quot;undefined&quot;==g.shiftKey){return true}if(g.shiftKey){if(!f){return true}a=d(f).parents(&quot;form:first&quot;).find(&quot;:checkbox&quot;);e=a.index(f);c=a.index(this);b=d(this).attr(&quot;checked&quot;);if(0&lt;e&amp;&amp;0&lt;c&amp;&amp;e!=c){a.slice(e,c).attr(&quot;checked&quot;,function(){if(d(this).parents(&quot;tr&quot;).is(&quot;:visible&quot;)){return b?&quot;checked&quot;:&quot;&quot;}return&quot;&quot;})}}f=this;return true});d(&quot;thead :checkbox, tfoot :checkbox&quot;).click(function(i){var j=d(this).attr(&quot;checked&quot;),h=&quot;undefined&quot;==typeof toggleWithKeyboard?false:toggleWithKeyboard,g=i.shiftKey||h;d(this).parents(&quot;form:first&quot;).find(&quot;table tbody:visible&quot;).find(&quot;.check-column :checkbox&quot;).attr(&quot;checked&quot;,function(){if(d(this).parents(&quot;tr&quot;).is(&quot;:hidden&quot;)){return&quot;&quot;}if(g){return d(this).attr(&quot;checked&quot;)?&quot;&quot;:&quot;checked&quot;}else{if(j){return&quot;checked&quot;}}return&quot;&quot;});d(this).parents(&quot;form:first&quot;).find(&quot;table thead:visible, table tfoot:visible&quot;).find(&quot;.check-column :checkbox&quot;).attr(&quot;checked&quot;,function(){if(g){return&quot;&quot;}else{if(j){return&quot;checked&quot;}}return&quot;&quot;})});d(&quot;#default-password-nag-no&quot;).click(function(){setUserSetting(&quot;default_password_nag&quot;,&quot;hide&quot;);d(&quot;div.default-password-nag&quot;).hide();return false})});jQuery(document).ready(function(b){var a=b(&quot;.turbo-nag&quot;);if(!a.length||(&quot;undefined&quot;!=typeof(google)&amp;&amp;google.gears)){return}if(&quot;undefined&quot;!=typeof GearsFactory){return}else{try{if((&quot;undefined&quot;!=typeof window.ActiveXObject&amp;&amp;ActiveXObject(&quot;Gears.Factory&quot;))||(&quot;undefined&quot;!=typeof navigator.mimeTypes&amp;&amp;navigator.mimeTypes[&quot;application/x-googlegears&quot;])){return}}catch(c){}}a.show()});
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkwpadminjseditcommentsdevjs"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/js/edit-comments.dev.js (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/edit-comments.dev.js        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/js/edit-comments.dev.js        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx">                 settings.data._page = pageInput.val();
</span><span class="cx">                 settings.data._url = document.location.href;
</span><span class="cx"> 
</span><del>-                if ( 'undefined' != showNotice &amp;&amp; settings.data.action &amp;&amp; settings.data.action == 'delete-comment' &amp;&amp; !settings.data.spam )
</del><ins>+                if ( 'undefined' != showNotice &amp;&amp; settings.data.action &amp;&amp; settings.data.action == 'delete-comment' &amp;&amp; settings.data.deleted)
</ins><span class="cx">                         return showNotice.warn() ? settings : false;
</span><span class="cx"> 
</span><span class="cx">                 return settings;
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">                         if ( isNaN(n) ) return;
</span><span class="cx">                         if ( $(settings.target).parents( 'span.spam' ).size() ) { // we marked a comment as spam
</span><span class="cx">                                 n = n + 1;
</span><del>-                        } else if ( $('#' + settings.element).is('.spam') ) { // we approved or deleted a comment marked as spam
</del><ins>+                        } else if ( $('#' + settings.element).is('.spam') ) { // we approved, deleted, or destroyed a comment marked as spam
</ins><span class="cx">                                 n = n - 1;
</span><span class="cx">                         }
</span><span class="cx">                         if ( n &lt; 0 ) { n = 0; }
</span><span class="lines">@@ -101,7 +101,26 @@
</span><span class="cx">                         a.html(n);
</span><span class="cx">                 });
</span><span class="cx"> 
</span><ins>+                $('span.deleted-count').each( function() {
+                        var a = $(this), n;
+                        n = a.html().replace(/[ ,.]+/g, '');
+                        n = parseInt(n,10);
+                        if ( isNaN(n) ) return;
+                        if ( $(settings.target).parents( 'span.delete' ).size() &amp;&amp; $('#' + settings.element).is('.deleted,.spam') ) { // we destroyed a deleted or spam comment
+                                n--;
+                        } else if ( $(settings.target).parents( 'span.delete' ).size() ) { // we deleted a comment
+                                n++;
+                        } else if ( $('#' + settings.element).is('.deleted') ) { // we approved or spammed a deleted comment
+                                n--;
+                        }
+                        if ( n &lt; 0 ) { n = 0; }
+                        n = n.toString();
+                        if ( n.length &gt; 3 )
+                                n = n.substr(0, n.length-3)+' '+n.substr(-3);
+                        a.html(n);
+                });
</ins><span class="cx"> 
</span><ins>+
</ins><span class="cx">                 // XML response
</span><span class="cx">                 if ( ( 'object' == typeof r ) &amp;&amp; lastConfidentTime &lt; settings.parsed.responses[0].supplemental.time ) {
</span><span class="cx">                         // Set the total to the known good value (even if this value is a little old, newer values should only be a few less, and so shouldn't mess up the page links)
</span></span></pre></div>
<a id="trunkwpadminjseditcommentsjs"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/js/edit-comments.js (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/edit-comments.js        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/js/edit-comments.js        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -1 +1 @@
</span><del>-var theList,theExtraList,toggleWithKeyboard=false;(function(a){setCommentsList=function(){var g,i,h,f=0,c,e,d,b;g=a('#comments-form .tablenav :input[name=&quot;_total&quot;]');i=a('#comments-form .tablenav :input[name=&quot;_per_page&quot;]');h=a('#comments-form .tablenav :input[name=&quot;_page&quot;]');c=function(k,j){var l=a(&quot;#&quot;+j.element);if(l.is(&quot;.unapproved&quot;)){l.find(&quot;div.comment_status&quot;).html(&quot;0&quot;)}else{l.find(&quot;div.comment_status&quot;).html(&quot;1&quot;)}a(&quot;span.pending-count&quot;).each(function(){var m=a(this),o;o=m.html().replace(/[ ,.]+/g,&quot;&quot;);o=parseInt(o,10);if(isNaN(o)){return}o=o+(a(&quot;#&quot;+j.element).is(&quot;.&quot;+j.dimClass)?1:-1);if(o&lt;0){o=0}m.parents(&quot;#awaiting-mod&quot;)[0==o?&quot;addClass&quot;:&quot;removeClass&quot;](&quot;count-0&quot;);o=o.toString();if(o.length&gt;3){o=o.substr(0,o.length-3)+&quot; &quot;+o.substr(-3)}m.html(o)})};e=function(j){j.data._total=g.val();j.data._per_page=i.val();j.data._page=h.val();j.data._url=document.location.href;if(&quot;undefined&quot;!=showNotice&amp;&amp;j.data.action&amp;&amp;j.data.action==&quot;delete-comment&quot;&amp;&amp;!j.data.spam){return showNotice.warn()?j:false}return j};d=function(j,k,l){if(k&lt;f){return}g.val(j.toString());if(l){f=k}a(&quot;span.total-type-count&quot;).each(function(){var m=a(this),o;o=g.val().toString();if(o.length&gt;3){o=o.substr(0,o.length-3)+&quot; &quot;+o.substr(-3)}m.html(o)})};b=function(l,j){a(&quot;span.pending-count&quot;).each(function(){var m=a(this),o;o=m.html().replace(/[ ,.]+/g,&quot;&quot;);o=parseInt(o,10);if(isNaN(o)){return}if(a(&quot;#&quot;+j.element).is(&quot;.unapproved&quot;)){o=o-1}else{if(a(j.target).parents(&quot;span.unapprove&quot;).size()){o=o+1}}if(o&lt;0){o=0}m.parents(&quot;#awaiting-mod&quot;)[0==o?&quot;addClass&quot;:&quot;removeClass&quot;](&quot;count-0&quot;);o=o.toString();if(o.length&gt;3){o=o.substr(0,o.length-3)+&quot; &quot;+o.substr(-3)}m.html(o)});a(&quot;span.spam-count&quot;).each(function(){var m=a(this),o;o=m.html().replace(/[ ,.]+/g,&quot;&quot;);o=parseInt(o,10);if(isNaN(o)){return}if(a(j.target).parents(&quot;span.spam&quot;).size()){o=o+1}else{if(a(&quot;#&quot;+j.element).is(&quot;.spam&quot;)){o=o-1}}if(o&lt;0){o=0}o=o.toString();if(o.length&gt;3){o=o.substr(0,o.length-3)+&quot; &quot;+o.substr(-3)}m.html(o)});if((&quot;object&quot;==typeof l)&amp;&amp;f&lt;j.parsed.responses[0].supplemental.time){d(j.parsed.responses[0].supplemental.total,j.parsed.responses[0].supplemental.time,true);if(a.trim(j.parsed.responses[0].supplemental.pageLinks)){a(&quot;.tablenav-pages&quot;).find(&quot;.page-numbers&quot;).remove().end().append(a(j.parsed.responses[0].supplemental.pageLinks))}else{if(&quot;undefined&quot;!=typeof j.parsed.responses[0].supplemental.pageLinks){a(&quot;.tablenav-pages&quot;).find(&quot;.page-numbers&quot;).remove()}}}else{var k=parseInt(g.val(),10);if(k--&lt;0){k=0}d(k,l,false)}if(theExtraList.size()==0||theExtraList.children().size()==0){return}theList.get(0).wpList.add(theExtraList.children(&quot;:eq(0)&quot;).remove().clone());a(&quot;#get-extra-comments&quot;).submit()};theExtraList=a(&quot;#the-extra-comment-list&quot;).wpList({alt:&quot;&quot;,delColor:&quot;none&quot;,addColor:&quot;none&quot;});theList=a(&quot;#the-comment-list&quot;).wpList({alt:&quot;&quot;,delBefore:e,dimAfter:c,delAfter:b,addColor:&quot;none&quot;})};commentReply={init:function(){var b=a(&quot;#replyrow&quot;);a(&quot;a.cancel&quot;,b).click(function(){return commentReply.revert()});a(&quot;a.save&quot;,b).click(function(){return commentReply.send()});a(&quot;input#author, input#author-email, input#author-url&quot;,b).keypress(function(c){if(c.which==13){commentReply.send();c.preventDefault();return false}});a(&quot;#the-comment-list .column-comment &gt; p&quot;).dblclick(function(){commentReply.toggle(a(this).parent())});a(&quot;#doaction, #doaction2, #post-query-submit&quot;).click(function(c){if(a(&quot;#the-comment-list #replyrow&quot;).length&gt;0){commentReply.close()}});this.comments_listing=a('#comments-form &gt; input[name=&quot;comment_status&quot;]').val()||&quot;&quot;},addEvents:function(b){b.each(function(){a(this).find(&quot;.column-comment &gt; p&quot;).dblclick(function(){commentReply.toggle(a(this).parent())})})},toggle:function(b){if(a(b).css(&quot;display&quot;)!=&quot;none&quot;){a(b).find(&quot;a.vim-q&quot;).click()}},revert:function(){if(a(&quot;#the-comment-list #replyrow&quot;).length&lt;1){return false}a(&quot;#replyrow&quot;).fadeOut(&quot;fast&quot;,function(){commentReply.close()});return false},close:function(){a(this.o).fadeIn(&quot;fast&quot;).css(&quot;backgroundColor&quot;,&quot;&quot;);a(&quot;#com-reply&quot;).append(a(&quot;#replyrow&quot;));a(&quot;#replycontent&quot;).val(&quot;&quot;);a(&quot;#edithead input&quot;).val(&quot;&quot;);a(&quot;#replysubmit .error&quot;).html(&quot;&quot;).hide();a(&quot;#replysubmit .waiting&quot;).hide();if(a.browser.msie){a(&quot;#replycontainer, #replycontent&quot;).css(&quot;height&quot;,&quot;120px&quot;)}else{a(&quot;#replycontainer&quot;).resizable(&quot;destroy&quot;).css(&quot;height&quot;,&quot;120px&quot;)}},open:function(i,g,c){var e=this,d,b,f;e.close();e.o=&quot;#comment-&quot;+i;a(&quot;#replyrow td&quot;).attr(&quot;colspan&quot;,a(&quot;.widefat thead th:visible&quot;).length);d=a(&quot;#replyrow&quot;),rowData=a(&quot;#inline-&quot;+i);b=e.act=(c==&quot;edit&quot;)?&quot;edit-comment&quot;:&quot;replyto-comment&quot;;a(&quot;#action&quot;,d).val(b);a(&quot;#comment_post_ID&quot;,d).val(g);a(&quot;#comment_ID&quot;,d).val(i);if(c==&quot;edit&quot;){a(&quot;#author&quot;,d).val(a(&quot;div.author&quot;,rowData).text());a(&quot;#author-email&quot;,d).val(a(&quot;div.author-email&quot;,rowData).text());a(&quot;#author-url&quot;,d).val(a(&quot;div.author-url&quot;,rowData).text());a(&quot;#status&quot;,d).val(a(&quot;div.comment_status&quot;,rowData).text());a(&quot;#replycontent&quot;,d).val(a(&quot;textarea.comment&quot;,rowData).val());a(&quot;#edithead, #savebtn&quot;,d).show();a(&quot;#replyhead, #replybtn&quot;,d).hide();f=a(e.o).height();if(f&gt;220){if(a.browser.msie){a(&quot;#replycontainer, #replycontent&quot;,d).height(f-105)}else{a(&quot;#replycontainer&quot;,d).height(f-105)}}a(e.o).after(d.hide()).fadeOut(&quot;fast&quot;,function(){a(&quot;#replyrow&quot;).fadeIn(&quot;fast&quot;)})}else{a(&quot;#edithead, #savebtn&quot;,d).hide();a(&quot;#replyhead, #replybtn&quot;,d).show();a(e.o).after(d);a(&quot;#replyrow&quot;).hide().fadeIn(&quot;fast&quot;)}if(!a.browser.msie){a(&quot;#replycontainer&quot;).resizable({handles:&quot;s&quot;,axis:&quot;y&quot;,minHeight:80,stop:function(){a(&quot;#replycontainer&quot;).width(&quot;auto&quot;)}})}setTimeout(function(){var l,j,m,h,k;l=a(&quot;#replyrow&quot;).offset().top;j=l+a(&quot;#replyrow&quot;).height();m=window.pageYOffset||document.documentElement.scrollTop;h=document.documentElement.clientHeight||self.innerHeight||0;k=m+h;if(k-20&lt;j){window.scroll(0,j-h+35)}else{if(l-20&lt;m){window.scroll(0,l-35)}}a(&quot;#replycontent&quot;).focus().keyup(function(n){if(n.which==27){commentReply.revert()}})},600);return false},send:function(){var b={};a(&quot;#replysubmit .waiting&quot;).show();a(&quot;#replyrow input&quot;).each(function(){b[a(this).attr(&quot;name&quot;)]=a(this).val()});b.content=a(&quot;#replycontent&quot;).val();b.id=b.comment_post_ID;b.comments_listing=this.comments_listing;a.ajax({type:&quot;POST&quot;,url:wpListL10n.url,data:b,success:function(c){commentReply.show(c)},error:function(c){commentReply.error(c)}});return false},show:function(b){var e,g,f,d;if(typeof(b)==&quot;string&quot;){this.error({responseText:b});return false}e=wpAjax.parseAjaxResponse(b);if(e.errors){this.error({responseText:wpAjax.broken});return false}if(&quot;edit-comment&quot;==this.act){a(this.o).remove()}e=e.responses[0];g=e.data;a(g).hide();a(&quot;#replyrow&quot;).after(g);this.o=f=&quot;#comment-&quot;+e.id;this.revert();this.addEvents(a(f));d=a(f).hasClass(&quot;unapproved&quot;)?&quot;#ffffe0&quot;:&quot;#fff&quot;;a(f).animate({backgroundColor:&quot;#CCEEBB&quot;},600).animate({backgroundColor:d},600);a.fn.wpList.process(a(f))},error:function(b){var c=b.statusText;a(&quot;#replysubmit .waiting&quot;).hide();if(b.responseText){c=b.responseText.replace(/&lt;.[^&lt;&gt;]*?&gt;/g,&quot;&quot;)}if(c){a(&quot;#replysubmit .error&quot;).html(c).show()}}};a(document).ready(function(){var e,b,c,d;setCommentsList();commentReply.init();a(&quot;span.delete a.delete&quot;).click(function(){return false});if(typeof QTags!=&quot;undefined&quot;){ed_reply=new QTags(&quot;ed_reply&quot;,&quot;replycontent&quot;,&quot;replycontainer&quot;,&quot;more&quot;)}if(typeof a.table_hotkeys!=&quot;undefined&quot;){e=function(f){return function(){var h,g;h=&quot;next&quot;==f?&quot;first&quot;:&quot;last&quot;;g=a(&quot;.&quot;+f+&quot;.page-numbers&quot;);if(g.length){window.location=g[0].href.replace(/\&amp;hotkeys_highlight_(first|last)=1/g,&quot;&quot;)+&quot;&amp;hotkeys_highlight_&quot;+h+&quot;=1&quot;}}};b=function(g,f){window.location=a(&quot;span.edit a&quot;,f).attr(&quot;href&quot;)};c=function(){toggleWithKeyboard=true;a(&quot;#comments-form thead #cb input:checkbox&quot;).click().attr(&quot;checked&quot;,&quot;&quot;);toggleWithKeyboard=false};d=function(f){return function(h,g){a(&quot;option[value=&quot;+f+&quot;]&quot;).attr(&quot;selected&quot;,&quot;selected&quot;);a(&quot;form#comments-form&quot;)[0].submit()}};a.table_hotkeys(a(&quot;table.widefat&quot;),[&quot;a&quot;,&quot;u&quot;,&quot;s&quot;,&quot;d&quot;,&quot;r&quot;,&quot;q&quot;,[&quot;e&quot;,b],[&quot;shift+a&quot;,d(&quot;approve&quot;)],[&quot;shift+s&quot;,d(&quot;markspam&quot;)],[&quot;shift+d&quot;,d(&quot;delete&quot;)],[&quot;shift+x&quot;,c],[&quot;shift+u&quot;,d(&quot;unapprove&quot;)]],{highlight_first:adminCommentsL10n.hotkeys_highlight_first,highlight_last:adminCommentsL10n.hotkeys_highlight_last,prev_page_link_cb:e(&quot;prev&quot;),next_page_link_cb:e(&quot;next&quot;)})}})})(jQuery);
</del><span class="cx">\ No newline at end of file
</span><ins>+var theList,theExtraList,toggleWithKeyboard=false;(function(a){setCommentsList=function(){var g,i,h,f=0,c,e,d,b;g=a('#comments-form .tablenav :input[name=&quot;_total&quot;]');i=a('#comments-form .tablenav :input[name=&quot;_per_page&quot;]');h=a('#comments-form .tablenav :input[name=&quot;_page&quot;]');c=function(k,j){var l=a(&quot;#&quot;+j.element);if(l.is(&quot;.unapproved&quot;)){l.find(&quot;div.comment_status&quot;).html(&quot;0&quot;)}else{l.find(&quot;div.comment_status&quot;).html(&quot;1&quot;)}a(&quot;span.pending-count&quot;).each(function(){var m=a(this),o;o=m.html().replace(/[ ,.]+/g,&quot;&quot;);o=parseInt(o,10);if(isNaN(o)){return}o=o+(a(&quot;#&quot;+j.element).is(&quot;.&quot;+j.dimClass)?1:-1);if(o&lt;0){o=0}m.parents(&quot;#awaiting-mod&quot;)[0==o?&quot;addClass&quot;:&quot;removeClass&quot;](&quot;count-0&quot;);o=o.toString();if(o.length&gt;3){o=o.substr(0,o.length-3)+&quot; &quot;+o.substr(-3)}m.html(o)})};e=function(j){j.data._total=g.val();j.data._per_page=i.val();j.data._page=h.val();j.data._url=document.location.href;if(&quot;undefined&quot;!=showNotice&amp;&amp;j.data.action&amp;&amp;j.data.action==&quot;delete-comment&quot;&amp;&amp;j.data.deleted){return showNotice.warn()?j:false}return j};d=function(j,k,l){if(k&lt;f){return}g.val(j.toString());if(l){f=k}a(&quot;span.total-type-count&quot;).each(function(){var m=a(this),o;o=g.val().toString();if(o.length&gt;3){o=o.substr(0,o.length-3)+&quot; &quot;+o.substr(-3)}m.html(o)})};b=function(l,j){a(&quot;span.pending-count&quot;).each(function(){var m=a(this),o;o=m.html().replace(/[ ,.]+/g,&quot;&quot;);o=parseInt(o,10);if(isNaN(o)){return}if(a(&quot;#&quot;+j.element).is(&quot;.unapproved&quot;)){o=o-1}else{if(a(j.target).parents(&quot;span.unapprove&quot;).size()){o=o+1}}if(o&lt;0){o=0}m.parents(&quot;#awaiting-mod&quot;)[0==o?&quot;addClass&quot;:&quot;removeClass&quot;](&quot;count-0&quot;);o=o.toString();if(o.length&gt;3){o=o.substr(0,o.length-3)+&quot; &quot;+o.substr(-3)}m.html(o)});a(&quot;span.spam-count&quot;).each(function(){var m=a(this),o;o=m.html().replace(/[ ,.]+/g,&quot;&quot;);o=parseInt(o,10);if(isNaN(o)){return}if(a(j.target).parents(&quot;span.spam&quot;).size()){o=o+1}else{if(a(&quot;#&quot;+j.element).is(&quot;.spam&quot;)){o=o-1}}if(o&lt;0){o=0}o=o.toString();if(o.length&gt;3){o=o.substr(0,o.length-3)+&quot; &quot;+o.substr(-3)}m.html(o)});a(&quot;span.deleted-count&quot;).each(function(){var m=a(this),o;o=m.html().replace(/[ ,.]+/g,&quot;&quot;);o=parseInt(o,10);if(isNaN(o)){return}if(a(j.target).parents(&quot;span.delete&quot;).size()&amp;&amp;a(&quot;#&quot;+j.element).is(&quot;.deleted,.spam&quot;)){o--}else{if(a(j.target).parents(&quot;span.delete&quot;).size()){o++}else{if(a(&quot;#&quot;+j.element).is(&quot;.deleted&quot;)){o--}}}if(o&lt;0){o=0}o=o.toString();if(o.length&gt;3){o=o.substr(0,o.length-3)+&quot; &quot;+o.substr(-3)}m.html(o)});if((&quot;object&quot;==typeof l)&amp;&amp;f&lt;j.parsed.responses[0].supplemental.time){d(j.parsed.responses[0].supplemental.total,j.parsed.responses[0].supplemental.time,true);if(a.trim(j.parsed.responses[0].supplemental.pageLinks)){a(&quot;.tablenav-pages&quot;).find(&quot;.page-numbers&quot;).remove().end().append(a(j.parsed.responses[0].supplemental.pageLinks))}else{if(&quot;undefined&quot;!=typeof j.parsed.responses[0].supplemental.pageLinks){a(&quot;.tablenav-pages&quot;).find(&quot;.page-numbers&quot;).remove()}}}else{var k=parseInt(g.val(),10);if(k--&lt;0){k=0}d(k,l,false)}if(theExtraList.size()==0||theExtraList.children().size()==0){return}theList.get(0).wpList.add(theExtraList.children(&quot;:eq(0)&quot;).remove().clone());a(&quot;#get-extra-comments&quot;).submit()};theExtraList=a(&quot;#the-extra-comment-list&quot;).wpList({alt:&quot;&quot;,delColor:&quot;none&quot;,addColor:&quot;none&quot;});theList=a(&quot;#the-comment-list&quot;).wpList({alt:&quot;&quot;,delBefore:e,dimAfter:c,delAfter:b,addColor:&quot;none&quot;})};commentReply={init:function(){var b=a(&quot;#replyrow&quot;);a(&quot;a.cancel&quot;,b).click(function(){return commentReply.revert()});a(&quot;a.save&quot;,b).click(function(){return commentReply.send()});a(&quot;input#author, input#author-email, input#author-url&quot;,b).keypress(function(c){if(c.which==13){commentReply.send();c.preventDefault();return false}});a(&quot;#the-comment-list .column-comment &gt; p&quot;).dblclick(function(){commentReply.toggle(a(this).parent())});a(&quot;#doaction, #doaction2, #post-query-submit&quot;).click(function(c){if(a(&quot;#the-comment-list #replyrow&quot;).length&gt;0){commentReply.close()}});this.comments_listing=a('#comments-form &gt; input[name=&quot;comment_status&quot;]').val()||&quot;&quot;},addEvents:function(b){b.each(function(){a(this).find(&quot;.column-comment &gt; p&quot;).dblclick(function(){commentReply.toggle(a(this).parent())})})},toggle:function(b){if(a(b).css(&quot;display&quot;)!=&quot;none&quot;){a(b).find(&quot;a.vim-q&quot;).click()}},revert:function(){if(a(&quot;#the-comment-list #replyrow&quot;).length&lt;1){return false}a(&quot;#replyrow&quot;).fadeOut(&quot;fast&quot;,function(){commentReply.close()});return false},close:function(){a(this.o).fadeIn(&quot;fast&quot;).css(&quot;backgroundColor&quot;,&quot;&quot;);a(&quot;#com-reply&quot;).append(a(&quot;#replyrow&quot;));a(&quot;#replycontent&quot;).val(&quot;&quot;);a(&quot;#edithead input&quot;).val(&quot;&quot;);a(&quot;#replysubmit .error&quot;).html(&quot;&quot;).hide();a(&quot;#replysubmit .waiting&quot;).hide();if(a.browser.msie){a(&quot;#replycontainer, #replycontent&quot;).css(&quot;height&quot;,&quot;120px&quot;)}else{a(&quot;#replycontainer&quot;).resizable(&quot;destroy&quot;).css(&quot;height&quot;,&quot;120px&quot;)}},open:function(i,g,c){var e=this,d,b,f;e.close();e.o=&quot;#comment-&quot;+i;a(&quot;#replyrow td&quot;).attr(&quot;colspan&quot;,a(&quot;.widefat thead th:visible&quot;).length);d=a(&quot;#replyrow&quot;),rowData=a(&quot;#inline-&quot;+i);b=e.act=(c==&quot;edit&quot;)?&quot;edit-comment&quot;:&quot;replyto-comment&quot;;a(&quot;#action&quot;,d).val(b);a(&quot;#comment_post_ID&quot;,d).val(g);a(&quot;#comment_ID&quot;,d).val(i);if(c==&quot;edit&quot;){a(&quot;#author&quot;,d).val(a(&quot;div.author&quot;,rowData).text());a(&quot;#author-email&quot;,d).val(a(&quot;div.author-email&quot;,rowData).text());a(&quot;#author-url&quot;,d).val(a(&quot;div.author-url&quot;,rowData).text());a(&quot;#status&quot;,d).val(a(&quot;div.comment_status&quot;,rowData).text());a(&quot;#replycontent&quot;,d).val(a(&quot;textarea.comment&quot;,rowData).val());a(&quot;#edithead, #savebtn&quot;,d).show();a(&quot;#replyhead, #replybtn&quot;,d).hide();f=a(e.o).height();if(f&gt;220){if(a.browser.msie){a(&quot;#replycontainer, #replycontent&quot;,d).height(f-105)}else{a(&quot;#replycontainer&quot;,d).height(f-105)}}a(e.o).after(d.hide()).fadeOut(&quot;fast&quot;,function(){a(&quot;#replyrow&quot;).fadeIn(&quot;fast&quot;)})}else{a(&quot;#edithead, #savebtn&quot;,d).hide();a(&quot;#replyhead, #replybtn&quot;,d).show();a(e.o).after(d);a(&quot;#replyrow&quot;).hide().fadeIn(&quot;fast&quot;)}if(!a.browser.msie){a(&quot;#replycontainer&quot;).resizable({handles:&quot;s&quot;,axis:&quot;y&quot;,minHeight:80,stop:function(){a(&quot;#replycontainer&quot;).width(&quot;auto&quot;)}})}setTimeout(function(){var l,j,m,h,k;l=a(&quot;#replyrow&quot;).offset().top;j=l+a(&quot;#replyrow&quot;).height();m=window.pageYOffset||document.documentElement.scrollTop;h=document.documentElement.clientHeight||self.innerHeight||0;k=m+h;if(k-20&lt;j){window.scroll(0,j-h+35)}else{if(l-20&lt;m){window.scroll(0,l-35)}}a(&quot;#replycontent&quot;).focus().keyup(function(n){if(n.which==27){commentReply.revert()}})},600);return false},send:function(){var b={};a(&quot;#replysubmit .waiting&quot;).show();a(&quot;#replyrow input&quot;).each(function(){b[a(this).attr(&quot;name&quot;)]=a(this).val()});b.content=a(&quot;#replycontent&quot;).val();b.id=b.comment_post_ID;b.comments_listing=this.comments_listing;a.ajax({type:&quot;POST&quot;,url:wpListL10n.url,data:b,success:function(c){commentReply.show(c)},error:function(c){commentReply.error(c)}});return false},show:function(b){var e,g,f,d;if(typeof(b)==&quot;string&quot;){this.error({responseText:b});return false}e=wpAjax.parseAjaxResponse(b);if(e.errors){this.error({responseText:wpAjax.broken});return false}if(&quot;edit-comment&quot;==this.act){a(this.o).remove()}e=e.responses[0];g=e.data;a(g).hide();a(&quot;#replyrow&quot;).after(g);this.o=f=&quot;#comment-&quot;+e.id;this.revert();this.addEvents(a(f));d=a(f).hasClass(&quot;unapproved&quot;)?&quot;#ffffe0&quot;:&quot;#fff&quot;;a(f).animate({backgroundColor:&quot;#CCEEBB&quot;},600).animate({backgroundColor:d},600);a.fn.wpList.process(a(f))},error:function(b){var c=b.statusText;a(&quot;#replysubmit .waiting&quot;).hide();if(b.responseText){c=b.responseText.replace(/&lt;.[^&lt;&gt;]*?&gt;/g,&quot;&quot;)}if(c){a(&quot;#replysubmit .error&quot;).html(c).show()}}};a(document).ready(function(){var e,b,c,d;setCommentsList();commentReply.init();a(&quot;span.delete a.delete&quot;).click(function(){return false});if(typeof QTags!=&quot;undefined&quot;){ed_reply=new QTags(&quot;ed_reply&quot;,&quot;replycontent&quot;,&quot;replycontainer&quot;,&quot;more&quot;)}if(typeof a.table_hotkeys!=&quot;undefined&quot;){e=function(f){return function(){var h,g;h=&quot;next&quot;==f?&quot;first&quot;:&quot;last&quot;;g=a(&quot;.&quot;+f+&quot;.page-numbers&quot;);if(g.length){window.location=g[0].href.replace(/\&amp;hotkeys_highlight_(first|last)=1/g,&quot;&quot;)+&quot;&amp;hotkeys_highlight_&quot;+h+&quot;=1&quot;}}};b=function(g,f){window.location=a(&quot;span.edit a&quot;,f).attr(&quot;href&quot;)};c=function(){toggleWithKeyboard=true;a(&quot;#comments-form thead #cb input:checkbox&quot;).click().attr(&quot;checked&quot;,&quot;&quot;);toggleWithKeyboard=false};d=function(f){return function(h,g){a(&quot;option[value=&quot;+f+&quot;]&quot;).attr(&quot;selected&quot;,&quot;selected&quot;);a(&quot;form#comments-form&quot;)[0].submit()}};a.table_hotkeys(a(&quot;table.widefat&quot;),[&quot;a&quot;,&quot;u&quot;,&quot;s&quot;,&quot;d&quot;,&quot;r&quot;,&quot;q&quot;,[&quot;e&quot;,b],[&quot;shift+a&quot;,d(&quot;approve&quot;)],[&quot;shift+s&quot;,d(&quot;markspam&quot;)],[&quot;shift+d&quot;,d(&quot;delete&quot;)],[&quot;shift+x&quot;,c],[&quot;shift+u&quot;,d(&quot;unapprove&quot;)]],{highlight_first:adminCommentsL10n.hotkeys_highlight_first,highlight_last:adminCommentsL10n.hotkeys_highlight_last,prev_page_link_cb:e(&quot;prev&quot;),next_page_link_cb:e(&quot;next&quot;)})}})})(jQuery);
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkwpadminwpadmincss"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/wp-admin.css (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/wp-admin.css        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-admin/wp-admin.css        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -444,7 +444,7 @@
</span><span class="cx">         display: none;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-.unapproved .approve, .spam .approve {
</del><ins>+.unapproved .approve, .spam .approve, .deleted .approve {
</ins><span class="cx">         display: inline;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkwpincludescommentphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/comment.php (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/comment.php        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-includes/comment.php        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -208,6 +208,8 @@
</span><span class="cx">                 $approved = &quot;comment_approved = '1'&quot;;
</span><span class="cx">         elseif ( 'spam' == $status )
</span><span class="cx">                 $approved = &quot;comment_approved = 'spam'&quot;;
</span><ins>+        elseif ( 'deleted' == $status )
+                $approved = &quot;comment_approved = 'deleted'&quot;;
</ins><span class="cx">         else
</span><span class="cx">                 $approved = &quot;( comment_approved = '0' OR comment_approved = '1' )&quot;;
</span><span class="cx"> 
</span><span class="lines">@@ -699,7 +701,7 @@
</span><span class="cx">         $count = $wpdb-&gt;get_results( &quot;SELECT comment_approved, COUNT( * ) AS num_comments FROM {$wpdb-&gt;comments} {$where} GROUP BY comment_approved&quot;, ARRAY_A );
</span><span class="cx"> 
</span><span class="cx">         $total = 0;
</span><del>-        $approved = array('0' =&gt; 'moderated', '1' =&gt; 'approved', 'spam' =&gt; 'spam');
</del><ins>+        $approved = array('0' =&gt; 'moderated', '1' =&gt; 'approved', 'spam' =&gt; 'spam', 'deleted' =&gt; 'deleted');
</ins><span class="cx">         $known_types = array_keys( $approved );
</span><span class="cx">         foreach( (array) $count as $row_num =&gt; $row ) {
</span><span class="cx">                 $total += $row['num_comments'];
</span><span class="lines">@@ -735,8 +737,13 @@
</span><span class="cx">  * @return bool False if delete comment query failure, true on success.
</span><span class="cx">  */
</span><span class="cx"> function wp_delete_comment($comment_id) {
</span><ins>+        if (wp_get_comment_status($comment_id) != 'deleted' &amp;&amp; wp_get_comment_status($comment_id) != 'spam')
+                return wp_set_comment_status($comment_id, 'delete');
+        
</ins><span class="cx">         global $wpdb;
</span><span class="cx">         do_action('delete_comment', $comment_id);
</span><ins>+        
+        wp_unschedule_comment_destruction($comment_id);
</ins><span class="cx"> 
</span><span class="cx">         $comment = get_comment($comment_id);
</span><span class="cx"> 
</span><span class="lines">@@ -784,6 +791,8 @@
</span><span class="cx">                 return 'unapproved';
</span><span class="cx">         elseif ( $approved == 'spam' )
</span><span class="cx">                 return 'spam';
</span><ins>+        elseif ( $approved == 'deleted' )
+                return 'deleted';
</ins><span class="cx">         else
</span><span class="cx">                 return false;
</span><span class="cx"> }
</span><span class="lines">@@ -1028,7 +1037,8 @@
</span><span class="cx">  */
</span><span class="cx"> function wp_set_comment_status($comment_id, $comment_status, $wp_error = false) {
</span><span class="cx">         global $wpdb;
</span><del>-
</del><ins>+        wp_unschedule_comment_destruction($comment_id);
+        
</ins><span class="cx">         $status = '0';
</span><span class="cx">         switch ( $comment_status ) {
</span><span class="cx">                 case 'hold':
</span><span class="lines">@@ -1045,7 +1055,10 @@
</span><span class="cx">                         $status = 'spam';
</span><span class="cx">                         break;
</span><span class="cx">                 case 'delete':
</span><del>-                        return wp_delete_comment($comment_id);
</del><ins>+                        if (wp_get_comment_status($comment_id) == 'deleted' || wp_get_comment_status($comment_id) == 'spam')
+                                return wp_delete_comment($comment_id);
+                        $status = 'deleted';
+                        wp_schedule_comment_destruction($comment_id);
</ins><span class="cx">                         break;
</span><span class="cx">                 default:
</span><span class="cx">                         return false;
</span><span class="lines">@@ -1071,6 +1084,42 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><ins>+ * Schedules a comment for destruction in 30 days.
+ * 
+ * @since 2.9.0
+ * 
+ * @param int $comment_id Comment ID.
+ * @return void
+ */
+function wp_schedule_comment_destruction($comment_id) {
+        $to_destroy = get_option('to_destroy');
+        if (!is_array($to_destroy))
+                $to_destroy = array();
+        
+        $to_destroy['comments'][$comment_id] = time();
+        
+        update_option('to_destroy', $to_destroy);
+}
+
+/**
+ * Unschedules a comment for destruction.
+ * 
+ * @since 2.9.0
+ * 
+ * @param int $comment_id Comment ID.
+ * @return void
+ */
+function wp_unschedule_comment_destruction($comment_id) {
+        $to_destroy = get_option('to_destroy');
+        if (!is_array($to_destroy))
+                return;
+        
+        unset($to_destroy['comments'][$comment_id]);
+        
+        update_option('to_destroy', $to_destroy);
+}
+
+/**
</ins><span class="cx">  * Updates an existing comment in the database.
</span><span class="cx">  *
</span><span class="cx">  * Filters the comment and makes sure certain fields are valid before updating.
</span></span></pre></div>
<a id="trunkwpincludespluggablephp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/pluggable.php (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/pluggable.php        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-includes/pluggable.php        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -1767,4 +1767,32 @@
</span><span class="cx"> }
</span><span class="cx"> endif;
</span><span class="cx"> 
</span><del>-?&gt;
</del><ins>+/**
+ * Destroys comments which have previously been scheduled for destruction.
+ * Will do the same for posts, pages, etc in the future.
+ * 
+ * @access private
+ * @since 2.9.0
+ *
+ * @return void
+ */
+function _scheduled_destruction() {
+        $to_destroy = get_option('to_destroy');
+        if (!is_array($to_destroy))
+                return;
+
+        $deletetimestamp = time()-(60*60*24*30);
+        foreach ($to_destroy['comments'] as $comment_id =&gt; $timestamp) {
+                if ($timestamp &lt; $deletetimestamp) {
+                        wp_delete_comment($comment_id);
+                        unset($to_destroy['comments'][$comment_id]);
+                }
+        }
+
+        update_option('to_destroy', $to_destroy);
+}
+add_action( '_scheduled_destruction', '_scheduled_destruction' );
+if ( !wp_next_scheduled('_scheduled_destruction') &amp;&amp; !defined('WP_INSTALLING') )
+        wp_schedule_event(time(), 'daily', '_scheduled_destruction');
+
+
</ins></span></pre></div>
<a id="trunkwpincludesscriptloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/script-loader.php (11730 => 11731)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/script-loader.php        2009-07-20 04:35:11 UTC (rev 11730)
+++ trunk/wp-includes/script-loader.php        2009-07-21 03:11:12 UTC (rev 11731)
</span><span class="lines">@@ -60,10 +60,10 @@
</span><span class="cx"> 
</span><span class="cx">         $scripts-&gt;add( 'utils', &quot;/wp-admin/js/utils$suffix.js&quot;, false, '20090102' );
</span><span class="cx"> 
</span><del>-        $scripts-&gt;add( 'common', &quot;/wp-admin/js/common$suffix.js&quot;, array('jquery', 'hoverIntent', 'utils'), '20090623' );
</del><ins>+        $scripts-&gt;add( 'common', &quot;/wp-admin/js/common$suffix.js&quot;, array('jquery', 'hoverIntent', 'utils'), '20090720' );
</ins><span class="cx">         $scripts-&gt;add_data( 'common', 'group', 1 );
</span><span class="cx">         $scripts-&gt;localize( 'common', 'commonL10n', array(
</span><del>-                'warnDelete' =&gt; __(&quot;You are about to delete the selected items.\n  'Cancel' to stop, 'OK' to delete.&quot;),
</del><ins>+                'warnDelete' =&gt; __(&quot;You are about to permanently delete the selected items.\n  'Cancel' to stop, 'OK' to delete.&quot;),
</ins><span class="cx">                 'l10n_print_after' =&gt; 'try{convertEntities(commonL10n);}catch(e){};'
</span><span class="cx">         ) );
</span><span class="cx"> 
</span><span class="lines">@@ -245,7 +245,7 @@
</span><span class="cx">                 $scripts-&gt;add( 'user-profile', &quot;/wp-admin/js/user-profile$suffix.js&quot;, array('jquery'), '20090514' );
</span><span class="cx">                 $scripts-&gt;add_data( 'user-profile', 'group', 1 );
</span><span class="cx"> 
</span><del>-                $scripts-&gt;add( 'admin-comments', &quot;/wp-admin/js/edit-comments$suffix.js&quot;, array('wp-lists', 'jquery-ui-resizable', 'quicktags'), '20090627' );
</del><ins>+                $scripts-&gt;add( 'admin-comments', &quot;/wp-admin/js/edit-comments$suffix.js&quot;, array('wp-lists', 'jquery-ui-resizable', 'quicktags'), '20090720' );
</ins><span class="cx">                 $scripts-&gt;add_data( 'admin-comments', 'group', 1 );
</span><span class="cx">                 $scripts-&gt;localize( 'admin-comments', 'adminCommentsL10n', array(
</span><span class="cx">                         'hotkeys_highlight_first' =&gt; isset($_GET['hotkeys_highlight_first']),
</span><span class="lines">@@ -426,9 +426,9 @@
</span><span class="cx">         $rtl_styles = array( 'global', 'colors', 'dashboard', 'ie', 'install', 'login', 'media', 'theme-editor', 'upload', 'widgets', 'press-this', 'plugin-install', 'farbtastic' );
</span><span class="cx"> 
</span><span class="cx">         // all colors stylesheets need to have the same query strings (cache manifest compat)
</span><del>-        $colors_version = '20090625';
</del><ins>+        $colors_version = '20090720';
</ins><span class="cx"> 
</span><del>-        $styles-&gt;add( 'wp-admin', '/wp-admin/wp-admin.css', array(), '20090625' );
</del><ins>+        $styles-&gt;add( 'wp-admin', '/wp-admin/wp-admin.css', array(), '20090720' );
</ins><span class="cx">         $styles-&gt;add_data( 'wp-admin', 'rtl', '/wp-admin/rtl.css' );
</span><span class="cx"> 
</span><span class="cx">         $styles-&gt;add( 'ie', '/wp-admin/css/ie.css', array(), '20090630' );
</span></span></pre>
</div>
</div>

</body>
</html>