/** * Moves an issue from a project to another. * * @todo Validate with sub-project / category inheritance scenarios. * @param int p_bug_id The bug to be moved. * @param int p_target_project_id The target project to move the bug to. * @access public */ function bug_move($p_bug_id, $p_target_project_id) { // Attempt to move disk based attachments to new project file directory. file_move_bug_attachments($p_bug_id, $p_target_project_id); // Move the issue to the new project. bug_set_field($p_bug_id, 'project_id', $p_target_project_id); // Update the category if needed $t_category_id = bug_get_field($p_bug_id, 'category_id'); // Bug has no category if ($t_category_id == 0) { // Category is required in target project, set it to default if (ON != config_get('allow_no_category', null, null, $p_target_project_id)) { bug_set_field($p_bug_id, 'category_id', config_get('default_category_for_moves')); } } else { $t_category_project_id = category_get_field($t_category_id, 'project_id'); if ($t_category_project_id != ALL_PROJECTS && !project_hierarchy_inherit_parent($p_target_project_id, $t_category_project_id)) { // Map by name $t_category_name = category_get_field($t_category_id, 'name'); $t_target_project_category_id = category_get_id_by_name($t_category_name, $p_target_project_id, false); if ($t_target_project_category_id === false) { // Use default category after moves, since there is no match by name. $t_target_project_category_id = config_get('default_category_for_moves'); } bug_set_field($p_bug_id, 'category_id', $t_target_project_category_id); } } }
<td width="20%"> <?php echo lang_get('description'); ?> </td> <td width="20%"> <?php echo lang_get('actions'); ?> </td> </tr> <?php foreach ($t_subproject_ids as $t_subproject_id) { $t_subproject = project_get_row($t_subproject_id); $t_inherit_parent = project_hierarchy_inherit_parent($t_subproject_id, $f_project_id, true); ?> <tr <?php echo helper_alternate_class(); ?> > <td> <a href="manage_proj_edit_page.php?project_id=<?php echo $t_subproject['id']; ?> "><?php echo string_display($t_subproject['name']); ?> </a> </td> <td class="center">
/** * Moves an issue from a project to another. * * @todo Validate with sub-project / category inheritance scenarios. * @param int p_bug_id The bug to be moved. * @param int p_target_project_id The target project to move the bug to. * @access public */ function bug_move( $p_bug_id, $p_target_project_id ) { // Attempt to move disk based attachments to new project file directory. file_move_bug_attachments( $p_bug_id, $p_target_project_id ); // Move the issue to the new project. bug_set_field( $p_bug_id, 'project_id', $p_target_project_id ); // Check if the category for the issue is global or not. $t_category_id = bug_get_field( $p_bug_id, 'category_id' ); $t_category_project_id = category_get_field( $t_category_id, 'project_id' ); // If not global, then attempt mapping it to the new project. if ( $t_category_project_id != ALL_PROJECTS && !project_hierarchy_inherit_parent( $p_target_project_id, $t_category_project_id ) ) { // Map by name $t_category_name = category_get_field( $t_category_id, 'name' ); $t_target_project_category_id = category_get_id_by_name( $t_category_name, $p_target_project_id, /* triggerErrors */ false ); if ( $t_target_project_category_id === false ) { // Use default category after moves, since there is no match by name. $t_target_project_category_id = config_get( 'default_category_for_moves' ); } bug_set_field( $p_bug_id, 'category_id', $t_target_project_category_id ); } }