
Property changes on: .
___________________________________________________________________
Added: svn:ignore
   + wp-config.php



Property changes on: wp-content
___________________________________________________________________
Added: svn:ignore
   + *


Index: wp-admin/edit-comments.php
===================================================================
--- wp-admin/edit-comments.php	(revision 16851)
+++ wp-admin/edit-comments.php	(working copy)
@@ -13,6 +13,7 @@
 
 $wp_list_table = get_list_table('WP_Comments_List_Table');
 $wp_list_table->check_permissions();
+$pagenum = $wp_list_table->get_pagenum();
 
 $doaction = $wp_list_table->current_action();
 
@@ -37,6 +38,11 @@
 	$approved = $unapproved = $spammed = $unspammed = $trashed = $untrashed = $deleted = 0;
 	$redirect_to = remove_query_arg( array( 'trashed', 'untrashed', 'deleted', 'spammed', 'unspammed', 'approved', 'unapproved', 'ids' ), wp_get_referer() );
 
+	// Fix the problem with wrong page number. This happens when the user use the javascript
+	// pagination feature to navigate to a certain page, then does some bulk actions there,
+	// he will be redirected back to te original page number instead of the navigated one.
+	$redirect_to = add_query_arg( 'paged', $pagenum, $redirect_to );
+
 	foreach ( $comment_ids as $comment_id ) { // Check the permissions on each
 		if ( !current_user_can( 'edit_comment', $comment_id ) )
 			continue;
@@ -99,6 +105,14 @@
 
 $wp_list_table->prepare_items();
 
+// redirect to the last page if the page number is larger than the total number of pages
+// this can happen when all the items in the last page are deleted, for example
+$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
+if ( $pagenum > $total_pages && $total_pages > 0 ) {
+	wp_redirect( add_query_arg( 'paged', $total_pages ) );
+	exit;
+}
+
 wp_enqueue_script('admin-comments');
 enqueue_comment_hotkeys_js();
 
Index: wp-admin/edit.php
===================================================================
--- wp-admin/edit.php	(revision 16851)
+++ wp-admin/edit.php	(working copy)
@@ -10,6 +10,7 @@
 require_once( './admin.php' );			
 $wp_list_table = get_list_table('WP_Posts_List_Table');
 $wp_list_table->check_permissions();
+$pagenum = $wp_list_table->get_pagenum();
 
 // Back-compat for viewing comments of an entry
 foreach ( array( 'p', 'attachment_id', 'page_id' ) as $_redirect ) {
@@ -26,6 +27,11 @@
 if ( $doaction ) {
 	check_admin_referer('bulk-posts');
 	$sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() );
+	
+	// Fix the problem with wrong page number. This happens when the user use the javascript
+	// pagination feature to navigate to a certain page, then does some bulk actions there,
+	// he will be redirected back to te original page number instead of the navigated one.
+	$sendback = add_query_arg( 'paged', $pagenum, $sendback );
 
 	if ( strpos($sendback, 'post.php') !== false )
 		$sendback = admin_url($post_new_file);
@@ -60,7 +66,7 @@
 
 				$trashed++;
 			}
-			$sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids)), $sendback );
+			$sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids) ), $sendback );
 			break;
 		case 'untrash':
 			$untrashed = 0;
@@ -127,6 +133,14 @@
 
 $wp_list_table->prepare_items();
 
+// redirect to the last page if the page number is larger than the total number of pages
+// this can happen when all the items in the last page are deleted, for example
+$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
+if ( $pagenum > $total_pages && $total_pages > 0 ) {
+	wp_redirect( add_query_arg( 'paged', $total_pages ) );
+	exit;
+}
+
 wp_enqueue_script('inline-edit-post');
 
 $title = $post_type_object->labels->name;
