--- C:/Documents and Settings/vsel/mantisbt-1.2.8/bug_actiongroup_page.php	Tue Sep 06 10:23:10 2011
+++ C:/Documents and Settings/vsel/mantisbt-edited/bug_actiongroup_page.php	Thu Sep 22 23:36:42 2011
@@ -123,6 +123,10 @@
 			$t_question_title 		= lang_get( 'move_bugs_conf_msg' );
 			$t_button_title 		= lang_get( 'move_group_bugs_button' );
 			$t_form					= 'project_id';
+			$t_question_title2		= lang_get( 'assign_bugs_conf_msg' );
+			$t_form2				= 'assign';
+			$t_question_title3		= lang_get( 'status_bugs_conf_msg' );
+			$t_form3				= 'status';
 			break;
 
 		case 'COPY' :
@@ -296,6 +300,39 @@
 		</tr>
 	<?php
 				}
+				break;
+			case 'MOVE':
+	?>
+		<tr class="row-2">
+			<td class="category">
+				<?php echo $t_question_title2 ?>
+			</td>
+			<td>
+				<select name="<?php echo $t_form2 ?>">
+					<option value="0"></option>
+					<?php print_assign_to_option_list( '', ALL_PROJECTS );?>
+				</select>
+			</td>
+		</tr>
+	<?php
+				break;
+		}
+	}
+	if ( isset( $t_question_title3 ) ) {
+		switch ( $f_action ) {
+			case 'MOVE':
+	?>
+		<tr class="row-2">
+			<td class="category">
+				<?php echo $t_question_title3 ?>
+			</td>
+			<td>
+				<select name="<?php echo $t_form3 ?>">
+					<?php print_enum_string_option_list( 'status', config_get( 'bug_move_status' ) );?>
+				</select>
+			</td>
+		</tr>
+	<?php
 				break;
 		}
 	}
--- C:/Documents and Settings/vsel/mantisbt-1.2.8/bug_actiongroup.php	Tue Sep 06 10:23:10 2011
+++ C:/Documents and Settings/vsel/mantisbt-edited/bug_actiongroup.php	Thu Sep 22 22:50:02 2011
@@ -68,9 +68,7 @@
 
 		$t_status = $t_bug->status;
 
-		switch ( $f_action ) {
-
-		case 'CLOSE':
+		if ( $f_action == 'CLOSE' ) {
 			$t_closed = config_get( 'bug_closed_status_threshold' );
 			if ( access_can_close_bug( $t_bug_id ) &&
 					( $t_status < $t_closed ) &&
@@ -86,18 +84,18 @@
 					$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_status' );
 				}
 			}
-			break;
+		}
 
-		case 'DELETE':
+		if ( $f_action == 'DELETE' ) {
 			if ( access_has_bug_level( config_get( 'delete_bug_threshold' ), $t_bug_id ) ) {
 				event_signal( 'EVENT_BUG_DELETED', array( $t_bug_id ) );
 				bug_delete( $t_bug_id );
 			} else {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'MOVE':
+		if ( $f_action == 'MOVE' ) {
 			$f_project_id = gpc_get_int( 'project_id' );
 			if ( access_has_bug_level( config_get( 'move_bug_threshold' ), $t_bug_id ) &&
 			     access_has_project_level( config_get( 'report_bug_threshold' ), $f_project_id ) ) {
@@ -107,9 +105,9 @@
 			} else {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'COPY':
+		if ( $f_action == 'COPY' ) {
 			$f_project_id = gpc_get_int( 'project_id' );
 
 			if ( access_has_project_level( config_get( 'report_bug_threshold' ), $f_project_id ) ) {
@@ -117,10 +115,14 @@
 			} else {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'ASSIGN':
+		if ( $f_action == 'ASSIGN' || $f_action == 'MOVE' ) {
 			$f_assign = gpc_get_int( 'assign' );
+			
+			if ( $f_assign == NO_USER ) {
+				bug_assign( $t_bug_id, $f_assign, $f_bug_notetext, $f_bug_noteprivate );
+			} else {
 			if ( ON == config_get( 'auto_set_status_to_assigned' ) ) {
 				$t_assign_status = config_get( 'bug_assigned_status' );
 			} else {
@@ -128,7 +130,11 @@
 			}
 			# check that new handler has rights to handle the issue, and
 			#  that current user has rights to assign the issue
-			$t_threshold = access_get_status_threshold( $t_assign_status, bug_get_field( $t_bug_id, 'project_id' ) );
+				$t_target_project = bug_get_field( $t_bug_id, 'project_id' );
+				if ( $f_action == 'MOVE' ) {
+					$t_target_project = gpc_get_int( 'project_id' );
+				}
+				$t_threshold = access_get_status_threshold( $t_assign_status, $t_target_project );
 			if ( access_has_bug_level( $t_threshold , $t_bug_id, $f_assign ) &&
 				 access_has_bug_level( config_get( 'update_bug_assign_threshold', config_get( 'update_bug_threshold' ) ), $t_bug_id ) &&
 					bug_check_workflow($t_status, $t_assign_status )	) {
@@ -142,9 +148,10 @@
 					$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_status' );
 				}
 			}
-			break;
+			}
+		}
 
-		case 'RESOLVE':
+		if ( $f_action == 'RESOLVE' ) {
 			$t_resolved_status = config_get( 'bug_resolved_status_threshold' );
 			if ( access_has_bug_level( access_get_status_threshold( $t_resolved_status, bug_get_field( $t_bug_id, 'project_id' ) ), $t_bug_id ) &&
 				 		( $t_status < $t_resolved_status ) &&
@@ -162,9 +169,9 @@
 					$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_status' );
 				}
 			}
-			break;
+		}
 
-		case 'UP_PRIOR':
+		if ( $f_action == 'UP_PRIOR' ) {
 			if ( access_has_bug_level( config_get( 'update_bug_threshold' ), $t_bug_id ) ) {
 				$f_priority = gpc_get_int( 'priority' );
 				/** @todo we need to issue a helper_call_custom_function( 'issue_update_validate', array( $t_bug_id, $t_bug_data, $f_bugnote_text ) ); */
@@ -173,11 +180,14 @@
 			} else {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'UP_STATUS':
+		if ( $f_action == 'UP_STATUS' || $f_action == 'MOVE' ) {
 			$f_status = gpc_get_int( 'status' );
 			$t_project = bug_get_field( $t_bug_id, 'project_id' );
+			if ( $f_action == 'MOVE' ) {
+				$t_project = gpc_get_int( 'project_id' );
+			}
 			if ( access_has_bug_level( access_get_status_threshold( $f_status, $t_project ), $t_bug_id ) ) {
 				if ( TRUE == bug_check_workflow($t_status, $f_status ) ) {
 					/** @todo we need to issue a helper_call_custom_function( 'issue_update_validate', array( $t_bug_id, $t_bug_data, $f_bugnote_text ) ); */
@@ -195,9 +205,9 @@
 			} else {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'UP_CATEGORY':
+		if ( $f_action == 'UP_CATEGORY' ) {
 			$f_category_id = gpc_get_int( 'category' );
 			if ( access_has_bug_level( config_get( 'update_bug_threshold' ), $t_bug_id ) ) {
 				if ( category_exists( $f_category_id ) ) {
@@ -210,9 +220,9 @@
 			} else {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'UP_FIXED_IN_VERSION':
+		if ( $f_action == 'UP_FIXED_IN_VERSION' ) {
 			$f_fixed_in_version = gpc_get_string( 'fixed_in_version' );
 			$t_project_id = bug_get_field( $t_bug_id, 'project_id' );
 			$t_success = false;
@@ -229,9 +239,9 @@
 			if ( !$t_success ) {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'UP_TARGET_VERSION':
+		if ( $f_action == 'UP_TARGET_VERSION' ) {
 			$f_target_version = gpc_get_string( 'target_version' );
 			$t_project_id = bug_get_field( $t_bug_id, 'project_id' );
 			$t_success = false;
@@ -248,9 +258,9 @@
 			if ( !$t_success ) {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'VIEW_STATUS':
+		if ( $f_action == 'VIEW_STATUS' ) {
 			if ( access_has_bug_level( config_get( 'change_view_status_threshold' ), $t_bug_id ) ) {
 				$f_view_status = gpc_get_int( 'view_status' );
 				/** @todo we need to issue a helper_call_custom_function( 'issue_update_validate', array( $t_bug_id, $t_bug_data, $f_bugnote_text ) ); */
@@ -259,9 +269,9 @@
 			} else {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'SET_STICKY':
+		if ( $f_action == 'SET_STICKY' ) {
 			if ( access_has_bug_level( config_get( 'set_bug_sticky_threshold' ), $t_bug_id ) ) {
 				$f_sticky = bug_get_field( $t_bug_id, 'sticky' );
 				// The new value is the inverted old value
@@ -271,9 +281,9 @@
 			} else {
 				$t_failed_ids[$t_bug_id] = lang_get( 'bug_actiongroup_access' );
 			}
-			break;
+		}
 
-		case 'CUSTOM':
+		if ( $f_action == 'CUSTOM' ) {
 			if ( 0 === $f_custom_field_id ) {
 				trigger_error( ERROR_GENERIC, ERROR );
 			}
@@ -283,10 +293,6 @@
 			$t_custom_field_value = gpc_get_custom_field( $t_form_var, $t_custom_field_def['type'], null );
 			custom_field_set_value( $f_custom_field_id, $t_bug_id, $t_custom_field_value );
 			helper_call_custom_function( 'issue_update_notify', array( $t_bug_id ) );
-			break;
-
-		default:
-			trigger_error( ERROR_GENERIC, ERROR );
 		}
 
 		// Bug Action Event
--- C:/Documents and Settings/vsel/mantisbt-1.2.8/config_defaults_inc.php	Tue Sep 06 10:23:10 2011
+++ C:/Documents and Settings/vsel/mantisbt-edited/config_defaults_inc.php	Mon Sep 26 21:41:15 2011
@@ -1760,6 +1760,12 @@
 	$g_bug_submit_status = NEW_;
 
 	/**
+	 * Status to assign to the bug when moved between projects.
+	 * @global int $g_bug_moved_status
+	 */
+	$g_bug_move_status = '%bug_submit_status%';
+
+	/**
 	 * Status to assign to the bug when assigned.
 	 * @global int $g_bug_assigned_status
 	 */
